diff --git a/Cargo.toml b/Cargo.toml index aabd1ff..cacbea2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -80,6 +80,7 @@ members = [ "y2023/ex10", "y2023/ex11", "y2023/ex12", + "y2023/ex13", ] [profile.bench] diff --git a/y2023/ex13/Cargo.toml b/y2023/ex13/Cargo.toml new file mode 100644 index 0000000..da552bf --- /dev/null +++ b/y2023/ex13/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "y2023ex13" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] + +[[bench]] +name = "bench_y2023ex13" +harness = false + +[dev-dependencies] +criterion = "0.5.1" diff --git a/y2023/ex13/README.md b/y2023/ex13/README.md new file mode 100644 index 0000000..c1724bf --- /dev/null +++ b/y2023/ex13/README.md @@ -0,0 +1,15 @@ +# Day 13: TODO: ADD TITLE HERE + +[Check it out on adventofcode.com](https://adventofcode.com/2023/day/13) + +## Part One + +TODO: ADD DESCRIPTION HERE + +Your puzzle answer was `?`. (TODO: ) + +## Part Two + +TODO: ADD DESCRIPTION HERE + +Your puzzle answer was `?`. (TODO: ) \ No newline at end of file diff --git a/y2023/ex13/benches/bench_y2023ex13.rs b/y2023/ex13/benches/bench_y2023ex13.rs new file mode 100644 index 0000000..6b8a26b --- /dev/null +++ b/y2023/ex13/benches/bench_y2023ex13.rs @@ -0,0 +1,11 @@ +use criterion::{black_box, criterion_group, criterion_main, Criterion}; +use y2023ex13::{part1, part2}; + +fn criterion_benchmark(c: &mut Criterion) { + let input = include_str!("../input.txt"); + c.bench_function("y2023ex13::part1", |b| b.iter(|| part1(black_box(input)))); + c.bench_function("y2023ex13::part2", |b| b.iter(|| part2(black_box(input)))); +} + +criterion_group!(benches, criterion_benchmark); +criterion_main!(benches); diff --git a/y2023/ex13/debug.py b/y2023/ex13/debug.py new file mode 100644 index 0000000..a8ac54d --- /dev/null +++ b/y2023/ex13/debug.py @@ -0,0 +1,30 @@ +grid = """#.###.#.. +#.###.#.. +..##.#.## +#.####.#. +#####...# +#.##.##.. +..##.#... +##...###. +.#....#.# +#..#...## +#..#.#.##""" + +def find_mirror(grid): + for r in range(1, len(grid)): + above = grid[:r][::-1] + below = grid[r:] + + above = above[:len(below)] + below = above[:len(above)] + + print(above) + print("---") + print(below) + + if above == below: + return r + + return 0 + +print(find_mirror(list(grid.splitlines()))) diff --git a/y2023/ex13/debug.txt b/y2023/ex13/debug.txt new file mode 100644 index 0000000..32d9149 --- /dev/null +++ b/y2023/ex13/debug.txt @@ -0,0 +1,9634 @@ + +running 1 test +idx: 0, delta: 0, matching: false, a (0): [1, 2, 3, 4, 6, 7], b (1): [0, 1, 4, 5, 6, 7, 8, 10] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 4, 5, 6, 7, 8, 10], b (2): [0, 1, 5, 7, 8, 9] +idx: 1, delta: 2, matching: false, a (3): [2, 3, 6, 10], b (0): [1, 2, 3, 4, 6, 7] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 5, 7, 8, 9], b (3): [2, 3, 6, 10] +idx: 2, delta: 2, matching: false, a (4): [2, 3, 6, 10], b (1): [0, 1, 4, 5, 6, 7, 8, 10] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 5, 7, 8, 9], b (0): [1, 2, 3, 4, 6, 7] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: true, a (3): [2, 3, 6, 10], b (4): [2, 3, 6, 10] +idx: 3, delta: 2, matching: true, a (5): [0, 1, 5, 7, 8, 9], b (2): [0, 1, 5, 7, 8, 9] +idx: 3, delta: 3, matching: true, a (6): [0, 1, 4, 5, 6, 7, 8, 10], b (1): [0, 1, 4, 5, 6, 7, 8, 10] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [2, 3, 6, 10], b (5): [0, 1, 5, 7, 8, 9] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 4, 5, 6, 7, 8, 10], b (3): [2, 3, 6, 10] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 5, 7, 8, 9], b (6): [0, 1, 4, 5, 6, 7, 8, 10] +idx: 5 --- EXITING WITH false +idx: 6 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [1, 2, 5, 6], b (1): [0, 1, 2, 5, 6] +idx: 0, delta: 0 --- found smudge! +idx: 0 --- EXITING WITH true +.##..## +###..## +#..##.. +#..##.. +##....# +.##..## +##.##.# +###..## +.##..## +..#..#. +.#.##.# +100 (vert: 0, horiz: 1) + +idx: 0, delta: 0, matching: false, a (0): [0, 5, 8, 10, 11, 12], b (1): [6, 7, 8, 9, 10, 11, 12] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [6, 7, 8, 9, 10, 11, 12], b (2): [1, 4, 6, 7, 10, 11, 12] +idx: 1, delta: 2, matching: false, a (3): [1, 4, 7, 10, 11, 12], b (0): [0, 5, 8, 10, 11, 12] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 4, 6, 7, 10, 11, 12], b (3): [1, 4, 7, 10, 11, 12] +idx: 2, delta: 0 --- found smudge! +idx: 2, delta: 2, matching: false, a (4): [0, 1, 4, 5, 6, 10, 11], b (1): [6, 7, 8, 9, 10, 11, 12] +idx: 2, delta: 2 --- found smudge twice! +idx: 3, delta: 0, matching: false, a (3): [1, 4, 7, 10, 11, 12], b (4): [0, 1, 4, 5, 6, 10, 11] +idx: 3, delta: 2, matching: false, a (5): [2, 3, 7, 8, 9, 10, 11, 12], b (2): [1, 4, 6, 7, 10, 11, 12] +idx: 3, delta: 3, matching: false, a (6): [1, 4, 6, 11, 12], b (1): [6, 7, 8, 9, 10, 11, 12] +idx: 3, delta: 4, matching: false, a (7): [0, 5, 6, 7, 8, 10], b (0): [0, 5, 8, 10, 11, 12] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 4, 5, 6, 10, 11], b (5): [2, 3, 7, 8, 9, 10, 11, 12] +idx: 4, delta: 2, matching: false, a (6): [1, 4, 6, 11, 12], b (3): [1, 4, 7, 10, 11, 12] +idx: 4, delta: 3, matching: false, a (7): [0, 5, 6, 7, 8, 10], b (2): [1, 4, 6, 7, 10, 11, 12] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 4, 5, 6, 9, 11, 12], b (1): [6, 7, 8, 9, 10, 11, 12] +idx: 4, delta: 5, matching: false, a (9): [1, 2, 3, 4, 9, 11, 12], b (0): [0, 5, 8, 10, 11, 12] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [2, 3, 7, 8, 9, 10, 11, 12], b (6): [1, 4, 6, 11, 12] +idx: 5, delta: 2, matching: false, a (7): [0, 5, 6, 7, 8, 10], b (4): [0, 1, 4, 5, 6, 10, 11] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 4, 5, 6, 9, 11, 12], b (3): [1, 4, 7, 10, 11, 12] +idx: 5, delta: 4, matching: false, a (9): [1, 2, 3, 4, 9, 11, 12], b (2): [1, 4, 6, 7, 10, 11, 12] +idx: 5, delta: 5, matching: false, a (10): [0, 2, 3, 5, 6, 7, 10], b (1): [6, 7, 8, 9, 10, 11, 12] +idx: 5, delta: 6, matching: false, a (11): [2, 3, 6, 9], b (0): [0, 5, 8, 10, 11, 12] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [1, 4, 6, 11, 12], b (7): [0, 5, 6, 7, 8, 10] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 4, 5, 6, 9, 11, 12], b (5): [2, 3, 7, 8, 9, 10, 11, 12] +idx: 6, delta: 3, matching: false, a (9): [1, 2, 3, 4, 9, 11, 12], b (4): [0, 1, 4, 5, 6, 10, 11] +idx: 6, delta: 4, matching: false, a (10): [0, 2, 3, 5, 6, 7, 10], b (3): [1, 4, 7, 10, 11, 12] +idx: 6, delta: 5, matching: false, a (11): [2, 3, 6, 9], b (2): [1, 4, 6, 7, 10, 11, 12] +idx: 6, delta: 6, matching: false, a (12): [1, 2, 3, 4, 6, 7, 9], b (1): [6, 7, 8, 9, 10, 11, 12] +idx: 6, delta: 7, matching: false, a (13): [0, 2, 3, 5, 8, 10], b (0): [0, 5, 8, 10, 11, 12] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 5, 6, 7, 8, 10], b (8): [0, 1, 4, 5, 6, 9, 11, 12] +idx: 7, delta: 2, matching: false, a (9): [1, 2, 3, 4, 9, 11, 12], b (6): [1, 4, 6, 11, 12] +idx: 7, delta: 3, matching: false, a (10): [0, 2, 3, 5, 6, 7, 10], b (5): [2, 3, 7, 8, 9, 10, 11, 12] +idx: 7, delta: 4, matching: false, a (11): [2, 3, 6, 9], b (4): [0, 1, 4, 5, 6, 10, 11] +idx: 7, delta: 5, matching: false, a (12): [1, 2, 3, 4, 6, 7, 9], b (3): [1, 4, 7, 10, 11, 12] +idx: 7, delta: 6, matching: false, a (13): [0, 2, 3, 5, 8, 10], b (2): [1, 4, 6, 7, 10, 11, 12] +idx: 7, delta: 7, matching: false, a (14): [0, 5, 7, 10], b (1): [6, 7, 8, 9, 10, 11, 12] +idx: 7, delta: 8, matching: false, a (15): [1, 2, 3, 4, 6, 8, 9, 11, 12], b (0): [0, 5, 8, 10, 11, 12] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 1, 4, 5, 6, 9, 11, 12], b (9): [1, 2, 3, 4, 9, 11, 12] +idx: 8, delta: 2, matching: false, a (10): [0, 2, 3, 5, 6, 7, 10], b (7): [0, 5, 6, 7, 8, 10] +idx: 8, delta: 3, matching: false, a (11): [2, 3, 6, 9], b (6): [1, 4, 6, 11, 12] +idx: 8, delta: 4, matching: false, a (12): [1, 2, 3, 4, 6, 7, 9], b (5): [2, 3, 7, 8, 9, 10, 11, 12] +idx: 8, delta: 5, matching: false, a (13): [0, 2, 3, 5, 8, 10], b (4): [0, 1, 4, 5, 6, 10, 11] +idx: 8, delta: 6, matching: false, a (14): [0, 5, 7, 10], b (3): [1, 4, 7, 10, 11, 12] +idx: 8, delta: 7, matching: false, a (15): [1, 2, 3, 4, 6, 8, 9, 11, 12], b (2): [1, 4, 6, 7, 10, 11, 12] +idx: 8, delta: 8, matching: false, a (16): [1, 2, 3, 4, 6, 7, 10], b (1): [6, 7, 8, 9, 10, 11, 12] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [1, 2, 3, 4, 9, 11, 12], b (10): [0, 2, 3, 5, 6, 7, 10] +idx: 9, delta: 2, matching: false, a (11): [2, 3, 6, 9], b (8): [0, 1, 4, 5, 6, 9, 11, 12] +idx: 9, delta: 3, matching: false, a (12): [1, 2, 3, 4, 6, 7, 9], b (7): [0, 5, 6, 7, 8, 10] +idx: 9, delta: 4, matching: false, a (13): [0, 2, 3, 5, 8, 10], b (6): [1, 4, 6, 11, 12] +idx: 9, delta: 5, matching: false, a (14): [0, 5, 7, 10], b (5): [2, 3, 7, 8, 9, 10, 11, 12] +idx: 9, delta: 6, matching: false, a (15): [1, 2, 3, 4, 6, 8, 9, 11, 12], b (4): [0, 1, 4, 5, 6, 10, 11] +idx: 9, delta: 7, matching: false, a (16): [1, 2, 3, 4, 6, 7, 10], b (3): [1, 4, 7, 10, 11, 12] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 2, 3, 5, 6, 7, 10], b (11): [2, 3, 6, 9] +idx: 10, delta: 2, matching: false, a (12): [1, 2, 3, 4, 6, 7, 9], b (9): [1, 2, 3, 4, 9, 11, 12] +idx: 10, delta: 3, matching: false, a (13): [0, 2, 3, 5, 8, 10], b (8): [0, 1, 4, 5, 6, 9, 11, 12] +idx: 10, delta: 4, matching: false, a (14): [0, 5, 7, 10], b (7): [0, 5, 6, 7, 8, 10] +idx: 10, delta: 5, matching: false, a (15): [1, 2, 3, 4, 6, 8, 9, 11, 12], b (6): [1, 4, 6, 11, 12] +idx: 10, delta: 6, matching: false, a (16): [1, 2, 3, 4, 6, 7, 10], b (5): [2, 3, 7, 8, 9, 10, 11, 12] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [2, 3, 6, 9], b (12): [1, 2, 3, 4, 6, 7, 9] +idx: 11, delta: 2, matching: false, a (13): [0, 2, 3, 5, 8, 10], b (10): [0, 2, 3, 5, 6, 7, 10] +idx: 11, delta: 3, matching: false, a (14): [0, 5, 7, 10], b (9): [1, 2, 3, 4, 9, 11, 12] +idx: 11, delta: 4, matching: false, a (15): [1, 2, 3, 4, 6, 8, 9, 11, 12], b (8): [0, 1, 4, 5, 6, 9, 11, 12] +idx: 11, delta: 5, matching: false, a (16): [1, 2, 3, 4, 6, 7, 10], b (7): [0, 5, 6, 7, 8, 10] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [1, 2, 3, 4, 6, 7, 9], b (13): [0, 2, 3, 5, 8, 10] +idx: 12, delta: 2, matching: false, a (14): [0, 5, 7, 10], b (11): [2, 3, 6, 9] +idx: 12, delta: 3, matching: false, a (15): [1, 2, 3, 4, 6, 8, 9, 11, 12], b (10): [0, 2, 3, 5, 6, 7, 10] +idx: 12, delta: 4, matching: false, a (16): [1, 2, 3, 4, 6, 7, 10], b (9): [1, 2, 3, 4, 9, 11, 12] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: false, a (13): [0, 2, 3, 5, 8, 10], b (14): [0, 5, 7, 10] +idx: 13, delta: 2, matching: false, a (15): [1, 2, 3, 4, 6, 8, 9, 11, 12], b (12): [1, 2, 3, 4, 6, 7, 9] +idx: 13, delta: 3, matching: false, a (16): [1, 2, 3, 4, 6, 7, 10], b (11): [2, 3, 6, 9] +idx: 13 --- EXITING WITH false +idx: 14, delta: 0, matching: false, a (14): [0, 5, 7, 10], b (15): [1, 2, 3, 4, 6, 8, 9, 11, 12] +idx: 14, delta: 2, matching: false, a (16): [1, 2, 3, 4, 6, 7, 10], b (13): [0, 2, 3, 5, 8, 10] +idx: 14 --- EXITING WITH false +idx: 15, delta: 0, matching: false, a (15): [1, 2, 3, 4, 6, 8, 9, 11, 12], b (16): [1, 2, 3, 4, 6, 7, 10] +idx: 15 --- EXITING WITH false +idx: 16 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [0, 4, 7, 8, 10, 13, 14], b (1): [2, 3, 4, 6, 8, 9, 12, 15, 16] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [2, 3, 4, 6, 8, 9, 12, 15, 16], b (2): [5, 9, 10, 11, 12, 13, 15, 16] +idx: 1, delta: 2, matching: false, a (3): [5, 9, 10, 11, 12, 13, 15, 16], b (0): [0, 4, 7, 8, 10, 13, 14] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: true, a (2): [5, 9, 10, 11, 12, 13, 15, 16], b (3): [5, 9, 10, 11, 12, 13, 15, 16] +idx: 2, delta: 2, matching: true, a (4): [2, 3, 4, 6, 8, 9, 12, 15, 16], b (1): [2, 3, 4, 6, 8, 9, 12, 15, 16] +idx: 2, delta: 3, matching: true, a (5): [0, 4, 7, 8, 10, 13, 14], b (0): [0, 4, 7, 8, 10, 13, 14] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [5, 9, 10, 11, 12, 13, 15, 16], b (4): [2, 3, 4, 6, 8, 9, 12, 15, 16] +idx: 3, delta: 2, matching: false, a (5): [0, 4, 7, 8, 10, 13, 14], b (2): [5, 9, 10, 11, 12, 13, 15, 16] +idx: 3, delta: 3, matching: false, a (6): [1, 2, 4, 6, 7, 8, 10, 11, 12, 15, 16], b (1): [2, 3, 4, 6, 8, 9, 12, 15, 16] +idx: 3, delta: 4, matching: false, a (7): [1, 2, 3, 5, 7, 10, 12, 14, 16], b (0): [0, 4, 7, 8, 10, 13, 14] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [2, 3, 4, 6, 8, 9, 12, 15, 16], b (5): [0, 4, 7, 8, 10, 13, 14] +idx: 4, delta: 2, matching: false, a (6): [1, 2, 4, 6, 7, 8, 10, 11, 12, 15, 16], b (3): [5, 9, 10, 11, 12, 13, 15, 16] +idx: 4, delta: 3, matching: false, a (7): [1, 2, 3, 5, 7, 10, 12, 14, 16], b (2): [5, 9, 10, 11, 12, 13, 15, 16] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 5, 7, 13, 15], b (1): [2, 3, 4, 6, 8, 9, 12, 15, 16] +idx: 4, delta: 5, matching: false, a (9): [1, 5, 8, 9, 11, 12, 15], b (0): [0, 4, 7, 8, 10, 13, 14] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 4, 7, 8, 10, 13, 14], b (6): [1, 2, 4, 6, 7, 8, 10, 11, 12, 15, 16] +idx: 5, delta: 2, matching: false, a (7): [1, 2, 3, 5, 7, 10, 12, 14, 16], b (4): [2, 3, 4, 6, 8, 9, 12, 15, 16] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 5, 7, 13, 15], b (3): [5, 9, 10, 11, 12, 13, 15, 16] +idx: 5, delta: 4, matching: false, a (9): [1, 5, 8, 9, 11, 12, 15], b (2): [5, 9, 10, 11, 12, 13, 15, 16] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 2, 3, 4, 5, 7, 10, 13, 14, 16], b (1): [2, 3, 4, 6, 8, 9, 12, 15, 16] +idx: 5, delta: 6, matching: false, a (11): [0, 1, 2, 3, 4, 5, 6, 8, 9, 15], b (0): [0, 4, 7, 8, 10, 13, 14] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [1, 2, 4, 6, 7, 8, 10, 11, 12, 15, 16], b (7): [1, 2, 3, 5, 7, 10, 12, 14, 16] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 5, 7, 13, 15], b (5): [0, 4, 7, 8, 10, 13, 14] +idx: 6, delta: 3, matching: false, a (9): [1, 5, 8, 9, 11, 12, 15], b (4): [2, 3, 4, 6, 8, 9, 12, 15, 16] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 2, 3, 4, 5, 7, 10, 13, 14, 16], b (3): [5, 9, 10, 11, 12, 13, 15, 16] +idx: 6, delta: 5, matching: false, a (11): [0, 1, 2, 3, 4, 5, 6, 8, 9, 15], b (2): [5, 9, 10, 11, 12, 13, 15, 16] +idx: 6, delta: 6, matching: false, a (12): [0, 1, 2, 3, 5, 6, 8, 9, 15], b (1): [2, 3, 4, 6, 8, 9, 12, 15, 16] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [1, 2, 3, 5, 7, 10, 12, 14, 16], b (8): [0, 1, 5, 7, 13, 15] +idx: 7, delta: 2, matching: false, a (9): [1, 5, 8, 9, 11, 12, 15], b (6): [1, 2, 4, 6, 7, 8, 10, 11, 12, 15, 16] +idx: 7, delta: 3, matching: false, a (10): [0, 1, 2, 3, 4, 5, 7, 10, 13, 14, 16], b (5): [0, 4, 7, 8, 10, 13, 14] +idx: 7, delta: 4, matching: false, a (11): [0, 1, 2, 3, 4, 5, 6, 8, 9, 15], b (4): [2, 3, 4, 6, 8, 9, 12, 15, 16] +idx: 7, delta: 5, matching: false, a (12): [0, 1, 2, 3, 5, 6, 8, 9, 15], b (3): [5, 9, 10, 11, 12, 13, 15, 16] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 1, 5, 7, 13, 15], b (9): [1, 5, 8, 9, 11, 12, 15] +idx: 8, delta: 2, matching: false, a (10): [0, 1, 2, 3, 4, 5, 7, 10, 13, 14, 16], b (7): [1, 2, 3, 5, 7, 10, 12, 14, 16] +idx: 8, delta: 3, matching: false, a (11): [0, 1, 2, 3, 4, 5, 6, 8, 9, 15], b (6): [1, 2, 4, 6, 7, 8, 10, 11, 12, 15, 16] +idx: 8, delta: 4, matching: false, a (12): [0, 1, 2, 3, 5, 6, 8, 9, 15], b (5): [0, 4, 7, 8, 10, 13, 14] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [1, 5, 8, 9, 11, 12, 15], b (10): [0, 1, 2, 3, 4, 5, 7, 10, 13, 14, 16] +idx: 9, delta: 2, matching: false, a (11): [0, 1, 2, 3, 4, 5, 6, 8, 9, 15], b (8): [0, 1, 5, 7, 13, 15] +idx: 9, delta: 3, matching: false, a (12): [0, 1, 2, 3, 5, 6, 8, 9, 15], b (7): [1, 2, 3, 5, 7, 10, 12, 14, 16] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 1, 2, 3, 4, 5, 7, 10, 13, 14, 16], b (11): [0, 1, 2, 3, 4, 5, 6, 8, 9, 15] +idx: 10, delta: 2, matching: false, a (12): [0, 1, 2, 3, 5, 6, 8, 9, 15], b (9): [1, 5, 8, 9, 11, 12, 15] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [0, 1, 2, 3, 4, 5, 6, 8, 9, 15], b (12): [0, 1, 2, 3, 5, 6, 8, 9, 15] +idx: 11, delta: 0 --- found smudge! +idx: 11 --- EXITING WITH true + 0 #...#..##.#..##.. + 1 ..###.#.##..#..## + 2 .....#...#####.## + 3 .....#...#####.## + 4 ..###.#.##..#..## + 5 #...#..##.#..##.. + 6 .##.#.###.###..## + 7 .###.#.#..#.#.#.# + 8 ##...#.#.....#.#. + 9 .#...#..##.##..#. +10 ######.#..#..##.# +11 #######.##.....#. +12 ####.##.##.....#. +1200 (vert: 0, horiz: 12) + +idx: 0, delta: 0, matching: false, a (0): [0, 2, 6, 7, 9, 10, 11], b (1): [0, 1, 2, 3, 4, 5, 8, 11, 12] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 2, 3, 4, 5, 8, 11, 12], b (2): [0, 1, 2, 3, 4, 8, 9, 10, 11, 12] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 2, 3, 6, 7, 8, 11], b (0): [0, 2, 6, 7, 9, 10, 11] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 2, 3, 4, 8, 9, 10, 11, 12], b (3): [0, 1, 2, 3, 6, 7, 8, 11] +idx: 2, delta: 2, matching: false, a (4): [1, 6, 10], b (1): [0, 1, 2, 3, 4, 5, 8, 11, 12] +idx: 2, delta: 3, matching: false, a (5): [0, 2, 3, 4, 5, 6, 8, 9], b (0): [0, 2, 6, 7, 9, 10, 11] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 2, 3, 6, 7, 8, 11], b (4): [1, 6, 10] +idx: 3, delta: 2, matching: false, a (5): [0, 2, 3, 4, 5, 6, 8, 9], b (2): [0, 1, 2, 3, 4, 8, 9, 10, 11, 12] +idx: 3, delta: 3, matching: false, a (6): [0, 2, 3, 4, 5, 6, 8, 9], b (1): [0, 1, 2, 3, 4, 5, 8, 11, 12] +idx: 3, delta: 4, matching: false, a (7): [1, 6, 10], b (0): [0, 2, 6, 7, 9, 10, 11] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 6, 10], b (5): [0, 2, 3, 4, 5, 6, 8, 9] +idx: 4, delta: 2, matching: false, a (6): [0, 2, 3, 4, 5, 6, 8, 9], b (3): [0, 1, 2, 3, 6, 7, 8, 11] +idx: 4, delta: 3, matching: false, a (7): [1, 6, 10], b (2): [0, 1, 2, 3, 4, 8, 9, 10, 11, 12] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 2, 3, 6, 7, 8, 9, 11], b (1): [0, 1, 2, 3, 4, 5, 8, 11, 12] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 2, 3, 4, 8, 9, 10, 11, 12], b (0): [0, 2, 6, 7, 9, 10, 11] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: true, a (5): [0, 2, 3, 4, 5, 6, 8, 9], b (6): [0, 2, 3, 4, 5, 6, 8, 9] +idx: 5, delta: 2, matching: true, a (7): [1, 6, 10], b (4): [1, 6, 10] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 2, 3, 6, 7, 8, 9, 11], b (3): [0, 1, 2, 3, 6, 7, 8, 11] +idx: 5, delta: 3 --- found smudge! +idx: 5, delta: 4, matching: true, a (9): [0, 1, 2, 3, 4, 8, 9, 10, 11, 12], b (2): [0, 1, 2, 3, 4, 8, 9, 10, 11, 12] +idx: 5, delta: 5, matching: true, a (10): [0, 1, 2, 3, 4, 5, 8, 11, 12], b (1): [0, 1, 2, 3, 4, 5, 8, 11, 12] +idx: 5, delta: 6, matching: true, a (11): [0, 2, 6, 7, 9, 10, 11], b (0): [0, 2, 6, 7, 9, 10, 11] +idx: 5 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [0, 1, 2, 3, 5, 6, 8, 9, 10, 11, 12, 13, 14], b (1): [1, 2, 3, 4, 7, 8, 9, 10] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 2, 3, 4, 7, 8, 9, 10], b (2): [0, 1, 2, 3, 5, 6, 8, 9, 10, 11, 12, 13, 14] +idx: 1, delta: 2, matching: false, a (3): [1, 2, 3, 5, 6, 8, 9, 10, 12, 13], b (0): [0, 1, 2, 3, 5, 6, 8, 9, 10, 11, 12, 13, 14] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 2, 3, 5, 6, 8, 9, 10, 11, 12, 13, 14], b (3): [1, 2, 3, 5, 6, 8, 9, 10, 12, 13] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 5, 6, 9, 10], b (1): [1, 2, 3, 4, 7, 8, 9, 10] +idx: 2, delta: 3, matching: false, a (5): [1, 5, 6, 10, 12, 13], b (0): [0, 1, 2, 3, 5, 6, 8, 9, 10, 11, 12, 13, 14] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 2, 3, 5, 6, 8, 9, 10, 12, 13], b (4): [1, 2, 5, 6, 9, 10] +idx: 3, delta: 2, matching: false, a (5): [1, 5, 6, 10, 12, 13], b (2): [0, 1, 2, 3, 5, 6, 8, 9, 10, 11, 12, 13, 14] +idx: 3, delta: 3, matching: false, a (6): [0, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14], b (1): [1, 2, 3, 4, 7, 8, 9, 10] +idx: 3, delta: 4, matching: false, a (7): [0, 3, 8, 11, 12, 13, 14], b (0): [0, 1, 2, 3, 5, 6, 8, 9, 10, 11, 12, 13, 14] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 2, 5, 6, 9, 10], b (5): [1, 5, 6, 10, 12, 13] +idx: 4, delta: 2, matching: false, a (6): [0, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14], b (3): [1, 2, 3, 5, 6, 8, 9, 10, 12, 13] +idx: 4, delta: 3, matching: false, a (7): [0, 3, 8, 11, 12, 13, 14], b (2): [0, 1, 2, 3, 5, 6, 8, 9, 10, 11, 12, 13, 14] +idx: 4, delta: 4, matching: false, a (8): [1, 2, 3, 5, 6, 8, 9, 10, 12, 13], b (1): [1, 2, 3, 4, 7, 8, 9, 10] +idx: 4, delta: 5, matching: false, a (9): [0, 2, 5, 6, 8, 9, 11, 12, 13, 14], b (0): [0, 1, 2, 3, 5, 6, 8, 9, 10, 11, 12, 13, 14] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 5, 6, 10, 12, 13], b (6): [0, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14] +idx: 5, delta: 2, matching: false, a (7): [0, 3, 8, 11, 12, 13, 14], b (4): [1, 2, 5, 6, 9, 10] +idx: 5, delta: 3, matching: true, a (8): [1, 2, 3, 5, 6, 8, 9, 10, 12, 13], b (3): [1, 2, 3, 5, 6, 8, 9, 10, 12, 13] +idx: 5, delta: 4, matching: false, a (9): [0, 2, 5, 6, 8, 9, 11, 12, 13, 14], b (2): [0, 1, 2, 3, 5, 6, 8, 9, 10, 11, 12, 13, 14] +idx: 5, delta: 5, matching: false, a (10): [0, 2, 4, 7, 9, 11, 14], b (1): [1, 2, 3, 4, 7, 8, 9, 10] +idx: 5, delta: 6, matching: false, a (11): [0, 1, 2, 3, 8, 9, 10, 11, 12, 13, 14], b (0): [0, 1, 2, 3, 5, 6, 8, 9, 10, 11, 12, 13, 14] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14], b (7): [0, 3, 8, 11, 12, 13, 14] +idx: 6, delta: 2, matching: false, a (8): [1, 2, 3, 5, 6, 8, 9, 10, 12, 13], b (5): [1, 5, 6, 10, 12, 13] +idx: 6, delta: 3, matching: false, a (9): [0, 2, 5, 6, 8, 9, 11, 12, 13, 14], b (4): [1, 2, 5, 6, 9, 10] +idx: 6, delta: 4, matching: false, a (10): [0, 2, 4, 7, 9, 11, 14], b (3): [1, 2, 3, 5, 6, 8, 9, 10, 12, 13] +idx: 6, delta: 5, matching: false, a (11): [0, 1, 2, 3, 8, 9, 10, 11, 12, 13, 14], b (2): [0, 1, 2, 3, 5, 6, 8, 9, 10, 11, 12, 13, 14] +idx: 6, delta: 6, matching: false, a (12): [1, 2, 9, 10, 12, 13], b (1): [1, 2, 3, 4, 7, 8, 9, 10] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 3, 8, 11, 12, 13, 14], b (8): [1, 2, 3, 5, 6, 8, 9, 10, 12, 13] +idx: 7, delta: 2, matching: false, a (9): [0, 2, 5, 6, 8, 9, 11, 12, 13, 14], b (6): [0, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14] +idx: 7, delta: 3, matching: false, a (10): [0, 2, 4, 7, 9, 11, 14], b (5): [1, 5, 6, 10, 12, 13] +idx: 7, delta: 4, matching: false, a (11): [0, 1, 2, 3, 8, 9, 10, 11, 12, 13, 14], b (4): [1, 2, 5, 6, 9, 10] +idx: 7, delta: 5, matching: false, a (12): [1, 2, 9, 10, 12, 13], b (3): [1, 2, 3, 5, 6, 8, 9, 10, 12, 13] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [1, 2, 3, 5, 6, 8, 9, 10, 12, 13], b (9): [0, 2, 5, 6, 8, 9, 11, 12, 13, 14] +idx: 8, delta: 2, matching: false, a (10): [0, 2, 4, 7, 9, 11, 14], b (7): [0, 3, 8, 11, 12, 13, 14] +idx: 8, delta: 3, matching: false, a (11): [0, 1, 2, 3, 8, 9, 10, 11, 12, 13, 14], b (6): [0, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14] +idx: 8, delta: 4, matching: false, a (12): [1, 2, 9, 10, 12, 13], b (5): [1, 5, 6, 10, 12, 13] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 2, 5, 6, 8, 9, 11, 12, 13, 14], b (10): [0, 2, 4, 7, 9, 11, 14] +idx: 9, delta: 2, matching: false, a (11): [0, 1, 2, 3, 8, 9, 10, 11, 12, 13, 14], b (8): [1, 2, 3, 5, 6, 8, 9, 10, 12, 13] +idx: 9, delta: 3, matching: false, a (12): [1, 2, 9, 10, 12, 13], b (7): [0, 3, 8, 11, 12, 13, 14] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 2, 4, 7, 9, 11, 14], b (11): [0, 1, 2, 3, 8, 9, 10, 11, 12, 13, 14] +idx: 10, delta: 2, matching: false, a (12): [1, 2, 9, 10, 12, 13], b (9): [0, 2, 5, 6, 8, 9, 11, 12, 13, 14] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [0, 1, 2, 3, 8, 9, 10, 11, 12, 13, 14], b (12): [1, 2, 9, 10, 12, 13] +idx: 11 --- EXITING WITH false +idx: 12 --- EXITING WITH false +####.##.####### +.####..####.... +####.##.####### +.###.##.###.##. +.##..##..##.... +.#...##...#.##. +#..######..#### +#..#....#..#### +.###.##.###.##. +#.#..##.##.#### +#.#.#..#.#.#..# +####....####### +.##......##.##. +6 (vert: 6, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [0, 6, 7], b (1): [1, 2, 4, 6, 7, 8, 9] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 2, 4, 6, 7, 8, 9], b (2): [1, 2, 3, 4, 9, 10] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 2, 3, 4, 9, 10], b (0): [0, 6, 7] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 2, 3, 4, 9, 10], b (3): [0, 1, 2, 3, 4, 9, 10] +idx: 2, delta: 0 --- found smudge! +idx: 2, delta: 2, matching: false, a (4): [3, 6, 7, 10], b (1): [1, 2, 4, 6, 7, 8, 9] +idx: 2, delta: 2 --- found smudge twice! +idx: 3, delta: 0, matching: false, a (3): [0, 1, 2, 3, 4, 9, 10], b (4): [3, 6, 7, 10] +idx: 3, delta: 2, matching: false, a (5): [0, 2, 4, 5, 8, 9], b (2): [1, 2, 3, 4, 9, 10] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 5, 6, 7, 8], b (1): [1, 2, 4, 6, 7, 8, 9] +idx: 3, delta: 4, matching: false, a (7): [0, 4, 9], b (0): [0, 6, 7] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [3, 6, 7, 10], b (5): [0, 2, 4, 5, 8, 9] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 5, 6, 7, 8], b (3): [0, 1, 2, 3, 4, 9, 10] +idx: 4, delta: 3, matching: false, a (7): [0, 4, 9], b (2): [1, 2, 3, 4, 9, 10] +idx: 4, delta: 4, matching: false, a (8): [2, 6, 7], b (1): [1, 2, 4, 6, 7, 8, 9] +idx: 4, delta: 5, matching: false, a (9): [2, 6, 7], b (0): [0, 6, 7] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 2, 4, 5, 8, 9], b (6): [0, 1, 5, 6, 7, 8] +idx: 5, delta: 2, matching: false, a (7): [0, 4, 9], b (4): [3, 6, 7, 10] +idx: 5, delta: 3, matching: false, a (8): [2, 6, 7], b (3): [0, 1, 2, 3, 4, 9, 10] +idx: 5, delta: 4, matching: false, a (9): [2, 6, 7], b (2): [1, 2, 3, 4, 9, 10] +idx: 5, delta: 5, matching: false, a (10): [0, 4, 9], b (1): [1, 2, 4, 6, 7, 8, 9] +idx: 5, delta: 6, matching: false, a (11): [0, 1, 5, 6, 7, 8], b (0): [0, 6, 7] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 1, 5, 6, 7, 8], b (7): [0, 4, 9] +idx: 6, delta: 2, matching: false, a (8): [2, 6, 7], b (5): [0, 2, 4, 5, 8, 9] +idx: 6, delta: 3, matching: false, a (9): [2, 6, 7], b (4): [3, 6, 7, 10] +idx: 6, delta: 4, matching: false, a (10): [0, 4, 9], b (3): [0, 1, 2, 3, 4, 9, 10] +idx: 6, delta: 5, matching: false, a (11): [0, 1, 5, 6, 7, 8], b (2): [1, 2, 3, 4, 9, 10] +idx: 6, delta: 6, matching: false, a (12): [0, 2, 4, 5, 8, 9], b (1): [1, 2, 4, 6, 7, 8, 9] +idx: 6, delta: 7, matching: false, a (13): [3, 6, 7, 10], b (0): [0, 6, 7] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 4, 9], b (8): [2, 6, 7] +idx: 7, delta: 2, matching: false, a (9): [2, 6, 7], b (6): [0, 1, 5, 6, 7, 8] +idx: 7, delta: 3, matching: false, a (10): [0, 4, 9], b (5): [0, 2, 4, 5, 8, 9] +idx: 7, delta: 4, matching: false, a (11): [0, 1, 5, 6, 7, 8], b (4): [3, 6, 7, 10] +idx: 7, delta: 5, matching: false, a (12): [0, 2, 4, 5, 8, 9], b (3): [0, 1, 2, 3, 4, 9, 10] +idx: 7, delta: 6, matching: false, a (13): [3, 6, 7, 10], b (2): [1, 2, 3, 4, 9, 10] +idx: 7, delta: 7, matching: false, a (14): [0, 1, 2, 3, 4, 9, 10], b (1): [1, 2, 4, 6, 7, 8, 9] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: true, a (8): [2, 6, 7], b (9): [2, 6, 7] +idx: 8, delta: 2, matching: true, a (10): [0, 4, 9], b (7): [0, 4, 9] +idx: 8, delta: 3, matching: true, a (11): [0, 1, 5, 6, 7, 8], b (6): [0, 1, 5, 6, 7, 8] +idx: 8, delta: 4, matching: true, a (12): [0, 2, 4, 5, 8, 9], b (5): [0, 2, 4, 5, 8, 9] +idx: 8, delta: 5, matching: true, a (13): [3, 6, 7, 10], b (4): [3, 6, 7, 10] +idx: 8, delta: 6, matching: true, a (14): [0, 1, 2, 3, 4, 9, 10], b (3): [0, 1, 2, 3, 4, 9, 10] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [2, 6, 7], b (10): [0, 4, 9] +idx: 9, delta: 2, matching: false, a (11): [0, 1, 5, 6, 7, 8], b (8): [2, 6, 7] +idx: 9, delta: 3, matching: false, a (12): [0, 2, 4, 5, 8, 9], b (7): [0, 4, 9] +idx: 9, delta: 4, matching: false, a (13): [3, 6, 7, 10], b (6): [0, 1, 5, 6, 7, 8] +idx: 9, delta: 5, matching: false, a (14): [0, 1, 2, 3, 4, 9, 10], b (5): [0, 2, 4, 5, 8, 9] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 4, 9], b (11): [0, 1, 5, 6, 7, 8] +idx: 10, delta: 2, matching: false, a (12): [0, 2, 4, 5, 8, 9], b (9): [2, 6, 7] +idx: 10, delta: 3, matching: false, a (13): [3, 6, 7, 10], b (8): [2, 6, 7] +idx: 10, delta: 4, matching: false, a (14): [0, 1, 2, 3, 4, 9, 10], b (7): [0, 4, 9] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [0, 1, 5, 6, 7, 8], b (12): [0, 2, 4, 5, 8, 9] +idx: 11, delta: 2, matching: false, a (13): [3, 6, 7, 10], b (10): [0, 4, 9] +idx: 11, delta: 3, matching: false, a (14): [0, 1, 2, 3, 4, 9, 10], b (9): [2, 6, 7] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [0, 2, 4, 5, 8, 9], b (13): [3, 6, 7, 10] +idx: 12, delta: 2, matching: false, a (14): [0, 1, 2, 3, 4, 9, 10], b (11): [0, 1, 5, 6, 7, 8] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: false, a (13): [3, 6, 7, 10], b (14): [0, 1, 2, 3, 4, 9, 10] +idx: 13 --- EXITING WITH false +idx: 14 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [0, 3, 5, 6, 7, 10, 11, 12, 14], b (1): [1, 2, 3, 6, 11, 14] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 2, 3, 6, 11, 14], b (2): [1, 2, 3, 5, 8, 9, 12, 14] +idx: 1, delta: 2, matching: false, a (3): [2, 3, 4, 13, 14], b (0): [0, 3, 5, 6, 7, 10, 11, 12, 14] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 2, 3, 5, 8, 9, 12, 14], b (3): [2, 3, 4, 13, 14] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 3, 5, 7, 10, 12, 14], b (1): [1, 2, 3, 6, 11, 14] +idx: 2, delta: 3, matching: false, a (5): [5, 6, 11, 12], b (0): [0, 3, 5, 6, 7, 10, 11, 12, 14] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [2, 3, 4, 13, 14], b (4): [1, 2, 3, 5, 7, 10, 12, 14] +idx: 3, delta: 2, matching: false, a (5): [5, 6, 11, 12], b (2): [1, 2, 3, 5, 8, 9, 12, 14] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 4, 6, 8, 9, 11, 13], b (1): [1, 2, 3, 6, 11, 14] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 4, 6, 8, 9, 11, 13], b (0): [0, 3, 5, 6, 7, 10, 11, 12, 14] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 2, 3, 5, 7, 10, 12, 14], b (5): [5, 6, 11, 12] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 4, 6, 8, 9, 11, 13], b (3): [2, 3, 4, 13, 14] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 4, 6, 8, 9, 11, 13], b (2): [1, 2, 3, 5, 8, 9, 12, 14] +idx: 4, delta: 4, matching: false, a (8): [1, 5, 6, 11, 12], b (1): [1, 2, 3, 6, 11, 14] +idx: 4, delta: 5, matching: false, a (9): [1, 2, 3, 5, 7, 10, 12, 14], b (0): [0, 3, 5, 6, 7, 10, 11, 12, 14] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [5, 6, 11, 12], b (6): [0, 1, 4, 6, 8, 9, 11, 13] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 4, 6, 8, 9, 11, 13], b (4): [1, 2, 3, 5, 7, 10, 12, 14] +idx: 5, delta: 3, matching: false, a (8): [1, 5, 6, 11, 12], b (3): [2, 3, 4, 13, 14] +idx: 5, delta: 4, matching: false, a (9): [1, 2, 3, 5, 7, 10, 12, 14], b (2): [1, 2, 3, 5, 8, 9, 12, 14] +idx: 5, delta: 5, matching: false, a (10): [2, 3, 4, 13, 14], b (1): [1, 2, 3, 6, 11, 14] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: true, a (6): [0, 1, 4, 6, 8, 9, 11, 13], b (7): [0, 1, 4, 6, 8, 9, 11, 13] +idx: 6, delta: 2, matching: false, a (8): [1, 5, 6, 11, 12], b (5): [5, 6, 11, 12] +idx: 6, delta: 2 --- found smudge! +idx: 6, delta: 3, matching: true, a (9): [1, 2, 3, 5, 7, 10, 12, 14], b (4): [1, 2, 3, 5, 7, 10, 12, 14] +idx: 6, delta: 4, matching: true, a (10): [2, 3, 4, 13, 14], b (3): [2, 3, 4, 13, 14] +idx: 6 --- EXITING WITH true +#..#.###..###.# +.###..#....#..# +.###.#..##..#.# +..###........## +.###.#.#..#.#.# +.....##....##.. +##..#.#.##.#.#. +##..#.#.##.#.#. +.#...##....##.. +.###.#.#..#.#.# +..###........## +700 (vert: 0, horiz: 7) + +idx: 0, delta: 0, matching: false, a (0): [1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14], b (1): [0, 1, 6, 7, 8, 9, 14, 15] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 6, 7, 8, 9, 14, 15], b (2): [0, 1, 5, 6, 7, 8, 9, 10, 14, 15] +idx: 1, delta: 2, matching: false, a (3): [2, 3, 4, 5, 10, 11, 12, 13], b (0): [1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 5, 6, 7, 8, 9, 10, 14, 15], b (3): [2, 3, 4, 5, 10, 11, 12, 13] +idx: 2, delta: 2, matching: false, a (4): [0, 7, 8, 15, 16], b (1): [0, 1, 6, 7, 8, 9, 14, 15] +idx: 2, delta: 3, matching: false, a (5): [1, 2, 5, 6, 9, 10, 13, 14], b (0): [1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [2, 3, 4, 5, 10, 11, 12, 13], b (4): [0, 7, 8, 15, 16] +idx: 3, delta: 2, matching: false, a (5): [1, 2, 5, 6, 9, 10, 13, 14], b (2): [0, 1, 5, 6, 7, 8, 9, 10, 14, 15] +idx: 3, delta: 3, matching: true, a (6): [0, 1, 6, 7, 8, 9, 14, 15], b (1): [0, 1, 6, 7, 8, 9, 14, 15] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 7, 8, 15, 16], b (5): [1, 2, 5, 6, 9, 10, 13, 14] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 6, 7, 8, 9, 14, 15], b (3): [2, 3, 4, 5, 10, 11, 12, 13] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 2, 5, 6, 9, 10, 13, 14], b (6): [0, 1, 6, 7, 8, 9, 14, 15] +idx: 5 --- EXITING WITH false +idx: 6 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [1, 2, 4, 6], b (1): [0, 1, 2, 5, 6] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 2, 5, 6], b (2): [0, 3, 5] +idx: 1, delta: 2, matching: false, a (3): [0, 3], b (0): [1, 2, 4, 6] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 3, 5], b (3): [0, 3] +idx: 2, delta: 0 --- found smudge! +idx: 2, delta: 2, matching: false, a (4): [0, 3], b (1): [0, 1, 2, 5, 6] +idx: 2, delta: 2 --- found smudge twice! +idx: 3, delta: 0, matching: true, a (3): [0, 3], b (4): [0, 3] +idx: 3, delta: 2, matching: false, a (5): [0, 2, 3, 5], b (2): [0, 3, 5] +idx: 3, delta: 2 --- found smudge! +idx: 3, delta: 3, matching: true, a (6): [0, 1, 2, 5, 6], b (1): [0, 1, 2, 5, 6] +idx: 3, delta: 4, matching: true, a (7): [1, 2, 4, 6], b (0): [1, 2, 4, 6] +idx: 3 --- EXITING WITH true +.##.#.# +###..## +#..#.#. +#..#... +#..#... +#.##.#. +###..## +.##.#.# +.##.#.# +###..## +#.##.#. +#..#... +#..#... +#..#.#. +###..## +.##.#.# +....#.. +400 (vert: 0, horiz: 4) + +idx: 0, delta: 0, matching: false, a (0): [0, 1, 3, 8, 10, 11, 12], b (1): [4, 5, 6, 7] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [4, 5, 6, 7], b (2): [0, 1, 5, 6, 10, 11, 12] +idx: 1, delta: 2, matching: false, a (3): [2, 3, 5, 6, 8, 9, 11, 12], b (0): [0, 1, 3, 8, 10, 11, 12] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 5, 6, 10, 11, 12], b (3): [2, 3, 5, 6, 8, 9, 11, 12] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], b (1): [4, 5, 6, 7] +idx: 2, delta: 3, matching: false, a (5): [0, 3, 4, 5, 6, 7, 8, 11, 12], b (0): [0, 1, 3, 8, 10, 11, 12] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [2, 3, 5, 6, 8, 9, 11, 12], b (4): [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +idx: 3, delta: 2, matching: false, a (5): [0, 3, 4, 5, 6, 7, 8, 11, 12], b (2): [0, 1, 5, 6, 10, 11, 12] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 10, 11, 12], b (1): [4, 5, 6, 7] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], b (5): [0, 3, 4, 5, 6, 7, 8, 11, 12] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 10, 11, 12], b (3): [2, 3, 5, 6, 8, 9, 11, 12] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 3, 4, 5, 6, 7, 8, 11, 12], b (6): [0, 1, 10, 11, 12] +idx: 5 --- EXITING WITH false +idx: 6 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [0, 2, 5, 6], b (1): [0, 2, 4, 6] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 2, 4, 6], b (2): [3, 4] +idx: 1, delta: 2, matching: false, a (3): [0, 3, 4, 5], b (0): [0, 2, 5, 6] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [3, 4], b (3): [0, 3, 4, 5] +idx: 2, delta: 2, matching: false, a (4): [1, 4, 5], b (1): [0, 2, 4, 6] +idx: 2, delta: 3, matching: false, a (5): [1, 2, 3, 4, 5], b (0): [0, 2, 5, 6] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 3, 4, 5], b (4): [1, 4, 5] +idx: 3, delta: 2, matching: false, a (5): [1, 2, 3, 4, 5], b (2): [3, 4] +idx: 3, delta: 3, matching: false, a (6): [1, 2, 3, 4, 5], b (1): [0, 2, 4, 6] +idx: 3, delta: 4, matching: false, a (7): [1, 4, 5], b (0): [0, 2, 5, 6] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 4, 5], b (5): [1, 2, 3, 4, 5] +idx: 4, delta: 2, matching: false, a (6): [1, 2, 3, 4, 5], b (3): [0, 3, 4, 5] +idx: 4, delta: 3, matching: false, a (7): [1, 4, 5], b (2): [3, 4] +idx: 4, delta: 4, matching: false, a (8): [0, 3, 4, 5], b (1): [0, 2, 4, 6] +idx: 4, delta: 5, matching: false, a (9): [3, 4], b (0): [0, 2, 5, 6] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: true, a (5): [1, 2, 3, 4, 5], b (6): [1, 2, 3, 4, 5] +idx: 5, delta: 2, matching: true, a (7): [1, 4, 5], b (4): [1, 4, 5] +idx: 5, delta: 3, matching: true, a (8): [0, 3, 4, 5], b (3): [0, 3, 4, 5] +idx: 5, delta: 4, matching: true, a (9): [3, 4], b (2): [3, 4] +idx: 5, delta: 5, matching: true, a (10): [0, 2, 4, 6], b (1): [0, 2, 4, 6] +idx: 5, delta: 6, matching: false, a (11): [0, 2, 3, 5, 6], b (0): [0, 2, 5, 6] +idx: 5, delta: 6 --- found smudge! +idx: 5 --- EXITING WITH true +#.#..## +#.#.#.# +...##.. +#..###. +.#..##. +.#####. +.#####. +.#..##. +#..###. +...##.. +#.#.#.# +#.##.## +#.##.## +600 (vert: 0, horiz: 6) + +idx: 0, delta: 0, matching: false, a (0): [1, 2, 3, 9, 14], b (1): [3, 4, 6, 7, 8, 10, 11, 12, 13] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: true, a (1): [3, 4, 6, 7, 8, 10, 11, 12, 13], b (2): [3, 4, 6, 7, 8, 10, 11, 12, 13] +idx: 1, delta: 2, matching: true, a (3): [1, 2, 3, 9, 14], b (0): [1, 2, 3, 9, 14] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [3, 4, 6, 7, 8, 10, 11, 12, 13], b (3): [1, 2, 3, 9, 14] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 3, 5, 7, 11, 12, 14], b (1): [3, 4, 6, 7, 8, 10, 11, 12, 13] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 2, 3, 4, 6, 7, 12, 13, 14], b (0): [1, 2, 3, 9, 14] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 2, 3, 9, 14], b (4): [0, 1, 3, 5, 7, 11, 12, 14] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 2, 3, 4, 6, 7, 12, 13, 14], b (2): [3, 4, 6, 7, 8, 10, 11, 12, 13] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 2, 4, 5, 6, 7, 8, 9, 13], b (1): [3, 4, 6, 7, 8, 10, 11, 12, 13] +idx: 3, delta: 4, matching: false, a (7): [1, 8, 10, 12], b (0): [1, 2, 3, 9, 14] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 3, 5, 7, 11, 12, 14], b (5): [0, 1, 2, 3, 4, 6, 7, 12, 13, 14] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 2, 4, 5, 6, 7, 8, 9, 13], b (3): [1, 2, 3, 9, 14] +idx: 4, delta: 3, matching: false, a (7): [1, 8, 10, 12], b (2): [3, 4, 6, 7, 8, 10, 11, 12, 13] +idx: 4, delta: 4, matching: false, a (8): [1, 3, 4, 5, 6, 8, 13, 14], b (1): [3, 4, 6, 7, 8, 10, 11, 12, 13] +idx: 4, delta: 5, matching: false, a (9): [1, 3, 4, 5, 6, 8, 13, 14], b (0): [1, 2, 3, 9, 14] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 2, 3, 4, 6, 7, 12, 13, 14], b (6): [0, 1, 2, 4, 5, 6, 7, 8, 9, 13] +idx: 5, delta: 2, matching: false, a (7): [1, 8, 10, 12], b (4): [0, 1, 3, 5, 7, 11, 12, 14] +idx: 5, delta: 3, matching: false, a (8): [1, 3, 4, 5, 6, 8, 13, 14], b (3): [1, 2, 3, 9, 14] +idx: 5, delta: 4, matching: false, a (9): [1, 3, 4, 5, 6, 8, 13, 14], b (2): [3, 4, 6, 7, 8, 10, 11, 12, 13] +idx: 5, delta: 5, matching: false, a (10): [1, 8, 10, 12], b (1): [3, 4, 6, 7, 8, 10, 11, 12, 13] +idx: 5, delta: 6, matching: false, a (11): [0, 1, 2, 4, 5, 6, 7, 8, 9, 13], b (0): [1, 2, 3, 9, 14] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 1, 2, 4, 5, 6, 7, 8, 9, 13], b (7): [1, 8, 10, 12] +idx: 6, delta: 2, matching: false, a (8): [1, 3, 4, 5, 6, 8, 13, 14], b (5): [0, 1, 2, 3, 4, 6, 7, 12, 13, 14] +idx: 6, delta: 3, matching: false, a (9): [1, 3, 4, 5, 6, 8, 13, 14], b (4): [0, 1, 3, 5, 7, 11, 12, 14] +idx: 6, delta: 4, matching: false, a (10): [1, 8, 10, 12], b (3): [1, 2, 3, 9, 14] +idx: 6, delta: 5, matching: false, a (11): [0, 1, 2, 4, 5, 6, 7, 8, 9, 13], b (2): [3, 4, 6, 7, 8, 10, 11, 12, 13] +idx: 6, delta: 6, matching: false, a (12): [0, 1, 2, 3, 4, 6, 7, 12, 13, 14], b (1): [3, 4, 6, 7, 8, 10, 11, 12, 13] +idx: 6, delta: 7, matching: false, a (13): [0, 1, 3, 5, 7, 11, 12, 14], b (0): [1, 2, 3, 9, 14] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [1, 8, 10, 12], b (8): [1, 3, 4, 5, 6, 8, 13, 14] +idx: 7, delta: 2, matching: false, a (9): [1, 3, 4, 5, 6, 8, 13, 14], b (6): [0, 1, 2, 4, 5, 6, 7, 8, 9, 13] +idx: 7, delta: 3, matching: false, a (10): [1, 8, 10, 12], b (5): [0, 1, 2, 3, 4, 6, 7, 12, 13, 14] +idx: 7, delta: 4, matching: false, a (11): [0, 1, 2, 4, 5, 6, 7, 8, 9, 13], b (4): [0, 1, 3, 5, 7, 11, 12, 14] +idx: 7, delta: 5, matching: false, a (12): [0, 1, 2, 3, 4, 6, 7, 12, 13, 14], b (3): [1, 2, 3, 9, 14] +idx: 7, delta: 6, matching: false, a (13): [0, 1, 3, 5, 7, 11, 12, 14], b (2): [3, 4, 6, 7, 8, 10, 11, 12, 13] +idx: 7, delta: 7, matching: false, a (14): [1, 2, 3, 7, 9, 14], b (1): [3, 4, 6, 7, 8, 10, 11, 12, 13] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: true, a (8): [1, 3, 4, 5, 6, 8, 13, 14], b (9): [1, 3, 4, 5, 6, 8, 13, 14] +idx: 8, delta: 2, matching: true, a (10): [1, 8, 10, 12], b (7): [1, 8, 10, 12] +idx: 8, delta: 3, matching: true, a (11): [0, 1, 2, 4, 5, 6, 7, 8, 9, 13], b (6): [0, 1, 2, 4, 5, 6, 7, 8, 9, 13] +idx: 8, delta: 4, matching: true, a (12): [0, 1, 2, 3, 4, 6, 7, 12, 13, 14], b (5): [0, 1, 2, 3, 4, 6, 7, 12, 13, 14] +idx: 8, delta: 5, matching: true, a (13): [0, 1, 3, 5, 7, 11, 12, 14], b (4): [0, 1, 3, 5, 7, 11, 12, 14] +idx: 8, delta: 6, matching: false, a (14): [1, 2, 3, 7, 9, 14], b (3): [1, 2, 3, 9, 14] +idx: 8, delta: 6 --- found smudge! +idx: 8 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [4, 5, 6, 11, 12, 13], b (1): [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], b (2): [0, 3, 5, 6, 11, 12, 14] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 2, 3, 4, 5, 8, 9, 12, 13, 14], b (0): [4, 5, 6, 11, 12, 13] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 3, 5, 6, 11, 12, 14], b (3): [0, 1, 2, 3, 4, 5, 8, 9, 12, 13, 14] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 5, 6, 8, 9, 11, 12], b (1): [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] +idx: 2, delta: 3, matching: false, a (5): [4, 6, 8, 9, 11, 13], b (0): [4, 5, 6, 11, 12, 13] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 2, 3, 4, 5, 8, 9, 12, 13, 14], b (4): [1, 2, 5, 6, 8, 9, 11, 12] +idx: 3, delta: 2, matching: false, a (5): [4, 6, 8, 9, 11, 13], b (2): [0, 3, 5, 6, 11, 12, 14] +idx: 3, delta: 3, matching: false, a (6): [1, 2, 5, 6, 8, 9, 11, 12], b (1): [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] +idx: 3, delta: 4, matching: false, a (7): [1, 2, 4, 5, 6, 11, 12, 13, 14], b (0): [4, 5, 6, 11, 12, 13] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 2, 5, 6, 8, 9, 11, 12], b (5): [4, 6, 8, 9, 11, 13] +idx: 4, delta: 2, matching: false, a (6): [1, 2, 5, 6, 8, 9, 11, 12], b (3): [0, 1, 2, 3, 4, 5, 8, 9, 12, 13, 14] +idx: 4, delta: 3, matching: false, a (7): [1, 2, 4, 5, 6, 11, 12, 13, 14], b (2): [0, 3, 5, 6, 11, 12, 14] +idx: 4, delta: 4, matching: false, a (8): [1, 2, 6, 7, 8, 9, 10, 11], b (1): [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] +idx: 4, delta: 5, matching: false, a (9): [0, 3, 6, 11, 14], b (0): [4, 5, 6, 11, 12, 13] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [4, 6, 8, 9, 11, 13], b (6): [1, 2, 5, 6, 8, 9, 11, 12] +idx: 5, delta: 2, matching: false, a (7): [1, 2, 4, 5, 6, 11, 12, 13, 14], b (4): [1, 2, 5, 6, 8, 9, 11, 12] +idx: 5, delta: 3, matching: false, a (8): [1, 2, 6, 7, 8, 9, 10, 11], b (3): [0, 1, 2, 3, 4, 5, 8, 9, 12, 13, 14] +idx: 5, delta: 4, matching: false, a (9): [0, 3, 6, 11, 14], b (2): [0, 3, 5, 6, 11, 12, 14] +idx: 5, delta: 5, matching: false, a (10): [1, 2, 7, 10], b (1): [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] +idx: 5, delta: 6, matching: false, a (11): [1, 2, 4, 13], b (0): [4, 5, 6, 11, 12, 13] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [1, 2, 5, 6, 8, 9, 11, 12], b (7): [1, 2, 4, 5, 6, 11, 12, 13, 14] +idx: 6, delta: 2, matching: false, a (8): [1, 2, 6, 7, 8, 9, 10, 11], b (5): [4, 6, 8, 9, 11, 13] +idx: 6, delta: 3, matching: false, a (9): [0, 3, 6, 11, 14], b (4): [1, 2, 5, 6, 8, 9, 11, 12] +idx: 6, delta: 4, matching: false, a (10): [1, 2, 7, 10], b (3): [0, 1, 2, 3, 4, 5, 8, 9, 12, 13, 14] +idx: 6, delta: 5, matching: false, a (11): [1, 2, 4, 13], b (2): [0, 3, 5, 6, 11, 12, 14] +idx: 6, delta: 6, matching: false, a (12): [1, 2, 4, 5, 7, 10, 12, 13], b (1): [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] +idx: 6, delta: 7, matching: false, a (13): [1, 2, 5, 6, 8, 9, 11, 12], b (0): [4, 5, 6, 11, 12, 13] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [1, 2, 4, 5, 6, 11, 12, 13, 14], b (8): [1, 2, 6, 7, 8, 9, 10, 11] +idx: 7, delta: 2, matching: false, a (9): [0, 3, 6, 11, 14], b (6): [1, 2, 5, 6, 8, 9, 11, 12] +idx: 7, delta: 3, matching: false, a (10): [1, 2, 7, 10], b (5): [4, 6, 8, 9, 11, 13] +idx: 7, delta: 4, matching: false, a (11): [1, 2, 4, 13], b (4): [1, 2, 5, 6, 8, 9, 11, 12] +idx: 7, delta: 5, matching: false, a (12): [1, 2, 4, 5, 7, 10, 12, 13], b (3): [0, 1, 2, 3, 4, 5, 8, 9, 12, 13, 14] +idx: 7, delta: 6, matching: false, a (13): [1, 2, 5, 6, 8, 9, 11, 12], b (2): [0, 3, 5, 6, 11, 12, 14] +idx: 7, delta: 7, matching: false, a (14): [0, 3, 4, 5, 8, 9, 12, 13, 14], b (1): [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [1, 2, 6, 7, 8, 9, 10, 11], b (9): [0, 3, 6, 11, 14] +idx: 8, delta: 2, matching: false, a (10): [1, 2, 7, 10], b (7): [1, 2, 4, 5, 6, 11, 12, 13, 14] +idx: 8, delta: 3, matching: false, a (11): [1, 2, 4, 13], b (6): [1, 2, 5, 6, 8, 9, 11, 12] +idx: 8, delta: 4, matching: false, a (12): [1, 2, 4, 5, 7, 10, 12, 13], b (5): [4, 6, 8, 9, 11, 13] +idx: 8, delta: 5, matching: true, a (13): [1, 2, 5, 6, 8, 9, 11, 12], b (4): [1, 2, 5, 6, 8, 9, 11, 12] +idx: 8, delta: 6, matching: false, a (14): [0, 3, 4, 5, 8, 9, 12, 13, 14], b (3): [0, 1, 2, 3, 4, 5, 8, 9, 12, 13, 14] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 3, 6, 11, 14], b (10): [1, 2, 7, 10] +idx: 9, delta: 2, matching: false, a (11): [1, 2, 4, 13], b (8): [1, 2, 6, 7, 8, 9, 10, 11] +idx: 9, delta: 3, matching: false, a (12): [1, 2, 4, 5, 7, 10, 12, 13], b (7): [1, 2, 4, 5, 6, 11, 12, 13, 14] +idx: 9, delta: 4, matching: true, a (13): [1, 2, 5, 6, 8, 9, 11, 12], b (6): [1, 2, 5, 6, 8, 9, 11, 12] +idx: 9, delta: 5, matching: false, a (14): [0, 3, 4, 5, 8, 9, 12, 13, 14], b (5): [4, 6, 8, 9, 11, 13] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [1, 2, 7, 10], b (11): [1, 2, 4, 13] +idx: 10, delta: 2, matching: false, a (12): [1, 2, 4, 5, 7, 10, 12, 13], b (9): [0, 3, 6, 11, 14] +idx: 10, delta: 3, matching: false, a (13): [1, 2, 5, 6, 8, 9, 11, 12], b (8): [1, 2, 6, 7, 8, 9, 10, 11] +idx: 10, delta: 4, matching: false, a (14): [0, 3, 4, 5, 8, 9, 12, 13, 14], b (7): [1, 2, 4, 5, 6, 11, 12, 13, 14] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [1, 2, 4, 13], b (12): [1, 2, 4, 5, 7, 10, 12, 13] +idx: 11, delta: 2, matching: false, a (13): [1, 2, 5, 6, 8, 9, 11, 12], b (10): [1, 2, 7, 10] +idx: 11, delta: 3, matching: false, a (14): [0, 3, 4, 5, 8, 9, 12, 13, 14], b (9): [0, 3, 6, 11, 14] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [1, 2, 4, 5, 7, 10, 12, 13], b (13): [1, 2, 5, 6, 8, 9, 11, 12] +idx: 12, delta: 2, matching: false, a (14): [0, 3, 4, 5, 8, 9, 12, 13, 14], b (11): [1, 2, 4, 13] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: false, a (13): [1, 2, 5, 6, 8, 9, 11, 12], b (14): [0, 3, 4, 5, 8, 9, 12, 13, 14] +idx: 13 --- EXITING WITH false +idx: 14 --- EXITING WITH false +....###....###. +#..############ +#..#.##....##.# +######..##..### +.##..##.##.##.. +....#.#.##.#.#. +.##..##.##.##.. +.##.###....#### +.##...######... +#..#..#....#..# +.##....#..#.... +.##.#........#. +.##.##.#..#.##. +.##..##.##.##.. +#..###..##..### +9 (vert: 9, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [0, 1, 4, 5, 6, 8, 9, 11, 12], b (1): [0, 1, 2, 4, 6, 8, 9, 11] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 2, 4, 6, 8, 9, 11], b (2): [0, 4, 5, 12] +idx: 1, delta: 2, matching: false, a (3): [0, 2, 4, 5, 7, 10, 12], b (0): [0, 1, 4, 5, 6, 8, 9, 11, 12] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 4, 5, 12], b (3): [0, 2, 4, 5, 7, 10, 12] +idx: 2, delta: 2, matching: false, a (4): [0, 2, 4, 5, 7, 10, 12], b (1): [0, 1, 2, 4, 6, 8, 9, 11] +idx: 2, delta: 3, matching: false, a (5): [0, 4, 5, 12], b (0): [0, 1, 4, 5, 6, 8, 9, 11, 12] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: true, a (3): [0, 2, 4, 5, 7, 10, 12], b (4): [0, 2, 4, 5, 7, 10, 12] +idx: 3, delta: 2, matching: true, a (5): [0, 4, 5, 12], b (2): [0, 4, 5, 12] +idx: 3, delta: 3, matching: true, a (6): [0, 1, 2, 4, 6, 8, 9, 11], b (1): [0, 1, 2, 4, 6, 8, 9, 11] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 5, 6, 8, 9, 11, 12], b (0): [0, 1, 4, 5, 6, 8, 9, 11, 12] +idx: 3, delta: 4 --- found smudge! +idx: 3 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 13], b (1): [0, 1, 6, 7, 12, 13] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 6, 7, 12, 13], b (2): [1, 3, 4, 6, 9, 10, 13, 14] +idx: 1, delta: 2, matching: false, a (3): [11, 14], b (0): [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 13] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 3, 4, 6, 9, 10, 13, 14], b (3): [11, 14] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 2, 3, 4, 5, 6, 8, 10, 11, 12], b (1): [0, 1, 6, 7, 12, 13] +idx: 2, delta: 3, matching: false, a (5): [0, 2, 3, 4, 5, 7, 8, 9, 14], b (0): [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 13] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [11, 14], b (4): [0, 1, 2, 3, 4, 5, 6, 8, 10, 11, 12] +idx: 3, delta: 2, matching: false, a (5): [0, 2, 3, 4, 5, 7, 8, 9, 14], b (2): [1, 3, 4, 6, 9, 10, 13, 14] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 6, 7, 8, 13, 14], b (1): [0, 1, 6, 7, 12, 13] +idx: 3, delta: 4, matching: false, a (7): [3, 4, 9, 11], b (0): [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 13] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 2, 3, 4, 5, 6, 8, 10, 11, 12], b (5): [0, 2, 3, 4, 5, 7, 8, 9, 14] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 6, 7, 8, 13, 14], b (3): [11, 14] +idx: 4, delta: 3, matching: false, a (7): [3, 4, 9, 11], b (2): [1, 3, 4, 6, 9, 10, 13, 14] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 6, 7, 9, 10, 11, 12, 13, 14], b (1): [0, 1, 6, 7, 12, 13] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 6, 7, 9, 10, 11, 12, 13, 14], b (0): [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 13] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 2, 3, 4, 5, 7, 8, 9, 14], b (6): [0, 1, 6, 7, 8, 13, 14] +idx: 5, delta: 2, matching: false, a (7): [3, 4, 9, 11], b (4): [0, 1, 2, 3, 4, 5, 6, 8, 10, 11, 12] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 6, 7, 9, 10, 11, 12, 13, 14], b (3): [11, 14] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 6, 7, 9, 10, 11, 12, 13, 14], b (2): [1, 3, 4, 6, 9, 10, 13, 14] +idx: 5, delta: 5, matching: false, a (10): [3, 4, 9, 11], b (1): [0, 1, 6, 7, 12, 13] +idx: 5, delta: 6, matching: false, a (11): [0, 1, 6, 7, 8, 13, 14], b (0): [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 13] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 1, 6, 7, 8, 13, 14], b (7): [3, 4, 9, 11] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 6, 7, 9, 10, 11, 12, 13, 14], b (5): [0, 2, 3, 4, 5, 7, 8, 9, 14] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 6, 7, 9, 10, 11, 12, 13, 14], b (4): [0, 1, 2, 3, 4, 5, 6, 8, 10, 11, 12] +idx: 6, delta: 4, matching: false, a (10): [3, 4, 9, 11], b (3): [11, 14] +idx: 6, delta: 5, matching: false, a (11): [0, 1, 6, 7, 8, 13, 14], b (2): [1, 3, 4, 6, 9, 10, 13, 14] +idx: 6, delta: 6, matching: false, a (12): [0, 2, 3, 4, 5, 7, 8, 9, 14], b (1): [0, 1, 6, 7, 12, 13] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [3, 4, 9, 11], b (8): [0, 1, 6, 7, 9, 10, 11, 12, 13, 14] +idx: 7, delta: 2, matching: false, a (9): [0, 1, 6, 7, 9, 10, 11, 12, 13, 14], b (6): [0, 1, 6, 7, 8, 13, 14] +idx: 7, delta: 3, matching: false, a (10): [3, 4, 9, 11], b (5): [0, 2, 3, 4, 5, 7, 8, 9, 14] +idx: 7, delta: 4, matching: false, a (11): [0, 1, 6, 7, 8, 13, 14], b (4): [0, 1, 2, 3, 4, 5, 6, 8, 10, 11, 12] +idx: 7, delta: 5, matching: false, a (12): [0, 2, 3, 4, 5, 7, 8, 9, 14], b (3): [11, 14] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: true, a (8): [0, 1, 6, 7, 9, 10, 11, 12, 13, 14], b (9): [0, 1, 6, 7, 9, 10, 11, 12, 13, 14] +idx: 8, delta: 2, matching: true, a (10): [3, 4, 9, 11], b (7): [3, 4, 9, 11] +idx: 8, delta: 3, matching: true, a (11): [0, 1, 6, 7, 8, 13, 14], b (6): [0, 1, 6, 7, 8, 13, 14] +idx: 8, delta: 4, matching: true, a (12): [0, 2, 3, 4, 5, 7, 8, 9, 14], b (5): [0, 2, 3, 4, 5, 7, 8, 9, 14] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 1, 6, 7, 9, 10, 11, 12, 13, 14], b (10): [3, 4, 9, 11] +idx: 9, delta: 2, matching: false, a (11): [0, 1, 6, 7, 8, 13, 14], b (8): [0, 1, 6, 7, 9, 10, 11, 12, 13, 14] +idx: 9, delta: 3, matching: false, a (12): [0, 2, 3, 4, 5, 7, 8, 9, 14], b (7): [3, 4, 9, 11] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [3, 4, 9, 11], b (11): [0, 1, 6, 7, 8, 13, 14] +idx: 10, delta: 2, matching: false, a (12): [0, 2, 3, 4, 5, 7, 8, 9, 14], b (9): [0, 1, 6, 7, 9, 10, 11, 12, 13, 14] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [0, 1, 6, 7, 8, 13, 14], b (12): [0, 2, 3, 4, 5, 7, 8, 9, 14] +idx: 11 --- EXITING WITH false +idx: 12 --- EXITING WITH false +########.##..#. +##....##....##. +.#.##.#..##..## +...........#..# +#######.#.###.. +#.####.###....# +##....###....## +...##....#.#... +##....##.###### +##....##.###### +...##....#.#... +##....###....## +#.####.###....# +4 (vert: 4, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [0, 1, 3, 4, 5, 7, 9, 10], b (1): [4, 7, 8] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [4, 7, 8], b (2): [0, 1, 2, 3, 4, 5, 6] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 2, 3, 4, 5, 6, 9, 10], b (0): [0, 1, 3, 4, 5, 7, 9, 10] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 2, 3, 4, 5, 6], b (3): [0, 1, 2, 3, 4, 5, 6, 9, 10] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 3, 4], b (1): [4, 7, 8] +idx: 2, delta: 3, matching: false, a (5): [2, 3, 5, 6, 7, 10], b (0): [0, 1, 3, 4, 5, 7, 9, 10] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 2, 3, 4, 5, 6, 9, 10], b (4): [0, 1, 3, 4] +idx: 3, delta: 2, matching: false, a (5): [2, 3, 5, 6, 7, 10], b (2): [0, 1, 2, 3, 4, 5, 6] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 5, 7, 8], b (1): [4, 7, 8] +idx: 3, delta: 4, matching: false, a (7): [2, 3, 7, 9, 10], b (0): [0, 1, 3, 4, 5, 7, 9, 10] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 3, 4], b (5): [2, 3, 5, 6, 7, 10] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 5, 7, 8], b (3): [0, 1, 2, 3, 4, 5, 6, 9, 10] +idx: 4, delta: 3, matching: false, a (7): [2, 3, 7, 9, 10], b (2): [0, 1, 2, 3, 4, 5, 6] +idx: 4, delta: 4, matching: false, a (8): [2, 4, 8, 9, 10], b (1): [4, 7, 8] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [2, 3, 5, 6, 7, 10], b (6): [0, 1, 5, 7, 8] +idx: 5, delta: 2, matching: false, a (7): [2, 3, 7, 9, 10], b (4): [0, 1, 3, 4] +idx: 5, delta: 3, matching: false, a (8): [2, 4, 8, 9, 10], b (3): [0, 1, 2, 3, 4, 5, 6, 9, 10] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 1, 5, 7, 8], b (7): [2, 3, 7, 9, 10] +idx: 6, delta: 2, matching: false, a (8): [2, 4, 8, 9, 10], b (5): [2, 3, 5, 6, 7, 10] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [2, 3, 7, 9, 10], b (8): [2, 4, 8, 9, 10] +idx: 7 --- EXITING WITH false +idx: 8 --- EXITING WITH false +idx: 0, delta: 0, matching: true, a (0): [0, 2, 3, 4, 6], b (1): [0, 2, 3, 4, 6] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 2, 3, 4, 6], b (2): [2, 3, 5, 7, 8] +idx: 1, delta: 2, matching: false, a (3): [0, 2, 3, 4, 5, 7], b (0): [0, 2, 3, 4, 6] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [2, 3, 5, 7, 8], b (3): [0, 2, 3, 4, 5, 7] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 2, 3, 4, 8], b (1): [0, 2, 3, 4, 6] +idx: 2, delta: 3, matching: false, a (5): [0, 2, 3, 5, 6], b (0): [0, 2, 3, 4, 6] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 2, 3, 4, 5, 7], b (4): [0, 1, 2, 3, 4, 8] +idx: 3, delta: 2, matching: false, a (5): [0, 2, 3, 5, 6], b (2): [2, 3, 5, 7, 8] +idx: 3, delta: 3, matching: false, a (6): [2, 3, 5], b (1): [0, 2, 3, 4, 6] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 5, 6, 7], b (0): [0, 2, 3, 4, 6] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 2, 3, 4, 8], b (5): [0, 2, 3, 5, 6] +idx: 4, delta: 2, matching: false, a (6): [2, 3, 5], b (3): [0, 2, 3, 4, 5, 7] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 5, 6, 7], b (2): [2, 3, 5, 7, 8] +idx: 4, delta: 4, matching: false, a (8): [1, 6, 8], b (1): [0, 2, 3, 4, 6] +idx: 4, delta: 5, matching: false, a (9): [0, 3, 7, 8], b (0): [0, 2, 3, 4, 6] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 2, 3, 5, 6], b (6): [2, 3, 5] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 5, 6, 7], b (4): [0, 1, 2, 3, 4, 8] +idx: 5, delta: 3, matching: false, a (8): [1, 6, 8], b (3): [0, 2, 3, 4, 5, 7] +idx: 5, delta: 4, matching: false, a (9): [0, 3, 7, 8], b (2): [2, 3, 5, 7, 8] +idx: 5, delta: 5, matching: false, a (10): [0, 3, 5, 7, 8], b (1): [0, 2, 3, 4, 6] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [2, 3, 5], b (7): [0, 1, 5, 6, 7] +idx: 6, delta: 2, matching: false, a (8): [1, 6, 8], b (5): [0, 2, 3, 5, 6] +idx: 6, delta: 3, matching: false, a (9): [0, 3, 7, 8], b (4): [0, 1, 2, 3, 4, 8] +idx: 6, delta: 4, matching: false, a (10): [0, 3, 5, 7, 8], b (3): [0, 2, 3, 4, 5, 7] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 5, 6, 7], b (8): [1, 6, 8] +idx: 7, delta: 2, matching: false, a (9): [0, 3, 7, 8], b (6): [2, 3, 5] +idx: 7, delta: 3, matching: false, a (10): [0, 3, 5, 7, 8], b (5): [0, 2, 3, 5, 6] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [1, 6, 8], b (9): [0, 3, 7, 8] +idx: 8, delta: 2, matching: false, a (10): [0, 3, 5, 7, 8], b (7): [0, 1, 5, 6, 7] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 3, 7, 8], b (10): [0, 3, 5, 7, 8] +idx: 9, delta: 0 --- found smudge! +idx: 9 --- EXITING WITH true +#.###.#.. +#.###.#.. +..##.#.## +#.####.#. +#####...# +#.##.##.. +..##.#... +##...###. +.#....#.# +#..#...## +#..#.#.## +1000 (vert: 0, horiz: 10) + +idx: 0, delta: 0, matching: false, a (0): [2, 3], b (1): [0, 2, 3, 5, 6] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 2, 3, 5, 6], b (2): [0, 2, 3, 5] +idx: 1, delta: 0 --- found smudge! +idx: 1, delta: 2, matching: false, a (3): [0, 1, 4, 5], b (0): [2, 3] +idx: 1, delta: 2 --- found smudge twice! +idx: 2, delta: 0, matching: false, a (2): [0, 2, 3, 5], b (3): [0, 1, 4, 5] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 4, 5], b (1): [0, 2, 3, 5, 6] +idx: 2, delta: 3, matching: false, a (5): [0, 2, 3, 5], b (0): [2, 3] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: true, a (3): [0, 1, 4, 5], b (4): [0, 1, 4, 5] +idx: 3, delta: 2, matching: true, a (5): [0, 2, 3, 5], b (2): [0, 2, 3, 5] +idx: 3, delta: 3, matching: true, a (6): [0, 2, 3, 5, 6], b (1): [0, 2, 3, 5, 6] +idx: 3, delta: 4, matching: false, a (7): [0, 2, 3, 5], b (0): [2, 3] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 4, 5], b (5): [0, 2, 3, 5] +idx: 4, delta: 2, matching: false, a (6): [0, 2, 3, 5, 6], b (3): [0, 1, 4, 5] +idx: 4, delta: 3, matching: true, a (7): [0, 2, 3, 5], b (2): [0, 2, 3, 5] +idx: 4, delta: 4, matching: false, a (8): [1, 2, 3, 4, 6], b (1): [0, 2, 3, 5, 6] +idx: 4, delta: 5, matching: false, a (9): [1, 2, 3, 4, 6], b (0): [2, 3] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 2, 3, 5], b (6): [0, 2, 3, 5, 6] +idx: 5, delta: 0 --- found smudge! +idx: 5, delta: 2, matching: false, a (7): [0, 2, 3, 5], b (4): [0, 1, 4, 5] +idx: 5, delta: 2 --- found smudge twice! +idx: 6, delta: 0, matching: false, a (6): [0, 2, 3, 5, 6], b (7): [0, 2, 3, 5] +idx: 6, delta: 0 --- found smudge! +idx: 6, delta: 2, matching: false, a (8): [1, 2, 3, 4, 6], b (5): [0, 2, 3, 5] +idx: 6, delta: 2 --- found smudge twice! +idx: 7, delta: 0, matching: false, a (7): [0, 2, 3, 5], b (8): [1, 2, 3, 4, 6] +idx: 7, delta: 2, matching: false, a (9): [1, 2, 3, 4, 6], b (6): [0, 2, 3, 5, 6] +idx: 7, delta: 3, matching: false, a (10): [0, 5], b (5): [0, 2, 3, 5] +idx: 7, delta: 4, matching: false, a (11): [0, 5, 6], b (4): [0, 1, 4, 5] +idx: 7, delta: 5, matching: false, a (12): [0, 5], b (3): [0, 1, 4, 5] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: true, a (8): [1, 2, 3, 4, 6], b (9): [1, 2, 3, 4, 6] +idx: 8, delta: 2, matching: false, a (10): [0, 5], b (7): [0, 2, 3, 5] +idx: 8, delta: 3, matching: false, a (11): [0, 5, 6], b (6): [0, 2, 3, 5, 6] +idx: 8, delta: 4, matching: false, a (12): [0, 5], b (5): [0, 2, 3, 5] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [1, 2, 3, 4, 6], b (10): [0, 5] +idx: 9, delta: 2, matching: false, a (11): [0, 5, 6], b (8): [1, 2, 3, 4, 6] +idx: 9, delta: 3, matching: false, a (12): [0, 5], b (7): [0, 2, 3, 5] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 5], b (11): [0, 5, 6] +idx: 10, delta: 0 --- found smudge! +idx: 10, delta: 2, matching: false, a (12): [0, 5], b (9): [1, 2, 3, 4, 6] +idx: 10, delta: 2 --- found smudge twice! +idx: 11, delta: 0, matching: false, a (11): [0, 5, 6], b (12): [0, 5] +idx: 11, delta: 0 --- found smudge! +idx: 11 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [1, 2, 3, 4, 5, 6, 7, 10, 11, 12], b (1): [3, 4, 8, 9] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [3, 4, 8, 9], b (2): [0, 1, 2, 5, 6, 7, 8, 9] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 2, 5, 6, 7, 8, 9], b (0): [1, 2, 3, 4, 5, 6, 7, 10, 11, 12] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: true, a (2): [0, 1, 2, 5, 6, 7, 8, 9], b (3): [0, 1, 2, 5, 6, 7, 8, 9] +idx: 2, delta: 2, matching: true, a (4): [3, 4, 8, 9], b (1): [3, 4, 8, 9] +idx: 2, delta: 3, matching: true, a (5): [1, 2, 3, 4, 5, 6, 7, 10, 11, 12], b (0): [1, 2, 3, 4, 5, 6, 7, 10, 11, 12] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 2, 5, 6, 7, 8, 9], b (4): [3, 4, 8, 9] +idx: 3, delta: 2, matching: false, a (5): [1, 2, 3, 4, 5, 6, 7, 10, 11, 12], b (2): [0, 1, 2, 5, 6, 7, 8, 9] +idx: 3, delta: 3, matching: false, a (6): [1, 6, 8, 9, 11], b (1): [3, 4, 8, 9] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [3, 4, 8, 9], b (5): [1, 2, 3, 4, 5, 6, 7, 10, 11, 12] +idx: 4, delta: 2, matching: false, a (6): [1, 6, 8, 9, 11], b (3): [0, 1, 2, 5, 6, 7, 8, 9] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 2, 3, 4, 5, 6, 7, 10, 11, 12], b (6): [1, 6, 8, 9, 11] +idx: 5 --- EXITING WITH false +idx: 6 --- EXITING WITH false +.#######..### +...##...##... +###..#####... +###..#####... +...##...##... +.#######..### +.#....#.##.#. +12 (vert: 12, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [5, 7, 9, 10, 11, 12], b (1): [0, 3, 9, 10] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 3, 9, 10], b (2): [0, 2, 5, 7, 9] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 5, 6, 9, 10, 11, 12], b (0): [5, 7, 9, 10, 11, 12] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 2, 5, 7, 9], b (3): [0, 1, 5, 6, 9, 10, 11, 12] +idx: 2, delta: 2, matching: false, a (4): [2, 8, 9], b (1): [0, 3, 9, 10] +idx: 2, delta: 3, matching: false, a (5): [0, 3, 4, 5, 6, 7, 8, 9], b (0): [5, 7, 9, 10, 11, 12] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 5, 6, 9, 10, 11, 12], b (4): [2, 8, 9] +idx: 3, delta: 2, matching: false, a (5): [0, 3, 4, 5, 6, 7, 8, 9], b (2): [0, 2, 5, 7, 9] +idx: 3, delta: 3, matching: false, a (6): [0, 2, 5, 6, 9, 10, 11, 12], b (1): [0, 3, 9, 10] +idx: 3, delta: 4, matching: false, a (7): [1, 2, 6, 7, 10], b (0): [5, 7, 9, 10, 11, 12] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [2, 8, 9], b (5): [0, 3, 4, 5, 6, 7, 8, 9] +idx: 4, delta: 2, matching: false, a (6): [0, 2, 5, 6, 9, 10, 11, 12], b (3): [0, 1, 5, 6, 9, 10, 11, 12] +idx: 4, delta: 3, matching: false, a (7): [1, 2, 6, 7, 10], b (2): [0, 2, 5, 7, 9] +idx: 4, delta: 4, matching: false, a (8): [1, 2, 6, 7, 10], b (1): [0, 3, 9, 10] +idx: 4, delta: 5, matching: false, a (9): [0, 2, 3, 5, 6, 9, 10, 11, 12], b (0): [5, 7, 9, 10, 11, 12] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 3, 4, 5, 6, 7, 8, 9], b (6): [0, 2, 5, 6, 9, 10, 11, 12] +idx: 5, delta: 2, matching: false, a (7): [1, 2, 6, 7, 10], b (4): [2, 8, 9] +idx: 5, delta: 3, matching: false, a (8): [1, 2, 6, 7, 10], b (3): [0, 1, 5, 6, 9, 10, 11, 12] +idx: 5, delta: 4, matching: false, a (9): [0, 2, 3, 5, 6, 9, 10, 11, 12], b (2): [0, 2, 5, 7, 9] +idx: 5, delta: 5, matching: false, a (10): [0, 3, 4, 5, 6, 7, 8, 9], b (1): [0, 3, 9, 10] +idx: 5, delta: 6, matching: false, a (11): [2, 8, 9], b (0): [5, 7, 9, 10, 11, 12] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 2, 5, 6, 9, 10, 11, 12], b (7): [1, 2, 6, 7, 10] +idx: 6, delta: 2, matching: false, a (8): [1, 2, 6, 7, 10], b (5): [0, 3, 4, 5, 6, 7, 8, 9] +idx: 6, delta: 3, matching: false, a (9): [0, 2, 3, 5, 6, 9, 10, 11, 12], b (4): [2, 8, 9] +idx: 6, delta: 4, matching: false, a (10): [0, 3, 4, 5, 6, 7, 8, 9], b (3): [0, 1, 5, 6, 9, 10, 11, 12] +idx: 6, delta: 5, matching: false, a (11): [2, 8, 9], b (2): [0, 2, 5, 7, 9] +idx: 6, delta: 6, matching: false, a (12): [0, 1, 5, 6, 9, 10, 11, 12], b (1): [0, 3, 9, 10] +idx: 6, delta: 7, matching: false, a (13): [0, 2, 5, 7, 9], b (0): [5, 7, 9, 10, 11, 12] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: true, a (7): [1, 2, 6, 7, 10], b (8): [1, 2, 6, 7, 10] +idx: 7, delta: 2, matching: false, a (9): [0, 2, 3, 5, 6, 9, 10, 11, 12], b (6): [0, 2, 5, 6, 9, 10, 11, 12] +idx: 7, delta: 2 --- found smudge! +idx: 7, delta: 3, matching: true, a (10): [0, 3, 4, 5, 6, 7, 8, 9], b (5): [0, 3, 4, 5, 6, 7, 8, 9] +idx: 7, delta: 4, matching: true, a (11): [2, 8, 9], b (4): [2, 8, 9] +idx: 7, delta: 5, matching: true, a (12): [0, 1, 5, 6, 9, 10, 11, 12], b (3): [0, 1, 5, 6, 9, 10, 11, 12] +idx: 7, delta: 6, matching: true, a (13): [0, 2, 5, 7, 9], b (2): [0, 2, 5, 7, 9] +idx: 7, delta: 7, matching: true, a (14): [0, 3, 9, 10], b (1): [0, 3, 9, 10] +idx: 7, delta: 8, matching: true, a (15): [5, 7, 9, 10, 11, 12], b (0): [5, 7, 9, 10, 11, 12] +idx: 7 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [1, 2, 3, 5, 6, 9, 10, 12, 13, 14], b (1): [3, 7, 8, 12] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [3, 7, 8, 12], b (2): [2, 4, 6, 7, 8, 9, 11, 13] +idx: 1, delta: 2, matching: false, a (3): [1, 5, 9, 10, 14, 16], b (0): [1, 2, 3, 5, 6, 9, 10, 12, 13, 14] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [2, 4, 6, 7, 8, 9, 11, 13], b (3): [1, 5, 9, 10, 14, 16] +idx: 2, delta: 2, matching: false, a (4): [5, 10, 16], b (1): [3, 7, 8, 12] +idx: 2, delta: 3, matching: false, a (5): [0, 2, 3, 5, 6, 9, 10, 12, 13, 15], b (0): [1, 2, 3, 5, 6, 9, 10, 12, 13, 14] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 5, 9, 10, 14, 16], b (4): [5, 10, 16] +idx: 3, delta: 2, matching: false, a (5): [0, 2, 3, 5, 6, 9, 10, 12, 13, 15], b (2): [2, 4, 6, 7, 8, 9, 11, 13] +idx: 3, delta: 3, matching: false, a (6): [3, 5, 6, 7, 8, 9, 10, 12, 16], b (1): [3, 7, 8, 12] +idx: 3, delta: 4, matching: false, a (7): [0, 2, 5, 7, 8, 10, 13, 15], b (0): [1, 2, 3, 5, 6, 9, 10, 12, 13, 14] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [5, 10, 16], b (5): [0, 2, 3, 5, 6, 9, 10, 12, 13, 15] +idx: 4, delta: 2, matching: false, a (6): [3, 5, 6, 7, 8, 9, 10, 12, 16], b (3): [1, 5, 9, 10, 14, 16] +idx: 4, delta: 3, matching: false, a (7): [0, 2, 5, 7, 8, 10, 13, 15], b (2): [2, 4, 6, 7, 8, 9, 11, 13] +idx: 4, delta: 4, matching: false, a (8): [4, 5, 10, 11, 16], b (1): [3, 7, 8, 12] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16], b (0): [1, 2, 3, 5, 6, 9, 10, 12, 13, 14] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 2, 3, 5, 6, 9, 10, 12, 13, 15], b (6): [3, 5, 6, 7, 8, 9, 10, 12, 16] +idx: 5, delta: 2, matching: false, a (7): [0, 2, 5, 7, 8, 10, 13, 15], b (4): [5, 10, 16] +idx: 5, delta: 3, matching: false, a (8): [4, 5, 10, 11, 16], b (3): [1, 5, 9, 10, 14, 16] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16], b (2): [2, 4, 6, 7, 8, 9, 11, 13] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 3, 6, 7, 8, 9, 12, 14, 15], b (1): [3, 7, 8, 12] +idx: 5, delta: 6, matching: false, a (11): [0, 3, 6, 9, 12, 15, 16], b (0): [1, 2, 3, 5, 6, 9, 10, 12, 13, 14] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [3, 5, 6, 7, 8, 9, 10, 12, 16], b (7): [0, 2, 5, 7, 8, 10, 13, 15] +idx: 6, delta: 2, matching: false, a (8): [4, 5, 10, 11, 16], b (5): [0, 2, 3, 5, 6, 9, 10, 12, 13, 15] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16], b (4): [5, 10, 16] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 3, 6, 7, 8, 9, 12, 14, 15], b (3): [1, 5, 9, 10, 14, 16] +idx: 6, delta: 5, matching: false, a (11): [0, 3, 6, 9, 12, 15, 16], b (2): [2, 4, 6, 7, 8, 9, 11, 13] +idx: 6, delta: 6, matching: false, a (12): [0, 3, 6, 9, 12, 15, 16], b (1): [3, 7, 8, 12] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 2, 5, 7, 8, 10, 13, 15], b (8): [4, 5, 10, 11, 16] +idx: 7, delta: 2, matching: false, a (9): [0, 1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16], b (6): [3, 5, 6, 7, 8, 9, 10, 12, 16] +idx: 7, delta: 3, matching: false, a (10): [0, 1, 3, 6, 7, 8, 9, 12, 14, 15], b (5): [0, 2, 3, 5, 6, 9, 10, 12, 13, 15] +idx: 7, delta: 4, matching: false, a (11): [0, 3, 6, 9, 12, 15, 16], b (4): [5, 10, 16] +idx: 7, delta: 5, matching: false, a (12): [0, 3, 6, 9, 12, 15, 16], b (3): [1, 5, 9, 10, 14, 16] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [4, 5, 10, 11, 16], b (9): [0, 1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16] +idx: 8, delta: 2, matching: false, a (10): [0, 1, 3, 6, 7, 8, 9, 12, 14, 15], b (7): [0, 2, 5, 7, 8, 10, 13, 15] +idx: 8, delta: 3, matching: false, a (11): [0, 3, 6, 9, 12, 15, 16], b (6): [3, 5, 6, 7, 8, 9, 10, 12, 16] +idx: 8, delta: 4, matching: false, a (12): [0, 3, 6, 9, 12, 15, 16], b (5): [0, 2, 3, 5, 6, 9, 10, 12, 13, 15] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16], b (10): [0, 1, 3, 6, 7, 8, 9, 12, 14, 15] +idx: 9, delta: 2, matching: false, a (11): [0, 3, 6, 9, 12, 15, 16], b (8): [4, 5, 10, 11, 16] +idx: 9, delta: 3, matching: false, a (12): [0, 3, 6, 9, 12, 15, 16], b (7): [0, 2, 5, 7, 8, 10, 13, 15] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 1, 3, 6, 7, 8, 9, 12, 14, 15], b (11): [0, 3, 6, 9, 12, 15, 16] +idx: 10, delta: 2, matching: false, a (12): [0, 3, 6, 9, 12, 15, 16], b (9): [0, 1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: true, a (11): [0, 3, 6, 9, 12, 15, 16], b (12): [0, 3, 6, 9, 12, 15, 16] +idx: 11 --- EXITING WITH false +idx: 12 --- EXITING WITH false +.###.##..##.###.. +...#...##...#.... +..#.#.####.#.#... +.#...#...##...#.# +.....#....#.....# +#.##.##..##.##.#. +...#.######.#...# +#.#..#.##.#..#.#. +....##....##....# +#######..######## +##.#..####..#.##. +#..#..#..#..#..## +#..#..#..#..#..## +8 (vert: 8, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [4, 5, 6, 7, 10, 11, 12], b (1): [0, 2, 3, 4, 7, 10] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 2, 3, 4, 7, 10], b (2): [3, 4, 5, 6, 11, 12] +idx: 1, delta: 2, matching: false, a (3): [0, 2, 3, 6, 7, 8, 9, 10, 11], b (0): [4, 5, 6, 7, 10, 11, 12] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [3, 4, 5, 6, 11, 12], b (3): [0, 2, 3, 6, 7, 8, 9, 10, 11] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 3], b (1): [0, 2, 3, 4, 7, 10] +idx: 2, delta: 3, matching: false, a (5): [2, 5, 6, 8, 9, 11, 12], b (0): [4, 5, 6, 7, 10, 11, 12] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 2, 3, 6, 7, 8, 9, 10, 11], b (4): [0, 1, 3] +idx: 3, delta: 2, matching: false, a (5): [2, 5, 6, 8, 9, 11, 12], b (2): [3, 4, 5, 6, 11, 12] +idx: 3, delta: 3, matching: false, a (6): [2, 5, 6, 8, 9, 11, 12], b (1): [0, 2, 3, 4, 7, 10] +idx: 3, delta: 4, matching: false, a (7): [2, 5, 6, 8, 9, 11, 12], b (0): [4, 5, 6, 7, 10, 11, 12] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 3], b (5): [2, 5, 6, 8, 9, 11, 12] +idx: 4, delta: 2, matching: false, a (6): [2, 5, 6, 8, 9, 11, 12], b (3): [0, 2, 3, 6, 7, 8, 9, 10, 11] +idx: 4, delta: 3, matching: false, a (7): [2, 5, 6, 8, 9, 11, 12], b (2): [3, 4, 5, 6, 11, 12] +idx: 4, delta: 4, matching: false, a (8): [2, 5, 6, 8, 9, 11, 12], b (1): [0, 2, 3, 4, 7, 10] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 3], b (0): [4, 5, 6, 7, 10, 11, 12] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: true, a (5): [2, 5, 6, 8, 9, 11, 12], b (6): [2, 5, 6, 8, 9, 11, 12] +idx: 5, delta: 2, matching: false, a (7): [2, 5, 6, 8, 9, 11, 12], b (4): [0, 1, 3] +idx: 5, delta: 3, matching: false, a (8): [2, 5, 6, 8, 9, 11, 12], b (3): [0, 2, 3, 6, 7, 8, 9, 10, 11] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 3], b (2): [3, 4, 5, 6, 11, 12] +idx: 5, delta: 5, matching: false, a (10): [0, 2, 3, 7, 8, 9, 10], b (1): [0, 2, 3, 4, 7, 10] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: true, a (6): [2, 5, 6, 8, 9, 11, 12], b (7): [2, 5, 6, 8, 9, 11, 12] +idx: 6, delta: 2, matching: true, a (8): [2, 5, 6, 8, 9, 11, 12], b (5): [2, 5, 6, 8, 9, 11, 12] +idx: 6, delta: 3, matching: true, a (9): [0, 1, 3], b (4): [0, 1, 3] +idx: 6, delta: 4, matching: false, a (10): [0, 2, 3, 7, 8, 9, 10], b (3): [0, 2, 3, 6, 7, 8, 9, 10, 11] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: true, a (7): [2, 5, 6, 8, 9, 11, 12], b (8): [2, 5, 6, 8, 9, 11, 12] +idx: 7, delta: 2, matching: false, a (9): [0, 1, 3], b (6): [2, 5, 6, 8, 9, 11, 12] +idx: 7, delta: 3, matching: false, a (10): [0, 2, 3, 7, 8, 9, 10], b (5): [2, 5, 6, 8, 9, 11, 12] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [2, 5, 6, 8, 9, 11, 12], b (9): [0, 1, 3] +idx: 8, delta: 2, matching: false, a (10): [0, 2, 3, 7, 8, 9, 10], b (7): [2, 5, 6, 8, 9, 11, 12] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 1, 3], b (10): [0, 2, 3, 7, 8, 9, 10] +idx: 9 --- EXITING WITH false +idx: 10 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [1, 3, 4, 9, 10], b (1): [4, 9] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [4, 9], b (2): [1, 3, 5, 6, 7, 8, 10] +idx: 1, delta: 2, matching: false, a (3): [1, 2, 3, 4, 9, 10], b (0): [1, 3, 4, 9, 10] +idx: 1, delta: 2 --- found smudge! +idx: 1 --- EXITING WITH true +.#.##....## +....#....#. +.#.#.####.# +.####....## +###........ +#.#..####.. +#.##.####.. +##.#......# +...#.####.# +...#.####.# +##.#......# +#.##.####.. +#.#..####.. +200 (vert: 0, horiz: 2) + +idx: 0, delta: 0, matching: false, a (0): [0, 5, 8, 13, 14], b (1): [0, 2, 3, 6, 10, 11, 13, 14] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 2, 3, 6, 10, 11, 13, 14], b (2): [0, 2, 3, 4, 9, 10, 11, 13, 14] +idx: 1, delta: 2, matching: false, a (3): [1, 5, 6, 7, 8, 12], b (0): [0, 5, 8, 13, 14] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 2, 3, 4, 9, 10, 11, 13, 14], b (3): [1, 5, 6, 7, 8, 12] +idx: 2, delta: 2, matching: false, a (4): [0, 2, 3, 4, 9, 10, 11, 13, 14], b (1): [0, 2, 3, 6, 10, 11, 13, 14] +idx: 2, delta: 3, matching: false, a (5): [3, 4, 5, 8, 9, 10], b (0): [0, 5, 8, 13, 14] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 5, 6, 7, 8, 12], b (4): [0, 2, 3, 4, 9, 10, 11, 13, 14] +idx: 3, delta: 2, matching: false, a (5): [3, 4, 5, 8, 9, 10], b (2): [0, 2, 3, 4, 9, 10, 11, 13, 14] +idx: 3, delta: 3, matching: false, a (6): [1, 3, 6, 7, 10, 12], b (1): [0, 2, 3, 6, 10, 11, 13, 14] +idx: 3, delta: 4, matching: false, a (7): [1, 2, 5, 8, 11, 12], b (0): [0, 5, 8, 13, 14] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 2, 3, 4, 9, 10, 11, 13, 14], b (5): [3, 4, 5, 8, 9, 10] +idx: 4, delta: 2, matching: false, a (6): [1, 3, 6, 7, 10, 12], b (3): [1, 5, 6, 7, 8, 12] +idx: 4, delta: 3, matching: false, a (7): [1, 2, 5, 8, 11, 12], b (2): [0, 2, 3, 4, 9, 10, 11, 13, 14] +idx: 4, delta: 4, matching: false, a (8): [0, 2, 4, 9, 11, 13, 14], b (1): [0, 2, 3, 6, 10, 11, 13, 14] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 5, 6, 7, 8, 12, 13, 14], b (0): [0, 5, 8, 13, 14] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [3, 4, 5, 8, 9, 10], b (6): [1, 3, 6, 7, 10, 12] +idx: 5, delta: 2, matching: false, a (7): [1, 2, 5, 8, 11, 12], b (4): [0, 2, 3, 4, 9, 10, 11, 13, 14] +idx: 5, delta: 3, matching: false, a (8): [0, 2, 4, 9, 11, 13, 14], b (3): [1, 5, 6, 7, 8, 12] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 5, 6, 7, 8, 12, 13, 14], b (2): [0, 2, 3, 4, 9, 10, 11, 13, 14] +idx: 5, delta: 5, matching: false, a (10): [0, 2, 5, 6, 7, 8, 11, 13, 14], b (1): [0, 2, 3, 6, 10, 11, 13, 14] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [1, 3, 6, 7, 10, 12], b (7): [1, 2, 5, 8, 11, 12] +idx: 6, delta: 2, matching: false, a (8): [0, 2, 4, 9, 11, 13, 14], b (5): [3, 4, 5, 8, 9, 10] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 5, 6, 7, 8, 12, 13, 14], b (4): [0, 2, 3, 4, 9, 10, 11, 13, 14] +idx: 6, delta: 4, matching: false, a (10): [0, 2, 5, 6, 7, 8, 11, 13, 14], b (3): [1, 5, 6, 7, 8, 12] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [1, 2, 5, 8, 11, 12], b (8): [0, 2, 4, 9, 11, 13, 14] +idx: 7, delta: 2, matching: false, a (9): [0, 1, 5, 6, 7, 8, 12, 13, 14], b (6): [1, 3, 6, 7, 10, 12] +idx: 7, delta: 3, matching: false, a (10): [0, 2, 5, 6, 7, 8, 11, 13, 14], b (5): [3, 4, 5, 8, 9, 10] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 2, 4, 9, 11, 13, 14], b (9): [0, 1, 5, 6, 7, 8, 12, 13, 14] +idx: 8, delta: 2, matching: false, a (10): [0, 2, 5, 6, 7, 8, 11, 13, 14], b (7): [1, 2, 5, 8, 11, 12] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 1, 5, 6, 7, 8, 12, 13, 14], b (10): [0, 2, 5, 6, 7, 8, 11, 13, 14] +idx: 9 --- EXITING WITH false +idx: 10 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [0, 1, 2, 4, 8, 9, 10], b (1): [3, 6, 7, 9] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [3, 6, 7, 9], b (2): [1, 2, 4, 7, 8, 10] +idx: 1, delta: 2, matching: false, a (3): [1, 2, 4, 5, 6], b (0): [0, 1, 2, 4, 8, 9, 10] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 2, 4, 7, 8, 10], b (3): [1, 2, 4, 5, 6] +idx: 2, delta: 2, matching: false, a (4): [2, 4, 5, 8], b (1): [3, 6, 7, 9] +idx: 2, delta: 3, matching: false, a (5): [0, 3, 5, 7, 9, 10], b (0): [0, 1, 2, 4, 8, 9, 10] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 2, 4, 5, 6], b (4): [2, 4, 5, 8] +idx: 3, delta: 2, matching: false, a (5): [0, 3, 5, 7, 9, 10], b (2): [1, 2, 4, 7, 8, 10] +idx: 3, delta: 3, matching: false, a (6): [1, 3, 6, 9, 10], b (1): [3, 6, 7, 9] +idx: 3, delta: 4, matching: false, a (7): [3, 6, 9, 10], b (0): [0, 1, 2, 4, 8, 9, 10] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [2, 4, 5, 8], b (5): [0, 3, 5, 7, 9, 10] +idx: 4, delta: 2, matching: false, a (6): [1, 3, 6, 9, 10], b (3): [1, 2, 4, 5, 6] +idx: 4, delta: 3, matching: false, a (7): [3, 6, 9, 10], b (2): [1, 2, 4, 7, 8, 10] +idx: 4, delta: 4, matching: false, a (8): [0, 3, 5, 7, 9, 10], b (1): [3, 6, 7, 9] +idx: 4, delta: 5, matching: false, a (9): [2, 4, 5, 8], b (0): [0, 1, 2, 4, 8, 9, 10] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 3, 5, 7, 9, 10], b (6): [1, 3, 6, 9, 10] +idx: 5, delta: 2, matching: false, a (7): [3, 6, 9, 10], b (4): [2, 4, 5, 8] +idx: 5, delta: 3, matching: false, a (8): [0, 3, 5, 7, 9, 10], b (3): [1, 2, 4, 5, 6] +idx: 5, delta: 4, matching: false, a (9): [2, 4, 5, 8], b (2): [1, 2, 4, 7, 8, 10] +idx: 5, delta: 5, matching: false, a (10): [1, 2, 4, 5, 6], b (1): [3, 6, 7, 9] +idx: 5, delta: 6, matching: false, a (11): [1, 2, 4, 7, 8, 10], b (0): [0, 1, 2, 4, 8, 9, 10] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [1, 3, 6, 9, 10], b (7): [3, 6, 9, 10] +idx: 6, delta: 0 --- found smudge! +idx: 6, delta: 2, matching: true, a (8): [0, 3, 5, 7, 9, 10], b (5): [0, 3, 5, 7, 9, 10] +idx: 6, delta: 3, matching: true, a (9): [2, 4, 5, 8], b (4): [2, 4, 5, 8] +idx: 6, delta: 4, matching: true, a (10): [1, 2, 4, 5, 6], b (3): [1, 2, 4, 5, 6] +idx: 6, delta: 5, matching: true, a (11): [1, 2, 4, 7, 8, 10], b (2): [1, 2, 4, 7, 8, 10] +idx: 6, delta: 6, matching: true, a (12): [3, 6, 7, 9], b (1): [3, 6, 7, 9] +idx: 6, delta: 7, matching: true, a (13): [0, 1, 2, 4, 8, 9, 10], b (0): [0, 1, 2, 4, 8, 9, 10] +idx: 6 --- EXITING WITH true +###.#...### +...#..##.#. +.##.#..##.# +.##.###.... +..#.##..#.. +#..#.#.#.## +.#.#..#..## +...#..#..## +#..#.#.#.## +..#.##..#.. +.##.###.... +.##.#..##.# +...#..##.#. +###.#...### +###.#...### +700 (vert: 0, horiz: 7) + +idx: 0, delta: 0, matching: false, a (0): [3, 4, 8, 11], b (1): [0, 1, 2, 3, 6, 9, 10] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 2, 3, 6, 9, 10], b (2): [0, 4, 6, 11] +idx: 1, delta: 2, matching: false, a (3): [1, 2, 5, 6, 7, 9, 10, 12], b (0): [3, 4, 8, 11] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 4, 6, 11], b (3): [1, 2, 5, 6, 7, 9, 10, 12] +idx: 2, delta: 2, matching: false, a (4): [0, 2, 3, 6, 8, 9, 10, 11], b (1): [0, 1, 2, 3, 6, 9, 10] +idx: 2, delta: 3, matching: false, a (5): [0, 2, 3, 6, 8, 9, 10, 11], b (0): [3, 4, 8, 11] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 2, 5, 6, 7, 9, 10, 12], b (4): [0, 2, 3, 6, 8, 9, 10, 11] +idx: 3, delta: 2, matching: false, a (5): [0, 2, 3, 6, 8, 9, 10, 11], b (2): [0, 4, 6, 11] +idx: 3, delta: 3, matching: false, a (6): [1, 2, 5, 6, 7, 9, 10, 12], b (1): [0, 1, 2, 3, 6, 9, 10] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: true, a (4): [0, 2, 3, 6, 8, 9, 10, 11], b (5): [0, 2, 3, 6, 8, 9, 10, 11] +idx: 4, delta: 2, matching: true, a (6): [1, 2, 5, 6, 7, 9, 10, 12], b (3): [1, 2, 5, 6, 7, 9, 10, 12] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 2, 3, 6, 8, 9, 10, 11], b (6): [1, 2, 5, 6, 7, 9, 10, 12] +idx: 5 --- EXITING WITH false +idx: 6 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [1, 2, 4, 5], b (1): [1, 3, 6] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 3, 6], b (2): [1, 3, 4, 5, 6] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 4, 5], b (0): [1, 2, 4, 5] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 3, 4, 5, 6], b (3): [0, 1, 4, 5] +idx: 2, delta: 2, matching: false, a (4): [0, 2], b (1): [1, 3, 6] +idx: 2, delta: 3, matching: false, a (5): [3, 6], b (0): [1, 2, 4, 5] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 4, 5], b (4): [0, 2] +idx: 3, delta: 2, matching: false, a (5): [3, 6], b (2): [1, 3, 4, 5, 6] +idx: 3, delta: 3, matching: false, a (6): [1, 2, 3, 4, 5, 6], b (1): [1, 3, 6] +idx: 3, delta: 4, matching: false, a (7): [3, 6], b (0): [1, 2, 4, 5] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 2], b (5): [3, 6] +idx: 4, delta: 2, matching: false, a (6): [1, 2, 3, 4, 5, 6], b (3): [0, 1, 4, 5] +idx: 4, delta: 3, matching: false, a (7): [3, 6], b (2): [1, 3, 4, 5, 6] +idx: 4, delta: 4, matching: false, a (8): [0, 4, 5], b (1): [1, 3, 6] +idx: 4, delta: 5, matching: false, a (9): [1, 3, 4, 5, 6], b (0): [1, 2, 4, 5] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [3, 6], b (6): [1, 2, 3, 4, 5, 6] +idx: 5, delta: 2, matching: false, a (7): [3, 6], b (4): [0, 2] +idx: 5, delta: 3, matching: false, a (8): [0, 4, 5], b (3): [0, 1, 4, 5] +idx: 5, delta: 3 --- found smudge! +idx: 5, delta: 4, matching: true, a (9): [1, 3, 4, 5, 6], b (2): [1, 3, 4, 5, 6] +idx: 5, delta: 5, matching: false, a (10): [1, 3, 4, 5, 6], b (1): [1, 3, 6] +idx: 5, delta: 5 --- found smudge twice! +idx: 6, delta: 0, matching: false, a (6): [1, 2, 3, 4, 5, 6], b (7): [3, 6] +idx: 6, delta: 2, matching: false, a (8): [0, 4, 5], b (5): [3, 6] +idx: 6, delta: 3, matching: false, a (9): [1, 3, 4, 5, 6], b (4): [0, 2] +idx: 6, delta: 4, matching: false, a (10): [1, 3, 4, 5, 6], b (3): [0, 1, 4, 5] +idx: 6, delta: 5, matching: false, a (11): [0, 2, 4, 5], b (2): [1, 3, 4, 5, 6] +idx: 6, delta: 6, matching: false, a (12): [3, 6], b (1): [1, 3, 6] +idx: 6, delta: 6 --- found smudge! +idx: 6 --- EXITING WITH true +.##.##. +.#.#..# +.#.#### +##..##. +#.#.... +...#..# +.###### +...#..# +#...##. +.#.#### +.#.#### +#.#.##. +...#..# +700 (vert: 0, horiz: 7) + +idx: 0, delta: 0, matching: false, a (0): [1, 4, 7, 8], b (1): [2, 3, 6, 7, 8] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [2, 3, 6, 7, 8], b (2): [1, 2, 3, 4, 6] +idx: 1, delta: 2, matching: false, a (3): [1, 2, 3, 4, 6], b (0): [1, 4, 7, 8] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: true, a (2): [1, 2, 3, 4, 6], b (3): [1, 2, 3, 4, 6] +idx: 2, delta: 2, matching: true, a (4): [2, 3, 6, 7, 8], b (1): [2, 3, 6, 7, 8] +idx: 2, delta: 3, matching: true, a (5): [1, 4, 7, 8], b (0): [1, 4, 7, 8] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 2, 3, 4, 6], b (4): [2, 3, 6, 7, 8] +idx: 3, delta: 2, matching: false, a (5): [1, 4, 7, 8], b (2): [1, 2, 3, 4, 6] +idx: 3, delta: 3, matching: false, a (6): [2, 3, 4, 5, 6, 7], b (1): [2, 3, 6, 7, 8] +idx: 3, delta: 4, matching: false, a (7): [0, 2, 3, 5], b (0): [1, 4, 7, 8] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [2, 3, 6, 7, 8], b (5): [1, 4, 7, 8] +idx: 4, delta: 2, matching: false, a (6): [2, 3, 4, 5, 6, 7], b (3): [1, 2, 3, 4, 6] +idx: 4, delta: 3, matching: false, a (7): [0, 2, 3, 5], b (2): [1, 2, 3, 4, 6] +idx: 4, delta: 4, matching: false, a (8): [0, 7, 8], b (1): [2, 3, 6, 7, 8] +idx: 4, delta: 5, matching: false, a (9): [0, 2], b (0): [1, 4, 7, 8] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 4, 7, 8], b (6): [2, 3, 4, 5, 6, 7] +idx: 5, delta: 2, matching: false, a (7): [0, 2, 3, 5], b (4): [2, 3, 6, 7, 8] +idx: 5, delta: 3, matching: false, a (8): [0, 7, 8], b (3): [1, 2, 3, 4, 6] +idx: 5, delta: 4, matching: false, a (9): [0, 2], b (2): [1, 2, 3, 4, 6] +idx: 5, delta: 5, matching: false, a (10): [3, 5, 7, 8], b (1): [2, 3, 6, 7, 8] +idx: 5, delta: 6, matching: false, a (11): [2, 3], b (0): [1, 4, 7, 8] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [2, 3, 4, 5, 6, 7], b (7): [0, 2, 3, 5] +idx: 6, delta: 2, matching: false, a (8): [0, 7, 8], b (5): [1, 4, 7, 8] +idx: 6, delta: 3, matching: false, a (9): [0, 2], b (4): [2, 3, 6, 7, 8] +idx: 6, delta: 4, matching: false, a (10): [3, 5, 7, 8], b (3): [1, 2, 3, 4, 6] +idx: 6, delta: 5, matching: false, a (11): [2, 3], b (2): [1, 2, 3, 4, 6] +idx: 6, delta: 6, matching: false, a (12): [0, 1, 3, 6], b (1): [2, 3, 6, 7, 8] +idx: 6, delta: 7, matching: false, a (13): [1, 2, 3, 4], b (0): [1, 4, 7, 8] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 2, 3, 5], b (8): [0, 7, 8] +idx: 7, delta: 2, matching: false, a (9): [0, 2], b (6): [2, 3, 4, 5, 6, 7] +idx: 7, delta: 3, matching: false, a (10): [3, 5, 7, 8], b (5): [1, 4, 7, 8] +idx: 7, delta: 4, matching: false, a (11): [2, 3], b (4): [2, 3, 6, 7, 8] +idx: 7, delta: 5, matching: false, a (12): [0, 1, 3, 6], b (3): [1, 2, 3, 4, 6] +idx: 7, delta: 6, matching: false, a (13): [1, 2, 3, 4], b (2): [1, 2, 3, 4, 6] +idx: 7, delta: 6 --- found smudge! +idx: 7, delta: 7, matching: false, a (14): [0, 1, 2, 4, 7, 8], b (1): [2, 3, 6, 7, 8] +idx: 7, delta: 7 --- found smudge twice! +idx: 8, delta: 0, matching: false, a (8): [0, 7, 8], b (9): [0, 2] +idx: 8, delta: 2, matching: false, a (10): [3, 5, 7, 8], b (7): [0, 2, 3, 5] +idx: 8, delta: 3, matching: false, a (11): [2, 3], b (6): [2, 3, 4, 5, 6, 7] +idx: 8, delta: 4, matching: false, a (12): [0, 1, 3, 6], b (5): [1, 4, 7, 8] +idx: 8, delta: 5, matching: false, a (13): [1, 2, 3, 4], b (4): [2, 3, 6, 7, 8] +idx: 8, delta: 6, matching: false, a (14): [0, 1, 2, 4, 7, 8], b (3): [1, 2, 3, 4, 6] +idx: 8, delta: 7, matching: false, a (15): [4, 7, 8], b (2): [1, 2, 3, 4, 6] +idx: 8, delta: 8, matching: false, a (16): [0, 1, 2, 3, 7, 8], b (1): [2, 3, 6, 7, 8] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 2], b (10): [3, 5, 7, 8] +idx: 9, delta: 2, matching: false, a (11): [2, 3], b (8): [0, 7, 8] +idx: 9, delta: 3, matching: false, a (12): [0, 1, 3, 6], b (7): [0, 2, 3, 5] +idx: 9, delta: 4, matching: false, a (13): [1, 2, 3, 4], b (6): [2, 3, 4, 5, 6, 7] +idx: 9, delta: 5, matching: false, a (14): [0, 1, 2, 4, 7, 8], b (5): [1, 4, 7, 8] +idx: 9, delta: 6, matching: false, a (15): [4, 7, 8], b (4): [2, 3, 6, 7, 8] +idx: 9, delta: 7, matching: false, a (16): [0, 1, 2, 3, 7, 8], b (3): [1, 2, 3, 4, 6] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [3, 5, 7, 8], b (11): [2, 3] +idx: 10, delta: 2, matching: false, a (12): [0, 1, 3, 6], b (9): [0, 2] +idx: 10, delta: 3, matching: false, a (13): [1, 2, 3, 4], b (8): [0, 7, 8] +idx: 10, delta: 4, matching: false, a (14): [0, 1, 2, 4, 7, 8], b (7): [0, 2, 3, 5] +idx: 10, delta: 5, matching: false, a (15): [4, 7, 8], b (6): [2, 3, 4, 5, 6, 7] +idx: 10, delta: 6, matching: false, a (16): [0, 1, 2, 3, 7, 8], b (5): [1, 4, 7, 8] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [2, 3], b (12): [0, 1, 3, 6] +idx: 11, delta: 2, matching: false, a (13): [1, 2, 3, 4], b (10): [3, 5, 7, 8] +idx: 11, delta: 3, matching: false, a (14): [0, 1, 2, 4, 7, 8], b (9): [0, 2] +idx: 11, delta: 4, matching: false, a (15): [4, 7, 8], b (8): [0, 7, 8] +idx: 11, delta: 5, matching: false, a (16): [0, 1, 2, 3, 7, 8], b (7): [0, 2, 3, 5] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [0, 1, 3, 6], b (13): [1, 2, 3, 4] +idx: 12, delta: 2, matching: false, a (14): [0, 1, 2, 4, 7, 8], b (11): [2, 3] +idx: 12, delta: 3, matching: false, a (15): [4, 7, 8], b (10): [3, 5, 7, 8] +idx: 12, delta: 4, matching: false, a (16): [0, 1, 2, 3, 7, 8], b (9): [0, 2] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: false, a (13): [1, 2, 3, 4], b (14): [0, 1, 2, 4, 7, 8] +idx: 13, delta: 2, matching: false, a (15): [4, 7, 8], b (12): [0, 1, 3, 6] +idx: 13, delta: 3, matching: false, a (16): [0, 1, 2, 3, 7, 8], b (11): [2, 3] +idx: 13 --- EXITING WITH false +idx: 14, delta: 0, matching: false, a (14): [0, 1, 2, 4, 7, 8], b (15): [4, 7, 8] +idx: 14, delta: 2, matching: false, a (16): [0, 1, 2, 3, 7, 8], b (13): [1, 2, 3, 4] +idx: 14 --- EXITING WITH false +idx: 15, delta: 0, matching: false, a (15): [4, 7, 8], b (16): [0, 1, 2, 3, 7, 8] +idx: 15 --- EXITING WITH false +idx: 16 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [7, 8, 9, 12, 14, 16], b (1): [0, 2, 3, 5, 12, 13, 14, 16] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 2, 3, 5, 12, 13, 14, 16], b (2): [1, 2, 3, 4, 6, 7, 9, 11, 13, 14, 16] +idx: 1, delta: 2, matching: false, a (3): [1, 2, 3, 4, 6, 7, 10, 11, 12, 13, 16], b (0): [7, 8, 9, 12, 14, 16] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 2, 3, 4, 6, 7, 9, 11, 13, 14, 16], b (3): [1, 2, 3, 4, 6, 7, 10, 11, 12, 13, 16] +idx: 2, delta: 2, matching: false, a (4): [0, 2, 3, 5, 6, 13, 14, 15], b (1): [0, 2, 3, 5, 12, 13, 14, 16] +idx: 2, delta: 3, matching: false, a (5): [6, 7, 10], b (0): [7, 8, 9, 12, 14, 16] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 2, 3, 4, 6, 7, 10, 11, 12, 13, 16], b (4): [0, 2, 3, 5, 6, 13, 14, 15] +idx: 3, delta: 2, matching: false, a (5): [6, 7, 10], b (2): [1, 2, 3, 4, 6, 7, 9, 11, 13, 14, 16] +idx: 3, delta: 3, matching: false, a (6): [1, 2, 3, 4, 6, 12], b (1): [0, 2, 3, 5, 12, 13, 14, 16] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 4, 5, 6, 8, 10, 14, 15, 16], b (0): [7, 8, 9, 12, 14, 16] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 2, 3, 5, 6, 13, 14, 15], b (5): [6, 7, 10] +idx: 4, delta: 2, matching: false, a (6): [1, 2, 3, 4, 6, 12], b (3): [1, 2, 3, 4, 6, 7, 10, 11, 12, 13, 16] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 4, 5, 6, 8, 10, 14, 15, 16], b (2): [1, 2, 3, 4, 6, 7, 9, 11, 13, 14, 16] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 4, 5, 8, 10, 14, 15, 16], b (1): [0, 2, 3, 5, 12, 13, 14, 16] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [6, 7, 10], b (6): [1, 2, 3, 4, 6, 12] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 4, 5, 6, 8, 10, 14, 15, 16], b (4): [0, 2, 3, 5, 6, 13, 14, 15] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 4, 5, 8, 10, 14, 15, 16], b (3): [1, 2, 3, 4, 6, 7, 10, 11, 12, 13, 16] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [1, 2, 3, 4, 6, 12], b (7): [0, 1, 4, 5, 6, 8, 10, 14, 15, 16] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 4, 5, 8, 10, 14, 15, 16], b (5): [6, 7, 10] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 4, 5, 6, 8, 10, 14, 15, 16], b (8): [0, 1, 4, 5, 8, 10, 14, 15, 16] +idx: 7, delta: 0 --- found smudge! +idx: 7 --- EXITING WITH true +.......###..#.#.# +#.##.#......###.# +.####.##.#.#.##.# +.####.##..####..# +#.##.##......###. +......##..#...... +.####.#.....#.... +##..###.#.#...### +##..##..#.#...### +800 (vert: 0, horiz: 8) + +idx: 0, delta: 0, matching: false, a (0): [1, 5, 6, 7, 8, 11, 12, 14, 15, 16], b (1): [2, 3, 6, 7, 10, 11, 15, 16] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [2, 3, 6, 7, 10, 11, 15, 16], b (2): [0, 4, 5, 8, 9, 13, 15, 16] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 16], b (0): [1, 5, 6, 7, 8, 11, 12, 14, 15, 16] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 4, 5, 8, 9, 13, 15, 16], b (3): [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 16] +idx: 2, delta: 2, matching: false, a (4): [3, 4, 5, 6, 7, 8, 9, 10, 15], b (1): [2, 3, 6, 7, 10, 11, 15, 16] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 4, 5, 8, 9, 12, 13, 14, 15, 16], b (0): [1, 5, 6, 7, 8, 11, 12, 14, 15, 16] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 16], b (4): [3, 4, 5, 6, 7, 8, 9, 10, 15] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 4, 5, 8, 9, 12, 13, 14, 15, 16], b (2): [0, 4, 5, 8, 9, 13, 15, 16] +idx: 3, delta: 3, matching: false, a (6): [0, 3, 4, 9, 10, 13, 14, 15, 16], b (1): [2, 3, 6, 7, 10, 11, 15, 16] +idx: 3, delta: 4, matching: false, a (7): [1, 2, 3, 10, 11, 12, 14], b (0): [1, 5, 6, 7, 8, 11, 12, 14, 15, 16] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [3, 4, 5, 6, 7, 8, 9, 10, 15], b (5): [0, 1, 4, 5, 8, 9, 12, 13, 14, 15, 16] +idx: 4, delta: 2, matching: false, a (6): [0, 3, 4, 9, 10, 13, 14, 15, 16], b (3): [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 16] +idx: 4, delta: 3, matching: false, a (7): [1, 2, 3, 10, 11, 12, 14], b (2): [0, 4, 5, 8, 9, 13, 15, 16] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 2, 6, 7, 11, 12, 13, 15], b (1): [2, 3, 6, 7, 10, 11, 15, 16] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 2, 6, 7, 11, 12, 13, 15], b (0): [1, 5, 6, 7, 8, 11, 12, 14, 15, 16] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 4, 5, 8, 9, 12, 13, 14, 15, 16], b (6): [0, 3, 4, 9, 10, 13, 14, 15, 16] +idx: 5, delta: 2, matching: false, a (7): [1, 2, 3, 10, 11, 12, 14], b (4): [3, 4, 5, 6, 7, 8, 9, 10, 15] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 2, 6, 7, 11, 12, 13, 15], b (3): [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 16] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 2, 6, 7, 11, 12, 13, 15], b (2): [0, 4, 5, 8, 9, 13, 15, 16] +idx: 5, delta: 5, matching: false, a (10): [1, 2, 3, 10, 11, 12, 14], b (1): [2, 3, 6, 7, 10, 11, 15, 16] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 3, 4, 9, 10, 13, 14, 15, 16], b (7): [1, 2, 3, 10, 11, 12, 14] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 2, 6, 7, 11, 12, 13, 15], b (5): [0, 1, 4, 5, 8, 9, 12, 13, 14, 15, 16] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 2, 6, 7, 11, 12, 13, 15], b (4): [3, 4, 5, 6, 7, 8, 9, 10, 15] +idx: 6, delta: 4, matching: false, a (10): [1, 2, 3, 10, 11, 12, 14], b (3): [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 16] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [1, 2, 3, 10, 11, 12, 14], b (8): [0, 1, 2, 6, 7, 11, 12, 13, 15] +idx: 7, delta: 2, matching: false, a (9): [0, 1, 2, 6, 7, 11, 12, 13, 15], b (6): [0, 3, 4, 9, 10, 13, 14, 15, 16] +idx: 7, delta: 3, matching: false, a (10): [1, 2, 3, 10, 11, 12, 14], b (5): [0, 1, 4, 5, 8, 9, 12, 13, 14, 15, 16] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: true, a (8): [0, 1, 2, 6, 7, 11, 12, 13, 15], b (9): [0, 1, 2, 6, 7, 11, 12, 13, 15] +idx: 8, delta: 2, matching: true, a (10): [1, 2, 3, 10, 11, 12, 14], b (7): [1, 2, 3, 10, 11, 12, 14] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 1, 2, 6, 7, 11, 12, 13, 15], b (10): [1, 2, 3, 10, 11, 12, 14] +idx: 9 --- EXITING WITH false +idx: 10 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [2, 3, 5, 6, 8, 9], b (1): [0, 3, 5, 7, 8, 9, 10] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 3, 5, 7, 8, 9, 10], b (2): [1, 3, 7, 8, 9, 10] +idx: 1, delta: 2, matching: false, a (3): [1, 4, 6, 7, 10], b (0): [2, 3, 5, 6, 8, 9] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 3, 7, 8, 9, 10], b (3): [1, 4, 6, 7, 10] +idx: 2, delta: 2, matching: false, a (4): [2, 3, 4, 5, 6], b (1): [0, 3, 5, 7, 8, 9, 10] +idx: 2, delta: 3, matching: false, a (5): [0, 2, 3, 4, 5], b (0): [2, 3, 5, 6, 8, 9] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 4, 6, 7, 10], b (4): [2, 3, 4, 5, 6] +idx: 3, delta: 2, matching: false, a (5): [0, 2, 3, 4, 5], b (2): [1, 3, 7, 8, 9, 10] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 3, 4, 8, 9], b (1): [0, 3, 5, 7, 8, 9, 10] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 3, 4, 8, 9], b (0): [2, 3, 5, 6, 8, 9] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [2, 3, 4, 5, 6], b (5): [0, 2, 3, 4, 5] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 3, 4, 8, 9], b (3): [1, 4, 6, 7, 10] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 3, 4, 8, 9], b (2): [1, 3, 7, 8, 9, 10] +idx: 4, delta: 4, matching: false, a (8): [0, 2, 3, 4, 5], b (1): [0, 3, 5, 7, 8, 9, 10] +idx: 4, delta: 5, matching: false, a (9): [2, 3, 4, 5, 6], b (0): [2, 3, 5, 6, 8, 9] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 2, 3, 4, 5], b (6): [0, 1, 3, 4, 8, 9] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 3, 4, 8, 9], b (4): [2, 3, 4, 5, 6] +idx: 5, delta: 3, matching: false, a (8): [0, 2, 3, 4, 5], b (3): [1, 4, 6, 7, 10] +idx: 5, delta: 4, matching: false, a (9): [2, 3, 4, 5, 6], b (2): [1, 3, 7, 8, 9, 10] +idx: 5, delta: 5, matching: false, a (10): [1, 4, 6, 7, 10], b (1): [0, 3, 5, 7, 8, 9, 10] +idx: 5, delta: 6, matching: false, a (11): [0, 1, 3, 7, 8, 9, 10], b (0): [2, 3, 5, 6, 8, 9] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: true, a (6): [0, 1, 3, 4, 8, 9], b (7): [0, 1, 3, 4, 8, 9] +idx: 6, delta: 2, matching: true, a (8): [0, 2, 3, 4, 5], b (5): [0, 2, 3, 4, 5] +idx: 6, delta: 3, matching: true, a (9): [2, 3, 4, 5, 6], b (4): [2, 3, 4, 5, 6] +idx: 6, delta: 4, matching: true, a (10): [1, 4, 6, 7, 10], b (3): [1, 4, 6, 7, 10] +idx: 6, delta: 5, matching: false, a (11): [0, 1, 3, 7, 8, 9, 10], b (2): [1, 3, 7, 8, 9, 10] +idx: 6, delta: 5 --- found smudge! +idx: 6, delta: 6, matching: true, a (12): [0, 3, 5, 7, 8, 9, 10], b (1): [0, 3, 5, 7, 8, 9, 10] +idx: 6, delta: 7, matching: true, a (13): [2, 3, 5, 6, 8, 9], b (0): [2, 3, 5, 6, 8, 9] +idx: 6 --- EXITING WITH true +..##.##.##. +#..#.#.#### +.#.#...#### +.#..#.##..# +..#####.... +#.####..... +##.##...##. +##.##...##. +#.####..... +..#####.... +.#..#.##..# +##.#...#### +#..#.#.#### +..##.##.##. +#..#.###..# +###.###.##. +####.##.... +700 (vert: 0, horiz: 7) + +idx: 0, delta: 0, matching: false, a (0): [0, 1, 6, 7, 8], b (1): [1, 2, 3, 4, 5, 6, 8] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 2, 3, 4, 5, 6, 8], b (2): [0, 3, 4, 7, 8] +idx: 1, delta: 2, matching: false, a (3): [3, 4], b (0): [0, 1, 6, 7, 8] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 3, 4, 7, 8], b (3): [3, 4] +idx: 2, delta: 2, matching: false, a (4): [0, 2, 5, 7, 8], b (1): [1, 2, 3, 4, 5, 6, 8] +idx: 2, delta: 3, matching: false, a (5): [0, 2, 5, 7, 8], b (0): [0, 1, 6, 7, 8] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [3, 4], b (4): [0, 2, 5, 7, 8] +idx: 3, delta: 2, matching: false, a (5): [0, 2, 5, 7, 8], b (2): [0, 3, 4, 7, 8] +idx: 3, delta: 3, matching: false, a (6): [0, 3, 4, 7, 8], b (1): [1, 2, 3, 4, 5, 6, 8] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: true, a (4): [0, 2, 5, 7, 8], b (5): [0, 2, 5, 7, 8] +idx: 4, delta: 2, matching: false, a (6): [0, 3, 4, 7, 8], b (3): [3, 4] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 2, 5, 7, 8], b (6): [0, 3, 4, 7, 8] +idx: 5 --- EXITING WITH false +idx: 6 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [0, 2, 4, 5, 6], b (1): [0, 1] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1], b (2): [1, 4, 5] +idx: 1, delta: 2, matching: false, a (3): [1, 2, 3, 6], b (0): [0, 2, 4, 5, 6] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 4, 5], b (3): [1, 2, 3, 6] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 3, 6], b (1): [0, 1] +idx: 2, delta: 3, matching: false, a (5): [1, 4, 5], b (0): [0, 2, 4, 5, 6] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: true, a (3): [1, 2, 3, 6], b (4): [1, 2, 3, 6] +idx: 3, delta: 2, matching: true, a (5): [1, 4, 5], b (2): [1, 4, 5] +idx: 3, delta: 3, matching: true, a (6): [0, 1], b (1): [0, 1] +idx: 3, delta: 4, matching: true, a (7): [0, 2, 4, 5, 6], b (0): [0, 2, 4, 5, 6] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 2, 3, 6], b (5): [1, 4, 5] +idx: 4, delta: 2, matching: false, a (6): [0, 1], b (3): [1, 2, 3, 6] +idx: 4, delta: 3, matching: false, a (7): [0, 2, 4, 5, 6], b (2): [1, 4, 5] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 2, 4, 5, 6], b (1): [0, 1] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 4, 5], b (6): [0, 1] +idx: 5, delta: 2, matching: false, a (7): [0, 2, 4, 5, 6], b (4): [1, 2, 3, 6] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 2, 4, 5, 6], b (3): [1, 2, 3, 6] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 1], b (7): [0, 2, 4, 5, 6] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 2, 4, 5, 6], b (5): [1, 4, 5] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 2, 4, 5, 6], b (8): [0, 1, 2, 4, 5, 6] +idx: 7, delta: 0 --- found smudge! +idx: 7 --- EXITING WITH true +#.#.### +##..... +.#..##. +.###..# +.###..# +.#..##. +##..... +#.#.### +###.### +800 (vert: 0, horiz: 8) + +idx: 0, delta: 0, matching: false, a (0): [0, 2, 5, 6, 9, 10, 11, 12], b (1): [0, 1, 2, 4, 7, 9, 10, 11] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 2, 4, 7, 9, 10, 11], b (2): [6, 10, 11] +idx: 1, delta: 2, matching: false, a (3): [1, 2, 4, 6, 7, 8, 10, 11], b (0): [0, 2, 5, 6, 9, 10, 11, 12] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [6, 10, 11], b (3): [1, 2, 4, 6, 7, 8, 10, 11] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 4, 5, 7, 8, 10, 11], b (1): [0, 1, 2, 4, 7, 9, 10, 11] +idx: 2, delta: 3, matching: false, a (5): [4, 6], b (0): [0, 2, 5, 6, 9, 10, 11, 12] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 2, 4, 6, 7, 8, 10, 11], b (4): [0, 1, 4, 5, 7, 8, 10, 11] +idx: 3, delta: 2, matching: false, a (5): [4, 6], b (2): [6, 10, 11] +idx: 3, delta: 3, matching: false, a (6): [1, 2, 5, 6], b (1): [0, 1, 2, 4, 7, 9, 10, 11] +idx: 3, delta: 4, matching: false, a (7): [2, 6, 7, 8, 10, 11], b (0): [0, 2, 5, 6, 9, 10, 11, 12] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 4, 5, 7, 8, 10, 11], b (5): [4, 6] +idx: 4, delta: 2, matching: false, a (6): [1, 2, 5, 6], b (3): [1, 2, 4, 6, 7, 8, 10, 11] +idx: 4, delta: 3, matching: false, a (7): [2, 6, 7, 8, 10, 11], b (2): [6, 10, 11] +idx: 4, delta: 4, matching: false, a (8): [0, 2, 5, 6, 7, 8, 10, 11], b (1): [0, 1, 2, 4, 7, 9, 10, 11] +idx: 4, delta: 5, matching: false, a (9): [6, 7, 10, 11], b (0): [0, 2, 5, 6, 9, 10, 11, 12] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [4, 6], b (6): [1, 2, 5, 6] +idx: 5, delta: 2, matching: false, a (7): [2, 6, 7, 8, 10, 11], b (4): [0, 1, 4, 5, 7, 8, 10, 11] +idx: 5, delta: 3, matching: false, a (8): [0, 2, 5, 6, 7, 8, 10, 11], b (3): [1, 2, 4, 6, 7, 8, 10, 11] +idx: 5, delta: 4, matching: false, a (9): [6, 7, 10, 11], b (2): [6, 10, 11] +idx: 5, delta: 4 --- found smudge! +idx: 5, delta: 5, matching: false, a (10): [0, 1, 3, 8, 10, 11], b (1): [0, 1, 2, 4, 7, 9, 10, 11] +idx: 5, delta: 5 --- found smudge twice! +idx: 6, delta: 0, matching: false, a (6): [1, 2, 5, 6], b (7): [2, 6, 7, 8, 10, 11] +idx: 6, delta: 2, matching: false, a (8): [0, 2, 5, 6, 7, 8, 10, 11], b (5): [4, 6] +idx: 6, delta: 3, matching: false, a (9): [6, 7, 10, 11], b (4): [0, 1, 4, 5, 7, 8, 10, 11] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 3, 8, 10, 11], b (3): [1, 2, 4, 6, 7, 8, 10, 11] +idx: 6, delta: 5, matching: false, a (11): [0, 1, 2, 3, 4, 5, 8], b (2): [6, 10, 11] +idx: 6, delta: 6, matching: false, a (12): [0, 1, 2, 3, 4, 5, 8], b (1): [0, 1, 2, 4, 7, 9, 10, 11] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [2, 6, 7, 8, 10, 11], b (8): [0, 2, 5, 6, 7, 8, 10, 11] +idx: 7, delta: 2, matching: false, a (9): [6, 7, 10, 11], b (6): [1, 2, 5, 6] +idx: 7, delta: 3, matching: false, a (10): [0, 1, 3, 8, 10, 11], b (5): [4, 6] +idx: 7, delta: 4, matching: false, a (11): [0, 1, 2, 3, 4, 5, 8], b (4): [0, 1, 4, 5, 7, 8, 10, 11] +idx: 7, delta: 5, matching: false, a (12): [0, 1, 2, 3, 4, 5, 8], b (3): [1, 2, 4, 6, 7, 8, 10, 11] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 2, 5, 6, 7, 8, 10, 11], b (9): [6, 7, 10, 11] +idx: 8, delta: 2, matching: false, a (10): [0, 1, 3, 8, 10, 11], b (7): [2, 6, 7, 8, 10, 11] +idx: 8, delta: 3, matching: false, a (11): [0, 1, 2, 3, 4, 5, 8], b (6): [1, 2, 5, 6] +idx: 8, delta: 4, matching: false, a (12): [0, 1, 2, 3, 4, 5, 8], b (5): [4, 6] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [6, 7, 10, 11], b (10): [0, 1, 3, 8, 10, 11] +idx: 9, delta: 2, matching: false, a (11): [0, 1, 2, 3, 4, 5, 8], b (8): [0, 2, 5, 6, 7, 8, 10, 11] +idx: 9, delta: 3, matching: false, a (12): [0, 1, 2, 3, 4, 5, 8], b (7): [2, 6, 7, 8, 10, 11] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 1, 3, 8, 10, 11], b (11): [0, 1, 2, 3, 4, 5, 8] +idx: 10, delta: 2, matching: false, a (12): [0, 1, 2, 3, 4, 5, 8], b (9): [6, 7, 10, 11] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: true, a (11): [0, 1, 2, 3, 4, 5, 8], b (12): [0, 1, 2, 3, 4, 5, 8] +idx: 11 --- EXITING WITH false +idx: 12 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [0, 1, 4, 8, 10, 11, 12], b (1): [1, 3, 4, 6, 10, 11, 12] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 3, 4, 6, 10, 11, 12], b (2): [0, 1, 3, 6, 7, 8, 11, 12] +idx: 1, delta: 2, matching: false, a (3): [10, 11, 12], b (0): [0, 1, 4, 8, 10, 11, 12] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 3, 6, 7, 8, 11, 12], b (3): [10, 11, 12] +idx: 2, delta: 2, matching: false, a (4): [1, 3, 4, 5, 11, 12], b (1): [1, 3, 4, 6, 10, 11, 12] +idx: 2, delta: 3, matching: false, a (5): [0, 4, 6, 8, 11, 12], b (0): [0, 1, 4, 8, 10, 11, 12] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [10, 11, 12], b (4): [1, 3, 4, 5, 11, 12] +idx: 3, delta: 2, matching: false, a (5): [0, 4, 6, 8, 11, 12], b (2): [0, 1, 3, 6, 7, 8, 11, 12] +idx: 3, delta: 3, matching: false, a (6): [0, 2, 3, 5, 6, 7, 8, 9], b (1): [1, 3, 4, 6, 10, 11, 12] +idx: 3, delta: 4, matching: false, a (7): [1, 3, 4, 7, 8, 9], b (0): [0, 1, 4, 8, 10, 11, 12] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 3, 4, 5, 11, 12], b (5): [0, 4, 6, 8, 11, 12] +idx: 4, delta: 2, matching: false, a (6): [0, 2, 3, 5, 6, 7, 8, 9], b (3): [10, 11, 12] +idx: 4, delta: 3, matching: false, a (7): [1, 3, 4, 7, 8, 9], b (2): [0, 1, 3, 6, 7, 8, 11, 12] +idx: 4, delta: 4, matching: false, a (8): [3, 4, 7, 8, 10, 11, 12], b (1): [1, 3, 4, 6, 10, 11, 12] +idx: 4, delta: 5, matching: false, a (9): [0, 1], b (0): [0, 1, 4, 8, 10, 11, 12] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 4, 6, 8, 11, 12], b (6): [0, 2, 3, 5, 6, 7, 8, 9] +idx: 5, delta: 2, matching: false, a (7): [1, 3, 4, 7, 8, 9], b (4): [1, 3, 4, 5, 11, 12] +idx: 5, delta: 3, matching: false, a (8): [3, 4, 7, 8, 10, 11, 12], b (3): [10, 11, 12] +idx: 5, delta: 4, matching: false, a (9): [0, 1], b (2): [0, 1, 3, 6, 7, 8, 11, 12] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 2, 3, 4, 7, 8, 9, 10], b (1): [1, 3, 4, 6, 10, 11, 12] +idx: 5, delta: 6, matching: false, a (11): [0, 1, 2, 3, 4, 7, 8, 9, 10], b (0): [0, 1, 4, 8, 10, 11, 12] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 2, 3, 5, 6, 7, 8, 9], b (7): [1, 3, 4, 7, 8, 9] +idx: 6, delta: 2, matching: false, a (8): [3, 4, 7, 8, 10, 11, 12], b (5): [0, 4, 6, 8, 11, 12] +idx: 6, delta: 3, matching: false, a (9): [0, 1], b (4): [1, 3, 4, 5, 11, 12] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 2, 3, 4, 7, 8, 9, 10], b (3): [10, 11, 12] +idx: 6, delta: 5, matching: false, a (11): [0, 1, 2, 3, 4, 7, 8, 9, 10], b (2): [0, 1, 3, 6, 7, 8, 11, 12] +idx: 6, delta: 6, matching: false, a (12): [0], b (1): [1, 3, 4, 6, 10, 11, 12] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [1, 3, 4, 7, 8, 9], b (8): [3, 4, 7, 8, 10, 11, 12] +idx: 7, delta: 2, matching: false, a (9): [0, 1], b (6): [0, 2, 3, 5, 6, 7, 8, 9] +idx: 7, delta: 3, matching: false, a (10): [0, 1, 2, 3, 4, 7, 8, 9, 10], b (5): [0, 4, 6, 8, 11, 12] +idx: 7, delta: 4, matching: false, a (11): [0, 1, 2, 3, 4, 7, 8, 9, 10], b (4): [1, 3, 4, 5, 11, 12] +idx: 7, delta: 5, matching: false, a (12): [0], b (3): [10, 11, 12] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [3, 4, 7, 8, 10, 11, 12], b (9): [0, 1] +idx: 8, delta: 2, matching: false, a (10): [0, 1, 2, 3, 4, 7, 8, 9, 10], b (7): [1, 3, 4, 7, 8, 9] +idx: 8, delta: 3, matching: false, a (11): [0, 1, 2, 3, 4, 7, 8, 9, 10], b (6): [0, 2, 3, 5, 6, 7, 8, 9] +idx: 8, delta: 4, matching: false, a (12): [0], b (5): [0, 4, 6, 8, 11, 12] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 1], b (10): [0, 1, 2, 3, 4, 7, 8, 9, 10] +idx: 9, delta: 2, matching: false, a (11): [0, 1, 2, 3, 4, 7, 8, 9, 10], b (8): [3, 4, 7, 8, 10, 11, 12] +idx: 9, delta: 3, matching: false, a (12): [0], b (7): [1, 3, 4, 7, 8, 9] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: true, a (10): [0, 1, 2, 3, 4, 7, 8, 9, 10], b (11): [0, 1, 2, 3, 4, 7, 8, 9, 10] +idx: 10, delta: 2, matching: false, a (12): [0], b (9): [0, 1] +idx: 10, delta: 2 --- found smudge! +idx: 10 --- EXITING WITH true +##..#...#.### +.#.##.#...### +##.#..###..## +..........### +.#.###.....## +#...#.#.#..## +#.##.#####... +.#.##..###... +...##..##.### +##........... +#####..####.. +#####..####.. +#............ +1100 (vert: 0, horiz: 11) + +idx: 0, delta: 0, matching: false, a (0): [0, 4, 5, 6], b (1): [0, 2, 4, 6, 9] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 2, 4, 6, 9], b (2): [0, 2, 6, 7, 10] +idx: 1, delta: 2, matching: false, a (3): [3, 4, 7, 8, 9, 10], b (0): [0, 4, 5, 6] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 2, 6, 7, 10], b (3): [3, 4, 7, 8, 9, 10] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 3, 4, 5, 6, 7, 10], b (1): [0, 2, 4, 6, 9] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 2, 3, 4, 8, 9], b (0): [0, 4, 5, 6] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [3, 4, 7, 8, 9, 10], b (4): [0, 1, 3, 4, 5, 6, 7, 10] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 2, 3, 4, 8, 9], b (2): [0, 2, 6, 7, 10] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 2, 3, 4, 8, 9], b (1): [0, 2, 4, 6, 9] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 3, 4, 5, 6, 7, 10], b (5): [0, 1, 2, 3, 4, 8, 9] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 2, 3, 4, 8, 9], b (3): [3, 4, 7, 8, 9, 10] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: true, a (5): [0, 1, 2, 3, 4, 8, 9], b (6): [0, 1, 2, 3, 4, 8, 9] +idx: 5 --- EXITING WITH false +idx: 6 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [0, 1, 2, 4, 5, 6], b (1): [4, 5, 6] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [4, 5, 6], b (2): [1, 2, 5, 6] +idx: 1, delta: 2, matching: false, a (3): [3, 4, 5, 6], b (0): [0, 1, 2, 4, 5, 6] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 2, 5, 6], b (3): [3, 4, 5, 6] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 3, 4, 5, 6], b (1): [4, 5, 6] +idx: 2, delta: 3, matching: false, a (5): [0, 4], b (0): [0, 1, 2, 4, 5, 6] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [3, 4, 5, 6], b (4): [0, 1, 3, 4, 5, 6] +idx: 3, delta: 2, matching: false, a (5): [0, 4], b (2): [1, 2, 5, 6] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 2, 4], b (1): [4, 5, 6] +idx: 3, delta: 4, matching: false, a (7): [2, 3, 4], b (0): [0, 1, 2, 4, 5, 6] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 3, 4, 5, 6], b (5): [0, 4] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 2, 4], b (3): [3, 4, 5, 6] +idx: 4, delta: 3, matching: false, a (7): [2, 3, 4], b (2): [1, 2, 5, 6] +idx: 4, delta: 4, matching: false, a (8): [3, 5, 6], b (1): [4, 5, 6] +idx: 4, delta: 5, matching: false, a (9): [1, 3, 5, 6], b (0): [0, 1, 2, 4, 5, 6] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 4], b (6): [0, 1, 2, 4] +idx: 5, delta: 2, matching: false, a (7): [2, 3, 4], b (4): [0, 1, 3, 4, 5, 6] +idx: 5, delta: 3, matching: false, a (8): [3, 5, 6], b (3): [3, 4, 5, 6] +idx: 5, delta: 3 --- found smudge! +idx: 5, delta: 4, matching: false, a (9): [1, 3, 5, 6], b (2): [1, 2, 5, 6] +idx: 5, delta: 4 --- found smudge twice! +idx: 6, delta: 0, matching: false, a (6): [0, 1, 2, 4], b (7): [2, 3, 4] +idx: 6, delta: 2, matching: false, a (8): [3, 5, 6], b (5): [0, 4] +idx: 6, delta: 3, matching: false, a (9): [1, 3, 5, 6], b (4): [0, 1, 3, 4, 5, 6] +idx: 6, delta: 4, matching: false, a (10): [2, 3, 4], b (3): [3, 4, 5, 6] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [2, 3, 4], b (8): [3, 5, 6] +idx: 7, delta: 2, matching: false, a (9): [1, 3, 5, 6], b (6): [0, 1, 2, 4] +idx: 7, delta: 3, matching: false, a (10): [2, 3, 4], b (5): [0, 4] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [3, 5, 6], b (9): [1, 3, 5, 6] +idx: 8, delta: 0 --- found smudge! +idx: 8, delta: 2, matching: true, a (10): [2, 3, 4], b (7): [2, 3, 4] +idx: 8 --- EXITING WITH true +###.### +....### +.##..## +...#### +##.#### +#...#.. +###.#.. +..###.. +...#.## +.#.#.## +..###.. +900 (vert: 0, horiz: 9) + +idx: 0, delta: 0, matching: false, a (0): [0, 4, 5, 6, 7, 8, 10, 11], b (1): [3, 4, 7, 9, 11, 12] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [3, 4, 7, 9, 11, 12], b (2): [0, 5, 6, 7, 8, 10, 12] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 2, 4, 7, 9, 10], b (0): [0, 4, 5, 6, 7, 8, 10, 11] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 5, 6, 7, 8, 10, 12], b (3): [0, 1, 2, 4, 7, 9, 10] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 3, 9, 11, 12], b (1): [3, 4, 7, 9, 11, 12] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 3, 9, 11, 12], b (0): [0, 4, 5, 6, 7, 8, 10, 11] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 2, 4, 7, 9, 10], b (4): [0, 1, 3, 9, 11, 12] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 3, 9, 11, 12], b (2): [0, 5, 6, 7, 8, 10, 12] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 2, 4, 7, 9, 10], b (1): [3, 4, 7, 9, 11, 12] +idx: 3, delta: 4, matching: false, a (7): [0, 5, 7, 8, 10, 12], b (0): [0, 4, 5, 6, 7, 8, 10, 11] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: true, a (4): [0, 1, 3, 9, 11, 12], b (5): [0, 1, 3, 9, 11, 12] +idx: 4, delta: 2, matching: true, a (6): [0, 1, 2, 4, 7, 9, 10], b (3): [0, 1, 2, 4, 7, 9, 10] +idx: 4, delta: 3, matching: false, a (7): [0, 5, 7, 8, 10, 12], b (2): [0, 5, 6, 7, 8, 10, 12] +idx: 4, delta: 3 --- found smudge! +idx: 4, delta: 4, matching: true, a (8): [3, 4, 7, 9, 11, 12], b (1): [3, 4, 7, 9, 11, 12] +idx: 4, delta: 5, matching: true, a (9): [0, 4, 5, 6, 7, 8, 10, 11], b (0): [0, 4, 5, 6, 7, 8, 10, 11] +idx: 4 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [0, 2, 3, 4, 5, 6, 7, 9, 10], b (1): [3, 4, 5, 6] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [3, 4, 5, 6], b (2): [3, 6] +idx: 1, delta: 2, matching: false, a (3): [1, 4, 5, 8], b (0): [0, 2, 3, 4, 5, 6, 7, 9, 10] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [3, 6], b (3): [1, 4, 5, 8] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 3, 6, 8, 9, 10], b (1): [3, 4, 5, 6] +idx: 2, delta: 3, matching: false, a (5): [0, 2, 7, 9, 10], b (0): [0, 2, 3, 4, 5, 6, 7, 9, 10] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 4, 5, 8], b (4): [0, 1, 3, 6, 8, 9, 10] +idx: 3, delta: 2, matching: false, a (5): [0, 2, 7, 9, 10], b (2): [3, 6] +idx: 3, delta: 3, matching: false, a (6): [0, 2, 9, 10], b (1): [3, 4, 5, 6] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 2, 3, 6, 7, 8, 9, 10], b (0): [0, 2, 3, 4, 5, 6, 7, 9, 10] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 3, 6, 8, 9, 10], b (5): [0, 2, 7, 9, 10] +idx: 4, delta: 2, matching: false, a (6): [0, 2, 9, 10], b (3): [1, 4, 5, 8] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 2, 3, 6, 7, 8, 9, 10], b (2): [3, 6] +idx: 4, delta: 4, matching: false, a (8): [0, 2, 7, 9, 10], b (1): [3, 4, 5, 6] +idx: 4, delta: 5, matching: false, a (9): [1, 3, 4, 5, 6, 8], b (0): [0, 2, 3, 4, 5, 6, 7, 9, 10] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 2, 7, 9, 10], b (6): [0, 2, 9, 10] +idx: 5, delta: 0 --- found smudge! +idx: 5, delta: 2, matching: false, a (7): [0, 1, 2, 3, 6, 7, 8, 9, 10], b (4): [0, 1, 3, 6, 8, 9, 10] +idx: 5, delta: 2 --- found smudge twice! +idx: 6, delta: 0, matching: false, a (6): [0, 2, 9, 10], b (7): [0, 1, 2, 3, 6, 7, 8, 9, 10] +idx: 6, delta: 2, matching: true, a (8): [0, 2, 7, 9, 10], b (5): [0, 2, 7, 9, 10] +idx: 6, delta: 3, matching: false, a (9): [1, 3, 4, 5, 6, 8], b (4): [0, 1, 3, 6, 8, 9, 10] +idx: 6, delta: 4, matching: false, a (10): [0, 2, 3, 6, 7, 9, 10], b (3): [1, 4, 5, 8] +idx: 6, delta: 5, matching: false, a (11): [0, 1, 4, 5, 8, 9, 10], b (2): [3, 6] +idx: 6, delta: 6, matching: false, a (12): [1, 2, 4, 5, 7, 8], b (1): [3, 4, 5, 6] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 2, 3, 6, 7, 8, 9, 10], b (8): [0, 2, 7, 9, 10] +idx: 7, delta: 2, matching: false, a (9): [1, 3, 4, 5, 6, 8], b (6): [0, 2, 9, 10] +idx: 7, delta: 3, matching: false, a (10): [0, 2, 3, 6, 7, 9, 10], b (5): [0, 2, 7, 9, 10] +idx: 7, delta: 4, matching: false, a (11): [0, 1, 4, 5, 8, 9, 10], b (4): [0, 1, 3, 6, 8, 9, 10] +idx: 7, delta: 5, matching: false, a (12): [1, 2, 4, 5, 7, 8], b (3): [1, 4, 5, 8] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 2, 7, 9, 10], b (9): [1, 3, 4, 5, 6, 8] +idx: 8, delta: 2, matching: false, a (10): [0, 2, 3, 6, 7, 9, 10], b (7): [0, 1, 2, 3, 6, 7, 8, 9, 10] +idx: 8, delta: 3, matching: false, a (11): [0, 1, 4, 5, 8, 9, 10], b (6): [0, 2, 9, 10] +idx: 8, delta: 4, matching: false, a (12): [1, 2, 4, 5, 7, 8], b (5): [0, 2, 7, 9, 10] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [1, 3, 4, 5, 6, 8], b (10): [0, 2, 3, 6, 7, 9, 10] +idx: 9, delta: 2, matching: false, a (11): [0, 1, 4, 5, 8, 9, 10], b (8): [0, 2, 7, 9, 10] +idx: 9, delta: 3, matching: false, a (12): [1, 2, 4, 5, 7, 8], b (7): [0, 1, 2, 3, 6, 7, 8, 9, 10] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 2, 3, 6, 7, 9, 10], b (11): [0, 1, 4, 5, 8, 9, 10] +idx: 10, delta: 2, matching: false, a (12): [1, 2, 4, 5, 7, 8], b (9): [1, 3, 4, 5, 6, 8] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [0, 1, 4, 5, 8, 9, 10], b (12): [1, 2, 4, 5, 7, 8] +idx: 11 --- EXITING WITH false +idx: 12 --- EXITING WITH false +#.######.## +...####.... +...#..#.... +.#..##..#.. +##.#..#.### +#.#....#.## +#.#......## +####..##### +#.#....#.## +.#.####.#.. +#.##..##.## +##..##..### +.##.##.##.. +5 (vert: 5, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [4, 5, 6, 7], b (1): [2, 5, 6] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [2, 5, 6], b (2): [0, 3, 5, 6, 7, 8] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 6, 8], b (0): [4, 5, 6, 7] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 3, 5, 6, 7, 8], b (3): [0, 1, 6, 8] +idx: 2, delta: 2, matching: false, a (4): [0, 3, 4, 5, 6, 7], b (1): [2, 5, 6] +idx: 2, delta: 3, matching: false, a (5): [6, 8], b (0): [4, 5, 6, 7] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 6, 8], b (4): [0, 3, 4, 5, 6, 7] +idx: 3, delta: 2, matching: false, a (5): [6, 8], b (2): [0, 3, 5, 6, 7, 8] +idx: 3, delta: 3, matching: false, a (6): [6, 8], b (1): [2, 5, 6] +idx: 3, delta: 4, matching: false, a (7): [0, 3, 4, 5, 6, 7], b (0): [4, 5, 6, 7] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 3, 4, 5, 6, 7], b (5): [6, 8] +idx: 4, delta: 2, matching: false, a (6): [6, 8], b (3): [0, 1, 6, 8] +idx: 4, delta: 3, matching: false, a (7): [0, 3, 4, 5, 6, 7], b (2): [0, 3, 5, 6, 7, 8] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 6, 8], b (1): [2, 5, 6] +idx: 4, delta: 5, matching: false, a (9): [0, 3, 5, 6, 7, 8], b (0): [4, 5, 6, 7] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: true, a (5): [6, 8], b (6): [6, 8] +idx: 5, delta: 2, matching: true, a (7): [0, 3, 4, 5, 6, 7], b (4): [0, 3, 4, 5, 6, 7] +idx: 5, delta: 3, matching: true, a (8): [0, 1, 6, 8], b (3): [0, 1, 6, 8] +idx: 5, delta: 4, matching: true, a (9): [0, 3, 5, 6, 7, 8], b (2): [0, 3, 5, 6, 7, 8] +idx: 5, delta: 5, matching: true, a (10): [2, 5, 6], b (1): [2, 5, 6] +idx: 5, delta: 6, matching: true, a (11): [4, 5, 6, 7], b (0): [4, 5, 6, 7] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [6, 8], b (7): [0, 3, 4, 5, 6, 7] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 6, 8], b (5): [6, 8] +idx: 6, delta: 3, matching: false, a (9): [0, 3, 5, 6, 7, 8], b (4): [0, 3, 4, 5, 6, 7] +idx: 6, delta: 4, matching: false, a (10): [2, 5, 6], b (3): [0, 1, 6, 8] +idx: 6, delta: 5, matching: false, a (11): [4, 5, 6, 7], b (2): [0, 3, 5, 6, 7, 8] +idx: 6, delta: 6, matching: false, a (12): [2, 3, 4, 6], b (1): [2, 5, 6] +idx: 6, delta: 7, matching: false, a (13): [0, 1, 2, 3, 5, 6, 7], b (0): [4, 5, 6, 7] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 3, 4, 5, 6, 7], b (8): [0, 1, 6, 8] +idx: 7, delta: 2, matching: false, a (9): [0, 3, 5, 6, 7, 8], b (6): [6, 8] +idx: 7, delta: 3, matching: false, a (10): [2, 5, 6], b (5): [6, 8] +idx: 7, delta: 4, matching: false, a (11): [4, 5, 6, 7], b (4): [0, 3, 4, 5, 6, 7] +idx: 7, delta: 5, matching: false, a (12): [2, 3, 4, 6], b (3): [0, 1, 6, 8] +idx: 7, delta: 6, matching: false, a (13): [0, 1, 2, 3, 5, 6, 7], b (2): [0, 3, 5, 6, 7, 8] +idx: 7, delta: 7, matching: false, a (14): [0, 1, 2, 3, 5, 7], b (1): [2, 5, 6] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 1, 6, 8], b (9): [0, 3, 5, 6, 7, 8] +idx: 8, delta: 2, matching: false, a (10): [2, 5, 6], b (7): [0, 3, 4, 5, 6, 7] +idx: 8, delta: 3, matching: false, a (11): [4, 5, 6, 7], b (6): [6, 8] +idx: 8, delta: 4, matching: false, a (12): [2, 3, 4, 6], b (5): [6, 8] +idx: 8, delta: 5, matching: false, a (13): [0, 1, 2, 3, 5, 6, 7], b (4): [0, 3, 4, 5, 6, 7] +idx: 8, delta: 6, matching: false, a (14): [0, 1, 2, 3, 5, 7], b (3): [0, 1, 6, 8] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 3, 5, 6, 7, 8], b (10): [2, 5, 6] +idx: 9, delta: 2, matching: false, a (11): [4, 5, 6, 7], b (8): [0, 1, 6, 8] +idx: 9, delta: 3, matching: false, a (12): [2, 3, 4, 6], b (7): [0, 3, 4, 5, 6, 7] +idx: 9, delta: 4, matching: false, a (13): [0, 1, 2, 3, 5, 6, 7], b (6): [6, 8] +idx: 9, delta: 5, matching: false, a (14): [0, 1, 2, 3, 5, 7], b (5): [6, 8] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [2, 5, 6], b (11): [4, 5, 6, 7] +idx: 10, delta: 2, matching: false, a (12): [2, 3, 4, 6], b (9): [0, 3, 5, 6, 7, 8] +idx: 10, delta: 3, matching: false, a (13): [0, 1, 2, 3, 5, 6, 7], b (8): [0, 1, 6, 8] +idx: 10, delta: 4, matching: false, a (14): [0, 1, 2, 3, 5, 7], b (7): [0, 3, 4, 5, 6, 7] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [4, 5, 6, 7], b (12): [2, 3, 4, 6] +idx: 11, delta: 2, matching: false, a (13): [0, 1, 2, 3, 5, 6, 7], b (10): [2, 5, 6] +idx: 11, delta: 3, matching: false, a (14): [0, 1, 2, 3, 5, 7], b (9): [0, 3, 5, 6, 7, 8] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [2, 3, 4, 6], b (13): [0, 1, 2, 3, 5, 6, 7] +idx: 12, delta: 2, matching: false, a (14): [0, 1, 2, 3, 5, 7], b (11): [4, 5, 6, 7] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: false, a (13): [0, 1, 2, 3, 5, 6, 7], b (14): [0, 1, 2, 3, 5, 7] +idx: 13, delta: 0 --- found smudge! +idx: 13 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [2, 3, 4, 7, 8, 9, 13, 14], b (1): [3, 8, 13, 14] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [3, 8, 13, 14], b (2): [1, 10, 12, 13, 14] +idx: 1, delta: 2, matching: false, a (3): [2, 4, 7, 9, 12, 13, 14], b (0): [2, 3, 4, 7, 8, 9, 13, 14] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 10, 12, 13, 14], b (3): [2, 4, 7, 9, 12, 13, 14] +idx: 2, delta: 2, matching: false, a (4): [0, 4, 7, 11, 12], b (1): [3, 8, 13, 14] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 2, 4, 7, 9, 10, 11, 13, 14], b (0): [2, 3, 4, 7, 8, 9, 13, 14] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [2, 4, 7, 9, 12, 13, 14], b (4): [0, 4, 7, 11, 12] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 2, 4, 7, 9, 10, 11, 13, 14], b (2): [1, 10, 12, 13, 14] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], b (1): [3, 8, 13, 14] +idx: 3, delta: 4, matching: false, a (7): [0, 2, 4, 7, 9, 11, 13, 14], b (0): [2, 3, 4, 7, 8, 9, 13, 14] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 4, 7, 11, 12], b (5): [0, 1, 2, 4, 7, 9, 10, 11, 13, 14] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], b (3): [2, 4, 7, 9, 12, 13, 14] +idx: 4, delta: 3, matching: false, a (7): [0, 2, 4, 7, 9, 11, 13, 14], b (2): [1, 10, 12, 13, 14] +idx: 4, delta: 4, matching: false, a (8): [2, 3, 5, 6, 8, 9], b (1): [3, 8, 13, 14] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 2, 4, 7, 9, 10, 11, 13, 14], b (6): [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] +idx: 5, delta: 2, matching: false, a (7): [0, 2, 4, 7, 9, 11, 13, 14], b (4): [0, 4, 7, 11, 12] +idx: 5, delta: 3, matching: false, a (8): [2, 3, 5, 6, 8, 9], b (3): [2, 4, 7, 9, 12, 13, 14] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], b (7): [0, 2, 4, 7, 9, 11, 13, 14] +idx: 6, delta: 2, matching: false, a (8): [2, 3, 5, 6, 8, 9], b (5): [0, 1, 2, 4, 7, 9, 10, 11, 13, 14] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 2, 4, 7, 9, 11, 13, 14], b (8): [2, 3, 5, 6, 8, 9] +idx: 7 --- EXITING WITH false +idx: 8 --- EXITING WITH false +..###..###...## +...#....#....## +.#........#.### +..#.#..#.#..### +#...#..#...##.. +###.#..#.###.## +##############. +#.#.#..#.#.#.## +..##.##.##..... +14 (vert: 14, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [0, 2, 3, 4, 6, 7, 9, 10, 11, 13], b (1): [0, 1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 15, 16] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 15, 16], b (2): [1, 12, 14, 15, 16] +idx: 1, delta: 2, matching: false, a (3): [3, 4, 9, 10, 14, 15], b (0): [0, 2, 3, 4, 6, 7, 9, 10, 11, 13] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 12, 14, 15, 16], b (3): [3, 4, 9, 10, 14, 15] +idx: 2, delta: 2, matching: false, a (4): [3, 4, 9, 10, 14, 15], b (1): [0, 1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 15, 16] +idx: 2, delta: 3, matching: false, a (5): [1, 12, 14, 15, 16], b (0): [0, 2, 3, 4, 6, 7, 9, 10, 11, 13] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: true, a (3): [3, 4, 9, 10, 14, 15], b (4): [3, 4, 9, 10, 14, 15] +idx: 3, delta: 2, matching: true, a (5): [1, 12, 14, 15, 16], b (2): [1, 12, 14, 15, 16] +idx: 3, delta: 3, matching: true, a (6): [0, 1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 15, 16], b (1): [0, 1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 15, 16] +idx: 3, delta: 4, matching: true, a (7): [0, 2, 3, 4, 6, 7, 9, 10, 11, 13], b (0): [0, 2, 3, 4, 6, 7, 9, 10, 11, 13] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [3, 4, 9, 10, 14, 15], b (5): [1, 12, 14, 15, 16] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 15, 16], b (3): [3, 4, 9, 10, 14, 15] +idx: 4, delta: 3, matching: false, a (7): [0, 2, 3, 4, 6, 7, 9, 10, 11, 13], b (2): [1, 12, 14, 15, 16] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15], b (1): [0, 1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 15, 16] +idx: 4, delta: 5, matching: false, a (9): [1, 5, 8, 9, 12], b (0): [0, 2, 3, 4, 6, 7, 9, 10, 11, 13] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 12, 14, 15, 16], b (6): [0, 1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 15, 16] +idx: 5, delta: 2, matching: false, a (7): [0, 2, 3, 4, 6, 7, 9, 10, 11, 13], b (4): [3, 4, 9, 10, 14, 15] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15], b (3): [3, 4, 9, 10, 14, 15] +idx: 5, delta: 4, matching: false, a (9): [1, 5, 8, 9, 12], b (2): [1, 12, 14, 15, 16] +idx: 5, delta: 5, matching: false, a (10): [3, 4, 5, 8, 9, 10, 15, 16], b (1): [0, 1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 15, 16] +idx: 5, delta: 6, matching: false, a (11): [2, 4, 9, 11, 15, 16], b (0): [0, 2, 3, 4, 6, 7, 9, 10, 11, 13] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 15, 16], b (7): [0, 2, 3, 4, 6, 7, 9, 10, 11, 13] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15], b (5): [1, 12, 14, 15, 16] +idx: 6, delta: 3, matching: false, a (9): [1, 5, 8, 9, 12], b (4): [3, 4, 9, 10, 14, 15] +idx: 6, delta: 4, matching: false, a (10): [3, 4, 5, 8, 9, 10, 15, 16], b (3): [3, 4, 9, 10, 14, 15] +idx: 6, delta: 5, matching: false, a (11): [2, 4, 9, 11, 15, 16], b (2): [1, 12, 14, 15, 16] +idx: 6, delta: 6, matching: false, a (12): [0, 1, 2, 5, 6, 7, 8, 11, 12, 13, 14, 16], b (1): [0, 1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 15, 16] +idx: 6, delta: 7, matching: false, a (13): [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16], b (0): [0, 2, 3, 4, 6, 7, 9, 10, 11, 13] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 2, 3, 4, 6, 7, 9, 10, 11, 13], b (8): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15] +idx: 7, delta: 2, matching: false, a (9): [1, 5, 8, 9, 12], b (6): [0, 1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 15, 16] +idx: 7, delta: 3, matching: false, a (10): [3, 4, 5, 8, 9, 10, 15, 16], b (5): [1, 12, 14, 15, 16] +idx: 7, delta: 4, matching: false, a (11): [2, 4, 9, 11, 15, 16], b (4): [3, 4, 9, 10, 14, 15] +idx: 7, delta: 5, matching: false, a (12): [0, 1, 2, 5, 6, 7, 8, 11, 12, 13, 14, 16], b (3): [3, 4, 9, 10, 14, 15] +idx: 7, delta: 6, matching: false, a (13): [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16], b (2): [1, 12, 14, 15, 16] +idx: 7, delta: 7, matching: false, a (14): [0, 1, 2, 6, 7, 11, 12, 13, 14, 15], b (1): [0, 1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 15, 16] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15], b (9): [1, 5, 8, 9, 12] +idx: 8, delta: 2, matching: false, a (10): [3, 4, 5, 8, 9, 10, 15, 16], b (7): [0, 2, 3, 4, 6, 7, 9, 10, 11, 13] +idx: 8, delta: 3, matching: false, a (11): [2, 4, 9, 11, 15, 16], b (6): [0, 1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 15, 16] +idx: 8, delta: 4, matching: false, a (12): [0, 1, 2, 5, 6, 7, 8, 11, 12, 13, 14, 16], b (5): [1, 12, 14, 15, 16] +idx: 8, delta: 5, matching: false, a (13): [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16], b (4): [3, 4, 9, 10, 14, 15] +idx: 8, delta: 6, matching: false, a (14): [0, 1, 2, 6, 7, 11, 12, 13, 14, 15], b (3): [3, 4, 9, 10, 14, 15] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [1, 5, 8, 9, 12], b (10): [3, 4, 5, 8, 9, 10, 15, 16] +idx: 9, delta: 2, matching: false, a (11): [2, 4, 9, 11, 15, 16], b (8): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15] +idx: 9, delta: 3, matching: false, a (12): [0, 1, 2, 5, 6, 7, 8, 11, 12, 13, 14, 16], b (7): [0, 2, 3, 4, 6, 7, 9, 10, 11, 13] +idx: 9, delta: 4, matching: false, a (13): [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16], b (6): [0, 1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 15, 16] +idx: 9, delta: 5, matching: false, a (14): [0, 1, 2, 6, 7, 11, 12, 13, 14, 15], b (5): [1, 12, 14, 15, 16] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [3, 4, 5, 8, 9, 10, 15, 16], b (11): [2, 4, 9, 11, 15, 16] +idx: 10, delta: 2, matching: false, a (12): [0, 1, 2, 5, 6, 7, 8, 11, 12, 13, 14, 16], b (9): [1, 5, 8, 9, 12] +idx: 10, delta: 3, matching: false, a (13): [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16], b (8): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15] +idx: 10, delta: 4, matching: false, a (14): [0, 1, 2, 6, 7, 11, 12, 13, 14, 15], b (7): [0, 2, 3, 4, 6, 7, 9, 10, 11, 13] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [2, 4, 9, 11, 15, 16], b (12): [0, 1, 2, 5, 6, 7, 8, 11, 12, 13, 14, 16] +idx: 11, delta: 2, matching: false, a (13): [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16], b (10): [3, 4, 5, 8, 9, 10, 15, 16] +idx: 11, delta: 3, matching: false, a (14): [0, 1, 2, 6, 7, 11, 12, 13, 14, 15], b (9): [1, 5, 8, 9, 12] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [0, 1, 2, 5, 6, 7, 8, 11, 12, 13, 14, 16], b (13): [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16] +idx: 12, delta: 2, matching: false, a (14): [0, 1, 2, 6, 7, 11, 12, 13, 14, 15], b (11): [2, 4, 9, 11, 15, 16] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: false, a (13): [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16], b (14): [0, 1, 2, 6, 7, 11, 12, 13, 14, 15] +idx: 13 --- EXITING WITH false +idx: 14 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [0, 1, 6, 7, 8, 12, 13, 14], b (1): [1, 2, 5, 6, 8, 9, 12, 13, 14] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 2, 5, 6, 8, 9, 12, 13, 14], b (2): [0, 1, 6, 7, 11, 12, 13, 14] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 3, 4, 6, 7, 8, 10], b (0): [0, 1, 6, 7, 8, 12, 13, 14] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 6, 7, 11, 12, 13, 14], b (3): [0, 1, 3, 4, 6, 7, 8, 10] +idx: 2, delta: 2, matching: false, a (4): [0, 3, 4, 7, 8, 10, 11, 13], b (1): [1, 2, 5, 6, 8, 9, 12, 13, 14] +idx: 2, delta: 3, matching: false, a (5): [1, 6, 8, 9, 10, 12, 13], b (0): [0, 1, 6, 7, 8, 12, 13, 14] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 3, 4, 6, 7, 8, 10], b (4): [0, 3, 4, 7, 8, 10, 11, 13] +idx: 3, delta: 2, matching: false, a (5): [1, 6, 8, 9, 10, 12, 13], b (2): [0, 1, 6, 7, 11, 12, 13, 14] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 6, 7, 8, 12, 13, 14], b (1): [1, 2, 5, 6, 8, 9, 12, 13, 14] +idx: 3, delta: 4, matching: true, a (7): [0, 1, 6, 7, 8, 12, 13, 14], b (0): [0, 1, 6, 7, 8, 12, 13, 14] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 3, 4, 7, 8, 10, 11, 13], b (5): [1, 6, 8, 9, 10, 12, 13] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 6, 7, 8, 12, 13, 14], b (3): [0, 1, 3, 4, 6, 7, 8, 10] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 6, 7, 8, 12, 13, 14], b (2): [0, 1, 6, 7, 11, 12, 13, 14] +idx: 4, delta: 4, matching: false, a (8): [1, 6, 8, 9, 10, 12, 13], b (1): [1, 2, 5, 6, 8, 9, 12, 13, 14] +idx: 4, delta: 5, matching: false, a (9): [0, 3, 4, 7, 8, 9, 10, 11, 13], b (0): [0, 1, 6, 7, 8, 12, 13, 14] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 6, 8, 9, 10, 12, 13], b (6): [0, 1, 6, 7, 8, 12, 13, 14] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 6, 7, 8, 12, 13, 14], b (4): [0, 3, 4, 7, 8, 10, 11, 13] +idx: 5, delta: 3, matching: false, a (8): [1, 6, 8, 9, 10, 12, 13], b (3): [0, 1, 3, 4, 6, 7, 8, 10] +idx: 5, delta: 4, matching: false, a (9): [0, 3, 4, 7, 8, 9, 10, 11, 13], b (2): [0, 1, 6, 7, 11, 12, 13, 14] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 3, 4, 6, 7, 8, 10], b (1): [1, 2, 5, 6, 8, 9, 12, 13, 14] +idx: 5, delta: 6, matching: false, a (11): [0, 1, 6, 7, 11, 12, 13, 14], b (0): [0, 1, 6, 7, 8, 12, 13, 14] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: true, a (6): [0, 1, 6, 7, 8, 12, 13, 14], b (7): [0, 1, 6, 7, 8, 12, 13, 14] +idx: 6, delta: 2, matching: true, a (8): [1, 6, 8, 9, 10, 12, 13], b (5): [1, 6, 8, 9, 10, 12, 13] +idx: 6, delta: 3, matching: false, a (9): [0, 3, 4, 7, 8, 9, 10, 11, 13], b (4): [0, 3, 4, 7, 8, 10, 11, 13] +idx: 6, delta: 3 --- found smudge! +idx: 6, delta: 4, matching: true, a (10): [0, 1, 3, 4, 6, 7, 8, 10], b (3): [0, 1, 3, 4, 6, 7, 8, 10] +idx: 6, delta: 5, matching: true, a (11): [0, 1, 6, 7, 11, 12, 13, 14], b (2): [0, 1, 6, 7, 11, 12, 13, 14] +idx: 6, delta: 6, matching: true, a (12): [1, 2, 5, 6, 8, 9, 12, 13, 14], b (1): [1, 2, 5, 6, 8, 9, 12, 13, 14] +idx: 6, delta: 7, matching: true, a (13): [0, 1, 6, 7, 8, 12, 13, 14], b (0): [0, 1, 6, 7, 8, 12, 13, 14] +idx: 6 --- EXITING WITH true +##....###...### +.##..##.##..### +##....##...#### +##.##.###.#.... +#..##..##.##.#. +.#....#.###.##. +##....###...### +##....###...### +.#....#.###.##. +#..##..#####.#. +##.##.###.#.... +##....##...#### +.##..##.##..### +##....###...### +..####..#...### +.######.#.##.## +.##..##...####. +700 (vert: 0, horiz: 7) + +idx: 0, delta: 0, matching: false, a (0): [2, 5, 6, 9, 10], b (1): [0, 1, 3, 6, 9, 10, 12] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 3, 6, 9, 10, 12], b (2): [2, 3, 12] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 3, 4, 5, 6, 9, 10, 11, 12], b (0): [2, 5, 6, 9, 10] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [2, 3, 12], b (3): [0, 1, 3, 4, 5, 6, 9, 10, 11, 12] +idx: 2, delta: 2, matching: false, a (4): [3, 4, 5, 7, 8, 10, 11, 12], b (1): [0, 1, 3, 6, 9, 10, 12] +idx: 2, delta: 3, matching: false, a (5): [2, 4, 6, 9, 11], b (0): [2, 5, 6, 9, 10] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 3, 4, 5, 6, 9, 10, 11, 12], b (4): [3, 4, 5, 7, 8, 10, 11, 12] +idx: 3, delta: 2, matching: false, a (5): [2, 4, 6, 9, 11], b (2): [2, 3, 12] +idx: 3, delta: 3, matching: false, a (6): [2, 7, 8], b (1): [0, 1, 3, 6, 9, 10, 12] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [3, 4, 5, 7, 8, 10, 11, 12], b (5): [2, 4, 6, 9, 11] +idx: 4, delta: 2, matching: false, a (6): [2, 7, 8], b (3): [0, 1, 3, 4, 5, 6, 9, 10, 11, 12] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [2, 4, 6, 9, 11], b (6): [2, 7, 8] +idx: 5 --- EXITING WITH false +idx: 6 --- EXITING WITH false +idx: 0, delta: 0, matching: true, a (0): [1, 3], b (1): [1, 3] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 3], b (2): [0, 2, 5, 6] +idx: 1, delta: 2, matching: false, a (3): [1, 2, 3, 4], b (0): [1, 3] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 2, 5, 6], b (3): [1, 2, 3, 4] +idx: 2, delta: 2, matching: false, a (4): [3, 4, 5], b (1): [1, 3] +idx: 2, delta: 3, matching: false, a (5): [0, 3, 4], b (0): [1, 3] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 2, 3, 4], b (4): [3, 4, 5] +idx: 3, delta: 2, matching: false, a (5): [0, 3, 4], b (2): [0, 2, 5, 6] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 3, 5], b (1): [1, 3] +idx: 3, delta: 4, matching: false, a (7): [4, 6], b (0): [1, 3] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [3, 4, 5], b (5): [0, 3, 4] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 3, 5], b (3): [1, 2, 3, 4] +idx: 4, delta: 3, matching: false, a (7): [4, 6], b (2): [0, 2, 5, 6] +idx: 4, delta: 4, matching: false, a (8): [4, 6], b (1): [1, 3] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 3, 5], b (0): [1, 3] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 3, 4], b (6): [0, 1, 3, 5] +idx: 5, delta: 2, matching: false, a (7): [4, 6], b (4): [3, 4, 5] +idx: 5, delta: 3, matching: false, a (8): [4, 6], b (3): [1, 2, 3, 4] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 3, 5], b (2): [0, 2, 5, 6] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 3, 4], b (1): [1, 3] +idx: 5, delta: 6, matching: false, a (11): [3, 4, 5], b (0): [1, 3] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 1, 3, 5], b (7): [4, 6] +idx: 6, delta: 2, matching: false, a (8): [4, 6], b (5): [0, 3, 4] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 3, 5], b (4): [3, 4, 5] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 3, 4], b (3): [1, 2, 3, 4] +idx: 6, delta: 5, matching: false, a (11): [3, 4, 5], b (2): [0, 2, 5, 6] +idx: 6, delta: 6, matching: false, a (12): [1, 2, 3, 4], b (1): [1, 3] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: true, a (7): [4, 6], b (8): [4, 6] +idx: 7, delta: 2, matching: true, a (9): [0, 1, 3, 5], b (6): [0, 1, 3, 5] +idx: 7, delta: 3, matching: false, a (10): [0, 1, 3, 4], b (5): [0, 3, 4] +idx: 7, delta: 3 --- found smudge! +idx: 7, delta: 4, matching: true, a (11): [3, 4, 5], b (4): [3, 4, 5] +idx: 7, delta: 5, matching: true, a (12): [1, 2, 3, 4], b (3): [1, 2, 3, 4] +idx: 7 --- EXITING WITH true +.#.#... +.#.#... +#.#..## +.####.. +...###. +#..##.. +##.#.#. +....#.# +....#.# +##.#.#. +##.##.. +...###. +.####.. +800 (vert: 0, horiz: 8) + +idx: 0, delta: 0, matching: true, a (0): [1, 2, 3, 5, 6], b (1): [1, 2, 3, 5, 6] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 2, 3, 5, 6], b (2): [0, 1, 3, 5] +idx: 1, delta: 2, matching: false, a (3): [0, 3, 4, 5, 6], b (0): [1, 2, 3, 5, 6] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 3, 5], b (3): [0, 3, 4, 5, 6] +idx: 2, delta: 2, matching: false, a (4): [1, 6], b (1): [1, 2, 3, 5, 6] +idx: 2, delta: 3, matching: false, a (5): [3, 5, 6], b (0): [1, 2, 3, 5, 6] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 3, 4, 5, 6], b (4): [1, 6] +idx: 3, delta: 2, matching: false, a (5): [3, 5, 6], b (2): [0, 1, 3, 5] +idx: 3, delta: 3, matching: false, a (6): [3, 5, 6], b (1): [1, 2, 3, 5, 6] +idx: 3, delta: 4, matching: false, a (7): [1, 6], b (0): [1, 2, 3, 5, 6] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 6], b (5): [3, 5, 6] +idx: 4, delta: 2, matching: false, a (6): [3, 5, 6], b (3): [0, 3, 4, 5, 6] +idx: 4, delta: 3, matching: false, a (7): [1, 6], b (2): [0, 1, 3, 5] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 3, 4, 5, 6], b (1): [1, 2, 3, 5, 6] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 3, 5], b (0): [1, 2, 3, 5, 6] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: true, a (5): [3, 5, 6], b (6): [3, 5, 6] +idx: 5, delta: 2, matching: true, a (7): [1, 6], b (4): [1, 6] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 3, 4, 5, 6], b (3): [0, 3, 4, 5, 6] +idx: 5, delta: 3 --- found smudge! +idx: 5, delta: 4, matching: true, a (9): [0, 1, 3, 5], b (2): [0, 1, 3, 5] +idx: 5, delta: 5, matching: true, a (10): [1, 2, 3, 5, 6], b (1): [1, 2, 3, 5, 6] +idx: 5 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [2, 3, 8, 9], b (1): [0, 1, 2, 4, 7, 8, 9, 10] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 2, 4, 7, 8, 9, 10], b (2): [0, 1, 10] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 2, 3, 5, 6, 8, 9, 10], b (0): [2, 3, 8, 9] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 10], b (3): [0, 1, 2, 3, 5, 6, 8, 9, 10] +idx: 2, delta: 2, matching: false, a (4): [3, 8], b (1): [0, 1, 2, 4, 7, 8, 9, 10] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 2, 3, 5, 6, 8, 9, 10], b (0): [2, 3, 8, 9] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 2, 3, 5, 6, 8, 9, 10], b (4): [3, 8] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 2, 3, 5, 6, 8, 9, 10], b (2): [0, 1, 10] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 3, 4, 5, 6, 7, 8, 10], b (1): [0, 1, 2, 4, 7, 8, 9, 10] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [3, 8], b (5): [0, 1, 2, 3, 5, 6, 8, 9, 10] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 3, 4, 5, 6, 7, 8, 10], b (3): [0, 1, 2, 3, 5, 6, 8, 9, 10] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 2, 3, 5, 6, 8, 9, 10], b (6): [0, 1, 3, 4, 5, 6, 7, 8, 10] +idx: 5 --- EXITING WITH false +idx: 6 --- EXITING WITH false +..##....##. +###.#..#### +##........# +####.##.### +...#....#.. +####.##.### +##.######.# +6 (vert: 6, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [3], b (1): [1, 3, 5, 6] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 3, 5, 6], b (2): [0, 2] +idx: 1, delta: 2, matching: false, a (3): [1, 3, 4, 6], b (0): [3] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 2], b (3): [1, 3, 4, 6] +idx: 2, delta: 2, matching: false, a (4): [2, 4, 5], b (1): [1, 3, 5, 6] +idx: 2, delta: 3, matching: false, a (5): [3, 5, 6], b (0): [3] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 3, 4, 6], b (4): [2, 4, 5] +idx: 3, delta: 2, matching: false, a (5): [3, 5, 6], b (2): [0, 2] +idx: 3, delta: 3, matching: false, a (6): [3, 5, 6], b (1): [1, 3, 5, 6] +idx: 3, delta: 3 --- found smudge! +idx: 3, delta: 4, matching: false, a (7): [2, 4, 5], b (0): [3] +idx: 3, delta: 4 --- found smudge twice! +idx: 4, delta: 0, matching: false, a (4): [2, 4, 5], b (5): [3, 5, 6] +idx: 4, delta: 2, matching: false, a (6): [3, 5, 6], b (3): [1, 3, 4, 6] +idx: 4, delta: 3, matching: false, a (7): [2, 4, 5], b (2): [0, 2] +idx: 4, delta: 4, matching: false, a (8): [1, 3, 6], b (1): [1, 3, 5, 6] +idx: 4, delta: 4 --- found smudge! +idx: 4, delta: 5, matching: false, a (9): [0, 2], b (0): [3] +idx: 4, delta: 5 --- found smudge twice! +idx: 5, delta: 0, matching: true, a (5): [3, 5, 6], b (6): [3, 5, 6] +idx: 5, delta: 2, matching: true, a (7): [2, 4, 5], b (4): [2, 4, 5] +idx: 5, delta: 3, matching: false, a (8): [1, 3, 6], b (3): [1, 3, 4, 6] +idx: 5, delta: 3 --- found smudge! +idx: 5, delta: 4, matching: true, a (9): [0, 2], b (2): [0, 2] +idx: 5, delta: 5, matching: true, a (10): [1, 3, 5, 6], b (1): [1, 3, 5, 6] +idx: 5, delta: 6, matching: true, a (11): [3], b (0): [3] +idx: 5 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [2, 9, 14], b (1): [1, 3, 8, 10, 13, 15] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 3, 8, 10, 13, 15], b (2): [2, 4, 7, 9, 14, 16] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 3, 5, 6, 8, 10, 11, 12, 13, 15], b (0): [2, 9, 14] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [2, 4, 7, 9, 14, 16], b (3): [0, 1, 3, 5, 6, 8, 10, 11, 12, 13, 15] +idx: 2, delta: 2, matching: false, a (4): [3, 4, 7, 16], b (1): [1, 3, 8, 10, 13, 15] +idx: 2, delta: 3, matching: false, a (5): [1, 4, 5, 6, 7, 10, 13, 16], b (0): [2, 9, 14] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 3, 5, 6, 8, 10, 11, 12, 13, 15], b (4): [3, 4, 7, 16] +idx: 3, delta: 2, matching: false, a (5): [1, 4, 5, 6, 7, 10, 13, 16], b (2): [2, 4, 7, 9, 14, 16] +idx: 3, delta: 3, matching: false, a (6): [1, 3, 5, 6, 8, 10, 13, 15], b (1): [1, 3, 8, 10, 13, 15] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [3, 4, 7, 16], b (5): [1, 4, 5, 6, 7, 10, 13, 16] +idx: 4, delta: 2, matching: false, a (6): [1, 3, 5, 6, 8, 10, 13, 15], b (3): [0, 1, 3, 5, 6, 8, 10, 11, 12, 13, 15] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 4, 5, 6, 7, 10, 13, 16], b (6): [1, 3, 5, 6, 8, 10, 13, 15] +idx: 5 --- EXITING WITH false +idx: 6 --- EXITING WITH false +..#......#....#.. +.#.#....#.#..#.#. +..#.#..#.#....#.# +##.#.##.#.####.#. +...##..#........# +.#..####..#..#..# +.#.#.##.#.#..#.#. +6 (vert: 6, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [1, 4, 5, 8, 9, 10, 11, 14, 15, 16], b (1): [0, 1, 4, 5, 8, 9, 10, 11, 14, 15, 16] +idx: 0, delta: 0 --- found smudge! +idx: 0 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [1, 3, 6, 10], b (1): [0, 1, 5, 6, 7, 8, 9, 11] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 5, 6, 7, 8, 9, 11], b (2): [3, 7, 8, 10] +idx: 1, delta: 2, matching: false, a (3): [2, 3, 5, 7, 10, 11], b (0): [1, 3, 6, 10] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [3, 7, 8, 10], b (3): [2, 3, 5, 7, 10, 11] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 5, 8, 9, 10, 11], b (1): [0, 1, 5, 6, 7, 8, 9, 11] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 2, 3, 5, 6, 8, 11], b (0): [1, 3, 6, 10] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [2, 3, 5, 7, 10, 11], b (4): [0, 1, 5, 8, 9, 10, 11] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 2, 3, 5, 6, 8, 11], b (2): [3, 7, 8, 10] +idx: 3, delta: 3, matching: false, a (6): [3, 5, 7, 8, 9, 10], b (1): [0, 1, 5, 6, 7, 8, 9, 11] +idx: 3, delta: 4, matching: false, a (7): [2, 3, 5, 8, 11], b (0): [1, 3, 6, 10] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 5, 8, 9, 10, 11], b (5): [0, 1, 2, 3, 5, 6, 8, 11] +idx: 4, delta: 2, matching: false, a (6): [3, 5, 7, 8, 9, 10], b (3): [2, 3, 5, 7, 10, 11] +idx: 4, delta: 3, matching: false, a (7): [2, 3, 5, 8, 11], b (2): [3, 7, 8, 10] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 2, 3, 4, 5, 6, 10, 12], b (1): [0, 1, 5, 6, 7, 8, 9, 11] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 2, 3, 6, 10, 11, 12], b (0): [1, 3, 6, 10] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 2, 3, 5, 6, 8, 11], b (6): [3, 5, 7, 8, 9, 10] +idx: 5, delta: 2, matching: false, a (7): [2, 3, 5, 8, 11], b (4): [0, 1, 5, 8, 9, 10, 11] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 2, 3, 4, 5, 6, 10, 12], b (3): [2, 3, 5, 7, 10, 11] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 2, 3, 6, 10, 11, 12], b (2): [3, 7, 8, 10] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12], b (1): [0, 1, 5, 6, 7, 8, 9, 11] +idx: 5, delta: 6, matching: false, a (11): [0, 1, 4, 5, 9, 10, 12], b (0): [1, 3, 6, 10] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [3, 5, 7, 8, 9, 10], b (7): [2, 3, 5, 8, 11] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 2, 3, 4, 5, 6, 10, 12], b (5): [0, 1, 2, 3, 5, 6, 8, 11] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 2, 3, 6, 10, 11, 12], b (4): [0, 1, 5, 8, 9, 10, 11] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12], b (3): [2, 3, 5, 7, 10, 11] +idx: 6, delta: 5, matching: false, a (11): [0, 1, 4, 5, 9, 10, 12], b (2): [3, 7, 8, 10] +idx: 6, delta: 6, matching: false, a (12): [4, 7, 9, 10, 12], b (1): [0, 1, 5, 6, 7, 8, 9, 11] +idx: 6, delta: 7, matching: false, a (13): [4, 7, 9, 10, 12], b (0): [1, 3, 6, 10] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [2, 3, 5, 8, 11], b (8): [0, 1, 2, 3, 4, 5, 6, 10, 12] +idx: 7, delta: 2, matching: false, a (9): [0, 1, 2, 3, 6, 10, 11, 12], b (6): [3, 5, 7, 8, 9, 10] +idx: 7, delta: 3, matching: false, a (10): [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12], b (5): [0, 1, 2, 3, 5, 6, 8, 11] +idx: 7, delta: 4, matching: false, a (11): [0, 1, 4, 5, 9, 10, 12], b (4): [0, 1, 5, 8, 9, 10, 11] +idx: 7, delta: 5, matching: false, a (12): [4, 7, 9, 10, 12], b (3): [2, 3, 5, 7, 10, 11] +idx: 7, delta: 6, matching: false, a (13): [4, 7, 9, 10, 12], b (2): [3, 7, 8, 10] +idx: 7, delta: 7, matching: false, a (14): [0, 1, 4, 5, 9, 10, 12], b (1): [0, 1, 5, 6, 7, 8, 9, 11] +idx: 7, delta: 8, matching: false, a (15): [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12], b (0): [1, 3, 6, 10] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 1, 2, 3, 4, 5, 6, 10, 12], b (9): [0, 1, 2, 3, 6, 10, 11, 12] +idx: 8, delta: 2, matching: false, a (10): [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12], b (7): [2, 3, 5, 8, 11] +idx: 8, delta: 3, matching: false, a (11): [0, 1, 4, 5, 9, 10, 12], b (6): [3, 5, 7, 8, 9, 10] +idx: 8, delta: 4, matching: false, a (12): [4, 7, 9, 10, 12], b (5): [0, 1, 2, 3, 5, 6, 8, 11] +idx: 8, delta: 5, matching: false, a (13): [4, 7, 9, 10, 12], b (4): [0, 1, 5, 8, 9, 10, 11] +idx: 8, delta: 6, matching: false, a (14): [0, 1, 4, 5, 9, 10, 12], b (3): [2, 3, 5, 7, 10, 11] +idx: 8, delta: 7, matching: false, a (15): [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12], b (2): [3, 7, 8, 10] +idx: 8, delta: 8, matching: false, a (16): [0, 1, 2, 3, 6, 10, 11, 12], b (1): [0, 1, 5, 6, 7, 8, 9, 11] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 1, 2, 3, 6, 10, 11, 12], b (10): [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12] +idx: 9, delta: 2, matching: false, a (11): [0, 1, 4, 5, 9, 10, 12], b (8): [0, 1, 2, 3, 4, 5, 6, 10, 12] +idx: 9, delta: 3, matching: false, a (12): [4, 7, 9, 10, 12], b (7): [2, 3, 5, 8, 11] +idx: 9, delta: 4, matching: false, a (13): [4, 7, 9, 10, 12], b (6): [3, 5, 7, 8, 9, 10] +idx: 9, delta: 5, matching: false, a (14): [0, 1, 4, 5, 9, 10, 12], b (5): [0, 1, 2, 3, 5, 6, 8, 11] +idx: 9, delta: 6, matching: false, a (15): [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12], b (4): [0, 1, 5, 8, 9, 10, 11] +idx: 9, delta: 7, matching: false, a (16): [0, 1, 2, 3, 6, 10, 11, 12], b (3): [2, 3, 5, 7, 10, 11] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12], b (11): [0, 1, 4, 5, 9, 10, 12] +idx: 10, delta: 2, matching: false, a (12): [4, 7, 9, 10, 12], b (9): [0, 1, 2, 3, 6, 10, 11, 12] +idx: 10, delta: 3, matching: false, a (13): [4, 7, 9, 10, 12], b (8): [0, 1, 2, 3, 4, 5, 6, 10, 12] +idx: 10, delta: 4, matching: false, a (14): [0, 1, 4, 5, 9, 10, 12], b (7): [2, 3, 5, 8, 11] +idx: 10, delta: 5, matching: false, a (15): [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12], b (6): [3, 5, 7, 8, 9, 10] +idx: 10, delta: 6, matching: false, a (16): [0, 1, 2, 3, 6, 10, 11, 12], b (5): [0, 1, 2, 3, 5, 6, 8, 11] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [0, 1, 4, 5, 9, 10, 12], b (12): [4, 7, 9, 10, 12] +idx: 11, delta: 2, matching: false, a (13): [4, 7, 9, 10, 12], b (10): [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12] +idx: 11, delta: 3, matching: false, a (14): [0, 1, 4, 5, 9, 10, 12], b (9): [0, 1, 2, 3, 6, 10, 11, 12] +idx: 11, delta: 4, matching: false, a (15): [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12], b (8): [0, 1, 2, 3, 4, 5, 6, 10, 12] +idx: 11, delta: 5, matching: false, a (16): [0, 1, 2, 3, 6, 10, 11, 12], b (7): [2, 3, 5, 8, 11] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: true, a (12): [4, 7, 9, 10, 12], b (13): [4, 7, 9, 10, 12] +idx: 12, delta: 2, matching: true, a (14): [0, 1, 4, 5, 9, 10, 12], b (11): [0, 1, 4, 5, 9, 10, 12] +idx: 12, delta: 3, matching: true, a (15): [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12], b (10): [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12] +idx: 12, delta: 4, matching: true, a (16): [0, 1, 2, 3, 6, 10, 11, 12], b (9): [0, 1, 2, 3, 6, 10, 11, 12] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: false, a (13): [4, 7, 9, 10, 12], b (14): [0, 1, 4, 5, 9, 10, 12] +idx: 13, delta: 2, matching: false, a (15): [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12], b (12): [4, 7, 9, 10, 12] +idx: 13, delta: 3, matching: false, a (16): [0, 1, 2, 3, 6, 10, 11, 12], b (11): [0, 1, 4, 5, 9, 10, 12] +idx: 13 --- EXITING WITH false +idx: 14, delta: 0, matching: false, a (14): [0, 1, 4, 5, 9, 10, 12], b (15): [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12] +idx: 14, delta: 2, matching: false, a (16): [0, 1, 2, 3, 6, 10, 11, 12], b (13): [4, 7, 9, 10, 12] +idx: 14 --- EXITING WITH false +idx: 15, delta: 0, matching: false, a (15): [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12], b (16): [0, 1, 2, 3, 6, 10, 11, 12] +idx: 15 --- EXITING WITH false +idx: 16 --- EXITING WITH false +.#.#..#...#.. +##...#####.#. +...#...##.#.. +..##.#.#..##. +##...#..####. +####.##.#..#. +...#.#.####.. +..##.#..#..#. +#######...#.# +####..#...### +####.######.# +##..##...##.# +....#..#.##.# +....#..#.##.# +##..##...##.# +####.######.# +####..#...### +1 (vert: 1, horiz: 0) + +idx: 0, delta: 0, matching: true, a (0): [0, 3, 4, 6, 8, 9, 11, 12], b (1): [0, 3, 4, 6, 8, 9, 11, 12] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 3, 4, 6, 8, 9, 11, 12], b (2): [1, 2, 3, 4, 5, 6, 8, 9, 10] +idx: 1, delta: 2, matching: false, a (3): [1, 3, 5, 9, 10, 11, 12], b (0): [0, 3, 4, 6, 8, 9, 11, 12] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 2, 3, 4, 5, 6, 8, 9, 10], b (3): [1, 3, 5, 9, 10, 11, 12] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 4, 5, 6, 10, 11], b (1): [0, 3, 4, 6, 8, 9, 11, 12] +idx: 2, delta: 3, matching: false, a (5): [0, 3, 7, 8, 9, 10, 11], b (0): [0, 3, 4, 6, 8, 9, 11, 12] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 3, 5, 9, 10, 11, 12], b (4): [0, 1, 4, 5, 6, 10, 11] +idx: 3, delta: 2, matching: false, a (5): [0, 3, 7, 8, 9, 10, 11], b (2): [1, 2, 3, 4, 5, 6, 8, 9, 10] +idx: 3, delta: 3, matching: false, a (6): [2, 3, 7, 8, 9, 10, 11, 12], b (1): [0, 3, 4, 6, 8, 9, 11, 12] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 4, 7, 8, 9, 11, 12], b (0): [0, 3, 4, 6, 8, 9, 11, 12] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 4, 5, 6, 10, 11], b (5): [0, 3, 7, 8, 9, 10, 11] +idx: 4, delta: 2, matching: false, a (6): [2, 3, 7, 8, 9, 10, 11, 12], b (3): [1, 3, 5, 9, 10, 11, 12] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 4, 7, 8, 9, 11, 12], b (2): [1, 2, 3, 4, 5, 6, 8, 9, 10] +idx: 4, delta: 4, matching: false, a (8): [1, 3, 7, 10, 12], b (1): [0, 3, 4, 6, 8, 9, 11, 12] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 12], b (0): [0, 3, 4, 6, 8, 9, 11, 12] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 3, 7, 8, 9, 10, 11], b (6): [2, 3, 7, 8, 9, 10, 11, 12] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 4, 7, 8, 9, 11, 12], b (4): [0, 1, 4, 5, 6, 10, 11] +idx: 5, delta: 3, matching: false, a (8): [1, 3, 7, 10, 12], b (3): [1, 3, 5, 9, 10, 11, 12] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 12], b (2): [1, 2, 3, 4, 5, 6, 8, 9, 10] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 12], b (1): [0, 3, 4, 6, 8, 9, 11, 12] +idx: 5, delta: 6, matching: false, a (11): [1, 3, 7, 10, 12], b (0): [0, 3, 4, 6, 8, 9, 11, 12] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [2, 3, 7, 8, 9, 10, 11, 12], b (7): [0, 1, 4, 7, 8, 9, 11, 12] +idx: 6, delta: 2, matching: false, a (8): [1, 3, 7, 10, 12], b (5): [0, 3, 7, 8, 9, 10, 11] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 12], b (4): [0, 1, 4, 5, 6, 10, 11] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 12], b (3): [1, 3, 5, 9, 10, 11, 12] +idx: 6, delta: 5, matching: false, a (11): [1, 3, 7, 10, 12], b (2): [1, 2, 3, 4, 5, 6, 8, 9, 10] +idx: 6, delta: 6, matching: false, a (12): [0, 1, 4, 7, 8, 9, 10, 11, 12], b (1): [0, 3, 4, 6, 8, 9, 11, 12] +idx: 6, delta: 7, matching: false, a (13): [2, 3, 7, 8, 9, 10, 11, 12], b (0): [0, 3, 4, 6, 8, 9, 11, 12] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 4, 7, 8, 9, 11, 12], b (8): [1, 3, 7, 10, 12] +idx: 7, delta: 2, matching: false, a (9): [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 12], b (6): [2, 3, 7, 8, 9, 10, 11, 12] +idx: 7, delta: 3, matching: false, a (10): [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 12], b (5): [0, 3, 7, 8, 9, 10, 11] +idx: 7, delta: 4, matching: false, a (11): [1, 3, 7, 10, 12], b (4): [0, 1, 4, 5, 6, 10, 11] +idx: 7, delta: 5, matching: false, a (12): [0, 1, 4, 7, 8, 9, 10, 11, 12], b (3): [1, 3, 5, 9, 10, 11, 12] +idx: 7, delta: 6, matching: false, a (13): [2, 3, 7, 8, 9, 10, 11, 12], b (2): [1, 2, 3, 4, 5, 6, 8, 9, 10] +idx: 7, delta: 7, matching: false, a (14): [0, 3, 7, 8, 9, 10, 11], b (1): [0, 3, 4, 6, 8, 9, 11, 12] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [1, 3, 7, 10, 12], b (9): [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 12] +idx: 8, delta: 2, matching: false, a (10): [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 12], b (7): [0, 1, 4, 7, 8, 9, 11, 12] +idx: 8, delta: 3, matching: false, a (11): [1, 3, 7, 10, 12], b (6): [2, 3, 7, 8, 9, 10, 11, 12] +idx: 8, delta: 4, matching: false, a (12): [0, 1, 4, 7, 8, 9, 10, 11, 12], b (5): [0, 3, 7, 8, 9, 10, 11] +idx: 8, delta: 5, matching: false, a (13): [2, 3, 7, 8, 9, 10, 11, 12], b (4): [0, 1, 4, 5, 6, 10, 11] +idx: 8, delta: 6, matching: false, a (14): [0, 3, 7, 8, 9, 10, 11], b (3): [1, 3, 5, 9, 10, 11, 12] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: true, a (9): [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 12], b (10): [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 12] +idx: 9, delta: 2, matching: true, a (11): [1, 3, 7, 10, 12], b (8): [1, 3, 7, 10, 12] +idx: 9, delta: 3, matching: false, a (12): [0, 1, 4, 7, 8, 9, 10, 11, 12], b (7): [0, 1, 4, 7, 8, 9, 11, 12] +idx: 9, delta: 3 --- found smudge! +idx: 9, delta: 4, matching: true, a (13): [2, 3, 7, 8, 9, 10, 11, 12], b (6): [2, 3, 7, 8, 9, 10, 11, 12] +idx: 9, delta: 5, matching: true, a (14): [0, 3, 7, 8, 9, 10, 11], b (5): [0, 3, 7, 8, 9, 10, 11] +idx: 9 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [0, 1, 4, 5, 7, 9, 10, 12, 14], b (1): [2, 3, 4, 7, 8, 9, 10, 11, 12] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [2, 3, 4, 7, 8, 9, 10, 11, 12], b (2): [2, 6, 9, 10, 13] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 2, 3, 5, 6, 8, 9, 10, 11, 13, 14], b (0): [0, 1, 4, 5, 7, 9, 10, 12, 14] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [2, 6, 9, 10, 13], b (3): [0, 1, 2, 3, 5, 6, 8, 9, 10, 11, 13, 14] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 2, 4, 7, 9, 10, 12], b (1): [2, 3, 4, 7, 8, 9, 10, 11, 12] +idx: 2, delta: 3, matching: false, a (5): [2, 3, 4, 9, 10], b (0): [0, 1, 4, 5, 7, 9, 10, 12, 14] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 2, 3, 5, 6, 8, 9, 10, 11, 13, 14], b (4): [0, 1, 2, 4, 7, 9, 10, 12] +idx: 3, delta: 2, matching: false, a (5): [2, 3, 4, 9, 10], b (2): [2, 6, 9, 10, 13] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 2, 4, 9, 10], b (1): [2, 3, 4, 7, 8, 9, 10, 11, 12] +idx: 3, delta: 4, matching: false, a (7): [5, 6, 7, 8, 9, 10, 11, 12, 13, 14], b (0): [0, 1, 4, 5, 7, 9, 10, 12, 14] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 2, 4, 7, 9, 10, 12], b (5): [2, 3, 4, 9, 10] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 2, 4, 9, 10], b (3): [0, 1, 2, 3, 5, 6, 8, 9, 10, 11, 13, 14] +idx: 4, delta: 3, matching: false, a (7): [5, 6, 7, 8, 9, 10, 11, 12, 13, 14], b (2): [2, 6, 9, 10, 13] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 2, 5, 6, 7, 12, 13, 14], b (1): [2, 3, 4, 7, 8, 9, 10, 11, 12] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 2, 3, 5, 6, 7, 9, 10, 12, 13, 14], b (0): [0, 1, 4, 5, 7, 9, 10, 12, 14] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [2, 3, 4, 9, 10], b (6): [0, 1, 2, 4, 9, 10] +idx: 5, delta: 2, matching: false, a (7): [5, 6, 7, 8, 9, 10, 11, 12, 13, 14], b (4): [0, 1, 2, 4, 7, 9, 10, 12] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 2, 5, 6, 7, 12, 13, 14], b (3): [0, 1, 2, 3, 5, 6, 8, 9, 10, 11, 13, 14] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 2, 3, 5, 6, 7, 9, 10, 12, 13, 14], b (2): [2, 6, 9, 10, 13] +idx: 5, delta: 5, matching: false, a (10): [2, 3, 4, 5, 6, 8, 11, 12, 13, 14], b (1): [2, 3, 4, 7, 8, 9, 10, 11, 12] +idx: 5, delta: 6, matching: false, a (11): [0, 1, 3, 4, 5, 6, 7, 9, 10, 12, 13, 14], b (0): [0, 1, 4, 5, 7, 9, 10, 12, 14] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 1, 2, 4, 9, 10], b (7): [5, 6, 7, 8, 9, 10, 11, 12, 13, 14] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 2, 5, 6, 7, 12, 13, 14], b (5): [2, 3, 4, 9, 10] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 2, 3, 5, 6, 7, 9, 10, 12, 13, 14], b (4): [0, 1, 2, 4, 7, 9, 10, 12] +idx: 6, delta: 4, matching: false, a (10): [2, 3, 4, 5, 6, 8, 11, 12, 13, 14], b (3): [0, 1, 2, 3, 5, 6, 8, 9, 10, 11, 13, 14] +idx: 6, delta: 5, matching: false, a (11): [0, 1, 3, 4, 5, 6, 7, 9, 10, 12, 13, 14], b (2): [2, 6, 9, 10, 13] +idx: 6, delta: 6, matching: false, a (12): [0, 1, 3, 6, 7, 8, 9, 10, 11, 12, 13], b (1): [2, 3, 4, 7, 8, 9, 10, 11, 12] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [5, 6, 7, 8, 9, 10, 11, 12, 13, 14], b (8): [0, 1, 2, 5, 6, 7, 12, 13, 14] +idx: 7, delta: 2, matching: false, a (9): [0, 1, 2, 3, 5, 6, 7, 9, 10, 12, 13, 14], b (6): [0, 1, 2, 4, 9, 10] +idx: 7, delta: 3, matching: false, a (10): [2, 3, 4, 5, 6, 8, 11, 12, 13, 14], b (5): [2, 3, 4, 9, 10] +idx: 7, delta: 4, matching: false, a (11): [0, 1, 3, 4, 5, 6, 7, 9, 10, 12, 13, 14], b (4): [0, 1, 2, 4, 7, 9, 10, 12] +idx: 7, delta: 5, matching: false, a (12): [0, 1, 3, 6, 7, 8, 9, 10, 11, 12, 13], b (3): [0, 1, 2, 3, 5, 6, 8, 9, 10, 11, 13, 14] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 1, 2, 5, 6, 7, 12, 13, 14], b (9): [0, 1, 2, 3, 5, 6, 7, 9, 10, 12, 13, 14] +idx: 8, delta: 2, matching: false, a (10): [2, 3, 4, 5, 6, 8, 11, 12, 13, 14], b (7): [5, 6, 7, 8, 9, 10, 11, 12, 13, 14] +idx: 8, delta: 3, matching: false, a (11): [0, 1, 3, 4, 5, 6, 7, 9, 10, 12, 13, 14], b (6): [0, 1, 2, 4, 9, 10] +idx: 8, delta: 4, matching: false, a (12): [0, 1, 3, 6, 7, 8, 9, 10, 11, 12, 13], b (5): [2, 3, 4, 9, 10] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 1, 2, 3, 5, 6, 7, 9, 10, 12, 13, 14], b (10): [2, 3, 4, 5, 6, 8, 11, 12, 13, 14] +idx: 9, delta: 2, matching: false, a (11): [0, 1, 3, 4, 5, 6, 7, 9, 10, 12, 13, 14], b (8): [0, 1, 2, 5, 6, 7, 12, 13, 14] +idx: 9, delta: 3, matching: false, a (12): [0, 1, 3, 6, 7, 8, 9, 10, 11, 12, 13], b (7): [5, 6, 7, 8, 9, 10, 11, 12, 13, 14] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [2, 3, 4, 5, 6, 8, 11, 12, 13, 14], b (11): [0, 1, 3, 4, 5, 6, 7, 9, 10, 12, 13, 14] +idx: 10, delta: 2, matching: false, a (12): [0, 1, 3, 6, 7, 8, 9, 10, 11, 12, 13], b (9): [0, 1, 2, 3, 5, 6, 7, 9, 10, 12, 13, 14] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [0, 1, 3, 4, 5, 6, 7, 9, 10, 12, 13, 14], b (12): [0, 1, 3, 6, 7, 8, 9, 10, 11, 12, 13] +idx: 11 --- EXITING WITH false +idx: 12 --- EXITING WITH false +##..##.#.##.#.# +..###..######.. +..#...#..##..#. +####.##.####.## +###.#..#.##.#.. +..###....##.... +###.#....##.... +.....########## +###..###....### +####.###.##.### +..#####.#..#### +##.#####.##.### +##.#..########. +10 (vert: 10, horiz: 0) + +idx: 0, delta: 0, matching: true, a (0): [0, 1, 3, 4, 5, 6, 8, 10, 13, 15], b (1): [0, 1, 3, 4, 5, 6, 8, 10, 13, 15] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 3, 4, 5, 6, 8, 10, 13, 15], b (2): [1, 3, 4, 5, 6, 7, 9, 10, 13, 14, 16] +idx: 1, delta: 2, matching: false, a (3): [0, 2, 3, 4, 7, 9, 10, 13, 14, 15, 16], b (0): [0, 1, 3, 4, 5, 6, 8, 10, 13, 15] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 3, 4, 5, 6, 7, 9, 10, 13, 14, 16], b (3): [0, 2, 3, 4, 7, 9, 10, 13, 14, 15, 16] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 2, 3, 4, 7, 8, 9, 14, 15, 16], b (1): [0, 1, 3, 4, 5, 6, 8, 10, 13, 15] +idx: 2, delta: 3, matching: false, a (5): [0, 2, 3, 8, 10, 13, 15], b (0): [0, 1, 3, 4, 5, 6, 8, 10, 13, 15] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 2, 3, 4, 7, 9, 10, 13, 14, 15, 16], b (4): [0, 1, 2, 3, 4, 7, 8, 9, 14, 15, 16] +idx: 3, delta: 2, matching: false, a (5): [0, 2, 3, 8, 10, 13, 15], b (2): [1, 3, 4, 5, 6, 7, 9, 10, 13, 14, 16] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 2, 6, 8, 9, 11, 12, 14, 15], b (1): [0, 1, 3, 4, 5, 6, 8, 10, 13, 15] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 2, 3, 4, 7, 8, 9, 14, 15, 16], b (5): [0, 2, 3, 8, 10, 13, 15] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 2, 6, 8, 9, 11, 12, 14, 15], b (3): [0, 2, 3, 4, 7, 9, 10, 13, 14, 15, 16] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 2, 3, 8, 10, 13, 15], b (6): [0, 1, 2, 6, 8, 9, 11, 12, 14, 15] +idx: 5 --- EXITING WITH false +idx: 6 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [0, 1, 3, 4, 5, 6], b (1): [0, 1, 2, 4, 6] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 2, 4, 6], b (2): [3, 4, 5, 6] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 2, 3, 4, 5], b (0): [0, 1, 3, 4, 5, 6] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [3, 4, 5, 6], b (3): [0, 1, 2, 3, 4, 5] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 2, 3, 4], b (1): [0, 1, 2, 4, 6] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 2], b (0): [0, 1, 3, 4, 5, 6] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 2, 3, 4, 5], b (4): [0, 1, 2, 3, 4] +idx: 3, delta: 0 --- found smudge! +idx: 3, delta: 2, matching: false, a (5): [0, 1, 2], b (2): [3, 4, 5, 6] +idx: 3, delta: 2 --- found smudge twice! +idx: 4, delta: 0, matching: false, a (4): [0, 1, 2, 3, 4], b (5): [0, 1, 2] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 2, 6], b (3): [0, 1, 2, 3, 4, 5] +idx: 4, delta: 3, matching: false, a (7): [2, 3, 4], b (2): [3, 4, 5, 6] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 4, 5, 6], b (1): [0, 1, 2, 4, 6] +idx: 4, delta: 5, matching: false, a (9): [2, 3, 4, 6], b (0): [0, 1, 3, 4, 5, 6] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 2], b (6): [0, 1, 2, 6] +idx: 5, delta: 0 --- found smudge! +idx: 5, delta: 2, matching: false, a (7): [2, 3, 4], b (4): [0, 1, 2, 3, 4] +idx: 5, delta: 2 --- found smudge twice! +idx: 6, delta: 0, matching: false, a (6): [0, 1, 2, 6], b (7): [2, 3, 4] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 4, 5, 6], b (5): [0, 1, 2] +idx: 6, delta: 3, matching: false, a (9): [2, 3, 4, 6], b (4): [0, 1, 2, 3, 4] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 2, 3, 5], b (3): [0, 1, 2, 3, 4, 5] +idx: 6, delta: 4 --- found smudge! +idx: 6, delta: 5, matching: false, a (11): [6], b (2): [3, 4, 5, 6] +idx: 6, delta: 5 --- found smudge twice! +idx: 7, delta: 0, matching: false, a (7): [2, 3, 4], b (8): [0, 1, 4, 5, 6] +idx: 7, delta: 2, matching: false, a (9): [2, 3, 4, 6], b (6): [0, 1, 2, 6] +idx: 7, delta: 3, matching: false, a (10): [0, 1, 2, 3, 5], b (5): [0, 1, 2] +idx: 7, delta: 4, matching: false, a (11): [6], b (4): [0, 1, 2, 3, 4] +idx: 7, delta: 5, matching: false, a (12): [6], b (3): [0, 1, 2, 3, 4, 5] +idx: 7, delta: 6, matching: false, a (13): [0, 1, 2, 3, 5], b (2): [3, 4, 5, 6] +idx: 7, delta: 7, matching: false, a (14): [2, 3, 4, 6], b (1): [0, 1, 2, 4, 6] +idx: 7, delta: 8, matching: true, a (15): [0, 1, 3, 4, 5, 6], b (0): [0, 1, 3, 4, 5, 6] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 1, 4, 5, 6], b (9): [2, 3, 4, 6] +idx: 8, delta: 2, matching: false, a (10): [0, 1, 2, 3, 5], b (7): [2, 3, 4] +idx: 8, delta: 3, matching: false, a (11): [6], b (6): [0, 1, 2, 6] +idx: 8, delta: 4, matching: false, a (12): [6], b (5): [0, 1, 2] +idx: 8, delta: 5, matching: false, a (13): [0, 1, 2, 3, 5], b (4): [0, 1, 2, 3, 4] +idx: 8, delta: 6, matching: false, a (14): [2, 3, 4, 6], b (3): [0, 1, 2, 3, 4, 5] +idx: 8, delta: 7, matching: false, a (15): [0, 1, 3, 4, 5, 6], b (2): [3, 4, 5, 6] +idx: 8, delta: 8, matching: false, a (16): [2, 3, 4], b (1): [0, 1, 2, 4, 6] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [2, 3, 4, 6], b (10): [0, 1, 2, 3, 5] +idx: 9, delta: 2, matching: false, a (11): [6], b (8): [0, 1, 4, 5, 6] +idx: 9, delta: 3, matching: false, a (12): [6], b (7): [2, 3, 4] +idx: 9, delta: 4, matching: false, a (13): [0, 1, 2, 3, 5], b (6): [0, 1, 2, 6] +idx: 9, delta: 5, matching: false, a (14): [2, 3, 4, 6], b (5): [0, 1, 2] +idx: 9, delta: 6, matching: false, a (15): [0, 1, 3, 4, 5, 6], b (4): [0, 1, 2, 3, 4] +idx: 9, delta: 7, matching: false, a (16): [2, 3, 4], b (3): [0, 1, 2, 3, 4, 5] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 1, 2, 3, 5], b (11): [6] +idx: 10, delta: 2, matching: false, a (12): [6], b (9): [2, 3, 4, 6] +idx: 10, delta: 3, matching: false, a (13): [0, 1, 2, 3, 5], b (8): [0, 1, 4, 5, 6] +idx: 10, delta: 4, matching: false, a (14): [2, 3, 4, 6], b (7): [2, 3, 4] +idx: 10, delta: 4 --- found smudge! +idx: 10, delta: 5, matching: false, a (15): [0, 1, 3, 4, 5, 6], b (6): [0, 1, 2, 6] +idx: 10, delta: 5 --- found smudge twice! +idx: 11, delta: 0, matching: true, a (11): [6], b (12): [6] +idx: 11, delta: 2, matching: true, a (13): [0, 1, 2, 3, 5], b (10): [0, 1, 2, 3, 5] +idx: 11, delta: 3, matching: true, a (14): [2, 3, 4, 6], b (9): [2, 3, 4, 6] +idx: 11, delta: 4, matching: false, a (15): [0, 1, 3, 4, 5, 6], b (8): [0, 1, 4, 5, 6] +idx: 11, delta: 4 --- found smudge! +idx: 11, delta: 5, matching: true, a (16): [2, 3, 4], b (7): [2, 3, 4] +idx: 11 --- EXITING WITH true +##.#### +###.#.# +...#### +######. +#####.. +###.... +###...# +..###.. +##..### +..###.# +####.#. +......# +......# +####.#. +..###.# +##.#### +..###.. +1200 (vert: 0, horiz: 12) + +idx: 0, delta: 0, matching: false, a (0): [1, 2, 6, 7, 8, 9, 13], b (1): [1, 4, 5, 12] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: true, a (1): [1, 4, 5, 12], b (2): [1, 4, 5, 12] +idx: 1, delta: 2, matching: true, a (3): [1, 2, 6, 7, 8, 9, 13], b (0): [1, 2, 6, 7, 8, 9, 13] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 4, 5, 12], b (3): [1, 2, 6, 7, 8, 9, 13] +idx: 2, delta: 2, matching: false, a (4): [0, 4, 6, 7, 8, 11], b (1): [1, 4, 5, 12] +idx: 2, delta: 3, matching: false, a (5): [6, 7, 8, 9, 11, 12, 13, 14], b (0): [1, 2, 6, 7, 8, 9, 13] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 2, 6, 7, 8, 9, 13], b (4): [0, 4, 6, 7, 8, 11] +idx: 3, delta: 2, matching: false, a (5): [6, 7, 8, 9, 11, 12, 13, 14], b (2): [1, 4, 5, 12] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 3, 5, 14], b (1): [1, 4, 5, 12] +idx: 3, delta: 4, matching: false, a (7): [0, 5, 6, 9, 10, 12, 13], b (0): [1, 2, 6, 7, 8, 9, 13] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 4, 6, 7, 8, 11], b (5): [6, 7, 8, 9, 11, 12, 13, 14] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 3, 5, 14], b (3): [1, 2, 6, 7, 8, 9, 13] +idx: 4, delta: 3, matching: false, a (7): [0, 5, 6, 9, 10, 12, 13], b (2): [1, 4, 5, 12] +idx: 4, delta: 4, matching: false, a (8): [2, 3, 7, 9, 10, 13], b (1): [1, 4, 5, 12] +idx: 4, delta: 5, matching: false, a (9): [2, 3, 7, 9, 10, 13], b (0): [1, 2, 6, 7, 8, 9, 13] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [6, 7, 8, 9, 11, 12, 13, 14], b (6): [0, 1, 3, 5, 14] +idx: 5, delta: 2, matching: false, a (7): [0, 5, 6, 9, 10, 12, 13], b (4): [0, 4, 6, 7, 8, 11] +idx: 5, delta: 3, matching: false, a (8): [2, 3, 7, 9, 10, 13], b (3): [1, 2, 6, 7, 8, 9, 13] +idx: 5, delta: 4, matching: false, a (9): [2, 3, 7, 9, 10, 13], b (2): [1, 4, 5, 12] +idx: 5, delta: 5, matching: false, a (10): [0, 5, 6, 9, 10, 12, 13], b (1): [1, 4, 5, 12] +idx: 5, delta: 6, matching: false, a (11): [0, 1, 3, 5, 14], b (0): [1, 2, 6, 7, 8, 9, 13] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 1, 3, 5, 14], b (7): [0, 5, 6, 9, 10, 12, 13] +idx: 6, delta: 2, matching: false, a (8): [2, 3, 7, 9, 10, 13], b (5): [6, 7, 8, 9, 11, 12, 13, 14] +idx: 6, delta: 3, matching: false, a (9): [2, 3, 7, 9, 10, 13], b (4): [0, 4, 6, 7, 8, 11] +idx: 6, delta: 4, matching: false, a (10): [0, 5, 6, 9, 10, 12, 13], b (3): [1, 2, 6, 7, 8, 9, 13] +idx: 6, delta: 5, matching: false, a (11): [0, 1, 3, 5, 14], b (2): [1, 4, 5, 12] +idx: 6, delta: 6, matching: false, a (12): [6, 7, 8, 9, 11, 12, 13, 14], b (1): [1, 4, 5, 12] +idx: 6, delta: 7, matching: false, a (13): [0, 4, 6, 8, 11], b (0): [1, 2, 6, 7, 8, 9, 13] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 5, 6, 9, 10, 12, 13], b (8): [2, 3, 7, 9, 10, 13] +idx: 7, delta: 2, matching: false, a (9): [2, 3, 7, 9, 10, 13], b (6): [0, 1, 3, 5, 14] +idx: 7, delta: 3, matching: false, a (10): [0, 5, 6, 9, 10, 12, 13], b (5): [6, 7, 8, 9, 11, 12, 13, 14] +idx: 7, delta: 4, matching: false, a (11): [0, 1, 3, 5, 14], b (4): [0, 4, 6, 7, 8, 11] +idx: 7, delta: 5, matching: false, a (12): [6, 7, 8, 9, 11, 12, 13, 14], b (3): [1, 2, 6, 7, 8, 9, 13] +idx: 7, delta: 6, matching: false, a (13): [0, 4, 6, 8, 11], b (2): [1, 4, 5, 12] +idx: 7, delta: 7, matching: false, a (14): [1, 2, 6, 7, 8, 9, 13], b (1): [1, 4, 5, 12] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: true, a (8): [2, 3, 7, 9, 10, 13], b (9): [2, 3, 7, 9, 10, 13] +idx: 8, delta: 2, matching: true, a (10): [0, 5, 6, 9, 10, 12, 13], b (7): [0, 5, 6, 9, 10, 12, 13] +idx: 8, delta: 3, matching: true, a (11): [0, 1, 3, 5, 14], b (6): [0, 1, 3, 5, 14] +idx: 8, delta: 4, matching: true, a (12): [6, 7, 8, 9, 11, 12, 13, 14], b (5): [6, 7, 8, 9, 11, 12, 13, 14] +idx: 8, delta: 5, matching: false, a (13): [0, 4, 6, 8, 11], b (4): [0, 4, 6, 7, 8, 11] +idx: 8, delta: 5 --- found smudge! +idx: 8, delta: 6, matching: true, a (14): [1, 2, 6, 7, 8, 9, 13], b (3): [1, 2, 6, 7, 8, 9, 13] +idx: 8 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [4, 6, 7, 10, 11, 13], b (1): [0, 1, 2, 3, 6, 11, 14] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 2, 3, 6, 11, 14], b (2): [0, 3, 8, 9, 14] +idx: 1, delta: 2, matching: false, a (3): [6, 8, 9, 11], b (0): [4, 6, 7, 10, 11, 13] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 3, 8, 9, 14], b (3): [6, 8, 9, 11] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 4, 13], b (1): [0, 1, 2, 3, 6, 11, 14] +idx: 2, delta: 3, matching: false, a (5): [1, 2, 6, 7, 10, 11], b (0): [4, 6, 7, 10, 11, 13] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [6, 8, 9, 11], b (4): [1, 2, 4, 13] +idx: 3, delta: 2, matching: false, a (5): [1, 2, 6, 7, 10, 11], b (2): [0, 3, 8, 9, 14] +idx: 3, delta: 3, matching: false, a (6): [0, 3, 4, 5, 7, 10, 12, 13, 14], b (1): [0, 1, 2, 3, 6, 11, 14] +idx: 3, delta: 4, matching: false, a (7): [0, 3, 4, 5, 8, 9, 12, 14], b (0): [4, 6, 7, 10, 11, 13] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 2, 4, 13], b (5): [1, 2, 6, 7, 10, 11] +idx: 4, delta: 2, matching: false, a (6): [0, 3, 4, 5, 7, 10, 12, 13, 14], b (3): [6, 8, 9, 11] +idx: 4, delta: 3, matching: false, a (7): [0, 3, 4, 5, 8, 9, 12, 14], b (2): [0, 3, 8, 9, 14] +idx: 4, delta: 4, matching: false, a (8): [0, 3, 4, 5, 12, 13, 14], b (1): [0, 1, 2, 3, 6, 11, 14] +idx: 4, delta: 5, matching: false, a (9): [0, 3, 5, 7, 8, 9, 10, 12, 14], b (0): [4, 6, 7, 10, 11, 13] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 2, 6, 7, 10, 11], b (6): [0, 3, 4, 5, 7, 10, 12, 13, 14] +idx: 5, delta: 2, matching: false, a (7): [0, 3, 4, 5, 8, 9, 12, 14], b (4): [1, 2, 4, 13] +idx: 5, delta: 3, matching: false, a (8): [0, 3, 4, 5, 12, 13, 14], b (3): [6, 8, 9, 11] +idx: 5, delta: 4, matching: false, a (9): [0, 3, 5, 7, 8, 9, 10, 12, 14], b (2): [0, 3, 8, 9, 14] +idx: 5, delta: 5, matching: false, a (10): [7, 8, 9, 10], b (1): [0, 1, 2, 3, 6, 11, 14] +idx: 5, delta: 6, matching: false, a (11): [4, 5, 12, 13], b (0): [4, 6, 7, 10, 11, 13] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 3, 4, 5, 7, 10, 12, 13, 14], b (7): [0, 3, 4, 5, 8, 9, 12, 14] +idx: 6, delta: 2, matching: false, a (8): [0, 3, 4, 5, 12, 13, 14], b (5): [1, 2, 6, 7, 10, 11] +idx: 6, delta: 3, matching: false, a (9): [0, 3, 5, 7, 8, 9, 10, 12, 14], b (4): [1, 2, 4, 13] +idx: 6, delta: 4, matching: false, a (10): [7, 8, 9, 10], b (3): [6, 8, 9, 11] +idx: 6, delta: 5, matching: false, a (11): [4, 5, 12, 13], b (2): [0, 3, 8, 9, 14] +idx: 6, delta: 6, matching: false, a (12): [1, 2, 5, 7, 10, 12], b (1): [0, 1, 2, 3, 6, 11, 14] +idx: 6, delta: 7, matching: false, a (13): [0, 3, 5, 7, 8, 9, 10, 12, 14], b (0): [4, 6, 7, 10, 11, 13] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 3, 4, 5, 8, 9, 12, 14], b (8): [0, 3, 4, 5, 12, 13, 14] +idx: 7, delta: 2, matching: false, a (9): [0, 3, 5, 7, 8, 9, 10, 12, 14], b (6): [0, 3, 4, 5, 7, 10, 12, 13, 14] +idx: 7, delta: 3, matching: false, a (10): [7, 8, 9, 10], b (5): [1, 2, 6, 7, 10, 11] +idx: 7, delta: 4, matching: false, a (11): [4, 5, 12, 13], b (4): [1, 2, 4, 13] +idx: 7, delta: 5, matching: false, a (12): [1, 2, 5, 7, 10, 12], b (3): [6, 8, 9, 11] +idx: 7, delta: 6, matching: false, a (13): [0, 3, 5, 7, 8, 9, 10, 12, 14], b (2): [0, 3, 8, 9, 14] +idx: 7, delta: 7, matching: false, a (14): [5, 6, 11, 12], b (1): [0, 1, 2, 3, 6, 11, 14] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 3, 4, 5, 12, 13, 14], b (9): [0, 3, 5, 7, 8, 9, 10, 12, 14] +idx: 8, delta: 2, matching: false, a (10): [7, 8, 9, 10], b (7): [0, 3, 4, 5, 8, 9, 12, 14] +idx: 8, delta: 3, matching: false, a (11): [4, 5, 12, 13], b (6): [0, 3, 4, 5, 7, 10, 12, 13, 14] +idx: 8, delta: 4, matching: false, a (12): [1, 2, 5, 7, 10, 12], b (5): [1, 2, 6, 7, 10, 11] +idx: 8, delta: 5, matching: false, a (13): [0, 3, 5, 7, 8, 9, 10, 12, 14], b (4): [1, 2, 4, 13] +idx: 8, delta: 6, matching: false, a (14): [5, 6, 11, 12], b (3): [6, 8, 9, 11] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 3, 5, 7, 8, 9, 10, 12, 14], b (10): [7, 8, 9, 10] +idx: 9, delta: 2, matching: false, a (11): [4, 5, 12, 13], b (8): [0, 3, 4, 5, 12, 13, 14] +idx: 9, delta: 3, matching: false, a (12): [1, 2, 5, 7, 10, 12], b (7): [0, 3, 4, 5, 8, 9, 12, 14] +idx: 9, delta: 4, matching: false, a (13): [0, 3, 5, 7, 8, 9, 10, 12, 14], b (6): [0, 3, 4, 5, 7, 10, 12, 13, 14] +idx: 9, delta: 5, matching: false, a (14): [5, 6, 11, 12], b (5): [1, 2, 6, 7, 10, 11] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [7, 8, 9, 10], b (11): [4, 5, 12, 13] +idx: 10, delta: 2, matching: false, a (12): [1, 2, 5, 7, 10, 12], b (9): [0, 3, 5, 7, 8, 9, 10, 12, 14] +idx: 10, delta: 3, matching: false, a (13): [0, 3, 5, 7, 8, 9, 10, 12, 14], b (8): [0, 3, 4, 5, 12, 13, 14] +idx: 10, delta: 4, matching: false, a (14): [5, 6, 11, 12], b (7): [0, 3, 4, 5, 8, 9, 12, 14] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [4, 5, 12, 13], b (12): [1, 2, 5, 7, 10, 12] +idx: 11, delta: 2, matching: false, a (13): [0, 3, 5, 7, 8, 9, 10, 12, 14], b (10): [7, 8, 9, 10] +idx: 11, delta: 3, matching: false, a (14): [5, 6, 11, 12], b (9): [0, 3, 5, 7, 8, 9, 10, 12, 14] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [1, 2, 5, 7, 10, 12], b (13): [0, 3, 5, 7, 8, 9, 10, 12, 14] +idx: 12, delta: 2, matching: false, a (14): [5, 6, 11, 12], b (11): [4, 5, 12, 13] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: false, a (13): [0, 3, 5, 7, 8, 9, 10, 12, 14], b (14): [5, 6, 11, 12] +idx: 13 --- EXITING WITH false +idx: 14 --- EXITING WITH false +....#.##..##.#. +####..#....#..# +#..#....##....# +......#.##.#... +.##.#........#. +.##...##..##... +#..###.#..#.### +#..###..##..#.# +#..###......### +#..#.#.####.#.# +.......####.... +....##......##. +.##..#.#..#.#.. +#..#.#.####.#.# +.....##....##.. +9 (vert: 9, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [1, 3, 4, 5, 7], b (1): [0, 2, 4, 6] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 2, 4, 6], b (2): [4, 6, 8] +idx: 1, delta: 2, matching: false, a (3): [1, 2, 4, 5], b (0): [1, 3, 4, 5, 7] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [4, 6, 8], b (3): [1, 2, 4, 5] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 3, 4, 5, 6, 8], b (1): [0, 2, 4, 6] +idx: 2, delta: 3, matching: false, a (5): [1, 2, 3, 4, 5, 6, 8], b (0): [1, 3, 4, 5, 7] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 2, 4, 5], b (4): [1, 2, 3, 4, 5, 6, 8] +idx: 3, delta: 2, matching: false, a (5): [1, 2, 3, 4, 5, 6, 8], b (2): [4, 6, 8] +idx: 3, delta: 3, matching: false, a (6): [1, 2, 4, 5], b (1): [0, 2, 4, 6] +idx: 3, delta: 4, matching: false, a (7): [4, 6, 8], b (0): [1, 3, 4, 5, 7] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: true, a (4): [1, 2, 3, 4, 5, 6, 8], b (5): [1, 2, 3, 4, 5, 6, 8] +idx: 4, delta: 2, matching: true, a (6): [1, 2, 4, 5], b (3): [1, 2, 4, 5] +idx: 4, delta: 3, matching: true, a (7): [4, 6, 8], b (2): [4, 6, 8] +idx: 4, delta: 4, matching: true, a (8): [0, 2, 4, 6], b (1): [0, 2, 4, 6] +idx: 4, delta: 5, matching: true, a (9): [1, 3, 4, 5, 7], b (0): [1, 3, 4, 5, 7] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 2, 3, 4, 5, 6, 8], b (6): [1, 2, 4, 5] +idx: 5, delta: 2, matching: false, a (7): [4, 6, 8], b (4): [1, 2, 3, 4, 5, 6, 8] +idx: 5, delta: 3, matching: false, a (8): [0, 2, 4, 6], b (3): [1, 2, 4, 5] +idx: 5, delta: 4, matching: false, a (9): [1, 3, 4, 5, 7], b (2): [4, 6, 8] +idx: 5, delta: 5, matching: false, a (10): [0, 6], b (1): [0, 2, 4, 6] +idx: 5, delta: 6, matching: false, a (11): [0, 2, 3], b (0): [1, 3, 4, 5, 7] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [1, 2, 4, 5], b (7): [4, 6, 8] +idx: 6, delta: 2, matching: false, a (8): [0, 2, 4, 6], b (5): [1, 2, 3, 4, 5, 6, 8] +idx: 6, delta: 3, matching: false, a (9): [1, 3, 4, 5, 7], b (4): [1, 2, 3, 4, 5, 6, 8] +idx: 6, delta: 4, matching: false, a (10): [0, 6], b (3): [1, 2, 4, 5] +idx: 6, delta: 5, matching: false, a (11): [0, 2, 3], b (2): [4, 6, 8] +idx: 6, delta: 6, matching: false, a (12): [0, 1, 6, 8], b (1): [0, 2, 4, 6] +idx: 6, delta: 7, matching: false, a (13): [0, 1, 3], b (0): [1, 3, 4, 5, 7] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [4, 6, 8], b (8): [0, 2, 4, 6] +idx: 7, delta: 2, matching: false, a (9): [1, 3, 4, 5, 7], b (6): [1, 2, 4, 5] +idx: 7, delta: 3, matching: false, a (10): [0, 6], b (5): [1, 2, 3, 4, 5, 6, 8] +idx: 7, delta: 4, matching: false, a (11): [0, 2, 3], b (4): [1, 2, 3, 4, 5, 6, 8] +idx: 7, delta: 5, matching: false, a (12): [0, 1, 6, 8], b (3): [1, 2, 4, 5] +idx: 7, delta: 6, matching: false, a (13): [0, 1, 3], b (2): [4, 6, 8] +idx: 7, delta: 7, matching: false, a (14): [2, 3, 5, 6, 7, 8], b (1): [0, 2, 4, 6] +idx: 7, delta: 8, matching: false, a (15): [3, 5, 6, 7, 8], b (0): [1, 3, 4, 5, 7] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 2, 4, 6], b (9): [1, 3, 4, 5, 7] +idx: 8, delta: 2, matching: false, a (10): [0, 6], b (7): [4, 6, 8] +idx: 8, delta: 3, matching: false, a (11): [0, 2, 3], b (6): [1, 2, 4, 5] +idx: 8, delta: 4, matching: false, a (12): [0, 1, 6, 8], b (5): [1, 2, 3, 4, 5, 6, 8] +idx: 8, delta: 5, matching: false, a (13): [0, 1, 3], b (4): [1, 2, 3, 4, 5, 6, 8] +idx: 8, delta: 6, matching: false, a (14): [2, 3, 5, 6, 7, 8], b (3): [1, 2, 4, 5] +idx: 8, delta: 7, matching: false, a (15): [3, 5, 6, 7, 8], b (2): [4, 6, 8] +idx: 8, delta: 8, matching: false, a (16): [0, 1, 3], b (1): [0, 2, 4, 6] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [1, 3, 4, 5, 7], b (10): [0, 6] +idx: 9, delta: 2, matching: false, a (11): [0, 2, 3], b (8): [0, 2, 4, 6] +idx: 9, delta: 3, matching: false, a (12): [0, 1, 6, 8], b (7): [4, 6, 8] +idx: 9, delta: 4, matching: false, a (13): [0, 1, 3], b (6): [1, 2, 4, 5] +idx: 9, delta: 5, matching: false, a (14): [2, 3, 5, 6, 7, 8], b (5): [1, 2, 3, 4, 5, 6, 8] +idx: 9, delta: 6, matching: false, a (15): [3, 5, 6, 7, 8], b (4): [1, 2, 3, 4, 5, 6, 8] +idx: 9, delta: 7, matching: false, a (16): [0, 1, 3], b (3): [1, 2, 4, 5] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 6], b (11): [0, 2, 3] +idx: 10, delta: 2, matching: false, a (12): [0, 1, 6, 8], b (9): [1, 3, 4, 5, 7] +idx: 10, delta: 3, matching: false, a (13): [0, 1, 3], b (8): [0, 2, 4, 6] +idx: 10, delta: 4, matching: false, a (14): [2, 3, 5, 6, 7, 8], b (7): [4, 6, 8] +idx: 10, delta: 5, matching: false, a (15): [3, 5, 6, 7, 8], b (6): [1, 2, 4, 5] +idx: 10, delta: 6, matching: false, a (16): [0, 1, 3], b (5): [1, 2, 3, 4, 5, 6, 8] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [0, 2, 3], b (12): [0, 1, 6, 8] +idx: 11, delta: 2, matching: false, a (13): [0, 1, 3], b (10): [0, 6] +idx: 11, delta: 3, matching: false, a (14): [2, 3, 5, 6, 7, 8], b (9): [1, 3, 4, 5, 7] +idx: 11, delta: 4, matching: false, a (15): [3, 5, 6, 7, 8], b (8): [0, 2, 4, 6] +idx: 11, delta: 5, matching: false, a (16): [0, 1, 3], b (7): [4, 6, 8] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [0, 1, 6, 8], b (13): [0, 1, 3] +idx: 12, delta: 2, matching: false, a (14): [2, 3, 5, 6, 7, 8], b (11): [0, 2, 3] +idx: 12, delta: 3, matching: false, a (15): [3, 5, 6, 7, 8], b (10): [0, 6] +idx: 12, delta: 4, matching: false, a (16): [0, 1, 3], b (9): [1, 3, 4, 5, 7] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: false, a (13): [0, 1, 3], b (14): [2, 3, 5, 6, 7, 8] +idx: 13, delta: 2, matching: false, a (15): [3, 5, 6, 7, 8], b (12): [0, 1, 6, 8] +idx: 13, delta: 3, matching: false, a (16): [0, 1, 3], b (11): [0, 2, 3] +idx: 13 --- EXITING WITH false +idx: 14, delta: 0, matching: false, a (14): [2, 3, 5, 6, 7, 8], b (15): [3, 5, 6, 7, 8] +idx: 14, delta: 0 --- found smudge! +idx: 14, delta: 2, matching: true, a (16): [0, 1, 3], b (13): [0, 1, 3] +idx: 14 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [1, 8, 10, 11, 12, 13, 16], b (1): [0, 3, 4, 5, 6, 9, 12, 13, 16] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 3, 4, 5, 6, 9, 12, 13, 16], b (2): [1, 3, 4, 5, 6, 8, 11, 14] +idx: 1, delta: 2, matching: false, a (3): [0, 4, 5, 9, 11, 13, 14, 15, 16], b (0): [1, 8, 10, 11, 12, 13, 16] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 3, 4, 5, 6, 8, 11, 14], b (3): [0, 4, 5, 9, 11, 13, 14, 15, 16] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], b (1): [0, 3, 4, 5, 6, 9, 12, 13, 16] +idx: 2, delta: 3, matching: false, a (5): [0, 3, 4, 5, 6, 9, 14, 15], b (0): [1, 8, 10, 11, 12, 13, 16] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 4, 5, 9, 11, 13, 14, 15, 16], b (4): [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] +idx: 3, delta: 2, matching: false, a (5): [0, 3, 4, 5, 6, 9, 14, 15], b (2): [1, 3, 4, 5, 6, 8, 11, 14] +idx: 3, delta: 3, matching: false, a (6): [1, 2, 4, 5, 7, 8, 10, 12, 14, 15], b (1): [0, 3, 4, 5, 6, 9, 12, 13, 16] +idx: 3, delta: 4, matching: false, a (7): [0, 9, 14, 15], b (0): [1, 8, 10, 11, 12, 13, 16] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], b (5): [0, 3, 4, 5, 6, 9, 14, 15] +idx: 4, delta: 2, matching: false, a (6): [1, 2, 4, 5, 7, 8, 10, 12, 14, 15], b (3): [0, 4, 5, 9, 11, 13, 14, 15, 16] +idx: 4, delta: 3, matching: false, a (7): [0, 9, 14, 15], b (2): [1, 3, 4, 5, 6, 8, 11, 14] +idx: 4, delta: 4, matching: false, a (8): [2, 4, 5, 7, 12, 14, 15], b (1): [0, 3, 4, 5, 6, 9, 12, 13, 16] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 3, 4, 5, 6, 9, 14, 15], b (6): [1, 2, 4, 5, 7, 8, 10, 12, 14, 15] +idx: 5, delta: 2, matching: false, a (7): [0, 9, 14, 15], b (4): [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] +idx: 5, delta: 3, matching: false, a (8): [2, 4, 5, 7, 12, 14, 15], b (3): [0, 4, 5, 9, 11, 13, 14, 15, 16] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [1, 2, 4, 5, 7, 8, 10, 12, 14, 15], b (7): [0, 9, 14, 15] +idx: 6, delta: 2, matching: false, a (8): [2, 4, 5, 7, 12, 14, 15], b (5): [0, 3, 4, 5, 6, 9, 14, 15] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 9, 14, 15], b (8): [2, 4, 5, 7, 12, 14, 15] +idx: 7 --- EXITING WITH false +idx: 8 --- EXITING WITH false +.#......#.####..# +#..####..#..##..# +.#.####.#..#..#.. +#...##...#.#.#### +##########....... +#..####..#....##. +.##.##.##.#.#.##. +#........#....##. +..#.##.#....#.##. +15 (vert: 15, horiz: 0) + +idx: 0, delta: 0, matching: true, a (0): [0, 2, 4, 7, 8, 11, 12, 13], b (1): [0, 2, 4, 7, 8, 11, 12, 13] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 2, 4, 7, 8, 11, 12, 13], b (2): [0, 1, 2, 3, 4, 5, 8, 11, 12, 13] +idx: 1, delta: 2, matching: false, a (3): [1, 6, 9, 10, 11, 13], b (0): [0, 2, 4, 7, 8, 11, 12, 13] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 2, 3, 4, 5, 8, 11, 12, 13], b (3): [1, 6, 9, 10, 11, 13] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 5, 8, 9, 14], b (1): [0, 2, 4, 7, 8, 11, 12, 13] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 2, 5, 6, 7, 8, 10, 13, 14], b (0): [0, 2, 4, 7, 8, 11, 12, 13] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 6, 9, 10, 11, 13], b (4): [0, 1, 5, 8, 9, 14] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 2, 5, 6, 7, 8, 10, 13, 14], b (2): [0, 1, 2, 3, 4, 5, 8, 11, 12, 13] +idx: 3, delta: 3, matching: false, a (6): [4, 5, 9, 12, 13, 14], b (1): [0, 2, 4, 7, 8, 11, 12, 13] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 4, 7, 12, 13, 14], b (0): [0, 2, 4, 7, 8, 11, 12, 13] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 5, 8, 9, 14], b (5): [0, 1, 2, 5, 6, 7, 8, 10, 13, 14] +idx: 4, delta: 2, matching: false, a (6): [4, 5, 9, 12, 13, 14], b (3): [1, 6, 9, 10, 11, 13] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 4, 7, 12, 13, 14], b (2): [0, 1, 2, 3, 4, 5, 8, 11, 12, 13] +idx: 4, delta: 4, matching: false, a (8): [1, 2, 8, 13, 14], b (1): [0, 2, 4, 7, 8, 11, 12, 13] +idx: 4, delta: 5, matching: false, a (9): [2, 5, 6, 8, 10, 11, 12], b (0): [0, 2, 4, 7, 8, 11, 12, 13] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 2, 5, 6, 7, 8, 10, 13, 14], b (6): [4, 5, 9, 12, 13, 14] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 4, 7, 12, 13, 14], b (4): [0, 1, 5, 8, 9, 14] +idx: 5, delta: 3, matching: false, a (8): [1, 2, 8, 13, 14], b (3): [1, 6, 9, 10, 11, 13] +idx: 5, delta: 4, matching: false, a (9): [2, 5, 6, 8, 10, 11, 12], b (2): [0, 1, 2, 3, 4, 5, 8, 11, 12, 13] +idx: 5, delta: 5, matching: false, a (10): [2, 5, 6, 8, 11, 12], b (1): [0, 2, 4, 7, 8, 11, 12, 13] +idx: 5, delta: 6, matching: false, a (11): [1, 2, 8, 13, 14], b (0): [0, 2, 4, 7, 8, 11, 12, 13] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [4, 5, 9, 12, 13, 14], b (7): [0, 1, 4, 7, 12, 13, 14] +idx: 6, delta: 2, matching: false, a (8): [1, 2, 8, 13, 14], b (5): [0, 1, 2, 5, 6, 7, 8, 10, 13, 14] +idx: 6, delta: 3, matching: false, a (9): [2, 5, 6, 8, 10, 11, 12], b (4): [0, 1, 5, 8, 9, 14] +idx: 6, delta: 4, matching: false, a (10): [2, 5, 6, 8, 11, 12], b (3): [1, 6, 9, 10, 11, 13] +idx: 6, delta: 5, matching: false, a (11): [1, 2, 8, 13, 14], b (2): [0, 1, 2, 3, 4, 5, 8, 11, 12, 13] +idx: 6, delta: 6, matching: false, a (12): [0, 1, 4, 7, 12, 13, 14], b (1): [0, 2, 4, 7, 8, 11, 12, 13] +idx: 6, delta: 7, matching: false, a (13): [4, 5, 9, 12, 13, 14], b (0): [0, 2, 4, 7, 8, 11, 12, 13] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 4, 7, 12, 13, 14], b (8): [1, 2, 8, 13, 14] +idx: 7, delta: 2, matching: false, a (9): [2, 5, 6, 8, 10, 11, 12], b (6): [4, 5, 9, 12, 13, 14] +idx: 7, delta: 3, matching: false, a (10): [2, 5, 6, 8, 11, 12], b (5): [0, 1, 2, 5, 6, 7, 8, 10, 13, 14] +idx: 7, delta: 4, matching: false, a (11): [1, 2, 8, 13, 14], b (4): [0, 1, 5, 8, 9, 14] +idx: 7, delta: 5, matching: false, a (12): [0, 1, 4, 7, 12, 13, 14], b (3): [1, 6, 9, 10, 11, 13] +idx: 7, delta: 6, matching: false, a (13): [4, 5, 9, 12, 13, 14], b (2): [0, 1, 2, 3, 4, 5, 8, 11, 12, 13] +idx: 7, delta: 7, matching: false, a (14): [0, 1, 2, 5, 6, 7, 8, 10, 13, 14], b (1): [0, 2, 4, 7, 8, 11, 12, 13] +idx: 7, delta: 8, matching: false, a (15): [0, 1, 5, 8, 9, 14], b (0): [0, 2, 4, 7, 8, 11, 12, 13] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [1, 2, 8, 13, 14], b (9): [2, 5, 6, 8, 10, 11, 12] +idx: 8, delta: 2, matching: false, a (10): [2, 5, 6, 8, 11, 12], b (7): [0, 1, 4, 7, 12, 13, 14] +idx: 8, delta: 3, matching: false, a (11): [1, 2, 8, 13, 14], b (6): [4, 5, 9, 12, 13, 14] +idx: 8, delta: 4, matching: false, a (12): [0, 1, 4, 7, 12, 13, 14], b (5): [0, 1, 2, 5, 6, 7, 8, 10, 13, 14] +idx: 8, delta: 5, matching: false, a (13): [4, 5, 9, 12, 13, 14], b (4): [0, 1, 5, 8, 9, 14] +idx: 8, delta: 6, matching: false, a (14): [0, 1, 2, 5, 6, 7, 8, 10, 13, 14], b (3): [1, 6, 9, 10, 11, 13] +idx: 8, delta: 7, matching: false, a (15): [0, 1, 5, 8, 9, 14], b (2): [0, 1, 2, 3, 4, 5, 8, 11, 12, 13] +idx: 8, delta: 8, matching: false, a (16): [1, 6, 9, 10, 11, 13], b (1): [0, 2, 4, 7, 8, 11, 12, 13] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [2, 5, 6, 8, 10, 11, 12], b (10): [2, 5, 6, 8, 11, 12] +idx: 9, delta: 0 --- found smudge! +idx: 9, delta: 2, matching: true, a (11): [1, 2, 8, 13, 14], b (8): [1, 2, 8, 13, 14] +idx: 9, delta: 3, matching: true, a (12): [0, 1, 4, 7, 12, 13, 14], b (7): [0, 1, 4, 7, 12, 13, 14] +idx: 9, delta: 4, matching: true, a (13): [4, 5, 9, 12, 13, 14], b (6): [4, 5, 9, 12, 13, 14] +idx: 9, delta: 5, matching: true, a (14): [0, 1, 2, 5, 6, 7, 8, 10, 13, 14], b (5): [0, 1, 2, 5, 6, 7, 8, 10, 13, 14] +idx: 9, delta: 6, matching: true, a (15): [0, 1, 5, 8, 9, 14], b (4): [0, 1, 5, 8, 9, 14] +idx: 9, delta: 7, matching: true, a (16): [1, 6, 9, 10, 11, 13], b (3): [1, 6, 9, 10, 11, 13] +idx: 9 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [0, 1, 2, 4, 5, 7, 12, 14, 15], b (1): [2, 3, 4, 5, 7, 8, 11, 12, 14, 15, 16] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [2, 3, 4, 5, 7, 8, 11, 12, 14, 15, 16], b (2): [0, 1, 2, 5, 8, 9, 10, 11, 14] +idx: 1, delta: 2, matching: false, a (3): [2], b (0): [0, 1, 2, 4, 5, 7, 12, 14, 15] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 2, 5, 8, 9, 10, 11, 14], b (3): [2] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 2, 6, 7, 12, 13], b (1): [2, 3, 4, 5, 7, 8, 11, 12, 14, 15, 16] +idx: 2, delta: 3, matching: false, a (5): [2, 4, 5, 6, 9, 10, 13, 14, 15], b (0): [0, 1, 2, 4, 5, 7, 12, 14, 15] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [2], b (4): [0, 1, 2, 6, 7, 12, 13] +idx: 3, delta: 2, matching: false, a (5): [2, 4, 5, 6, 9, 10, 13, 14, 15], b (2): [0, 1, 2, 5, 8, 9, 10, 11, 14] +idx: 3, delta: 3, matching: false, a (6): [3, 5, 9, 10, 14, 16], b (1): [2, 3, 4, 5, 7, 8, 11, 12, 14, 15, 16] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 5, 7, 12, 14], b (0): [0, 1, 2, 4, 5, 7, 12, 14, 15] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 2, 6, 7, 12, 13], b (5): [2, 4, 5, 6, 9, 10, 13, 14, 15] +idx: 4, delta: 2, matching: false, a (6): [3, 5, 9, 10, 14, 16], b (3): [2] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 5, 7, 12, 14], b (2): [0, 1, 2, 5, 8, 9, 10, 11, 14] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 2, 4, 5, 8, 9, 10, 11, 14, 15], b (1): [2, 3, 4, 5, 7, 8, 11, 12, 14, 15, 16] +idx: 4, delta: 5, matching: false, a (9): [3, 4, 6, 13, 15, 16], b (0): [0, 1, 2, 4, 5, 7, 12, 14, 15] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [2, 4, 5, 6, 9, 10, 13, 14, 15], b (6): [3, 5, 9, 10, 14, 16] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 5, 7, 12, 14], b (4): [0, 1, 2, 6, 7, 12, 13] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 2, 4, 5, 8, 9, 10, 11, 14, 15], b (3): [2] +idx: 5, delta: 4, matching: false, a (9): [3, 4, 6, 13, 15, 16], b (2): [0, 1, 2, 5, 8, 9, 10, 11, 14] +idx: 5, delta: 5, matching: false, a (10): [3, 5, 9, 14, 16], b (1): [2, 3, 4, 5, 7, 8, 11, 12, 14, 15, 16] +idx: 5, delta: 6, matching: false, a (11): [0, 1, 2, 3, 9, 10, 16], b (0): [0, 1, 2, 4, 5, 7, 12, 14, 15] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [3, 5, 9, 10, 14, 16], b (7): [0, 1, 5, 7, 12, 14] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 2, 4, 5, 8, 9, 10, 11, 14, 15], b (5): [2, 4, 5, 6, 9, 10, 13, 14, 15] +idx: 6, delta: 3, matching: false, a (9): [3, 4, 6, 13, 15, 16], b (4): [0, 1, 2, 6, 7, 12, 13] +idx: 6, delta: 4, matching: false, a (10): [3, 5, 9, 14, 16], b (3): [2] +idx: 6, delta: 5, matching: false, a (11): [0, 1, 2, 3, 9, 10, 16], b (2): [0, 1, 2, 5, 8, 9, 10, 11, 14] +idx: 6, delta: 6, matching: false, a (12): [0, 1, 2, 6, 7, 9, 10, 12, 13], b (1): [2, 3, 4, 5, 7, 8, 11, 12, 14, 15, 16] +idx: 6, delta: 7, matching: false, a (13): [0, 1, 2, 3, 5, 6, 7, 8, 11, 12, 13, 14, 16], b (0): [0, 1, 2, 4, 5, 7, 12, 14, 15] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 5, 7, 12, 14], b (8): [0, 1, 2, 4, 5, 8, 9, 10, 11, 14, 15] +idx: 7, delta: 2, matching: false, a (9): [3, 4, 6, 13, 15, 16], b (6): [3, 5, 9, 10, 14, 16] +idx: 7, delta: 3, matching: false, a (10): [3, 5, 9, 14, 16], b (5): [2, 4, 5, 6, 9, 10, 13, 14, 15] +idx: 7, delta: 4, matching: false, a (11): [0, 1, 2, 3, 9, 10, 16], b (4): [0, 1, 2, 6, 7, 12, 13] +idx: 7, delta: 5, matching: false, a (12): [0, 1, 2, 6, 7, 9, 10, 12, 13], b (3): [2] +idx: 7, delta: 6, matching: false, a (13): [0, 1, 2, 3, 5, 6, 7, 8, 11, 12, 13, 14, 16], b (2): [0, 1, 2, 5, 8, 9, 10, 11, 14] +idx: 7, delta: 7, matching: false, a (14): [4, 5, 6, 7, 8, 11, 12, 13, 14, 15], b (1): [2, 3, 4, 5, 7, 8, 11, 12, 14, 15, 16] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 1, 2, 4, 5, 8, 9, 10, 11, 14, 15], b (9): [3, 4, 6, 13, 15, 16] +idx: 8, delta: 2, matching: false, a (10): [3, 5, 9, 14, 16], b (7): [0, 1, 5, 7, 12, 14] +idx: 8, delta: 3, matching: false, a (11): [0, 1, 2, 3, 9, 10, 16], b (6): [3, 5, 9, 10, 14, 16] +idx: 8, delta: 4, matching: false, a (12): [0, 1, 2, 6, 7, 9, 10, 12, 13], b (5): [2, 4, 5, 6, 9, 10, 13, 14, 15] +idx: 8, delta: 5, matching: false, a (13): [0, 1, 2, 3, 5, 6, 7, 8, 11, 12, 13, 14, 16], b (4): [0, 1, 2, 6, 7, 12, 13] +idx: 8, delta: 6, matching: false, a (14): [4, 5, 6, 7, 8, 11, 12, 13, 14, 15], b (3): [2] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [3, 4, 6, 13, 15, 16], b (10): [3, 5, 9, 14, 16] +idx: 9, delta: 2, matching: false, a (11): [0, 1, 2, 3, 9, 10, 16], b (8): [0, 1, 2, 4, 5, 8, 9, 10, 11, 14, 15] +idx: 9, delta: 3, matching: false, a (12): [0, 1, 2, 6, 7, 9, 10, 12, 13], b (7): [0, 1, 5, 7, 12, 14] +idx: 9, delta: 4, matching: false, a (13): [0, 1, 2, 3, 5, 6, 7, 8, 11, 12, 13, 14, 16], b (6): [3, 5, 9, 10, 14, 16] +idx: 9, delta: 5, matching: false, a (14): [4, 5, 6, 7, 8, 11, 12, 13, 14, 15], b (5): [2, 4, 5, 6, 9, 10, 13, 14, 15] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [3, 5, 9, 14, 16], b (11): [0, 1, 2, 3, 9, 10, 16] +idx: 10, delta: 2, matching: false, a (12): [0, 1, 2, 6, 7, 9, 10, 12, 13], b (9): [3, 4, 6, 13, 15, 16] +idx: 10, delta: 3, matching: false, a (13): [0, 1, 2, 3, 5, 6, 7, 8, 11, 12, 13, 14, 16], b (8): [0, 1, 2, 4, 5, 8, 9, 10, 11, 14, 15] +idx: 10, delta: 4, matching: false, a (14): [4, 5, 6, 7, 8, 11, 12, 13, 14, 15], b (7): [0, 1, 5, 7, 12, 14] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [0, 1, 2, 3, 9, 10, 16], b (12): [0, 1, 2, 6, 7, 9, 10, 12, 13] +idx: 11, delta: 2, matching: false, a (13): [0, 1, 2, 3, 5, 6, 7, 8, 11, 12, 13, 14, 16], b (10): [3, 5, 9, 14, 16] +idx: 11, delta: 3, matching: false, a (14): [4, 5, 6, 7, 8, 11, 12, 13, 14, 15], b (9): [3, 4, 6, 13, 15, 16] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [0, 1, 2, 6, 7, 9, 10, 12, 13], b (13): [0, 1, 2, 3, 5, 6, 7, 8, 11, 12, 13, 14, 16] +idx: 12, delta: 2, matching: false, a (14): [4, 5, 6, 7, 8, 11, 12, 13, 14, 15], b (11): [0, 1, 2, 3, 9, 10, 16] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: false, a (13): [0, 1, 2, 3, 5, 6, 7, 8, 11, 12, 13, 14, 16], b (14): [4, 5, 6, 7, 8, 11, 12, 13, 14, 15] +idx: 13 --- EXITING WITH false +idx: 14 --- EXITING WITH false +###.##.#....#.##. +..####.##..##.### +###..#..####..#.. +..#.............. +###...##....##... +..#.###..##..###. +...#.#...##...#.# +##...#.#....#.#.. +###.##..####..##. +...##.#......#.## +...#.#...#....#.# +####.....##.....# +###...##.##.##... +####.####..####.# +....#####..#####. +10 (vert: 10, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [0, 1, 2, 5, 6, 7, 8], b (1): [1, 2, 5, 6] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 2, 5, 6], b (2): [0, 7, 8] +idx: 1, delta: 2, matching: false, a (3): [0, 7, 8], b (0): [0, 1, 2, 5, 6, 7, 8] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: true, a (2): [0, 7, 8], b (3): [0, 7, 8] +idx: 2, delta: 2, matching: false, a (4): [3, 4], b (1): [1, 2, 5, 6] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 3, 4, 6, 7, 8], b (0): [0, 1, 2, 5, 6, 7, 8] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 7, 8], b (4): [3, 4] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 3, 4, 6, 7, 8], b (2): [0, 7, 8] +idx: 3, delta: 3, matching: false, a (6): [2, 4, 5], b (1): [1, 2, 5, 6] +idx: 3, delta: 4, matching: false, a (7): [1, 2, 5, 6], b (0): [0, 1, 2, 5, 6, 7, 8] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [3, 4], b (5): [0, 1, 3, 4, 6, 7, 8] +idx: 4, delta: 2, matching: false, a (6): [2, 4, 5], b (3): [0, 7, 8] +idx: 4, delta: 3, matching: false, a (7): [1, 2, 5, 6], b (2): [0, 7, 8] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 6, 7, 8], b (1): [1, 2, 5, 6] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 3, 4, 6, 7, 8], b (6): [2, 4, 5] +idx: 5, delta: 2, matching: false, a (7): [1, 2, 5, 6], b (4): [3, 4] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 6, 7, 8], b (3): [0, 7, 8] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [2, 4, 5], b (7): [1, 2, 5, 6] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 6, 7, 8], b (5): [0, 1, 3, 4, 6, 7, 8] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [1, 2, 5, 6], b (8): [0, 1, 6, 7, 8] +idx: 7 --- EXITING WITH false +idx: 8 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [0, 2, 3, 5, 8], b (1): [0, 1, 5, 7, 8] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 5, 7, 8], b (2): [0, 1, 6, 7] +idx: 1, delta: 2, matching: false, a (3): [4, 5], b (0): [0, 2, 3, 5, 8] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 6, 7], b (3): [4, 5] +idx: 2, delta: 2, matching: false, a (4): [4, 5, 6], b (1): [0, 1, 5, 7, 8] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 6, 7], b (0): [0, 2, 3, 5, 8] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [4, 5], b (4): [4, 5, 6] +idx: 3, delta: 0 --- found smudge! +idx: 3, delta: 2, matching: true, a (5): [0, 1, 6, 7], b (2): [0, 1, 6, 7] +idx: 3, delta: 3, matching: true, a (6): [0, 1, 5, 7, 8], b (1): [0, 1, 5, 7, 8] +idx: 3, delta: 4, matching: true, a (7): [0, 2, 3, 5, 8], b (0): [0, 2, 3, 5, 8] +idx: 3 --- EXITING WITH true +#.##.#..# +##...#.## +##....##. +....##... +....###.. +##....##. +##...#.## +#.##.#..# +#.##.#..# +400 (vert: 0, horiz: 4) + +idx: 0, delta: 0, matching: false, a (0): [1, 2, 5, 7, 8, 9, 14], b (1): [0, 1, 3, 8] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 3, 8], b (2): [0, 1, 3, 5, 9, 11, 12, 14] +idx: 1, delta: 2, matching: false, a (3): [1, 2, 5, 9, 10, 13, 14], b (0): [1, 2, 5, 7, 8, 9, 14] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 3, 5, 9, 11, 12, 14], b (3): [1, 2, 5, 9, 10, 13, 14] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 3, 4, 6, 11, 12], b (1): [0, 1, 3, 8] +idx: 2, delta: 3, matching: false, a (5): [3, 6, 7, 9, 11, 12, 14], b (0): [1, 2, 5, 7, 8, 9, 14] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 2, 5, 9, 10, 13, 14], b (4): [0, 1, 3, 4, 6, 11, 12] +idx: 3, delta: 2, matching: false, a (5): [3, 6, 7, 9, 11, 12, 14], b (2): [0, 1, 3, 5, 9, 11, 12, 14] +idx: 3, delta: 3, matching: false, a (6): [1, 3, 5, 6, 7, 8, 11, 12], b (1): [0, 1, 3, 8] +idx: 3, delta: 4, matching: false, a (7): [1, 2, 4, 5, 7, 10, 11, 12, 13], b (0): [1, 2, 5, 7, 8, 9, 14] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 3, 4, 6, 11, 12], b (5): [3, 6, 7, 9, 11, 12, 14] +idx: 4, delta: 2, matching: false, a (6): [1, 3, 5, 6, 7, 8, 11, 12], b (3): [1, 2, 5, 9, 10, 13, 14] +idx: 4, delta: 3, matching: false, a (7): [1, 2, 4, 5, 7, 10, 11, 12, 13], b (2): [0, 1, 3, 5, 9, 11, 12, 14] +idx: 4, delta: 4, matching: false, a (8): [1, 2, 3, 4, 5, 7, 10, 11, 12, 13], b (1): [0, 1, 3, 8] +idx: 4, delta: 5, matching: false, a (9): [1, 3, 5, 6, 7, 8, 11, 12], b (0): [1, 2, 5, 7, 8, 9, 14] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [3, 6, 7, 9, 11, 12, 14], b (6): [1, 3, 5, 6, 7, 8, 11, 12] +idx: 5, delta: 2, matching: false, a (7): [1, 2, 4, 5, 7, 10, 11, 12, 13], b (4): [0, 1, 3, 4, 6, 11, 12] +idx: 5, delta: 3, matching: false, a (8): [1, 2, 3, 4, 5, 7, 10, 11, 12, 13], b (3): [1, 2, 5, 9, 10, 13, 14] +idx: 5, delta: 4, matching: false, a (9): [1, 3, 5, 6, 7, 8, 11, 12], b (2): [0, 1, 3, 5, 9, 11, 12, 14] +idx: 5, delta: 5, matching: false, a (10): [3, 6, 7, 9, 11, 12, 14], b (1): [0, 1, 3, 8] +idx: 5, delta: 6, matching: false, a (11): [0, 1, 3, 4, 6, 11, 12], b (0): [1, 2, 5, 7, 8, 9, 14] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [1, 3, 5, 6, 7, 8, 11, 12], b (7): [1, 2, 4, 5, 7, 10, 11, 12, 13] +idx: 6, delta: 2, matching: false, a (8): [1, 2, 3, 4, 5, 7, 10, 11, 12, 13], b (5): [3, 6, 7, 9, 11, 12, 14] +idx: 6, delta: 3, matching: false, a (9): [1, 3, 5, 6, 7, 8, 11, 12], b (4): [0, 1, 3, 4, 6, 11, 12] +idx: 6, delta: 4, matching: false, a (10): [3, 6, 7, 9, 11, 12, 14], b (3): [1, 2, 5, 9, 10, 13, 14] +idx: 6, delta: 5, matching: false, a (11): [0, 1, 3, 4, 6, 11, 12], b (2): [0, 1, 3, 5, 9, 11, 12, 14] +idx: 6, delta: 6, matching: false, a (12): [1, 2, 5, 9, 10, 13, 14], b (1): [0, 1, 3, 8] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [1, 2, 4, 5, 7, 10, 11, 12, 13], b (8): [1, 2, 3, 4, 5, 7, 10, 11, 12, 13] +idx: 7, delta: 0 --- found smudge! +idx: 7, delta: 2, matching: true, a (9): [1, 3, 5, 6, 7, 8, 11, 12], b (6): [1, 3, 5, 6, 7, 8, 11, 12] +idx: 7, delta: 3, matching: true, a (10): [3, 6, 7, 9, 11, 12, 14], b (5): [3, 6, 7, 9, 11, 12, 14] +idx: 7, delta: 4, matching: true, a (11): [0, 1, 3, 4, 6, 11, 12], b (4): [0, 1, 3, 4, 6, 11, 12] +idx: 7, delta: 5, matching: true, a (12): [1, 2, 5, 9, 10, 13, 14], b (3): [1, 2, 5, 9, 10, 13, 14] +idx: 7 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [1, 2, 4, 11], b (1): [0, 1, 2, 3, 4, 6, 7, 8, 9, 11, 12] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 2, 3, 4, 6, 7, 8, 9, 11, 12], b (2): [0, 3, 7, 8, 12] +idx: 1, delta: 2, matching: false, a (3): [1, 2, 4, 5, 6, 8, 9, 10, 11], b (0): [1, 2, 4, 11] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 3, 7, 8, 12], b (3): [1, 2, 4, 5, 6, 8, 9, 10, 11] +idx: 2, delta: 2, matching: false, a (4): [4, 7, 8, 11], b (1): [0, 1, 2, 3, 4, 6, 7, 8, 9, 11, 12] +idx: 2, delta: 3, matching: false, a (5): [0, 2, 3, 6, 7, 8, 9, 12], b (0): [1, 2, 4, 11] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 2, 4, 5, 6, 8, 9, 10, 11], b (4): [4, 7, 8, 11] +idx: 3, delta: 2, matching: false, a (5): [0, 2, 3, 6, 7, 8, 9, 12], b (2): [0, 3, 7, 8, 12] +idx: 3, delta: 3, matching: false, a (6): [4, 5, 6, 9, 10, 11], b (1): [0, 1, 2, 3, 4, 6, 7, 8, 9, 11, 12] +idx: 3, delta: 4, matching: false, a (7): [0, 5, 6, 7, 8, 9, 10], b (0): [1, 2, 4, 11] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [4, 7, 8, 11], b (5): [0, 2, 3, 6, 7, 8, 9, 12] +idx: 4, delta: 2, matching: false, a (6): [4, 5, 6, 9, 10, 11], b (3): [1, 2, 4, 5, 6, 8, 9, 10, 11] +idx: 4, delta: 3, matching: false, a (7): [0, 5, 6, 7, 8, 9, 10], b (2): [0, 3, 7, 8, 12] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 6, 9], b (1): [0, 1, 2, 3, 4, 6, 7, 8, 9, 11, 12] +idx: 4, delta: 5, matching: false, a (9): [0, 2, 3, 5, 10, 12], b (0): [1, 2, 4, 11] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 2, 3, 6, 7, 8, 9, 12], b (6): [4, 5, 6, 9, 10, 11] +idx: 5, delta: 2, matching: false, a (7): [0, 5, 6, 7, 8, 9, 10], b (4): [4, 7, 8, 11] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 6, 9], b (3): [1, 2, 4, 5, 6, 8, 9, 10, 11] +idx: 5, delta: 4, matching: false, a (9): [0, 2, 3, 5, 10, 12], b (2): [0, 3, 7, 8, 12] +idx: 5, delta: 5, matching: false, a (10): [3, 7, 8, 12], b (1): [0, 1, 2, 3, 4, 6, 7, 8, 9, 11, 12] +idx: 5, delta: 6, matching: false, a (11): [2, 4, 5, 6, 7, 8, 9, 10, 11], b (0): [1, 2, 4, 11] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [4, 5, 6, 9, 10, 11], b (7): [0, 5, 6, 7, 8, 9, 10] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 6, 9], b (5): [0, 2, 3, 6, 7, 8, 9, 12] +idx: 6, delta: 3, matching: false, a (9): [0, 2, 3, 5, 10, 12], b (4): [4, 7, 8, 11] +idx: 6, delta: 4, matching: false, a (10): [3, 7, 8, 12], b (3): [1, 2, 4, 5, 6, 8, 9, 10, 11] +idx: 6, delta: 5, matching: false, a (11): [2, 4, 5, 6, 7, 8, 9, 10, 11], b (2): [0, 3, 7, 8, 12] +idx: 6, delta: 6, matching: false, a (12): [2, 4, 5, 6, 7, 8, 9, 10, 11], b (1): [0, 1, 2, 3, 4, 6, 7, 8, 9, 11, 12] +idx: 6, delta: 7, matching: false, a (13): [3, 7, 8, 12], b (0): [1, 2, 4, 11] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 5, 6, 7, 8, 9, 10], b (8): [0, 1, 6, 9] +idx: 7, delta: 2, matching: false, a (9): [0, 2, 3, 5, 10, 12], b (6): [4, 5, 6, 9, 10, 11] +idx: 7, delta: 3, matching: false, a (10): [3, 7, 8, 12], b (5): [0, 2, 3, 6, 7, 8, 9, 12] +idx: 7, delta: 4, matching: false, a (11): [2, 4, 5, 6, 7, 8, 9, 10, 11], b (4): [4, 7, 8, 11] +idx: 7, delta: 5, matching: false, a (12): [2, 4, 5, 6, 7, 8, 9, 10, 11], b (3): [1, 2, 4, 5, 6, 8, 9, 10, 11] +idx: 7, delta: 6, matching: false, a (13): [3, 7, 8, 12], b (2): [0, 3, 7, 8, 12] +idx: 7, delta: 6 --- found smudge! +idx: 7, delta: 7, matching: false, a (14): [0, 2, 3, 5, 10, 12], b (1): [0, 1, 2, 3, 4, 6, 7, 8, 9, 11, 12] +idx: 7, delta: 7 --- found smudge twice! +idx: 8, delta: 0, matching: false, a (8): [0, 1, 6, 9], b (9): [0, 2, 3, 5, 10, 12] +idx: 8, delta: 2, matching: false, a (10): [3, 7, 8, 12], b (7): [0, 5, 6, 7, 8, 9, 10] +idx: 8, delta: 3, matching: false, a (11): [2, 4, 5, 6, 7, 8, 9, 10, 11], b (6): [4, 5, 6, 9, 10, 11] +idx: 8, delta: 4, matching: false, a (12): [2, 4, 5, 6, 7, 8, 9, 10, 11], b (5): [0, 2, 3, 6, 7, 8, 9, 12] +idx: 8, delta: 5, matching: false, a (13): [3, 7, 8, 12], b (4): [4, 7, 8, 11] +idx: 8, delta: 6, matching: false, a (14): [0, 2, 3, 5, 10, 12], b (3): [1, 2, 4, 5, 6, 8, 9, 10, 11] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 2, 3, 5, 10, 12], b (10): [3, 7, 8, 12] +idx: 9, delta: 2, matching: false, a (11): [2, 4, 5, 6, 7, 8, 9, 10, 11], b (8): [0, 1, 6, 9] +idx: 9, delta: 3, matching: false, a (12): [2, 4, 5, 6, 7, 8, 9, 10, 11], b (7): [0, 5, 6, 7, 8, 9, 10] +idx: 9, delta: 4, matching: false, a (13): [3, 7, 8, 12], b (6): [4, 5, 6, 9, 10, 11] +idx: 9, delta: 5, matching: false, a (14): [0, 2, 3, 5, 10, 12], b (5): [0, 2, 3, 6, 7, 8, 9, 12] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [3, 7, 8, 12], b (11): [2, 4, 5, 6, 7, 8, 9, 10, 11] +idx: 10, delta: 2, matching: false, a (12): [2, 4, 5, 6, 7, 8, 9, 10, 11], b (9): [0, 2, 3, 5, 10, 12] +idx: 10, delta: 3, matching: false, a (13): [3, 7, 8, 12], b (8): [0, 1, 6, 9] +idx: 10, delta: 4, matching: false, a (14): [0, 2, 3, 5, 10, 12], b (7): [0, 5, 6, 7, 8, 9, 10] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: true, a (11): [2, 4, 5, 6, 7, 8, 9, 10, 11], b (12): [2, 4, 5, 6, 7, 8, 9, 10, 11] +idx: 11, delta: 2, matching: true, a (13): [3, 7, 8, 12], b (10): [3, 7, 8, 12] +idx: 11, delta: 3, matching: true, a (14): [0, 2, 3, 5, 10, 12], b (9): [0, 2, 3, 5, 10, 12] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [2, 4, 5, 6, 7, 8, 9, 10, 11], b (13): [3, 7, 8, 12] +idx: 12, delta: 2, matching: false, a (14): [0, 2, 3, 5, 10, 12], b (11): [2, 4, 5, 6, 7, 8, 9, 10, 11] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: false, a (13): [3, 7, 8, 12], b (14): [0, 2, 3, 5, 10, 12] +idx: 13 --- EXITING WITH false +idx: 14 --- EXITING WITH false +.##.#......#. +#####.####.## +#..#...##...# +.##.###.####. +....#..##..#. +#.##..####..# +....###..###. +#....######.. +##....#..#... +#.##.#....#.# +...#...##...# +..#.########. +..#.########. +...#...##...# +#.##.#....#.# +8 (vert: 8, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [2, 3, 7, 9, 12], b (1): [0, 1, 5, 6, 7] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 5, 6, 7], b (2): [2, 5, 8, 10, 11] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 4, 6, 9, 10, 11, 12], b (0): [2, 3, 7, 9, 12] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [2, 5, 8, 10, 11], b (3): [0, 1, 4, 6, 9, 10, 11, 12] +idx: 2, delta: 2, matching: false, a (4): [2, 4, 7, 10, 11], b (1): [0, 1, 5, 6, 7] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 2, 5, 6, 7, 8, 9, 10, 11, 12], b (0): [2, 3, 7, 9, 12] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 4, 6, 9, 10, 11, 12], b (4): [2, 4, 7, 10, 11] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 2, 5, 6, 7, 8, 9, 10, 11, 12], b (2): [2, 5, 8, 10, 11] +idx: 3, delta: 3, matching: false, a (6): [2, 5, 6, 8, 9, 10, 11], b (1): [0, 1, 5, 6, 7] +idx: 3, delta: 4, matching: false, a (7): [3, 4, 5, 8, 9, 10, 11, 12], b (0): [2, 3, 7, 9, 12] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [2, 4, 7, 10, 11], b (5): [0, 1, 2, 5, 6, 7, 8, 9, 10, 11, 12] +idx: 4, delta: 2, matching: false, a (6): [2, 5, 6, 8, 9, 10, 11], b (3): [0, 1, 4, 6, 9, 10, 11, 12] +idx: 4, delta: 3, matching: false, a (7): [3, 4, 5, 8, 9, 10, 11, 12], b (2): [2, 5, 8, 10, 11] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 2, 3, 6, 7, 8, 9, 12], b (1): [0, 1, 5, 6, 7] +idx: 4, delta: 5, matching: false, a (9): [3, 4, 5, 8, 10, 11], b (0): [2, 3, 7, 9, 12] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 2, 5, 6, 7, 8, 9, 10, 11, 12], b (6): [2, 5, 6, 8, 9, 10, 11] +idx: 5, delta: 2, matching: false, a (7): [3, 4, 5, 8, 9, 10, 11, 12], b (4): [2, 4, 7, 10, 11] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 2, 3, 6, 7, 8, 9, 12], b (3): [0, 1, 4, 6, 9, 10, 11, 12] +idx: 5, delta: 4, matching: false, a (9): [3, 4, 5, 8, 10, 11], b (2): [2, 5, 8, 10, 11] +idx: 5, delta: 5, matching: false, a (10): [6, 7, 8, 9, 12], b (1): [0, 1, 5, 6, 7] +idx: 5, delta: 6, matching: false, a (11): [5, 6, 10, 11], b (0): [2, 3, 7, 9, 12] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [2, 5, 6, 8, 9, 10, 11], b (7): [3, 4, 5, 8, 9, 10, 11, 12] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 2, 3, 6, 7, 8, 9, 12], b (5): [0, 1, 2, 5, 6, 7, 8, 9, 10, 11, 12] +idx: 6, delta: 3, matching: false, a (9): [3, 4, 5, 8, 10, 11], b (4): [2, 4, 7, 10, 11] +idx: 6, delta: 4, matching: false, a (10): [6, 7, 8, 9, 12], b (3): [0, 1, 4, 6, 9, 10, 11, 12] +idx: 6, delta: 5, matching: false, a (11): [5, 6, 10, 11], b (2): [2, 5, 8, 10, 11] +idx: 6, delta: 6, matching: false, a (12): [3, 4, 5, 6, 7, 8, 10, 11], b (1): [0, 1, 5, 6, 7] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [3, 4, 5, 8, 9, 10, 11, 12], b (8): [0, 1, 2, 3, 6, 7, 8, 9, 12] +idx: 7, delta: 2, matching: false, a (9): [3, 4, 5, 8, 10, 11], b (6): [2, 5, 6, 8, 9, 10, 11] +idx: 7, delta: 3, matching: false, a (10): [6, 7, 8, 9, 12], b (5): [0, 1, 2, 5, 6, 7, 8, 9, 10, 11, 12] +idx: 7, delta: 4, matching: false, a (11): [5, 6, 10, 11], b (4): [2, 4, 7, 10, 11] +idx: 7, delta: 5, matching: false, a (12): [3, 4, 5, 6, 7, 8, 10, 11], b (3): [0, 1, 4, 6, 9, 10, 11, 12] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 1, 2, 3, 6, 7, 8, 9, 12], b (9): [3, 4, 5, 8, 10, 11] +idx: 8, delta: 2, matching: false, a (10): [6, 7, 8, 9, 12], b (7): [3, 4, 5, 8, 9, 10, 11, 12] +idx: 8, delta: 3, matching: false, a (11): [5, 6, 10, 11], b (6): [2, 5, 6, 8, 9, 10, 11] +idx: 8, delta: 4, matching: false, a (12): [3, 4, 5, 6, 7, 8, 10, 11], b (5): [0, 1, 2, 5, 6, 7, 8, 9, 10, 11, 12] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [3, 4, 5, 8, 10, 11], b (10): [6, 7, 8, 9, 12] +idx: 9, delta: 2, matching: false, a (11): [5, 6, 10, 11], b (8): [0, 1, 2, 3, 6, 7, 8, 9, 12] +idx: 9, delta: 3, matching: false, a (12): [3, 4, 5, 6, 7, 8, 10, 11], b (7): [3, 4, 5, 8, 9, 10, 11, 12] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [6, 7, 8, 9, 12], b (11): [5, 6, 10, 11] +idx: 10, delta: 2, matching: false, a (12): [3, 4, 5, 6, 7, 8, 10, 11], b (9): [3, 4, 5, 8, 10, 11] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [5, 6, 10, 11], b (12): [3, 4, 5, 6, 7, 8, 10, 11] +idx: 11 --- EXITING WITH false +idx: 12 --- EXITING WITH false +idx: 0, delta: 0, matching: true, a (0): [1, 3, 5, 8], b (1): [1, 3, 5, 8] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 3, 5, 8], b (2): [0, 2, 4, 5, 6, 8] +idx: 1, delta: 2, matching: false, a (3): [0, 7, 8, 9, 12], b (0): [1, 3, 5, 8] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 2, 4, 5, 6, 8], b (3): [0, 7, 8, 9, 12] +idx: 2, delta: 2, matching: false, a (4): [3, 4, 7, 9, 12], b (1): [1, 3, 5, 8] +idx: 2, delta: 3, matching: false, a (5): [1, 2, 5, 6, 7, 9, 11, 12], b (0): [1, 3, 5, 8] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 7, 8, 9, 12], b (4): [3, 4, 7, 9, 12] +idx: 3, delta: 2, matching: false, a (5): [1, 2, 5, 6, 7, 9, 11, 12], b (2): [0, 2, 4, 5, 6, 8] +idx: 3, delta: 3, matching: false, a (6): [1, 3, 5, 6, 8, 10, 11, 12], b (1): [1, 3, 5, 8] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 4, 5, 8, 10, 12], b (0): [1, 3, 5, 8] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [3, 4, 7, 9, 12], b (5): [1, 2, 5, 6, 7, 9, 11, 12] +idx: 4, delta: 2, matching: false, a (6): [1, 3, 5, 6, 8, 10, 11, 12], b (3): [0, 7, 8, 9, 12] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 4, 5, 8, 10, 12], b (2): [0, 2, 4, 5, 6, 8] +idx: 4, delta: 4, matching: false, a (8): [2, 5, 6, 7, 8, 9, 10, 12], b (1): [1, 3, 5, 8] +idx: 4, delta: 5, matching: false, a (9): [0, 3, 5, 6, 7, 8, 10], b (0): [1, 3, 5, 8] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 2, 5, 6, 7, 9, 11, 12], b (6): [1, 3, 5, 6, 8, 10, 11, 12] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 4, 5, 8, 10, 12], b (4): [3, 4, 7, 9, 12] +idx: 5, delta: 3, matching: false, a (8): [2, 5, 6, 7, 8, 9, 10, 12], b (3): [0, 7, 8, 9, 12] +idx: 5, delta: 4, matching: false, a (9): [0, 3, 5, 6, 7, 8, 10], b (2): [0, 2, 4, 5, 6, 8] +idx: 5, delta: 5, matching: false, a (10): [2, 3, 4, 5, 6, 7, 9, 11, 12], b (1): [1, 3, 5, 8] +idx: 5, delta: 6, matching: false, a (11): [2, 3, 4, 5, 6, 7, 9, 11, 12], b (0): [1, 3, 5, 8] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [1, 3, 5, 6, 8, 10, 11, 12], b (7): [0, 1, 4, 5, 8, 10, 12] +idx: 6, delta: 2, matching: false, a (8): [2, 5, 6, 7, 8, 9, 10, 12], b (5): [1, 2, 5, 6, 7, 9, 11, 12] +idx: 6, delta: 3, matching: false, a (9): [0, 3, 5, 6, 7, 8, 10], b (4): [3, 4, 7, 9, 12] +idx: 6, delta: 4, matching: false, a (10): [2, 3, 4, 5, 6, 7, 9, 11, 12], b (3): [0, 7, 8, 9, 12] +idx: 6, delta: 5, matching: false, a (11): [2, 3, 4, 5, 6, 7, 9, 11, 12], b (2): [0, 2, 4, 5, 6, 8] +idx: 6, delta: 6, matching: false, a (12): [0, 3, 5, 7, 8, 10], b (1): [1, 3, 5, 8] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 4, 5, 8, 10, 12], b (8): [2, 5, 6, 7, 8, 9, 10, 12] +idx: 7, delta: 2, matching: false, a (9): [0, 3, 5, 6, 7, 8, 10], b (6): [1, 3, 5, 6, 8, 10, 11, 12] +idx: 7, delta: 3, matching: false, a (10): [2, 3, 4, 5, 6, 7, 9, 11, 12], b (5): [1, 2, 5, 6, 7, 9, 11, 12] +idx: 7, delta: 4, matching: false, a (11): [2, 3, 4, 5, 6, 7, 9, 11, 12], b (4): [3, 4, 7, 9, 12] +idx: 7, delta: 5, matching: false, a (12): [0, 3, 5, 7, 8, 10], b (3): [0, 7, 8, 9, 12] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [2, 5, 6, 7, 8, 9, 10, 12], b (9): [0, 3, 5, 6, 7, 8, 10] +idx: 8, delta: 2, matching: false, a (10): [2, 3, 4, 5, 6, 7, 9, 11, 12], b (7): [0, 1, 4, 5, 8, 10, 12] +idx: 8, delta: 3, matching: false, a (11): [2, 3, 4, 5, 6, 7, 9, 11, 12], b (6): [1, 3, 5, 6, 8, 10, 11, 12] +idx: 8, delta: 4, matching: false, a (12): [0, 3, 5, 7, 8, 10], b (5): [1, 2, 5, 6, 7, 9, 11, 12] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 3, 5, 6, 7, 8, 10], b (10): [2, 3, 4, 5, 6, 7, 9, 11, 12] +idx: 9, delta: 2, matching: false, a (11): [2, 3, 4, 5, 6, 7, 9, 11, 12], b (8): [2, 5, 6, 7, 8, 9, 10, 12] +idx: 9, delta: 3, matching: false, a (12): [0, 3, 5, 7, 8, 10], b (7): [0, 1, 4, 5, 8, 10, 12] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: true, a (10): [2, 3, 4, 5, 6, 7, 9, 11, 12], b (11): [2, 3, 4, 5, 6, 7, 9, 11, 12] +idx: 10, delta: 2, matching: false, a (12): [0, 3, 5, 7, 8, 10], b (9): [0, 3, 5, 6, 7, 8, 10] +idx: 10, delta: 2 --- found smudge! +idx: 10 --- EXITING WITH true +.#.#.#..#.... +.#.#.#..#.... +#.#.###.#.... +#......###..# +...##..#.#..# +.##..###.#.## +.#.#.##.#.### +##..##..#.#.# +..#..######.# +#..#.####.#.. +..######.#.## +..######.#.## +#..#.#.##.#.. +1100 (vert: 0, horiz: 11) + +idx: 0, delta: 0, matching: true, a (0): [0, 1, 2, 3, 6, 7, 8, 9, 10, 12], b (1): [0, 1, 2, 3, 6, 7, 8, 9, 10, 12] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 2, 3, 6, 7, 8, 9, 10, 12], b (2): [3, 6, 11] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 4, 5, 8, 9, 11, 12], b (0): [0, 1, 2, 3, 6, 7, 8, 9, 10, 12] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [3, 6, 11], b (3): [0, 1, 4, 5, 8, 9, 11, 12] +idx: 2, delta: 2, matching: false, a (4): [0, 4, 5, 9, 11, 12], b (1): [0, 1, 2, 3, 6, 7, 8, 9, 10, 12] +idx: 2, delta: 3, matching: false, a (5): [0, 2, 3, 6, 7, 9, 10, 12], b (0): [0, 1, 2, 3, 6, 7, 8, 9, 10, 12] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 4, 5, 8, 9, 11, 12], b (4): [0, 4, 5, 9, 11, 12] +idx: 3, delta: 2, matching: false, a (5): [0, 2, 3, 6, 7, 9, 10, 12], b (2): [3, 6, 11] +idx: 3, delta: 3, matching: false, a (6): [1, 2, 3, 6, 7, 8], b (1): [0, 1, 2, 3, 6, 7, 8, 9, 10, 12] +idx: 3, delta: 4, matching: false, a (7): [1, 2, 3, 6, 7, 8, 10, 11], b (0): [0, 1, 2, 3, 6, 7, 8, 9, 10, 12] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 4, 5, 9, 11, 12], b (5): [0, 2, 3, 6, 7, 9, 10, 12] +idx: 4, delta: 2, matching: false, a (6): [1, 2, 3, 6, 7, 8], b (3): [0, 1, 4, 5, 8, 9, 11, 12] +idx: 4, delta: 3, matching: false, a (7): [1, 2, 3, 6, 7, 8, 10, 11], b (2): [3, 6, 11] +idx: 4, delta: 4, matching: false, a (8): [1, 4, 5, 8, 10], b (1): [0, 1, 2, 3, 6, 7, 8, 9, 10, 12] +idx: 4, delta: 5, matching: false, a (9): [1, 2, 6, 7, 8, 11, 12], b (0): [0, 1, 2, 3, 6, 7, 8, 9, 10, 12] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 2, 3, 6, 7, 9, 10, 12], b (6): [1, 2, 3, 6, 7, 8] +idx: 5, delta: 2, matching: false, a (7): [1, 2, 3, 6, 7, 8, 10, 11], b (4): [0, 4, 5, 9, 11, 12] +idx: 5, delta: 3, matching: false, a (8): [1, 4, 5, 8, 10], b (3): [0, 1, 4, 5, 8, 9, 11, 12] +idx: 5, delta: 4, matching: false, a (9): [1, 2, 6, 7, 8, 11, 12], b (2): [3, 6, 11] +idx: 5, delta: 5, matching: false, a (10): [2, 3, 6, 7, 10], b (1): [0, 1, 2, 3, 6, 7, 8, 9, 10, 12] +idx: 5, delta: 6, matching: false, a (11): [0, 4, 5, 9], b (0): [0, 1, 2, 3, 6, 7, 8, 9, 10, 12] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [1, 2, 3, 6, 7, 8], b (7): [1, 2, 3, 6, 7, 8, 10, 11] +idx: 6, delta: 2, matching: false, a (8): [1, 4, 5, 8, 10], b (5): [0, 2, 3, 6, 7, 9, 10, 12] +idx: 6, delta: 3, matching: false, a (9): [1, 2, 6, 7, 8, 11, 12], b (4): [0, 4, 5, 9, 11, 12] +idx: 6, delta: 4, matching: false, a (10): [2, 3, 6, 7, 10], b (3): [0, 1, 4, 5, 8, 9, 11, 12] +idx: 6, delta: 5, matching: false, a (11): [0, 4, 5, 9], b (2): [3, 6, 11] +idx: 6, delta: 6, matching: false, a (12): [2, 3, 4, 5, 6, 7, 10, 12], b (1): [0, 1, 2, 3, 6, 7, 8, 9, 10, 12] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [1, 2, 3, 6, 7, 8, 10, 11], b (8): [1, 4, 5, 8, 10] +idx: 7, delta: 2, matching: false, a (9): [1, 2, 6, 7, 8, 11, 12], b (6): [1, 2, 3, 6, 7, 8] +idx: 7, delta: 3, matching: false, a (10): [2, 3, 6, 7, 10], b (5): [0, 2, 3, 6, 7, 9, 10, 12] +idx: 7, delta: 4, matching: false, a (11): [0, 4, 5, 9], b (4): [0, 4, 5, 9, 11, 12] +idx: 7, delta: 5, matching: false, a (12): [2, 3, 4, 5, 6, 7, 10, 12], b (3): [0, 1, 4, 5, 8, 9, 11, 12] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [1, 4, 5, 8, 10], b (9): [1, 2, 6, 7, 8, 11, 12] +idx: 8, delta: 2, matching: false, a (10): [2, 3, 6, 7, 10], b (7): [1, 2, 3, 6, 7, 8, 10, 11] +idx: 8, delta: 3, matching: false, a (11): [0, 4, 5, 9], b (6): [1, 2, 3, 6, 7, 8] +idx: 8, delta: 4, matching: false, a (12): [2, 3, 4, 5, 6, 7, 10, 12], b (5): [0, 2, 3, 6, 7, 9, 10, 12] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [1, 2, 6, 7, 8, 11, 12], b (10): [2, 3, 6, 7, 10] +idx: 9, delta: 2, matching: false, a (11): [0, 4, 5, 9], b (8): [1, 4, 5, 8, 10] +idx: 9, delta: 3, matching: false, a (12): [2, 3, 4, 5, 6, 7, 10, 12], b (7): [1, 2, 3, 6, 7, 8, 10, 11] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [2, 3, 6, 7, 10], b (11): [0, 4, 5, 9] +idx: 10, delta: 2, matching: false, a (12): [2, 3, 4, 5, 6, 7, 10, 12], b (9): [1, 2, 6, 7, 8, 11, 12] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [0, 4, 5, 9], b (12): [2, 3, 4, 5, 6, 7, 10, 12] +idx: 11 --- EXITING WITH false +idx: 12 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [0, 1, 3, 4, 5, 11], b (1): [0, 1, 3, 6, 7, 8, 9] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 3, 6, 7, 8, 9], b (2): [0, 1, 5, 6, 7, 9, 10, 12] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 2, 5, 6, 7, 10, 12], b (0): [0, 1, 3, 4, 5, 11] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 5, 6, 7, 9, 10, 12], b (3): [0, 1, 2, 5, 6, 7, 10, 12] +idx: 2, delta: 2, matching: false, a (4): [3, 4, 8, 11, 12], b (1): [0, 1, 3, 6, 7, 8, 9] +idx: 2, delta: 3, matching: false, a (5): [3, 4, 8, 11, 12], b (0): [0, 1, 3, 4, 5, 11] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 2, 5, 6, 7, 10, 12], b (4): [3, 4, 8, 11, 12] +idx: 3, delta: 2, matching: false, a (5): [3, 4, 8, 11, 12], b (2): [0, 1, 5, 6, 7, 9, 10, 12] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 2, 5, 6, 7, 9, 10, 12], b (1): [0, 1, 3, 6, 7, 8, 9] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 5, 6, 7, 9, 10, 12], b (0): [0, 1, 3, 4, 5, 11] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: true, a (4): [3, 4, 8, 11, 12], b (5): [3, 4, 8, 11, 12] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 2, 5, 6, 7, 9, 10, 12], b (3): [0, 1, 2, 5, 6, 7, 10, 12] +idx: 4, delta: 2 --- found smudge! +idx: 4, delta: 3, matching: true, a (7): [0, 1, 5, 6, 7, 9, 10, 12], b (2): [0, 1, 5, 6, 7, 9, 10, 12] +idx: 4, delta: 4, matching: true, a (8): [0, 1, 3, 6, 7, 8, 9], b (1): [0, 1, 3, 6, 7, 8, 9] +idx: 4, delta: 5, matching: true, a (9): [0, 1, 3, 4, 5, 11], b (0): [0, 1, 3, 4, 5, 11] +idx: 4 --- EXITING WITH true +##.###.....#. +##.#..####... +##...###.##.# +###..###..#.# +...##...#..## +...##...#..## +###..###.##.# +##...###.##.# +##.#..####... +##.###.....#. +##...#.##.#.# +..###..#.#... +##.###...#..# +500 (vert: 0, horiz: 5) + +idx: 0, delta: 0, matching: false, a (0): [1, 6, 7, 8, 9], b (1): [1, 4, 6, 7, 9, 10] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 4, 6, 7, 9, 10], b (2): [0, 1, 2, 4, 5, 6, 8, 9, 10] +idx: 1, delta: 2, matching: false, a (3): [4, 5, 6, 7], b (0): [1, 6, 7, 8, 9] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 2, 4, 5, 6, 8, 9, 10], b (3): [4, 5, 6, 7] +idx: 2, delta: 2, matching: false, a (4): [0, 2, 3, 5, 6, 7, 8, 9, 10], b (1): [1, 4, 6, 7, 9, 10] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 2, 3, 5, 6, 7], b (0): [1, 6, 7, 8, 9] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [4, 5, 6, 7], b (4): [0, 2, 3, 5, 6, 7, 8, 9, 10] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 2, 3, 5, 6, 7], b (2): [0, 1, 2, 4, 5, 6, 8, 9, 10] +idx: 3, delta: 3, matching: false, a (6): [1, 2, 4, 5, 8, 9], b (1): [1, 4, 6, 7, 9, 10] +idx: 3, delta: 4, matching: false, a (7): [1, 3, 9, 10], b (0): [1, 6, 7, 8, 9] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 2, 3, 5, 6, 7, 8, 9, 10], b (5): [0, 1, 2, 3, 5, 6, 7] +idx: 4, delta: 2, matching: false, a (6): [1, 2, 4, 5, 8, 9], b (3): [4, 5, 6, 7] +idx: 4, delta: 3, matching: false, a (7): [1, 3, 9, 10], b (2): [0, 1, 2, 4, 5, 6, 8, 9, 10] +idx: 4, delta: 4, matching: false, a (8): [1, 3, 9, 10], b (1): [1, 4, 6, 7, 9, 10] +idx: 4, delta: 5, matching: false, a (9): [1, 2, 4, 5, 8, 9], b (0): [1, 6, 7, 8, 9] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 2, 3, 5, 6, 7], b (6): [1, 2, 4, 5, 8, 9] +idx: 5, delta: 2, matching: false, a (7): [1, 3, 9, 10], b (4): [0, 2, 3, 5, 6, 7, 8, 9, 10] +idx: 5, delta: 3, matching: false, a (8): [1, 3, 9, 10], b (3): [4, 5, 6, 7] +idx: 5, delta: 4, matching: false, a (9): [1, 2, 4, 5, 8, 9], b (2): [0, 1, 2, 4, 5, 6, 8, 9, 10] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 2, 3, 5, 6, 7], b (1): [1, 4, 6, 7, 9, 10] +idx: 5, delta: 6, matching: false, a (11): [0, 2, 3, 5, 6, 7, 8, 9, 10], b (0): [1, 6, 7, 8, 9] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [1, 2, 4, 5, 8, 9], b (7): [1, 3, 9, 10] +idx: 6, delta: 2, matching: false, a (8): [1, 3, 9, 10], b (5): [0, 1, 2, 3, 5, 6, 7] +idx: 6, delta: 3, matching: false, a (9): [1, 2, 4, 5, 8, 9], b (4): [0, 2, 3, 5, 6, 7, 8, 9, 10] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 2, 3, 5, 6, 7], b (3): [4, 5, 6, 7] +idx: 6, delta: 5, matching: false, a (11): [0, 2, 3, 5, 6, 7, 8, 9, 10], b (2): [0, 1, 2, 4, 5, 6, 8, 9, 10] +idx: 6, delta: 6, matching: false, a (12): [4, 5, 6, 7], b (1): [1, 4, 6, 7, 9, 10] +idx: 6, delta: 7, matching: false, a (13): [0, 1, 2, 4, 5, 6, 8, 9, 10], b (0): [1, 6, 7, 8, 9] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: true, a (7): [1, 3, 9, 10], b (8): [1, 3, 9, 10] +idx: 7, delta: 2, matching: true, a (9): [1, 2, 4, 5, 8, 9], b (6): [1, 2, 4, 5, 8, 9] +idx: 7, delta: 3, matching: true, a (10): [0, 1, 2, 3, 5, 6, 7], b (5): [0, 1, 2, 3, 5, 6, 7] +idx: 7, delta: 4, matching: true, a (11): [0, 2, 3, 5, 6, 7, 8, 9, 10], b (4): [0, 2, 3, 5, 6, 7, 8, 9, 10] +idx: 7, delta: 5, matching: true, a (12): [4, 5, 6, 7], b (3): [4, 5, 6, 7] +idx: 7, delta: 6, matching: true, a (13): [0, 1, 2, 4, 5, 6, 8, 9, 10], b (2): [0, 1, 2, 4, 5, 6, 8, 9, 10] +idx: 7, delta: 7, matching: false, a (14): [1, 4, 5, 6, 7, 9, 10], b (1): [1, 4, 6, 7, 9, 10] +idx: 7, delta: 7 --- found smudge! +idx: 7, delta: 8, matching: true, a (15): [1, 6, 7, 8, 9], b (0): [1, 6, 7, 8, 9] +idx: 7 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [2, 4, 5, 10, 11, 13], b (1): [0, 1, 2, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 2, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16], b (2): [2, 4, 5, 6, 9, 10, 11, 13] +idx: 1, delta: 2, matching: false, a (3): [4, 5, 7, 8, 10, 11], b (0): [2, 4, 5, 10, 11, 13] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [2, 4, 5, 6, 9, 10, 11, 13], b (3): [4, 5, 7, 8, 10, 11] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 3, 6, 9, 12, 13, 14], b (1): [0, 1, 2, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16] +idx: 2, delta: 3, matching: false, a (5): [2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14], b (0): [2, 4, 5, 10, 11, 13] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [4, 5, 7, 8, 10, 11], b (4): [1, 2, 3, 6, 9, 12, 13, 14] +idx: 3, delta: 2, matching: false, a (5): [2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14], b (2): [2, 4, 5, 6, 9, 10, 11, 13] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 2, 3, 4, 5, 10, 11, 12, 13, 14, 15, 16], b (1): [0, 1, 2, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 3, 4, 5, 10, 11, 12, 14, 15, 16], b (0): [2, 4, 5, 10, 11, 13] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 2, 3, 6, 9, 12, 13, 14], b (5): [2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 2, 3, 4, 5, 10, 11, 12, 13, 14, 15, 16], b (3): [4, 5, 7, 8, 10, 11] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 3, 4, 5, 10, 11, 12, 14, 15, 16], b (2): [2, 4, 5, 6, 9, 10, 11, 13] +idx: 4, delta: 4, matching: false, a (8): [0, 2, 4, 6, 9, 11, 13, 15, 16], b (1): [0, 1, 2, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 2, 4, 6, 7, 8, 9, 11, 13, 14, 15, 16], b (0): [2, 4, 5, 10, 11, 13] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14], b (6): [0, 1, 2, 3, 4, 5, 10, 11, 12, 13, 14, 15, 16] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 3, 4, 5, 10, 11, 12, 14, 15, 16], b (4): [1, 2, 3, 6, 9, 12, 13, 14] +idx: 5, delta: 3, matching: false, a (8): [0, 2, 4, 6, 9, 11, 13, 15, 16], b (3): [4, 5, 7, 8, 10, 11] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 2, 4, 6, 7, 8, 9, 11, 13, 14, 15, 16], b (2): [2, 4, 5, 6, 9, 10, 11, 13] +idx: 5, delta: 5, matching: false, a (10): [1, 2, 4, 7, 8, 11, 13, 14], b (1): [0, 1, 2, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 1, 2, 3, 4, 5, 10, 11, 12, 13, 14, 15, 16], b (7): [0, 1, 3, 4, 5, 10, 11, 12, 14, 15, 16] +idx: 6, delta: 2, matching: false, a (8): [0, 2, 4, 6, 9, 11, 13, 15, 16], b (5): [2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 2, 4, 6, 7, 8, 9, 11, 13, 14, 15, 16], b (4): [1, 2, 3, 6, 9, 12, 13, 14] +idx: 6, delta: 4, matching: false, a (10): [1, 2, 4, 7, 8, 11, 13, 14], b (3): [4, 5, 7, 8, 10, 11] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 3, 4, 5, 10, 11, 12, 14, 15, 16], b (8): [0, 2, 4, 6, 9, 11, 13, 15, 16] +idx: 7, delta: 2, matching: false, a (9): [0, 1, 2, 4, 6, 7, 8, 9, 11, 13, 14, 15, 16], b (6): [0, 1, 2, 3, 4, 5, 10, 11, 12, 13, 14, 15, 16] +idx: 7, delta: 3, matching: false, a (10): [1, 2, 4, 7, 8, 11, 13, 14], b (5): [2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 2, 4, 6, 9, 11, 13, 15, 16], b (9): [0, 1, 2, 4, 6, 7, 8, 9, 11, 13, 14, 15, 16] +idx: 8, delta: 2, matching: false, a (10): [1, 2, 4, 7, 8, 11, 13, 14], b (7): [0, 1, 3, 4, 5, 10, 11, 12, 14, 15, 16] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 1, 2, 4, 6, 7, 8, 9, 11, 13, 14, 15, 16], b (10): [1, 2, 4, 7, 8, 11, 13, 14] +idx: 9 --- EXITING WITH false +idx: 10 --- EXITING WITH false +..#.##....##.#... +###..######..#### +..#.###..###.#... +....##.##.##..... +.###..#..#..###.. +..#####..######.. +######....####### +##.###....###.### +#.#.#.#..#.#.#.## +###.#.####.#.#### +.##.#..##..#.##.. +8 (vert: 8, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [3, 4, 5, 6], b (1): [0, 4, 5, 6] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 4, 5, 6], b (2): [1, 4, 5, 6] +idx: 1, delta: 2, matching: false, a (3): [3, 5, 6], b (0): [3, 4, 5, 6] +idx: 1, delta: 2 --- found smudge! +idx: 1 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [1, 4, 5, 8, 9], b (1): [2, 4, 9] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [2, 4, 9], b (2): [5, 6, 7, 8] +idx: 1, delta: 2, matching: false, a (3): [0, 3, 4, 5, 8, 9, 10], b (0): [1, 4, 5, 8, 9] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [5, 6, 7, 8], b (3): [0, 3, 4, 5, 8, 9, 10] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 2, 5, 7, 8], b (1): [2, 4, 9] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 2, 3, 5, 8, 10], b (0): [1, 4, 5, 8, 9] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 3, 4, 5, 8, 9, 10], b (4): [0, 1, 2, 5, 7, 8] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 2, 3, 5, 8, 10], b (2): [5, 6, 7, 8] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 2, 3, 5, 8, 10], b (1): [2, 4, 9] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 2, 5, 7, 8], b (5): [0, 1, 2, 3, 5, 8, 10] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 2, 3, 5, 8, 10], b (3): [0, 3, 4, 5, 8, 9, 10] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: true, a (5): [0, 1, 2, 3, 5, 8, 10], b (6): [0, 1, 2, 3, 5, 8, 10] +idx: 5 --- EXITING WITH false +idx: 6 --- EXITING WITH false +.#..##..##. +..#.#....#. +.....####.. +#..###..### +###..#.##.. +####.#..#.# +####.#..#.# +2 (vert: 2, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [0, 3, 5, 6], b (1): [4, 6] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [4, 6], b (2): [0, 1, 2, 3, 5, 7] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 2, 3, 6, 7, 8], b (0): [0, 3, 5, 6] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 2, 3, 5, 7], b (3): [0, 1, 2, 3, 6, 7, 8] +idx: 2, delta: 2, matching: false, a (4): [6, 7, 8], b (1): [4, 6] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 2, 3, 8], b (0): [0, 3, 5, 6] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 2, 3, 6, 7, 8], b (4): [6, 7, 8] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 2, 3, 8], b (2): [0, 1, 2, 3, 5, 7] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 2, 3, 4, 6], b (1): [4, 6] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [6, 7, 8], b (5): [0, 1, 2, 3, 8] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 2, 3, 4, 6], b (3): [0, 1, 2, 3, 6, 7, 8] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 2, 3, 8], b (6): [0, 1, 2, 3, 4, 6] +idx: 5 --- EXITING WITH false +idx: 6 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [0, 2, 3, 5, 6], b (1): [2, 3, 5, 6] +idx: 0, delta: 0 --- found smudge! +idx: 0 --- EXITING WITH true +#.##.## +..##.## +..##.## +#.##.## +.#....# +#.#.... +##.##.# +..###.. +...###. +100 (vert: 0, horiz: 1) + +idx: 0, delta: 0, matching: false, a (0): [0], b (1): [0, 3, 5, 6, 8] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: true, a (1): [0, 3, 5, 6, 8], b (2): [0, 3, 5, 6, 8] +idx: 1, delta: 2, matching: true, a (3): [0], b (0): [0] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 3, 5, 6, 8], b (3): [0] +idx: 2, delta: 2, matching: false, a (4): [1, 3, 5, 7], b (1): [0, 3, 5, 6, 8] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 3, 7], b (0): [0] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0], b (4): [1, 3, 5, 7] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 3, 7], b (2): [0, 3, 5, 6, 8] +idx: 3, delta: 3, matching: false, a (6): [1, 2, 3, 4, 5, 7], b (1): [0, 3, 5, 6, 8] +idx: 3, delta: 4, matching: false, a (7): [1, 2, 3, 4, 5, 7], b (0): [0] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 3, 5, 7], b (5): [0, 1, 3, 7] +idx: 4, delta: 2, matching: false, a (6): [1, 2, 3, 4, 5, 7], b (3): [0] +idx: 4, delta: 3, matching: false, a (7): [1, 2, 3, 4, 5, 7], b (2): [0, 3, 5, 6, 8] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 3, 7, 8], b (1): [0, 3, 5, 6, 8] +idx: 4, delta: 5, matching: false, a (9): [1, 3, 5, 7], b (0): [0] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 3, 7], b (6): [1, 2, 3, 4, 5, 7] +idx: 5, delta: 2, matching: false, a (7): [1, 2, 3, 4, 5, 7], b (4): [1, 3, 5, 7] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 3, 7, 8], b (3): [0] +idx: 5, delta: 4, matching: false, a (9): [1, 3, 5, 7], b (2): [0, 3, 5, 6, 8] +idx: 5, delta: 5, matching: false, a (10): [0], b (1): [0, 3, 5, 6, 8] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: true, a (6): [1, 2, 3, 4, 5, 7], b (7): [1, 2, 3, 4, 5, 7] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 3, 7, 8], b (5): [0, 1, 3, 7] +idx: 6, delta: 2 --- found smudge! +idx: 6, delta: 3, matching: true, a (9): [1, 3, 5, 7], b (4): [1, 3, 5, 7] +idx: 6, delta: 4, matching: true, a (10): [0], b (3): [0] +idx: 6 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [0, 1, 2, 3, 5, 8, 10], b (1): [4, 5, 6, 7, 8, 9] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [4, 5, 6, 7, 8, 9], b (2): [6, 7] +idx: 1, delta: 2, matching: false, a (3): [1, 2, 4, 5, 6, 7, 8, 9], b (0): [0, 1, 2, 3, 5, 8, 10] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [6, 7], b (3): [1, 2, 4, 5, 6, 7, 8, 9] +idx: 2, delta: 2, matching: false, a (4): [6, 7], b (1): [4, 5, 6, 7, 8, 9] +idx: 2, delta: 3, matching: false, a (5): [1, 2, 4, 6, 7, 9], b (0): [0, 1, 2, 3, 5, 8, 10] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 2, 4, 5, 6, 7, 8, 9], b (4): [6, 7] +idx: 3, delta: 2, matching: false, a (5): [1, 2, 4, 6, 7, 9], b (2): [6, 7] +idx: 3, delta: 3, matching: false, a (6): [1, 2], b (1): [4, 5, 6, 7, 8, 9] +idx: 3, delta: 4, matching: false, a (7): [4, 5, 6, 7, 8, 9], b (0): [0, 1, 2, 3, 5, 8, 10] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [6, 7], b (5): [1, 2, 4, 6, 7, 9] +idx: 4, delta: 2, matching: false, a (6): [1, 2], b (3): [1, 2, 4, 5, 6, 7, 8, 9] +idx: 4, delta: 3, matching: false, a (7): [4, 5, 6, 7, 8, 9], b (2): [6, 7] +idx: 4, delta: 4, matching: false, a (8): [1, 2, 8], b (1): [4, 5, 6, 7, 8, 9] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 2, 4, 6, 7, 9], b (6): [1, 2] +idx: 5, delta: 2, matching: false, a (7): [4, 5, 6, 7, 8, 9], b (4): [6, 7] +idx: 5, delta: 3, matching: false, a (8): [1, 2, 8], b (3): [1, 2, 4, 5, 6, 7, 8, 9] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [1, 2], b (7): [4, 5, 6, 7, 8, 9] +idx: 6, delta: 2, matching: false, a (8): [1, 2, 8], b (5): [1, 2, 4, 6, 7, 9] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [4, 5, 6, 7, 8, 9], b (8): [1, 2, 8] +idx: 7 --- EXITING WITH false +idx: 8 --- EXITING WITH false +####.#..#.# +....######. +......##... +.##.######. +......##... +.##.#.##.#. +.##........ +....######. +.##.....#.. +7 (vert: 7, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [0, 1, 2, 6, 7, 11, 12, 13, 14], b (1): [0, 3, 6, 7, 10, 13, 14] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 3, 6, 7, 10, 13, 14], b (2): [2, 11] +idx: 1, delta: 2, matching: false, a (3): [2, 5, 8, 11, 13, 14], b (0): [0, 1, 2, 6, 7, 11, 12, 13, 14] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [2, 11], b (3): [2, 5, 8, 11, 13, 14] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 3, 4, 5, 8, 9, 10, 11, 12], b (1): [0, 3, 6, 7, 10, 13, 14] +idx: 2, delta: 3, matching: false, a (5): [1, 4, 6, 7, 9, 12], b (0): [0, 1, 2, 6, 7, 11, 12, 13, 14] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [2, 5, 8, 11, 13, 14], b (4): [1, 2, 3, 4, 5, 8, 9, 10, 11, 12] +idx: 3, delta: 2, matching: false, a (5): [1, 4, 6, 7, 9, 12], b (2): [2, 11] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 4, 5, 8, 9, 12, 13, 14], b (1): [0, 3, 6, 7, 10, 13, 14] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14], b (0): [0, 1, 2, 6, 7, 11, 12, 13, 14] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 2, 3, 4, 5, 8, 9, 10, 11, 12], b (5): [1, 4, 6, 7, 9, 12] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 4, 5, 8, 9, 12, 13, 14], b (3): [2, 5, 8, 11, 13, 14] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14], b (2): [2, 11] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 2, 3, 10, 11, 12, 13, 14], b (1): [0, 3, 6, 7, 10, 13, 14] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 4, 6, 7, 9, 12], b (6): [0, 1, 4, 5, 8, 9, 12, 13, 14] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14], b (4): [1, 2, 3, 4, 5, 8, 9, 10, 11, 12] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 2, 3, 10, 11, 12, 13, 14], b (3): [2, 5, 8, 11, 13, 14] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 1, 4, 5, 8, 9, 12, 13, 14], b (7): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 2, 3, 10, 11, 12, 13, 14], b (5): [1, 4, 6, 7, 9, 12] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14], b (8): [0, 1, 2, 3, 10, 11, 12, 13, 14] +idx: 7 --- EXITING WITH false +idx: 8 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [0, 1, 6, 7, 8], b (1): [0, 4, 5, 6, 7, 8] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 4, 5, 6, 7, 8], b (2): [0, 2, 3, 4, 8] +idx: 1, delta: 2, matching: false, a (3): [1, 4, 7, 8], b (0): [0, 1, 6, 7, 8] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 2, 3, 4, 8], b (3): [1, 4, 7, 8] +idx: 2, delta: 2, matching: false, a (4): [4, 5, 6, 7], b (1): [0, 4, 5, 6, 7, 8] +idx: 2, delta: 3, matching: false, a (5): [3, 4, 6, 7], b (0): [0, 1, 6, 7, 8] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 4, 7, 8], b (4): [4, 5, 6, 7] +idx: 3, delta: 2, matching: false, a (5): [3, 4, 6, 7], b (2): [0, 2, 3, 4, 8] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 5, 7], b (1): [0, 4, 5, 6, 7, 8] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 5, 7], b (0): [0, 1, 6, 7, 8] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [4, 5, 6, 7], b (5): [3, 4, 6, 7] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 5, 7], b (3): [1, 4, 7, 8] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 5, 7], b (2): [0, 2, 3, 4, 8] +idx: 4, delta: 4, matching: false, a (8): [3, 4, 6, 7], b (1): [0, 4, 5, 6, 7, 8] +idx: 4, delta: 5, matching: false, a (9): [4, 5, 6, 7], b (0): [0, 1, 6, 7, 8] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [3, 4, 6, 7], b (6): [0, 1, 5, 7] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 5, 7], b (4): [4, 5, 6, 7] +idx: 5, delta: 3, matching: false, a (8): [3, 4, 6, 7], b (3): [1, 4, 7, 8] +idx: 5, delta: 4, matching: false, a (9): [4, 5, 6, 7], b (2): [0, 2, 3, 4, 8] +idx: 5, delta: 5, matching: false, a (10): [1, 4, 7, 8], b (1): [0, 4, 5, 6, 7, 8] +idx: 5, delta: 6, matching: false, a (11): [0, 2, 3, 4, 8], b (0): [0, 1, 6, 7, 8] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: true, a (6): [0, 1, 5, 7], b (7): [0, 1, 5, 7] +idx: 6, delta: 2, matching: true, a (8): [3, 4, 6, 7], b (5): [3, 4, 6, 7] +idx: 6, delta: 3, matching: true, a (9): [4, 5, 6, 7], b (4): [4, 5, 6, 7] +idx: 6, delta: 4, matching: true, a (10): [1, 4, 7, 8], b (3): [1, 4, 7, 8] +idx: 6, delta: 5, matching: true, a (11): [0, 2, 3, 4, 8], b (2): [0, 2, 3, 4, 8] +idx: 6, delta: 6, matching: true, a (12): [0, 4, 5, 6, 7, 8], b (1): [0, 4, 5, 6, 7, 8] +idx: 6, delta: 7, matching: false, a (13): [0, 1, 3, 6, 7, 8], b (0): [0, 1, 6, 7, 8] +idx: 6, delta: 7 --- found smudge! +idx: 6 --- EXITING WITH true +##....### +#...##### +#.###...# +.#..#..## +....####. +...##.##. +##...#.#. +##...#.#. +...##.##. +....####. +.#..#..## +#.###...# +#...##### +##.#..### +##.#..### +700 (vert: 0, horiz: 7) + +idx: 0, delta: 0, matching: false, a (0): [0, 4, 6, 7, 8, 9, 12], b (1): [7] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [7], b (2): [0, 2, 3, 4, 5, 6, 7, 11, 12] +idx: 1, delta: 2, matching: false, a (3): [0, 2, 3, 4, 5, 6, 11], b (0): [0, 4, 6, 7, 8, 9, 12] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 2, 3, 4, 5, 6, 7, 11, 12], b (3): [0, 2, 3, 4, 5, 6, 11] +idx: 2, delta: 2, matching: false, a (4): [2, 3, 9, 10, 12], b (1): [7] +idx: 2, delta: 3, matching: false, a (5): [2, 3, 9, 10, 12], b (0): [0, 4, 6, 7, 8, 9, 12] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 2, 3, 4, 5, 6, 11], b (4): [2, 3, 9, 10, 12] +idx: 3, delta: 2, matching: false, a (5): [2, 3, 9, 10, 12], b (2): [0, 2, 3, 4, 5, 6, 7, 11, 12] +idx: 3, delta: 3, matching: false, a (6): [0, 2, 3, 4, 5, 6, 11], b (1): [7] +idx: 3, delta: 4, matching: false, a (7): [0, 2, 3, 4, 5, 6, 7, 11, 12], b (0): [0, 4, 6, 7, 8, 9, 12] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: true, a (4): [2, 3, 9, 10, 12], b (5): [2, 3, 9, 10, 12] +idx: 4, delta: 2, matching: true, a (6): [0, 2, 3, 4, 5, 6, 11], b (3): [0, 2, 3, 4, 5, 6, 11] +idx: 4, delta: 3, matching: true, a (7): [0, 2, 3, 4, 5, 6, 7, 11, 12], b (2): [0, 2, 3, 4, 5, 6, 7, 11, 12] +idx: 4, delta: 4, matching: true, a (8): [7], b (1): [7] +idx: 4, delta: 5, matching: true, a (9): [0, 4, 6, 7, 8, 9, 12], b (0): [0, 4, 6, 7, 8, 9, 12] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [2, 3, 9, 10, 12], b (6): [0, 2, 3, 4, 5, 6, 11] +idx: 5, delta: 2, matching: false, a (7): [0, 2, 3, 4, 5, 6, 7, 11, 12], b (4): [2, 3, 9, 10, 12] +idx: 5, delta: 3, matching: false, a (8): [7], b (3): [0, 2, 3, 4, 5, 6, 11] +idx: 5, delta: 4, matching: false, a (9): [0, 4, 6, 7, 8, 9, 12], b (2): [0, 2, 3, 4, 5, 6, 7, 11, 12] +idx: 5, delta: 5, matching: false, a (10): [1, 2, 4, 6, 8, 9, 11, 12], b (1): [7] +idx: 5, delta: 6, matching: false, a (11): [0, 1, 2, 5, 6, 8, 12], b (0): [0, 4, 6, 7, 8, 9, 12] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 2, 3, 4, 5, 6, 11], b (7): [0, 2, 3, 4, 5, 6, 7, 11, 12] +idx: 6, delta: 2, matching: false, a (8): [7], b (5): [2, 3, 9, 10, 12] +idx: 6, delta: 3, matching: false, a (9): [0, 4, 6, 7, 8, 9, 12], b (4): [2, 3, 9, 10, 12] +idx: 6, delta: 4, matching: false, a (10): [1, 2, 4, 6, 8, 9, 11, 12], b (3): [0, 2, 3, 4, 5, 6, 11] +idx: 6, delta: 5, matching: false, a (11): [0, 1, 2, 5, 6, 8, 12], b (2): [0, 2, 3, 4, 5, 6, 7, 11, 12] +idx: 6, delta: 6, matching: false, a (12): [2, 3, 4, 9, 10, 12], b (1): [7] +idx: 6, delta: 7, matching: false, a (13): [0, 2, 4, 7, 9, 10, 11, 12], b (0): [0, 4, 6, 7, 8, 9, 12] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 2, 3, 4, 5, 6, 7, 11, 12], b (8): [7] +idx: 7, delta: 2, matching: false, a (9): [0, 4, 6, 7, 8, 9, 12], b (6): [0, 2, 3, 4, 5, 6, 11] +idx: 7, delta: 3, matching: false, a (10): [1, 2, 4, 6, 8, 9, 11, 12], b (5): [2, 3, 9, 10, 12] +idx: 7, delta: 4, matching: false, a (11): [0, 1, 2, 5, 6, 8, 12], b (4): [2, 3, 9, 10, 12] +idx: 7, delta: 5, matching: false, a (12): [2, 3, 4, 9, 10, 12], b (3): [0, 2, 3, 4, 5, 6, 11] +idx: 7, delta: 6, matching: false, a (13): [0, 2, 4, 7, 9, 10, 11, 12], b (2): [0, 2, 3, 4, 5, 6, 7, 11, 12] +idx: 7, delta: 7, matching: false, a (14): [0, 3, 8, 9, 10], b (1): [7] +idx: 7, delta: 8, matching: false, a (15): [0, 3, 4, 8, 9, 10], b (0): [0, 4, 6, 7, 8, 9, 12] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [7], b (9): [0, 4, 6, 7, 8, 9, 12] +idx: 8, delta: 2, matching: false, a (10): [1, 2, 4, 6, 8, 9, 11, 12], b (7): [0, 2, 3, 4, 5, 6, 7, 11, 12] +idx: 8, delta: 3, matching: false, a (11): [0, 1, 2, 5, 6, 8, 12], b (6): [0, 2, 3, 4, 5, 6, 11] +idx: 8, delta: 4, matching: false, a (12): [2, 3, 4, 9, 10, 12], b (5): [2, 3, 9, 10, 12] +idx: 8, delta: 4 --- found smudge! +idx: 8, delta: 5, matching: false, a (13): [0, 2, 4, 7, 9, 10, 11, 12], b (4): [2, 3, 9, 10, 12] +idx: 8, delta: 5 --- found smudge twice! +idx: 9, delta: 0, matching: false, a (9): [0, 4, 6, 7, 8, 9, 12], b (10): [1, 2, 4, 6, 8, 9, 11, 12] +idx: 9, delta: 2, matching: false, a (11): [0, 1, 2, 5, 6, 8, 12], b (8): [7] +idx: 9, delta: 3, matching: false, a (12): [2, 3, 4, 9, 10, 12], b (7): [0, 2, 3, 4, 5, 6, 7, 11, 12] +idx: 9, delta: 4, matching: false, a (13): [0, 2, 4, 7, 9, 10, 11, 12], b (6): [0, 2, 3, 4, 5, 6, 11] +idx: 9, delta: 5, matching: false, a (14): [0, 3, 8, 9, 10], b (5): [2, 3, 9, 10, 12] +idx: 9, delta: 6, matching: false, a (15): [0, 3, 4, 8, 9, 10], b (4): [2, 3, 9, 10, 12] +idx: 9, delta: 7, matching: false, a (16): [0, 2, 4, 7, 9, 10, 11, 12], b (3): [0, 2, 3, 4, 5, 6, 11] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [1, 2, 4, 6, 8, 9, 11, 12], b (11): [0, 1, 2, 5, 6, 8, 12] +idx: 10, delta: 2, matching: false, a (12): [2, 3, 4, 9, 10, 12], b (9): [0, 4, 6, 7, 8, 9, 12] +idx: 10, delta: 3, matching: false, a (13): [0, 2, 4, 7, 9, 10, 11, 12], b (8): [7] +idx: 10, delta: 4, matching: false, a (14): [0, 3, 8, 9, 10], b (7): [0, 2, 3, 4, 5, 6, 7, 11, 12] +idx: 10, delta: 5, matching: false, a (15): [0, 3, 4, 8, 9, 10], b (6): [0, 2, 3, 4, 5, 6, 11] +idx: 10, delta: 6, matching: false, a (16): [0, 2, 4, 7, 9, 10, 11, 12], b (5): [2, 3, 9, 10, 12] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [0, 1, 2, 5, 6, 8, 12], b (12): [2, 3, 4, 9, 10, 12] +idx: 11, delta: 2, matching: false, a (13): [0, 2, 4, 7, 9, 10, 11, 12], b (10): [1, 2, 4, 6, 8, 9, 11, 12] +idx: 11, delta: 3, matching: false, a (14): [0, 3, 8, 9, 10], b (9): [0, 4, 6, 7, 8, 9, 12] +idx: 11, delta: 4, matching: false, a (15): [0, 3, 4, 8, 9, 10], b (8): [7] +idx: 11, delta: 5, matching: false, a (16): [0, 2, 4, 7, 9, 10, 11, 12], b (7): [0, 2, 3, 4, 5, 6, 7, 11, 12] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [2, 3, 4, 9, 10, 12], b (13): [0, 2, 4, 7, 9, 10, 11, 12] +idx: 12, delta: 2, matching: false, a (14): [0, 3, 8, 9, 10], b (11): [0, 1, 2, 5, 6, 8, 12] +idx: 12, delta: 3, matching: false, a (15): [0, 3, 4, 8, 9, 10], b (10): [1, 2, 4, 6, 8, 9, 11, 12] +idx: 12, delta: 4, matching: false, a (16): [0, 2, 4, 7, 9, 10, 11, 12], b (9): [0, 4, 6, 7, 8, 9, 12] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: false, a (13): [0, 2, 4, 7, 9, 10, 11, 12], b (14): [0, 3, 8, 9, 10] +idx: 13, delta: 2, matching: false, a (15): [0, 3, 4, 8, 9, 10], b (12): [2, 3, 4, 9, 10, 12] +idx: 13, delta: 3, matching: false, a (16): [0, 2, 4, 7, 9, 10, 11, 12], b (11): [0, 1, 2, 5, 6, 8, 12] +idx: 13 --- EXITING WITH false +idx: 14, delta: 0, matching: false, a (14): [0, 3, 8, 9, 10], b (15): [0, 3, 4, 8, 9, 10] +idx: 14, delta: 0 --- found smudge! +idx: 14, delta: 2, matching: true, a (16): [0, 2, 4, 7, 9, 10, 11, 12], b (13): [0, 2, 4, 7, 9, 10, 11, 12] +idx: 14 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [0, 2, 3, 6, 7, 9, 11, 13, 14, 15, 16], b (1): [10, 11] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [10, 11], b (2): [2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 16] +idx: 1, delta: 2, matching: false, a (3): [2, 3, 4, 5, 6, 7, 12, 14, 15], b (0): [0, 2, 3, 6, 7, 9, 11, 13, 14, 15, 16] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 16], b (3): [2, 3, 4, 5, 6, 7, 12, 14, 15] +idx: 2, delta: 2, matching: false, a (4): [0, 2, 3, 6, 7, 9, 10, 12, 13, 15, 16], b (1): [10, 11] +idx: 2, delta: 3, matching: false, a (5): [2, 3, 6, 7, 11], b (0): [0, 2, 3, 6, 7, 9, 11, 13, 14, 15, 16] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [2, 3, 4, 5, 6, 7, 12, 14, 15], b (4): [0, 2, 3, 6, 7, 9, 10, 12, 13, 15, 16] +idx: 3, delta: 2, matching: false, a (5): [2, 3, 6, 7, 11], b (2): [2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 16] +idx: 3, delta: 3, matching: false, a (6): [0, 2, 3, 6, 7, 9, 10, 11], b (1): [10, 11] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 2, 7, 8, 9, 13, 16], b (0): [0, 2, 3, 6, 7, 9, 11, 13, 14, 15, 16] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 2, 3, 6, 7, 9, 10, 12, 13, 15, 16], b (5): [2, 3, 6, 7, 11] +idx: 4, delta: 2, matching: false, a (6): [0, 2, 3, 6, 7, 9, 10, 11], b (3): [2, 3, 4, 5, 6, 7, 12, 14, 15] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 2, 7, 8, 9, 13, 16], b (2): [2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 16] +idx: 4, delta: 4, matching: false, a (8): [0, 9, 10, 11, 14, 15], b (1): [10, 11] +idx: 4, delta: 5, matching: false, a (9): [0, 4, 5, 9, 10, 12, 13, 14, 15, 16], b (0): [0, 2, 3, 6, 7, 9, 11, 13, 14, 15, 16] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [2, 3, 6, 7, 11], b (6): [0, 2, 3, 6, 7, 9, 10, 11] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 2, 7, 8, 9, 13, 16], b (4): [0, 2, 3, 6, 7, 9, 10, 12, 13, 15, 16] +idx: 5, delta: 3, matching: false, a (8): [0, 9, 10, 11, 14, 15], b (3): [2, 3, 4, 5, 6, 7, 12, 14, 15] +idx: 5, delta: 4, matching: false, a (9): [0, 4, 5, 9, 10, 12, 13, 14, 15, 16], b (2): [2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 16] +idx: 5, delta: 5, matching: false, a (10): [4, 5, 12, 13, 14, 15, 16], b (1): [10, 11] +idx: 5, delta: 6, matching: false, a (11): [2, 3, 6, 7, 10, 13, 16], b (0): [0, 2, 3, 6, 7, 9, 11, 13, 14, 15, 16] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 2, 3, 6, 7, 9, 10, 11], b (7): [0, 1, 2, 7, 8, 9, 13, 16] +idx: 6, delta: 2, matching: false, a (8): [0, 9, 10, 11, 14, 15], b (5): [2, 3, 6, 7, 11] +idx: 6, delta: 3, matching: false, a (9): [0, 4, 5, 9, 10, 12, 13, 14, 15, 16], b (4): [0, 2, 3, 6, 7, 9, 10, 12, 13, 15, 16] +idx: 6, delta: 4, matching: false, a (10): [4, 5, 12, 13, 14, 15, 16], b (3): [2, 3, 4, 5, 6, 7, 12, 14, 15] +idx: 6, delta: 5, matching: false, a (11): [2, 3, 6, 7, 10, 13, 16], b (2): [2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 16] +idx: 6, delta: 6, matching: false, a (12): [0, 2, 4, 5, 7, 9, 10, 11, 12, 13, 16], b (1): [10, 11] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 2, 7, 8, 9, 13, 16], b (8): [0, 9, 10, 11, 14, 15] +idx: 7, delta: 2, matching: false, a (9): [0, 4, 5, 9, 10, 12, 13, 14, 15, 16], b (6): [0, 2, 3, 6, 7, 9, 10, 11] +idx: 7, delta: 3, matching: false, a (10): [4, 5, 12, 13, 14, 15, 16], b (5): [2, 3, 6, 7, 11] +idx: 7, delta: 4, matching: false, a (11): [2, 3, 6, 7, 10, 13, 16], b (4): [0, 2, 3, 6, 7, 9, 10, 12, 13, 15, 16] +idx: 7, delta: 5, matching: false, a (12): [0, 2, 4, 5, 7, 9, 10, 11, 12, 13, 16], b (3): [2, 3, 4, 5, 6, 7, 12, 14, 15] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 9, 10, 11, 14, 15], b (9): [0, 4, 5, 9, 10, 12, 13, 14, 15, 16] +idx: 8, delta: 2, matching: false, a (10): [4, 5, 12, 13, 14, 15, 16], b (7): [0, 1, 2, 7, 8, 9, 13, 16] +idx: 8, delta: 3, matching: false, a (11): [2, 3, 6, 7, 10, 13, 16], b (6): [0, 2, 3, 6, 7, 9, 10, 11] +idx: 8, delta: 4, matching: false, a (12): [0, 2, 4, 5, 7, 9, 10, 11, 12, 13, 16], b (5): [2, 3, 6, 7, 11] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 4, 5, 9, 10, 12, 13, 14, 15, 16], b (10): [4, 5, 12, 13, 14, 15, 16] +idx: 9, delta: 2, matching: false, a (11): [2, 3, 6, 7, 10, 13, 16], b (8): [0, 9, 10, 11, 14, 15] +idx: 9, delta: 3, matching: false, a (12): [0, 2, 4, 5, 7, 9, 10, 11, 12, 13, 16], b (7): [0, 1, 2, 7, 8, 9, 13, 16] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [4, 5, 12, 13, 14, 15, 16], b (11): [2, 3, 6, 7, 10, 13, 16] +idx: 10, delta: 2, matching: false, a (12): [0, 2, 4, 5, 7, 9, 10, 11, 12, 13, 16], b (9): [0, 4, 5, 9, 10, 12, 13, 14, 15, 16] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [2, 3, 6, 7, 10, 13, 16], b (12): [0, 2, 4, 5, 7, 9, 10, 11, 12, 13, 16] +idx: 11 --- EXITING WITH false +idx: 12 --- EXITING WITH false +#.##..##.#.#.#### +..........##..... +..######..####..# +..######....#.##. +#.##..##.##.##.## +..##..##...#..... +#.##..##.###..... +###....###...#..# +#........###..##. +#...##...##.##### +....##......##### +..##..##..#..#..# +#.#.##.#.#####..# +15 (vert: 15, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [0, 1, 3, 7, 8, 9], b (1): [0, 3, 7, 8, 9] +idx: 0, delta: 0 --- found smudge! +idx: 0 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [0, 1, 3, 4, 6, 7, 11, 12, 13], b (1): [0, 2, 3, 4, 5, 7, 8, 11, 12, 13] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 2, 3, 4, 5, 7, 8, 11, 12, 13], b (2): [2, 3, 4, 5, 8] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 3, 4, 6, 7, 9, 12], b (0): [0, 1, 3, 4, 6, 7, 11, 12, 13] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [2, 3, 4, 5, 8], b (3): [0, 1, 3, 4, 6, 7, 9, 12] +idx: 2, delta: 2, matching: false, a (4): [2, 3, 4, 5, 9, 13, 14], b (1): [0, 2, 3, 4, 5, 7, 8, 11, 12, 13] +idx: 2, delta: 3, matching: false, a (5): [8, 10, 12, 14], b (0): [0, 1, 3, 4, 6, 7, 11, 12, 13] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 3, 4, 6, 7, 9, 12], b (4): [2, 3, 4, 5, 9, 13, 14] +idx: 3, delta: 2, matching: false, a (5): [8, 10, 12, 14], b (2): [2, 3, 4, 5, 8] +idx: 3, delta: 3, matching: false, a (6): [2, 5, 8, 12, 13], b (1): [0, 2, 3, 4, 5, 7, 8, 11, 12, 13] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 3, 4, 6, 7, 8, 11, 12, 14], b (0): [0, 1, 3, 4, 6, 7, 11, 12, 13] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [2, 3, 4, 5, 9, 13, 14], b (5): [8, 10, 12, 14] +idx: 4, delta: 2, matching: false, a (6): [2, 5, 8, 12, 13], b (3): [0, 1, 3, 4, 6, 7, 9, 12] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 3, 4, 6, 7, 8, 11, 12, 14], b (2): [2, 3, 4, 5, 8] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 3, 4, 6, 7, 8, 12, 13, 14], b (1): [0, 2, 3, 4, 5, 7, 8, 11, 12, 13] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 2, 5, 6, 7, 9, 13, 14], b (0): [0, 1, 3, 4, 6, 7, 11, 12, 13] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [8, 10, 12, 14], b (6): [2, 5, 8, 12, 13] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 3, 4, 6, 7, 8, 11, 12, 14], b (4): [2, 3, 4, 5, 9, 13, 14] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 3, 4, 6, 7, 8, 12, 13, 14], b (3): [0, 1, 3, 4, 6, 7, 9, 12] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 2, 5, 6, 7, 9, 13, 14], b (2): [2, 3, 4, 5, 8] +idx: 5, delta: 5, matching: false, a (10): [2, 5, 9, 10, 13], b (1): [0, 2, 3, 4, 5, 7, 8, 11, 12, 13] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [2, 5, 8, 12, 13], b (7): [0, 1, 3, 4, 6, 7, 8, 11, 12, 14] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 3, 4, 6, 7, 8, 12, 13, 14], b (5): [8, 10, 12, 14] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 2, 5, 6, 7, 9, 13, 14], b (4): [2, 3, 4, 5, 9, 13, 14] +idx: 6, delta: 4, matching: false, a (10): [2, 5, 9, 10, 13], b (3): [0, 1, 3, 4, 6, 7, 9, 12] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 3, 4, 6, 7, 8, 11, 12, 14], b (8): [0, 1, 3, 4, 6, 7, 8, 12, 13, 14] +idx: 7, delta: 2, matching: false, a (9): [0, 1, 2, 5, 6, 7, 9, 13, 14], b (6): [2, 5, 8, 12, 13] +idx: 7, delta: 3, matching: false, a (10): [2, 5, 9, 10, 13], b (5): [8, 10, 12, 14] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 1, 3, 4, 6, 7, 8, 12, 13, 14], b (9): [0, 1, 2, 5, 6, 7, 9, 13, 14] +idx: 8, delta: 2, matching: false, a (10): [2, 5, 9, 10, 13], b (7): [0, 1, 3, 4, 6, 7, 8, 11, 12, 14] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 1, 2, 5, 6, 7, 9, 13, 14], b (10): [2, 5, 9, 10, 13] +idx: 9 --- EXITING WITH false +idx: 10 --- EXITING WITH false +##.##.##...###. +#.####.##..###. +..####..#...... +##.##.##.#..#.. +..####...#...## +........#.#.#.# +..#..#..#...##. +##.##.###..##.# +##.##.###...### +###..###.#...## +..#..#...##..#. +1 (vert: 1, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [0, 2, 8, 11], b (1): [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], b (2): [3, 6, 8, 10, 11] +idx: 1, delta: 2, matching: false, a (3): [5, 6, 8, 9, 10], b (0): [0, 2, 8, 11] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [3, 6, 8, 10, 11], b (3): [5, 6, 8, 9, 10] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 2, 3, 4, 5, 8, 10], b (1): [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +idx: 2, delta: 3, matching: false, a (5): [1, 3, 5, 6, 10, 11], b (0): [0, 2, 8, 11] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [5, 6, 8, 9, 10], b (4): [0, 1, 2, 3, 4, 5, 8, 10] +idx: 3, delta: 2, matching: false, a (5): [1, 3, 5, 6, 10, 11], b (2): [3, 6, 8, 10, 11] +idx: 3, delta: 3, matching: false, a (6): [1, 3, 6, 10, 11], b (1): [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +idx: 3, delta: 4, matching: false, a (7): [0, 2, 3, 4, 6, 8, 9], b (0): [0, 2, 8, 11] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 2, 3, 4, 5, 8, 10], b (5): [1, 3, 5, 6, 10, 11] +idx: 4, delta: 2, matching: false, a (6): [1, 3, 6, 10, 11], b (3): [5, 6, 8, 9, 10] +idx: 4, delta: 3, matching: false, a (7): [0, 2, 3, 4, 6, 8, 9], b (2): [3, 6, 8, 10, 11] +idx: 4, delta: 4, matching: false, a (8): [2, 3, 5, 6, 7, 11, 12], b (1): [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +idx: 4, delta: 5, matching: false, a (9): [1, 6, 9, 10, 12], b (0): [0, 2, 8, 11] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 3, 5, 6, 10, 11], b (6): [1, 3, 6, 10, 11] +idx: 5, delta: 0 --- found smudge! +idx: 5, delta: 2, matching: false, a (7): [0, 2, 3, 4, 6, 8, 9], b (4): [0, 1, 2, 3, 4, 5, 8, 10] +idx: 5, delta: 2 --- found smudge twice! +idx: 6, delta: 0, matching: false, a (6): [1, 3, 6, 10, 11], b (7): [0, 2, 3, 4, 6, 8, 9] +idx: 6, delta: 2, matching: false, a (8): [2, 3, 5, 6, 7, 11, 12], b (5): [1, 3, 5, 6, 10, 11] +idx: 6, delta: 3, matching: false, a (9): [1, 6, 9, 10, 12], b (4): [0, 1, 2, 3, 4, 5, 8, 10] +idx: 6, delta: 4, matching: false, a (10): [1, 6, 9, 10, 12], b (3): [5, 6, 8, 9, 10] +idx: 6, delta: 5, matching: false, a (11): [2, 3, 5, 6, 7, 11, 12], b (2): [3, 6, 8, 10, 11] +idx: 6, delta: 6, matching: false, a (12): [0, 2, 3, 4, 6, 8, 9], b (1): [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +idx: 6, delta: 7, matching: false, a (13): [1, 3, 6, 10, 11], b (0): [0, 2, 8, 11] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 2, 3, 4, 6, 8, 9], b (8): [2, 3, 5, 6, 7, 11, 12] +idx: 7, delta: 2, matching: false, a (9): [1, 6, 9, 10, 12], b (6): [1, 3, 6, 10, 11] +idx: 7, delta: 3, matching: false, a (10): [1, 6, 9, 10, 12], b (5): [1, 3, 5, 6, 10, 11] +idx: 7, delta: 4, matching: false, a (11): [2, 3, 5, 6, 7, 11, 12], b (4): [0, 1, 2, 3, 4, 5, 8, 10] +idx: 7, delta: 5, matching: false, a (12): [0, 2, 3, 4, 6, 8, 9], b (3): [5, 6, 8, 9, 10] +idx: 7, delta: 6, matching: false, a (13): [1, 3, 6, 10, 11], b (2): [3, 6, 8, 10, 11] +idx: 7, delta: 7, matching: false, a (14): [1, 3, 5, 6, 10, 11], b (1): [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [2, 3, 5, 6, 7, 11, 12], b (9): [1, 6, 9, 10, 12] +idx: 8, delta: 2, matching: false, a (10): [1, 6, 9, 10, 12], b (7): [0, 2, 3, 4, 6, 8, 9] +idx: 8, delta: 3, matching: false, a (11): [2, 3, 5, 6, 7, 11, 12], b (6): [1, 3, 6, 10, 11] +idx: 8, delta: 4, matching: false, a (12): [0, 2, 3, 4, 6, 8, 9], b (5): [1, 3, 5, 6, 10, 11] +idx: 8, delta: 5, matching: false, a (13): [1, 3, 6, 10, 11], b (4): [0, 1, 2, 3, 4, 5, 8, 10] +idx: 8, delta: 6, matching: false, a (14): [1, 3, 5, 6, 10, 11], b (3): [5, 6, 8, 9, 10] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: true, a (9): [1, 6, 9, 10, 12], b (10): [1, 6, 9, 10, 12] +idx: 9, delta: 2, matching: true, a (11): [2, 3, 5, 6, 7, 11, 12], b (8): [2, 3, 5, 6, 7, 11, 12] +idx: 9, delta: 3, matching: true, a (12): [0, 2, 3, 4, 6, 8, 9], b (7): [0, 2, 3, 4, 6, 8, 9] +idx: 9, delta: 4, matching: true, a (13): [1, 3, 6, 10, 11], b (6): [1, 3, 6, 10, 11] +idx: 9, delta: 5, matching: true, a (14): [1, 3, 5, 6, 10, 11], b (5): [1, 3, 5, 6, 10, 11] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [1, 6, 9, 10, 12], b (11): [2, 3, 5, 6, 7, 11, 12] +idx: 10, delta: 2, matching: false, a (12): [0, 2, 3, 4, 6, 8, 9], b (9): [1, 6, 9, 10, 12] +idx: 10, delta: 3, matching: false, a (13): [1, 3, 6, 10, 11], b (8): [2, 3, 5, 6, 7, 11, 12] +idx: 10, delta: 4, matching: false, a (14): [1, 3, 5, 6, 10, 11], b (7): [0, 2, 3, 4, 6, 8, 9] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [2, 3, 5, 6, 7, 11, 12], b (12): [0, 2, 3, 4, 6, 8, 9] +idx: 11, delta: 2, matching: false, a (13): [1, 3, 6, 10, 11], b (10): [1, 6, 9, 10, 12] +idx: 11, delta: 3, matching: false, a (14): [1, 3, 5, 6, 10, 11], b (9): [1, 6, 9, 10, 12] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [0, 2, 3, 4, 6, 8, 9], b (13): [1, 3, 6, 10, 11] +idx: 12, delta: 2, matching: false, a (14): [1, 3, 5, 6, 10, 11], b (11): [2, 3, 5, 6, 7, 11, 12] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: false, a (13): [1, 3, 6, 10, 11], b (14): [1, 3, 5, 6, 10, 11] +idx: 13, delta: 0 --- found smudge! +idx: 13 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [0, 4, 7, 12], b (1): [1, 4, 5, 6, 9, 10, 13, 14] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 4, 5, 6, 9, 10, 13, 14], b (2): [0, 1, 4, 7, 8, 11, 12] +idx: 1, delta: 2, matching: false, a (3): [1, 2, 4, 5, 6, 7, 8, 11, 12, 13, 14], b (0): [0, 4, 7, 12] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 4, 7, 8, 11, 12], b (3): [1, 2, 4, 5, 6, 7, 8, 11, 12, 13, 14] +idx: 2, delta: 2, matching: false, a (4): [1, 4, 7, 12], b (1): [1, 4, 5, 6, 9, 10, 13, 14] +idx: 2, delta: 3, matching: false, a (5): [1, 3, 4, 5, 8, 11, 14], b (0): [0, 4, 7, 12] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 2, 4, 5, 6, 7, 8, 11, 12, 13, 14], b (4): [1, 4, 7, 12] +idx: 3, delta: 2, matching: false, a (5): [1, 3, 4, 5, 8, 11, 14], b (2): [0, 1, 4, 7, 8, 11, 12] +idx: 3, delta: 3, matching: false, a (6): [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], b (1): [1, 4, 5, 6, 9, 10, 13, 14] +idx: 3, delta: 4, matching: false, a (7): [1, 8, 11], b (0): [0, 4, 7, 12] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 4, 7, 12], b (5): [1, 3, 4, 5, 8, 11, 14] +idx: 4, delta: 2, matching: false, a (6): [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], b (3): [1, 2, 4, 5, 6, 7, 8, 11, 12, 13, 14] +idx: 4, delta: 3, matching: false, a (7): [1, 8, 11], b (2): [0, 1, 4, 7, 8, 11, 12] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 2, 3, 4, 7, 12], b (1): [1, 4, 5, 6, 9, 10, 13, 14] +idx: 4, delta: 5, matching: false, a (9): [1, 3, 7, 9, 10, 12], b (0): [0, 4, 7, 12] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 3, 4, 5, 8, 11, 14], b (6): [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] +idx: 5, delta: 2, matching: false, a (7): [1, 8, 11], b (4): [1, 4, 7, 12] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 2, 3, 4, 7, 12], b (3): [1, 2, 4, 5, 6, 7, 8, 11, 12, 13, 14] +idx: 5, delta: 4, matching: false, a (9): [1, 3, 7, 9, 10, 12], b (2): [0, 1, 4, 7, 8, 11, 12] +idx: 5, delta: 5, matching: false, a (10): [1, 2, 3, 4, 5, 6, 9, 10, 13, 14], b (1): [1, 4, 5, 6, 9, 10, 13, 14] +idx: 5, delta: 6, matching: false, a (11): [0, 2, 5, 6, 8, 11, 13, 14], b (0): [0, 4, 7, 12] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], b (7): [1, 8, 11] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 2, 3, 4, 7, 12], b (5): [1, 3, 4, 5, 8, 11, 14] +idx: 6, delta: 3, matching: false, a (9): [1, 3, 7, 9, 10, 12], b (4): [1, 4, 7, 12] +idx: 6, delta: 4, matching: false, a (10): [1, 2, 3, 4, 5, 6, 9, 10, 13, 14], b (3): [1, 2, 4, 5, 6, 7, 8, 11, 12, 13, 14] +idx: 6, delta: 5, matching: false, a (11): [0, 2, 5, 6, 8, 11, 13, 14], b (2): [0, 1, 4, 7, 8, 11, 12] +idx: 6, delta: 6, matching: false, a (12): [8, 9, 10, 11], b (1): [1, 4, 5, 6, 9, 10, 13, 14] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [1, 8, 11], b (8): [0, 1, 2, 3, 4, 7, 12] +idx: 7, delta: 2, matching: false, a (9): [1, 3, 7, 9, 10, 12], b (6): [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] +idx: 7, delta: 3, matching: false, a (10): [1, 2, 3, 4, 5, 6, 9, 10, 13, 14], b (5): [1, 3, 4, 5, 8, 11, 14] +idx: 7, delta: 4, matching: false, a (11): [0, 2, 5, 6, 8, 11, 13, 14], b (4): [1, 4, 7, 12] +idx: 7, delta: 5, matching: false, a (12): [8, 9, 10, 11], b (3): [1, 2, 4, 5, 6, 7, 8, 11, 12, 13, 14] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 1, 2, 3, 4, 7, 12], b (9): [1, 3, 7, 9, 10, 12] +idx: 8, delta: 2, matching: false, a (10): [1, 2, 3, 4, 5, 6, 9, 10, 13, 14], b (7): [1, 8, 11] +idx: 8, delta: 3, matching: false, a (11): [0, 2, 5, 6, 8, 11, 13, 14], b (6): [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] +idx: 8, delta: 4, matching: false, a (12): [8, 9, 10, 11], b (5): [1, 3, 4, 5, 8, 11, 14] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [1, 3, 7, 9, 10, 12], b (10): [1, 2, 3, 4, 5, 6, 9, 10, 13, 14] +idx: 9, delta: 2, matching: false, a (11): [0, 2, 5, 6, 8, 11, 13, 14], b (8): [0, 1, 2, 3, 4, 7, 12] +idx: 9, delta: 3, matching: false, a (12): [8, 9, 10, 11], b (7): [1, 8, 11] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [1, 2, 3, 4, 5, 6, 9, 10, 13, 14], b (11): [0, 2, 5, 6, 8, 11, 13, 14] +idx: 10, delta: 2, matching: false, a (12): [8, 9, 10, 11], b (9): [1, 3, 7, 9, 10, 12] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [0, 2, 5, 6, 8, 11, 13, 14], b (12): [8, 9, 10, 11] +idx: 11 --- EXITING WITH false +idx: 12 --- EXITING WITH false +#...#..#....#.. +.#..###..##..## +##..#..##..##.. +.##.#####..#### +.#..#..#....#.. +.#.###..#..#..# +.###.########## +.#......#..#... +#####..#....#.. +.#.#...#.##.#.. +.######..##..## +#.#..##.#..#.## +........####... +14 (vert: 14, horiz: 0) + +idx: 0, delta: 0, matching: true, a (0): [0, 2, 3, 4, 6], b (1): [0, 2, 3, 4, 6] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 2, 3, 4, 6], b (2): [2, 4] +idx: 1, delta: 2, matching: false, a (3): [0, 2, 3, 6, 8], b (0): [0, 2, 3, 4, 6] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [2, 4], b (3): [0, 2, 3, 6, 8] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 3, 5, 7, 8, 9, 10], b (1): [0, 2, 3, 4, 6] +idx: 2, delta: 3, matching: false, a (5): [0, 2, 5, 8, 9], b (0): [0, 2, 3, 4, 6] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 2, 3, 6, 8], b (4): [1, 2, 3, 5, 7, 8, 9, 10] +idx: 3, delta: 2, matching: false, a (5): [0, 2, 5, 8, 9], b (2): [2, 4] +idx: 3, delta: 3, matching: false, a (6): [3, 8, 9], b (1): [0, 2, 3, 4, 6] +idx: 3, delta: 4, matching: false, a (7): [0, 3, 4, 5, 7, 8, 9, 10], b (0): [0, 2, 3, 4, 6] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 2, 3, 5, 7, 8, 9, 10], b (5): [0, 2, 5, 8, 9] +idx: 4, delta: 2, matching: false, a (6): [3, 8, 9], b (3): [0, 2, 3, 6, 8] +idx: 4, delta: 3, matching: false, a (7): [0, 3, 4, 5, 7, 8, 9, 10], b (2): [2, 4] +idx: 4, delta: 4, matching: false, a (8): [0, 5, 7, 8, 9, 10], b (1): [0, 2, 3, 4, 6] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 2, 5, 8, 9], b (6): [3, 8, 9] +idx: 5, delta: 2, matching: false, a (7): [0, 3, 4, 5, 7, 8, 9, 10], b (4): [1, 2, 3, 5, 7, 8, 9, 10] +idx: 5, delta: 3, matching: false, a (8): [0, 5, 7, 8, 9, 10], b (3): [0, 2, 3, 6, 8] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [3, 8, 9], b (7): [0, 3, 4, 5, 7, 8, 9, 10] +idx: 6, delta: 2, matching: false, a (8): [0, 5, 7, 8, 9, 10], b (5): [0, 2, 5, 8, 9] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 3, 4, 5, 7, 8, 9, 10], b (8): [0, 5, 7, 8, 9, 10] +idx: 7 --- EXITING WITH false +idx: 8 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [0, 1, 3, 5, 7, 8], b (1): [4] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [4], b (2): [0, 1, 2, 3, 4, 5] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 3, 4, 6, 7], b (0): [0, 1, 3, 5, 7, 8] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 2, 3, 4, 5], b (3): [0, 1, 3, 4, 6, 7] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 2, 7], b (1): [4] +idx: 2, delta: 3, matching: false, a (5): [4, 5, 7, 8], b (0): [0, 1, 3, 5, 7, 8] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 3, 4, 6, 7], b (4): [0, 1, 2, 7] +idx: 3, delta: 2, matching: false, a (5): [4, 5, 7, 8], b (2): [0, 1, 2, 3, 4, 5] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 3], b (1): [4] +idx: 3, delta: 4, matching: false, a (7): [4, 7, 8], b (0): [0, 1, 3, 5, 7, 8] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 2, 7], b (5): [4, 5, 7, 8] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 3], b (3): [0, 1, 3, 4, 6, 7] +idx: 4, delta: 3, matching: false, a (7): [4, 7, 8], b (2): [0, 1, 2, 3, 4, 5] +idx: 4, delta: 4, matching: false, a (8): [3, 4, 5, 6, 7, 8], b (1): [4] +idx: 4, delta: 5, matching: false, a (9): [4, 5, 6, 7, 8], b (0): [0, 1, 3, 5, 7, 8] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [4, 5, 7, 8], b (6): [0, 1, 3] +idx: 5, delta: 2, matching: false, a (7): [4, 7, 8], b (4): [0, 1, 2, 7] +idx: 5, delta: 3, matching: false, a (8): [3, 4, 5, 6, 7, 8], b (3): [0, 1, 3, 4, 6, 7] +idx: 5, delta: 4, matching: false, a (9): [4, 5, 6, 7, 8], b (2): [0, 1, 2, 3, 4, 5] +idx: 5, delta: 5, matching: false, a (10): [4, 7, 8], b (1): [4] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 1, 3], b (7): [4, 7, 8] +idx: 6, delta: 2, matching: false, a (8): [3, 4, 5, 6, 7, 8], b (5): [4, 5, 7, 8] +idx: 6, delta: 3, matching: false, a (9): [4, 5, 6, 7, 8], b (4): [0, 1, 2, 7] +idx: 6, delta: 4, matching: false, a (10): [4, 7, 8], b (3): [0, 1, 3, 4, 6, 7] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [4, 7, 8], b (8): [3, 4, 5, 6, 7, 8] +idx: 7, delta: 2, matching: false, a (9): [4, 5, 6, 7, 8], b (6): [0, 1, 3] +idx: 7, delta: 3, matching: false, a (10): [4, 7, 8], b (5): [4, 5, 7, 8] +idx: 7, delta: 3 --- found smudge! +idx: 7 --- EXITING WITH true +##.#.#.## +....#.... +######... +##.##.##. +###....#. +....##.## +##.#..... +....#..## +...###### +....##### +....#..## +800 (vert: 0, horiz: 8) + +idx: 0, delta: 0, matching: false, a (0): [0, 1, 4, 5, 7, 8, 9], b (1): [1, 2, 6, 7, 10, 12, 13] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 2, 6, 7, 10, 12, 13], b (2): [0, 3, 5, 6, 8, 9, 10] +idx: 1, delta: 2, matching: false, a (3): [2, 3, 4, 6, 8, 9, 12, 13], b (0): [0, 1, 4, 5, 7, 8, 9] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 3, 5, 6, 8, 9, 10], b (3): [2, 3, 4, 6, 8, 9, 12, 13] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 3, 5, 6, 7, 8, 12, 13], b (1): [1, 2, 6, 7, 10, 12, 13] +idx: 2, delta: 3, matching: false, a (5): [1, 2, 4, 5, 8, 9, 11, 14], b (0): [0, 1, 4, 5, 7, 8, 9] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [2, 3, 4, 6, 8, 9, 12, 13], b (4): [0, 1, 3, 5, 6, 7, 8, 12, 13] +idx: 3, delta: 2, matching: false, a (5): [1, 2, 4, 5, 8, 9, 11, 14], b (2): [0, 3, 5, 6, 8, 9, 10] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 2, 5, 7, 10, 11, 14], b (1): [1, 2, 6, 7, 10, 12, 13] +idx: 3, delta: 4, matching: false, a (7): [4, 8, 9, 11, 12, 13, 14], b (0): [0, 1, 4, 5, 7, 8, 9] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 3, 5, 6, 7, 8, 12, 13], b (5): [1, 2, 4, 5, 8, 9, 11, 14] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 2, 5, 7, 10, 11, 14], b (3): [2, 3, 4, 6, 8, 9, 12, 13] +idx: 4, delta: 3, matching: false, a (7): [4, 8, 9, 11, 12, 13, 14], b (2): [0, 3, 5, 6, 8, 9, 10] +idx: 4, delta: 4, matching: false, a (8): [0, 2, 4, 6, 7, 8, 9, 10], b (1): [1, 2, 6, 7, 10, 12, 13] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 2, 3, 5, 6, 10, 11, 13, 14], b (0): [0, 1, 4, 5, 7, 8, 9] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 2, 4, 5, 8, 9, 11, 14], b (6): [0, 1, 2, 5, 7, 10, 11, 14] +idx: 5, delta: 2, matching: false, a (7): [4, 8, 9, 11, 12, 13, 14], b (4): [0, 1, 3, 5, 6, 7, 8, 12, 13] +idx: 5, delta: 3, matching: false, a (8): [0, 2, 4, 6, 7, 8, 9, 10], b (3): [2, 3, 4, 6, 8, 9, 12, 13] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 2, 3, 5, 6, 10, 11, 13, 14], b (2): [0, 3, 5, 6, 8, 9, 10] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 2, 3, 5, 6, 9], b (1): [1, 2, 6, 7, 10, 12, 13] +idx: 5, delta: 6, matching: false, a (11): [3, 4, 5, 6, 7, 9, 11, 14], b (0): [0, 1, 4, 5, 7, 8, 9] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 1, 2, 5, 7, 10, 11, 14], b (7): [4, 8, 9, 11, 12, 13, 14] +idx: 6, delta: 2, matching: false, a (8): [0, 2, 4, 6, 7, 8, 9, 10], b (5): [1, 2, 4, 5, 8, 9, 11, 14] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 2, 3, 5, 6, 10, 11, 13, 14], b (4): [0, 1, 3, 5, 6, 7, 8, 12, 13] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 2, 3, 5, 6, 9], b (3): [2, 3, 4, 6, 8, 9, 12, 13] +idx: 6, delta: 5, matching: false, a (11): [3, 4, 5, 6, 7, 9, 11, 14], b (2): [0, 3, 5, 6, 8, 9, 10] +idx: 6, delta: 6, matching: false, a (12): [0, 1, 2, 4, 6, 8, 9, 11, 12, 13, 14], b (1): [1, 2, 6, 7, 10, 12, 13] +idx: 6, delta: 7, matching: false, a (13): [2, 3, 4, 6, 7, 11, 14], b (0): [0, 1, 4, 5, 7, 8, 9] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [4, 8, 9, 11, 12, 13, 14], b (8): [0, 2, 4, 6, 7, 8, 9, 10] +idx: 7, delta: 2, matching: false, a (9): [0, 1, 2, 3, 5, 6, 10, 11, 13, 14], b (6): [0, 1, 2, 5, 7, 10, 11, 14] +idx: 7, delta: 3, matching: false, a (10): [0, 1, 2, 3, 5, 6, 9], b (5): [1, 2, 4, 5, 8, 9, 11, 14] +idx: 7, delta: 4, matching: false, a (11): [3, 4, 5, 6, 7, 9, 11, 14], b (4): [0, 1, 3, 5, 6, 7, 8, 12, 13] +idx: 7, delta: 5, matching: false, a (12): [0, 1, 2, 4, 6, 8, 9, 11, 12, 13, 14], b (3): [2, 3, 4, 6, 8, 9, 12, 13] +idx: 7, delta: 6, matching: false, a (13): [2, 3, 4, 6, 7, 11, 14], b (2): [0, 3, 5, 6, 8, 9, 10] +idx: 7, delta: 7, matching: false, a (14): [2, 3, 4, 8], b (1): [1, 2, 6, 7, 10, 12, 13] +idx: 7, delta: 8, matching: false, a (15): [2, 4, 7, 8, 9, 10, 12, 13], b (0): [0, 1, 4, 5, 7, 8, 9] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 2, 4, 6, 7, 8, 9, 10], b (9): [0, 1, 2, 3, 5, 6, 10, 11, 13, 14] +idx: 8, delta: 2, matching: false, a (10): [0, 1, 2, 3, 5, 6, 9], b (7): [4, 8, 9, 11, 12, 13, 14] +idx: 8, delta: 3, matching: false, a (11): [3, 4, 5, 6, 7, 9, 11, 14], b (6): [0, 1, 2, 5, 7, 10, 11, 14] +idx: 8, delta: 4, matching: false, a (12): [0, 1, 2, 4, 6, 8, 9, 11, 12, 13, 14], b (5): [1, 2, 4, 5, 8, 9, 11, 14] +idx: 8, delta: 5, matching: false, a (13): [2, 3, 4, 6, 7, 11, 14], b (4): [0, 1, 3, 5, 6, 7, 8, 12, 13] +idx: 8, delta: 6, matching: false, a (14): [2, 3, 4, 8], b (3): [2, 3, 4, 6, 8, 9, 12, 13] +idx: 8, delta: 7, matching: false, a (15): [2, 4, 7, 8, 9, 10, 12, 13], b (2): [0, 3, 5, 6, 8, 9, 10] +idx: 8, delta: 8, matching: false, a (16): [2, 4, 7, 8, 9, 10, 12, 13], b (1): [1, 2, 6, 7, 10, 12, 13] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 1, 2, 3, 5, 6, 10, 11, 13, 14], b (10): [0, 1, 2, 3, 5, 6, 9] +idx: 9, delta: 2, matching: false, a (11): [3, 4, 5, 6, 7, 9, 11, 14], b (8): [0, 2, 4, 6, 7, 8, 9, 10] +idx: 9, delta: 3, matching: false, a (12): [0, 1, 2, 4, 6, 8, 9, 11, 12, 13, 14], b (7): [4, 8, 9, 11, 12, 13, 14] +idx: 9, delta: 4, matching: false, a (13): [2, 3, 4, 6, 7, 11, 14], b (6): [0, 1, 2, 5, 7, 10, 11, 14] +idx: 9, delta: 5, matching: false, a (14): [2, 3, 4, 8], b (5): [1, 2, 4, 5, 8, 9, 11, 14] +idx: 9, delta: 6, matching: false, a (15): [2, 4, 7, 8, 9, 10, 12, 13], b (4): [0, 1, 3, 5, 6, 7, 8, 12, 13] +idx: 9, delta: 7, matching: false, a (16): [2, 4, 7, 8, 9, 10, 12, 13], b (3): [2, 3, 4, 6, 8, 9, 12, 13] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 1, 2, 3, 5, 6, 9], b (11): [3, 4, 5, 6, 7, 9, 11, 14] +idx: 10, delta: 2, matching: false, a (12): [0, 1, 2, 4, 6, 8, 9, 11, 12, 13, 14], b (9): [0, 1, 2, 3, 5, 6, 10, 11, 13, 14] +idx: 10, delta: 3, matching: false, a (13): [2, 3, 4, 6, 7, 11, 14], b (8): [0, 2, 4, 6, 7, 8, 9, 10] +idx: 10, delta: 4, matching: false, a (14): [2, 3, 4, 8], b (7): [4, 8, 9, 11, 12, 13, 14] +idx: 10, delta: 5, matching: false, a (15): [2, 4, 7, 8, 9, 10, 12, 13], b (6): [0, 1, 2, 5, 7, 10, 11, 14] +idx: 10, delta: 6, matching: false, a (16): [2, 4, 7, 8, 9, 10, 12, 13], b (5): [1, 2, 4, 5, 8, 9, 11, 14] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [3, 4, 5, 6, 7, 9, 11, 14], b (12): [0, 1, 2, 4, 6, 8, 9, 11, 12, 13, 14] +idx: 11, delta: 2, matching: false, a (13): [2, 3, 4, 6, 7, 11, 14], b (10): [0, 1, 2, 3, 5, 6, 9] +idx: 11, delta: 3, matching: false, a (14): [2, 3, 4, 8], b (9): [0, 1, 2, 3, 5, 6, 10, 11, 13, 14] +idx: 11, delta: 4, matching: false, a (15): [2, 4, 7, 8, 9, 10, 12, 13], b (8): [0, 2, 4, 6, 7, 8, 9, 10] +idx: 11, delta: 5, matching: false, a (16): [2, 4, 7, 8, 9, 10, 12, 13], b (7): [4, 8, 9, 11, 12, 13, 14] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [0, 1, 2, 4, 6, 8, 9, 11, 12, 13, 14], b (13): [2, 3, 4, 6, 7, 11, 14] +idx: 12, delta: 2, matching: false, a (14): [2, 3, 4, 8], b (11): [3, 4, 5, 6, 7, 9, 11, 14] +idx: 12, delta: 3, matching: false, a (15): [2, 4, 7, 8, 9, 10, 12, 13], b (10): [0, 1, 2, 3, 5, 6, 9] +idx: 12, delta: 4, matching: false, a (16): [2, 4, 7, 8, 9, 10, 12, 13], b (9): [0, 1, 2, 3, 5, 6, 10, 11, 13, 14] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: false, a (13): [2, 3, 4, 6, 7, 11, 14], b (14): [2, 3, 4, 8] +idx: 13, delta: 2, matching: false, a (15): [2, 4, 7, 8, 9, 10, 12, 13], b (12): [0, 1, 2, 4, 6, 8, 9, 11, 12, 13, 14] +idx: 13, delta: 3, matching: false, a (16): [2, 4, 7, 8, 9, 10, 12, 13], b (11): [3, 4, 5, 6, 7, 9, 11, 14] +idx: 13 --- EXITING WITH false +idx: 14, delta: 0, matching: false, a (14): [2, 3, 4, 8], b (15): [2, 4, 7, 8, 9, 10, 12, 13] +idx: 14, delta: 2, matching: false, a (16): [2, 4, 7, 8, 9, 10, 12, 13], b (13): [2, 3, 4, 6, 7, 11, 14] +idx: 14 --- EXITING WITH false +idx: 15, delta: 0, matching: true, a (15): [2, 4, 7, 8, 9, 10, 12, 13], b (16): [2, 4, 7, 8, 9, 10, 12, 13] +idx: 15 --- EXITING WITH false +idx: 16 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [0, 2, 4, 6, 8, 9, 10, 12], b (1): [0, 1, 4, 5, 6, 9, 10, 12] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 4, 5, 6, 9, 10, 12], b (2): [1, 3, 5, 6, 8, 9, 10, 12, 13, 14, 15, 16] +idx: 1, delta: 2, matching: false, a (3): [2, 3, 4, 9, 10, 11, 13, 14], b (0): [0, 2, 4, 6, 8, 9, 10, 12] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 3, 5, 6, 8, 9, 10, 12, 13, 14, 15, 16], b (3): [2, 3, 4, 9, 10, 11, 13, 14] +idx: 2, delta: 2, matching: false, a (4): [0, 3, 5, 7, 8, 11, 12, 13, 14, 15, 16], b (1): [0, 1, 4, 5, 6, 9, 10, 12] +idx: 2, delta: 3, matching: false, a (5): [0, 2, 4, 5, 6, 9, 10, 11], b (0): [0, 2, 4, 6, 8, 9, 10, 12] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [2, 3, 4, 9, 10, 11, 13, 14], b (4): [0, 3, 5, 7, 8, 11, 12, 13, 14, 15, 16] +idx: 3, delta: 2, matching: false, a (5): [0, 2, 4, 5, 6, 9, 10, 11], b (2): [1, 3, 5, 6, 8, 9, 10, 12, 13, 14, 15, 16] +idx: 3, delta: 3, matching: false, a (6): [1, 2, 3, 4, 8, 9, 10, 11, 12, 13], b (1): [0, 1, 4, 5, 6, 9, 10, 12] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 4, 6, 8, 11, 13, 15, 16], b (0): [0, 2, 4, 6, 8, 9, 10, 12] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 3, 5, 7, 8, 11, 12, 13, 14, 15, 16], b (5): [0, 2, 4, 5, 6, 9, 10, 11] +idx: 4, delta: 2, matching: false, a (6): [1, 2, 3, 4, 8, 9, 10, 11, 12, 13], b (3): [2, 3, 4, 9, 10, 11, 13, 14] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 4, 6, 8, 11, 13, 15, 16], b (2): [1, 3, 5, 6, 8, 9, 10, 12, 13, 14, 15, 16] +idx: 4, delta: 4, matching: false, a (8): [0, 2, 3, 4, 5, 7, 8, 12, 14, 15, 16], b (1): [0, 1, 4, 5, 6, 9, 10, 12] +idx: 4, delta: 5, matching: false, a (9): [0, 2, 3, 5, 7, 8, 10, 11, 12, 15, 16], b (0): [0, 2, 4, 6, 8, 9, 10, 12] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 2, 4, 5, 6, 9, 10, 11], b (6): [1, 2, 3, 4, 8, 9, 10, 11, 12, 13] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 4, 6, 8, 11, 13, 15, 16], b (4): [0, 3, 5, 7, 8, 11, 12, 13, 14, 15, 16] +idx: 5, delta: 3, matching: false, a (8): [0, 2, 3, 4, 5, 7, 8, 12, 14, 15, 16], b (3): [2, 3, 4, 9, 10, 11, 13, 14] +idx: 5, delta: 4, matching: false, a (9): [0, 2, 3, 5, 7, 8, 10, 11, 12, 15, 16], b (2): [1, 3, 5, 6, 8, 9, 10, 12, 13, 14, 15, 16] +idx: 5, delta: 5, matching: false, a (10): [1, 2, 6, 8, 9, 15, 16], b (1): [0, 1, 4, 5, 6, 9, 10, 12] +idx: 5, delta: 6, matching: false, a (11): [5, 6, 7, 9, 11, 12, 13], b (0): [0, 2, 4, 6, 8, 9, 10, 12] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [1, 2, 3, 4, 8, 9, 10, 11, 12, 13], b (7): [0, 1, 4, 6, 8, 11, 13, 15, 16] +idx: 6, delta: 2, matching: false, a (8): [0, 2, 3, 4, 5, 7, 8, 12, 14, 15, 16], b (5): [0, 2, 4, 5, 6, 9, 10, 11] +idx: 6, delta: 3, matching: false, a (9): [0, 2, 3, 5, 7, 8, 10, 11, 12, 15, 16], b (4): [0, 3, 5, 7, 8, 11, 12, 13, 14, 15, 16] +idx: 6, delta: 4, matching: false, a (10): [1, 2, 6, 8, 9, 15, 16], b (3): [2, 3, 4, 9, 10, 11, 13, 14] +idx: 6, delta: 5, matching: false, a (11): [5, 6, 7, 9, 11, 12, 13], b (2): [1, 3, 5, 6, 8, 9, 10, 12, 13, 14, 15, 16] +idx: 6, delta: 6, matching: false, a (12): [1, 3, 4, 7, 12, 15, 16], b (1): [0, 1, 4, 5, 6, 9, 10, 12] +idx: 6, delta: 7, matching: false, a (13): [1, 3, 4, 7, 9, 12, 15, 16], b (0): [0, 2, 4, 6, 8, 9, 10, 12] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 4, 6, 8, 11, 13, 15, 16], b (8): [0, 2, 3, 4, 5, 7, 8, 12, 14, 15, 16] +idx: 7, delta: 2, matching: false, a (9): [0, 2, 3, 5, 7, 8, 10, 11, 12, 15, 16], b (6): [1, 2, 3, 4, 8, 9, 10, 11, 12, 13] +idx: 7, delta: 3, matching: false, a (10): [1, 2, 6, 8, 9, 15, 16], b (5): [0, 2, 4, 5, 6, 9, 10, 11] +idx: 7, delta: 4, matching: false, a (11): [5, 6, 7, 9, 11, 12, 13], b (4): [0, 3, 5, 7, 8, 11, 12, 13, 14, 15, 16] +idx: 7, delta: 5, matching: false, a (12): [1, 3, 4, 7, 12, 15, 16], b (3): [2, 3, 4, 9, 10, 11, 13, 14] +idx: 7, delta: 6, matching: false, a (13): [1, 3, 4, 7, 9, 12, 15, 16], b (2): [1, 3, 5, 6, 8, 9, 10, 12, 13, 14, 15, 16] +idx: 7, delta: 7, matching: false, a (14): [5, 6, 7, 9, 11, 12, 13], b (1): [0, 1, 4, 5, 6, 9, 10, 12] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 2, 3, 4, 5, 7, 8, 12, 14, 15, 16], b (9): [0, 2, 3, 5, 7, 8, 10, 11, 12, 15, 16] +idx: 8, delta: 2, matching: false, a (10): [1, 2, 6, 8, 9, 15, 16], b (7): [0, 1, 4, 6, 8, 11, 13, 15, 16] +idx: 8, delta: 3, matching: false, a (11): [5, 6, 7, 9, 11, 12, 13], b (6): [1, 2, 3, 4, 8, 9, 10, 11, 12, 13] +idx: 8, delta: 4, matching: false, a (12): [1, 3, 4, 7, 12, 15, 16], b (5): [0, 2, 4, 5, 6, 9, 10, 11] +idx: 8, delta: 5, matching: false, a (13): [1, 3, 4, 7, 9, 12, 15, 16], b (4): [0, 3, 5, 7, 8, 11, 12, 13, 14, 15, 16] +idx: 8, delta: 6, matching: false, a (14): [5, 6, 7, 9, 11, 12, 13], b (3): [2, 3, 4, 9, 10, 11, 13, 14] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 2, 3, 5, 7, 8, 10, 11, 12, 15, 16], b (10): [1, 2, 6, 8, 9, 15, 16] +idx: 9, delta: 2, matching: false, a (11): [5, 6, 7, 9, 11, 12, 13], b (8): [0, 2, 3, 4, 5, 7, 8, 12, 14, 15, 16] +idx: 9, delta: 3, matching: false, a (12): [1, 3, 4, 7, 12, 15, 16], b (7): [0, 1, 4, 6, 8, 11, 13, 15, 16] +idx: 9, delta: 4, matching: false, a (13): [1, 3, 4, 7, 9, 12, 15, 16], b (6): [1, 2, 3, 4, 8, 9, 10, 11, 12, 13] +idx: 9, delta: 5, matching: false, a (14): [5, 6, 7, 9, 11, 12, 13], b (5): [0, 2, 4, 5, 6, 9, 10, 11] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [1, 2, 6, 8, 9, 15, 16], b (11): [5, 6, 7, 9, 11, 12, 13] +idx: 10, delta: 2, matching: false, a (12): [1, 3, 4, 7, 12, 15, 16], b (9): [0, 2, 3, 5, 7, 8, 10, 11, 12, 15, 16] +idx: 10, delta: 3, matching: false, a (13): [1, 3, 4, 7, 9, 12, 15, 16], b (8): [0, 2, 3, 4, 5, 7, 8, 12, 14, 15, 16] +idx: 10, delta: 4, matching: false, a (14): [5, 6, 7, 9, 11, 12, 13], b (7): [0, 1, 4, 6, 8, 11, 13, 15, 16] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [5, 6, 7, 9, 11, 12, 13], b (12): [1, 3, 4, 7, 12, 15, 16] +idx: 11, delta: 2, matching: false, a (13): [1, 3, 4, 7, 9, 12, 15, 16], b (10): [1, 2, 6, 8, 9, 15, 16] +idx: 11, delta: 3, matching: false, a (14): [5, 6, 7, 9, 11, 12, 13], b (9): [0, 2, 3, 5, 7, 8, 10, 11, 12, 15, 16] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [1, 3, 4, 7, 12, 15, 16], b (13): [1, 3, 4, 7, 9, 12, 15, 16] +idx: 12, delta: 0 --- found smudge! +idx: 12, delta: 2, matching: true, a (14): [5, 6, 7, 9, 11, 12, 13], b (11): [5, 6, 7, 9, 11, 12, 13] +idx: 12 --- EXITING WITH true +#.#.#.#.###.#.... +##..###..##.#.... +.#.#.##.###.##### +..###....###.##.. +#..#.#.##..###### +#.#.###..###..... +.####...######... +##..#.#.#..#.#.## +#.####.##...#.### +#.##.#.##.###..## +.##...#.##.....## +.....###.#.###... +.#.##..#....#..## +.#.##..#.#..#..## +.....###.#.###... +1300 (vert: 0, horiz: 13) + +idx: 0, delta: 0, matching: false, a (0): [0, 2, 4, 6, 11], b (1): [0, 4, 10] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 4, 10], b (2): [0, 1, 2, 8, 9] +idx: 1, delta: 2, matching: false, a (3): [3, 4, 6, 7, 10, 11], b (0): [0, 2, 4, 6, 11] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 2, 8, 9], b (3): [3, 4, 6, 7, 10, 11] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 7, 8, 9, 10], b (1): [0, 4, 10] +idx: 2, delta: 3, matching: false, a (5): [2, 6, 7, 8, 9, 10, 11], b (0): [0, 2, 4, 6, 11] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [3, 4, 6, 7, 10, 11], b (4): [1, 2, 7, 8, 9, 10] +idx: 3, delta: 2, matching: false, a (5): [2, 6, 7, 8, 9, 10, 11], b (2): [0, 1, 2, 8, 9] +idx: 3, delta: 3, matching: false, a (6): [0, 5, 6, 11, 12], b (1): [0, 4, 10] +idx: 3, delta: 4, matching: false, a (7): [3, 4, 8, 9], b (0): [0, 2, 4, 6, 11] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 2, 7, 8, 9, 10], b (5): [2, 6, 7, 8, 9, 10, 11] +idx: 4, delta: 2, matching: false, a (6): [0, 5, 6, 11, 12], b (3): [3, 4, 6, 7, 10, 11] +idx: 4, delta: 3, matching: false, a (7): [3, 4, 8, 9], b (2): [0, 1, 2, 8, 9] +idx: 4, delta: 4, matching: false, a (8): [1, 3, 7, 8, 9, 10], b (1): [0, 4, 10] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 3, 4, 5, 12], b (0): [0, 2, 4, 6, 11] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [2, 6, 7, 8, 9, 10, 11], b (6): [0, 5, 6, 11, 12] +idx: 5, delta: 2, matching: false, a (7): [3, 4, 8, 9], b (4): [1, 2, 7, 8, 9, 10] +idx: 5, delta: 3, matching: false, a (8): [1, 3, 7, 8, 9, 10], b (3): [3, 4, 6, 7, 10, 11] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 3, 4, 5, 12], b (2): [0, 1, 2, 8, 9] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 3, 4, 5, 12], b (1): [0, 4, 10] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 5, 6, 11, 12], b (7): [3, 4, 8, 9] +idx: 6, delta: 2, matching: false, a (8): [1, 3, 7, 8, 9, 10], b (5): [2, 6, 7, 8, 9, 10, 11] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 3, 4, 5, 12], b (4): [1, 2, 7, 8, 9, 10] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 3, 4, 5, 12], b (3): [3, 4, 6, 7, 10, 11] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [3, 4, 8, 9], b (8): [1, 3, 7, 8, 9, 10] +idx: 7, delta: 2, matching: false, a (9): [0, 1, 3, 4, 5, 12], b (6): [0, 5, 6, 11, 12] +idx: 7, delta: 3, matching: false, a (10): [0, 1, 3, 4, 5, 12], b (5): [2, 6, 7, 8, 9, 10, 11] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [1, 3, 7, 8, 9, 10], b (9): [0, 1, 3, 4, 5, 12] +idx: 8, delta: 2, matching: false, a (10): [0, 1, 3, 4, 5, 12], b (7): [3, 4, 8, 9] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: true, a (9): [0, 1, 3, 4, 5, 12], b (10): [0, 1, 3, 4, 5, 12] +idx: 9 --- EXITING WITH false +idx: 10 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [0, 1, 2, 6, 9, 10], b (1): [2, 4, 8, 9, 10] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [2, 4, 8, 9, 10], b (2): [0, 2, 4, 5] +idx: 1, delta: 2, matching: false, a (3): [3, 7, 8, 9, 10], b (0): [0, 1, 2, 6, 9, 10] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 2, 4, 5], b (3): [3, 7, 8, 9, 10] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 3, 7, 9, 10], b (1): [2, 4, 8, 9, 10] +idx: 2, delta: 3, matching: false, a (5): [6, 9, 10], b (0): [0, 1, 2, 6, 9, 10] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [3, 7, 8, 9, 10], b (4): [0, 1, 3, 7, 9, 10] +idx: 3, delta: 2, matching: false, a (5): [6, 9, 10], b (2): [0, 2, 4, 5] +idx: 3, delta: 3, matching: false, a (6): [0, 3, 5, 6], b (1): [2, 4, 8, 9, 10] +idx: 3, delta: 4, matching: false, a (7): [3, 4, 5, 8], b (0): [0, 1, 2, 6, 9, 10] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 3, 7, 9, 10], b (5): [6, 9, 10] +idx: 4, delta: 2, matching: false, a (6): [0, 3, 5, 6], b (3): [3, 7, 8, 9, 10] +idx: 4, delta: 3, matching: false, a (7): [3, 4, 5, 8], b (2): [0, 2, 4, 5] +idx: 4, delta: 4, matching: false, a (8): [2, 4, 5, 7, 8], b (1): [2, 4, 8, 9, 10] +idx: 4, delta: 5, matching: false, a (9): [2, 4, 5, 7, 8], b (0): [0, 1, 2, 6, 9, 10] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [6, 9, 10], b (6): [0, 3, 5, 6] +idx: 5, delta: 2, matching: false, a (7): [3, 4, 5, 8], b (4): [0, 1, 3, 7, 9, 10] +idx: 5, delta: 3, matching: false, a (8): [2, 4, 5, 7, 8], b (3): [3, 7, 8, 9, 10] +idx: 5, delta: 4, matching: false, a (9): [2, 4, 5, 7, 8], b (2): [0, 2, 4, 5] +idx: 5, delta: 5, matching: false, a (10): [1, 3, 4, 5, 8], b (1): [2, 4, 8, 9, 10] +idx: 5, delta: 6, matching: false, a (11): [0, 3, 5, 6], b (0): [0, 1, 2, 6, 9, 10] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 3, 5, 6], b (7): [3, 4, 5, 8] +idx: 6, delta: 2, matching: false, a (8): [2, 4, 5, 7, 8], b (5): [6, 9, 10] +idx: 6, delta: 3, matching: false, a (9): [2, 4, 5, 7, 8], b (4): [0, 1, 3, 7, 9, 10] +idx: 6, delta: 4, matching: false, a (10): [1, 3, 4, 5, 8], b (3): [3, 7, 8, 9, 10] +idx: 6, delta: 5, matching: false, a (11): [0, 3, 5, 6], b (2): [0, 2, 4, 5] +idx: 6, delta: 6, matching: false, a (12): [6, 9, 10], b (1): [2, 4, 8, 9, 10] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [3, 4, 5, 8], b (8): [2, 4, 5, 7, 8] +idx: 7, delta: 2, matching: false, a (9): [2, 4, 5, 7, 8], b (6): [0, 3, 5, 6] +idx: 7, delta: 3, matching: false, a (10): [1, 3, 4, 5, 8], b (5): [6, 9, 10] +idx: 7, delta: 4, matching: false, a (11): [0, 3, 5, 6], b (4): [0, 1, 3, 7, 9, 10] +idx: 7, delta: 5, matching: false, a (12): [6, 9, 10], b (3): [3, 7, 8, 9, 10] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: true, a (8): [2, 4, 5, 7, 8], b (9): [2, 4, 5, 7, 8] +idx: 8, delta: 2, matching: false, a (10): [1, 3, 4, 5, 8], b (7): [3, 4, 5, 8] +idx: 8, delta: 2 --- found smudge! +idx: 8, delta: 3, matching: true, a (11): [0, 3, 5, 6], b (6): [0, 3, 5, 6] +idx: 8, delta: 4, matching: true, a (12): [6, 9, 10], b (5): [6, 9, 10] +idx: 8 --- EXITING WITH true +###...#..## +..#.#...### +#.#.##..... +...#...#### +##.#...#.## +......#..## +#..#.##.... +...###..#.. +..#.##.##.. +..#.##.##.. +.#.###..#.. +#..#.##.... +......#..## +900 (vert: 0, horiz: 9) + +idx: 0, delta: 0, matching: false, a (0): [0, 1, 3, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16], b (1): [0, 5, 15, 16] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 5, 15, 16], b (2): [2, 6, 7, 8, 9, 13] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 2, 3, 5, 6, 9, 10, 12, 13, 14, 15, 16], b (0): [0, 1, 3, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [2, 6, 7, 8, 9, 13], b (3): [0, 1, 2, 3, 5, 6, 9, 10, 12, 13, 14, 15, 16] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 4, 5, 7, 8, 10, 11, 14, 15, 16], b (1): [0, 5, 15, 16] +idx: 2, delta: 3, matching: false, a (5): [0, 15, 16], b (0): [0, 1, 3, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 2, 3, 5, 6, 9, 10, 12, 13, 14, 15, 16], b (4): [0, 1, 4, 5, 7, 8, 10, 11, 14, 15, 16] +idx: 3, delta: 2, matching: false, a (5): [0, 15, 16], b (2): [2, 6, 7, 8, 9, 13] +idx: 3, delta: 3, matching: false, a (6): [0, 2, 4, 6, 9, 11, 13, 15, 16], b (1): [0, 5, 15, 16] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 4, 5, 7, 8, 10, 11, 14, 15, 16], b (5): [0, 15, 16] +idx: 4, delta: 2, matching: false, a (6): [0, 2, 4, 6, 9, 11, 13, 15, 16], b (3): [0, 1, 2, 3, 5, 6, 9, 10, 12, 13, 14, 15, 16] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 15, 16], b (6): [0, 2, 4, 6, 9, 11, 13, 15, 16] +idx: 5 --- EXITING WITH false +idx: 6 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [0, 1, 3, 4, 5, 6], b (1): [0, 3, 4] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 3, 4], b (2): [2, 3, 6] +idx: 1, delta: 2, matching: false, a (3): [0, 3], b (0): [0, 1, 3, 4, 5, 6] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [2, 3, 6], b (3): [0, 3] +idx: 2, delta: 2, matching: false, a (4): [4, 6], b (1): [0, 3, 4] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 3, 4], b (0): [0, 1, 3, 4, 5, 6] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 3], b (4): [4, 6] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 3, 4], b (2): [2, 3, 6] +idx: 3, delta: 3, matching: false, a (6): [0, 2, 3, 6], b (1): [0, 3, 4] +idx: 3, delta: 4, matching: false, a (7): [0, 2, 4], b (0): [0, 1, 3, 4, 5, 6] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [4, 6], b (5): [0, 1, 3, 4] +idx: 4, delta: 2, matching: false, a (6): [0, 2, 3, 6], b (3): [0, 3] +idx: 4, delta: 3, matching: false, a (7): [0, 2, 4], b (2): [2, 3, 6] +idx: 4, delta: 4, matching: false, a (8): [0, 2, 4], b (1): [0, 3, 4] +idx: 4, delta: 5, matching: false, a (9): [0, 2, 3, 6], b (0): [0, 1, 3, 4, 5, 6] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 3, 4], b (6): [0, 2, 3, 6] +idx: 5, delta: 2, matching: false, a (7): [0, 2, 4], b (4): [4, 6] +idx: 5, delta: 3, matching: false, a (8): [0, 2, 4], b (3): [0, 3] +idx: 5, delta: 4, matching: false, a (9): [0, 2, 3, 6], b (2): [2, 3, 6] +idx: 5, delta: 4 --- found smudge! +idx: 5, delta: 5, matching: true, a (10): [0, 3, 4], b (1): [0, 3, 4] +idx: 5, delta: 6, matching: false, a (11): [4, 6], b (0): [0, 1, 3, 4, 5, 6] +idx: 5, delta: 6 --- found smudge twice! +idx: 6, delta: 0, matching: false, a (6): [0, 2, 3, 6], b (7): [0, 2, 4] +idx: 6, delta: 2, matching: false, a (8): [0, 2, 4], b (5): [0, 1, 3, 4] +idx: 6, delta: 3, matching: false, a (9): [0, 2, 3, 6], b (4): [4, 6] +idx: 6, delta: 4, matching: false, a (10): [0, 3, 4], b (3): [0, 3] +idx: 6, delta: 4 --- found smudge! +idx: 6, delta: 5, matching: false, a (11): [4, 6], b (2): [2, 3, 6] +idx: 6, delta: 5 --- found smudge twice! +idx: 7, delta: 0, matching: true, a (7): [0, 2, 4], b (8): [0, 2, 4] +idx: 7, delta: 2, matching: true, a (9): [0, 2, 3, 6], b (6): [0, 2, 3, 6] +idx: 7, delta: 3, matching: false, a (10): [0, 3, 4], b (5): [0, 1, 3, 4] +idx: 7, delta: 3 --- found smudge! +idx: 7, delta: 4, matching: true, a (11): [4, 6], b (4): [4, 6] +idx: 7, delta: 5, matching: true, a (12): [0, 3], b (3): [0, 3] +idx: 7, delta: 6, matching: true, a (13): [2, 3, 6], b (2): [2, 3, 6] +idx: 7, delta: 7, matching: true, a (14): [0, 3, 4], b (1): [0, 3, 4] +idx: 7, delta: 8, matching: true, a (15): [0, 1, 3, 4, 5, 6], b (0): [0, 1, 3, 4, 5, 6] +idx: 7 --- EXITING WITH true +##.#### +#..##.. +..##..# +#..#... +....#.# +##.##.. +#.##..# +#.#.#.. +#.#.#.. +#.##..# +#..##.. +....#.# +#..#... +..##..# +#..##.. +##.#### +##.#### +800 (vert: 0, horiz: 8) + +idx: 0, delta: 0, matching: false, a (0): [0, 2, 4, 5, 6, 7, 9], b (1): [1, 3, 4, 7, 8, 10] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 3, 4, 7, 8, 10], b (2): [0, 3, 5, 6, 8] +idx: 1, delta: 2, matching: false, a (3): [0, 2, 5, 6, 9], b (0): [0, 2, 4, 5, 6, 7, 9] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 3, 5, 6, 8], b (3): [0, 2, 5, 6, 9] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 4, 7, 9, 10], b (1): [1, 3, 4, 7, 8, 10] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 2, 4, 5, 6, 7, 9, 10], b (0): [0, 2, 4, 5, 6, 7, 9] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 2, 5, 6, 9], b (4): [1, 2, 4, 7, 9, 10] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 2, 4, 5, 6, 7, 9, 10], b (2): [0, 3, 5, 6, 8] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 4, 7, 10], b (1): [1, 3, 4, 7, 8, 10] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 2, 9], b (0): [0, 2, 4, 5, 6, 7, 9] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 2, 4, 7, 9, 10], b (5): [0, 1, 2, 4, 5, 6, 7, 9, 10] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 4, 7, 10], b (3): [0, 2, 5, 6, 9] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 2, 9], b (2): [0, 3, 5, 6, 8] +idx: 4, delta: 4, matching: false, a (8): [0, 2, 3, 8, 9], b (1): [1, 3, 4, 7, 8, 10] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 3, 4, 7, 8, 10], b (0): [0, 2, 4, 5, 6, 7, 9] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 2, 4, 5, 6, 7, 9, 10], b (6): [0, 1, 4, 7, 10] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 2, 9], b (4): [1, 2, 4, 7, 9, 10] +idx: 5, delta: 3, matching: false, a (8): [0, 2, 3, 8, 9], b (3): [0, 2, 5, 6, 9] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 3, 4, 7, 8, 10], b (2): [0, 3, 5, 6, 8] +idx: 5, delta: 5, matching: false, a (10): [3, 4, 5, 6, 7, 8], b (1): [1, 3, 4, 7, 8, 10] +idx: 5, delta: 6, matching: false, a (11): [0, 3, 4, 7, 8], b (0): [0, 2, 4, 5, 6, 7, 9] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 1, 4, 7, 10], b (7): [0, 1, 2, 9] +idx: 6, delta: 2, matching: false, a (8): [0, 2, 3, 8, 9], b (5): [0, 1, 2, 4, 5, 6, 7, 9, 10] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 3, 4, 7, 8, 10], b (4): [1, 2, 4, 7, 9, 10] +idx: 6, delta: 4, matching: false, a (10): [3, 4, 5, 6, 7, 8], b (3): [0, 2, 5, 6, 9] +idx: 6, delta: 5, matching: false, a (11): [0, 3, 4, 7, 8], b (2): [0, 3, 5, 6, 8] +idx: 6, delta: 6, matching: false, a (12): [0, 2, 4, 5, 6, 7, 9], b (1): [1, 3, 4, 7, 8, 10] +idx: 6, delta: 7, matching: true, a (13): [0, 2, 4, 5, 6, 7, 9], b (0): [0, 2, 4, 5, 6, 7, 9] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 2, 9], b (8): [0, 2, 3, 8, 9] +idx: 7, delta: 2, matching: false, a (9): [0, 1, 3, 4, 7, 8, 10], b (6): [0, 1, 4, 7, 10] +idx: 7, delta: 3, matching: false, a (10): [3, 4, 5, 6, 7, 8], b (5): [0, 1, 2, 4, 5, 6, 7, 9, 10] +idx: 7, delta: 4, matching: false, a (11): [0, 3, 4, 7, 8], b (4): [1, 2, 4, 7, 9, 10] +idx: 7, delta: 5, matching: false, a (12): [0, 2, 4, 5, 6, 7, 9], b (3): [0, 2, 5, 6, 9] +idx: 7, delta: 6, matching: false, a (13): [0, 2, 4, 5, 6, 7, 9], b (2): [0, 3, 5, 6, 8] +idx: 7, delta: 7, matching: false, a (14): [0, 3, 4, 7, 8], b (1): [1, 3, 4, 7, 8, 10] +idx: 7, delta: 8, matching: false, a (15): [3, 4, 5, 6, 7, 8], b (0): [0, 2, 4, 5, 6, 7, 9] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 2, 3, 8, 9], b (9): [0, 1, 3, 4, 7, 8, 10] +idx: 8, delta: 2, matching: false, a (10): [3, 4, 5, 6, 7, 8], b (7): [0, 1, 2, 9] +idx: 8, delta: 3, matching: false, a (11): [0, 3, 4, 7, 8], b (6): [0, 1, 4, 7, 10] +idx: 8, delta: 4, matching: false, a (12): [0, 2, 4, 5, 6, 7, 9], b (5): [0, 1, 2, 4, 5, 6, 7, 9, 10] +idx: 8, delta: 5, matching: false, a (13): [0, 2, 4, 5, 6, 7, 9], b (4): [1, 2, 4, 7, 9, 10] +idx: 8, delta: 6, matching: false, a (14): [0, 3, 4, 7, 8], b (3): [0, 2, 5, 6, 9] +idx: 8, delta: 7, matching: false, a (15): [3, 4, 5, 6, 7, 8], b (2): [0, 3, 5, 6, 8] +idx: 8, delta: 8, matching: false, a (16): [0, 1, 3, 4, 7, 8, 10], b (1): [1, 3, 4, 7, 8, 10] +idx: 8, delta: 8 --- found smudge! +idx: 8 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [0, 2, 3, 5, 6, 7, 8, 9, 11, 12, 13, 14, 16], b (1): [1, 4, 5, 6, 7, 9, 16] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 4, 5, 6, 7, 9, 16], b (2): [0, 3, 4, 5, 7, 8, 12, 13] +idx: 1, delta: 2, matching: false, a (3): [1, 2, 8, 9, 10, 11, 14, 15, 16], b (0): [0, 2, 3, 5, 6, 7, 8, 9, 11, 12, 13, 14, 16] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 3, 4, 5, 7, 8, 12, 13], b (3): [1, 2, 8, 9, 10, 11, 14, 15, 16] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16], b (1): [1, 4, 5, 6, 7, 9, 16] +idx: 2, delta: 3, matching: false, a (5): [0, 2, 3, 5, 10, 12, 13, 15], b (0): [0, 2, 3, 5, 6, 7, 8, 9, 11, 12, 13, 14, 16] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 2, 8, 9, 10, 11, 14, 15, 16], b (4): [0, 1, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16] +idx: 3, delta: 2, matching: false, a (5): [0, 2, 3, 5, 10, 12, 13, 15], b (2): [0, 3, 4, 5, 7, 8, 12, 13] +idx: 3, delta: 3, matching: false, a (6): [0, 2, 3, 5, 10, 12, 13, 15], b (1): [1, 4, 5, 6, 7, 9, 16] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16], b (0): [0, 2, 3, 5, 6, 7, 8, 9, 11, 12, 13, 14, 16] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16], b (5): [0, 2, 3, 5, 10, 12, 13, 15] +idx: 4, delta: 2, matching: false, a (6): [0, 2, 3, 5, 10, 12, 13, 15], b (3): [1, 2, 8, 9, 10, 11, 14, 15, 16] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16], b (2): [0, 3, 4, 5, 7, 8, 12, 13] +idx: 4, delta: 4, matching: false, a (8): [1, 2, 8, 9, 10, 11, 14, 15, 16], b (1): [1, 4, 5, 6, 7, 9, 16] +idx: 4, delta: 5, matching: false, a (9): [0, 3, 4, 5, 7, 8, 12, 13], b (0): [0, 2, 3, 5, 6, 7, 8, 9, 11, 12, 13, 14, 16] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: true, a (5): [0, 2, 3, 5, 10, 12, 13, 15], b (6): [0, 2, 3, 5, 10, 12, 13, 15] +idx: 5, delta: 2, matching: true, a (7): [0, 1, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16], b (4): [0, 1, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16] +idx: 5, delta: 3, matching: true, a (8): [1, 2, 8, 9, 10, 11, 14, 15, 16], b (3): [1, 2, 8, 9, 10, 11, 14, 15, 16] +idx: 5, delta: 4, matching: true, a (9): [0, 3, 4, 5, 7, 8, 12, 13], b (2): [0, 3, 4, 5, 7, 8, 12, 13] +idx: 5, delta: 5, matching: false, a (10): [1, 4, 5, 6, 9, 16], b (1): [1, 4, 5, 6, 7, 9, 16] +idx: 5, delta: 5 --- found smudge! +idx: 5 --- EXITING WITH true +#.##.#####.####.# +.#..####.#......# +#..###.##...##... +.##.....####..### +##..###..######## +#.##.#....#.##.#. +#.##.#....#.##.#. +##..###..######## +.##.....####..### +#..###.##...##... +.#..###..#......# +609 (vert: 9, horiz: 6) + +idx: 0, delta: 0, matching: false, a (0): [1, 3, 4, 6, 8, 9, 10], b (1): [0, 7] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 7], b (2): [0, 7, 8] +idx: 1, delta: 0 --- found smudge! +idx: 1, delta: 2, matching: false, a (3): [0, 2, 3, 4, 5, 7, 9, 10], b (0): [1, 3, 4, 6, 8, 9, 10] +idx: 1, delta: 2 --- found smudge twice! +idx: 2, delta: 0, matching: false, a (2): [0, 7, 8], b (3): [0, 2, 3, 4, 5, 7, 9, 10] +idx: 2, delta: 2, matching: false, a (4): [1, 3, 4, 6, 9, 10], b (1): [0, 7] +idx: 2, delta: 3, matching: false, a (5): [1, 2, 3, 4, 5, 6, 8, 9, 10], b (0): [1, 3, 4, 6, 8, 9, 10] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 2, 3, 4, 5, 7, 9, 10], b (4): [1, 3, 4, 6, 9, 10] +idx: 3, delta: 2, matching: false, a (5): [1, 2, 3, 4, 5, 6, 8, 9, 10], b (2): [0, 7, 8] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 2, 5, 6, 7, 9, 10], b (1): [0, 7] +idx: 3, delta: 4, matching: false, a (7): [1, 2, 5, 6, 7, 8, 9, 10], b (0): [1, 3, 4, 6, 8, 9, 10] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 3, 4, 6, 9, 10], b (5): [1, 2, 3, 4, 5, 6, 8, 9, 10] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 2, 5, 6, 7, 9, 10], b (3): [0, 2, 3, 4, 5, 7, 9, 10] +idx: 4, delta: 3, matching: false, a (7): [1, 2, 5, 6, 7, 8, 9, 10], b (2): [0, 7, 8] +idx: 4, delta: 4, matching: false, a (8): [0, 2, 5, 7, 8], b (1): [0, 7] +idx: 4, delta: 5, matching: false, a (9): [0, 3, 4, 7, 8], b (0): [1, 3, 4, 6, 8, 9, 10] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 2, 3, 4, 5, 6, 8, 9, 10], b (6): [0, 1, 2, 5, 6, 7, 9, 10] +idx: 5, delta: 2, matching: false, a (7): [1, 2, 5, 6, 7, 8, 9, 10], b (4): [1, 3, 4, 6, 9, 10] +idx: 5, delta: 3, matching: false, a (8): [0, 2, 5, 7, 8], b (3): [0, 2, 3, 4, 5, 7, 9, 10] +idx: 5, delta: 4, matching: false, a (9): [0, 3, 4, 7, 8], b (2): [0, 7, 8] +idx: 5, delta: 5, matching: false, a (10): [3, 4, 8, 9, 10], b (1): [0, 7] +idx: 5, delta: 6, matching: false, a (11): [0, 1, 2, 3, 4, 5, 6, 7], b (0): [1, 3, 4, 6, 8, 9, 10] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 1, 2, 5, 6, 7, 9, 10], b (7): [1, 2, 5, 6, 7, 8, 9, 10] +idx: 6, delta: 2, matching: false, a (8): [0, 2, 5, 7, 8], b (5): [1, 2, 3, 4, 5, 6, 8, 9, 10] +idx: 6, delta: 3, matching: false, a (9): [0, 3, 4, 7, 8], b (4): [1, 3, 4, 6, 9, 10] +idx: 6, delta: 4, matching: false, a (10): [3, 4, 8, 9, 10], b (3): [0, 2, 3, 4, 5, 7, 9, 10] +idx: 6, delta: 5, matching: false, a (11): [0, 1, 2, 3, 4, 5, 6, 7], b (2): [0, 7, 8] +idx: 6, delta: 6, matching: false, a (12): [1, 3, 4, 6], b (1): [0, 7] +idx: 6, delta: 7, matching: false, a (13): [0, 2, 3, 4, 5, 7, 8, 9, 10], b (0): [1, 3, 4, 6, 8, 9, 10] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [1, 2, 5, 6, 7, 8, 9, 10], b (8): [0, 2, 5, 7, 8] +idx: 7, delta: 2, matching: false, a (9): [0, 3, 4, 7, 8], b (6): [0, 1, 2, 5, 6, 7, 9, 10] +idx: 7, delta: 3, matching: false, a (10): [3, 4, 8, 9, 10], b (5): [1, 2, 3, 4, 5, 6, 8, 9, 10] +idx: 7, delta: 4, matching: false, a (11): [0, 1, 2, 3, 4, 5, 6, 7], b (4): [1, 3, 4, 6, 9, 10] +idx: 7, delta: 5, matching: false, a (12): [1, 3, 4, 6], b (3): [0, 2, 3, 4, 5, 7, 9, 10] +idx: 7, delta: 6, matching: false, a (13): [0, 2, 3, 4, 5, 7, 8, 9, 10], b (2): [0, 7, 8] +idx: 7, delta: 7, matching: false, a (14): [1, 2, 5, 6, 8, 9, 10], b (1): [0, 7] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 2, 5, 7, 8], b (9): [0, 3, 4, 7, 8] +idx: 8, delta: 2, matching: false, a (10): [3, 4, 8, 9, 10], b (7): [1, 2, 5, 6, 7, 8, 9, 10] +idx: 8, delta: 3, matching: false, a (11): [0, 1, 2, 3, 4, 5, 6, 7], b (6): [0, 1, 2, 5, 6, 7, 9, 10] +idx: 8, delta: 4, matching: false, a (12): [1, 3, 4, 6], b (5): [1, 2, 3, 4, 5, 6, 8, 9, 10] +idx: 8, delta: 5, matching: false, a (13): [0, 2, 3, 4, 5, 7, 8, 9, 10], b (4): [1, 3, 4, 6, 9, 10] +idx: 8, delta: 6, matching: false, a (14): [1, 2, 5, 6, 8, 9, 10], b (3): [0, 2, 3, 4, 5, 7, 9, 10] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 3, 4, 7, 8], b (10): [3, 4, 8, 9, 10] +idx: 9, delta: 2, matching: false, a (11): [0, 1, 2, 3, 4, 5, 6, 7], b (8): [0, 2, 5, 7, 8] +idx: 9, delta: 3, matching: false, a (12): [1, 3, 4, 6], b (7): [1, 2, 5, 6, 7, 8, 9, 10] +idx: 9, delta: 4, matching: false, a (13): [0, 2, 3, 4, 5, 7, 8, 9, 10], b (6): [0, 1, 2, 5, 6, 7, 9, 10] +idx: 9, delta: 5, matching: false, a (14): [1, 2, 5, 6, 8, 9, 10], b (5): [1, 2, 3, 4, 5, 6, 8, 9, 10] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [3, 4, 8, 9, 10], b (11): [0, 1, 2, 3, 4, 5, 6, 7] +idx: 10, delta: 2, matching: false, a (12): [1, 3, 4, 6], b (9): [0, 3, 4, 7, 8] +idx: 10, delta: 3, matching: false, a (13): [0, 2, 3, 4, 5, 7, 8, 9, 10], b (8): [0, 2, 5, 7, 8] +idx: 10, delta: 4, matching: false, a (14): [1, 2, 5, 6, 8, 9, 10], b (7): [1, 2, 5, 6, 7, 8, 9, 10] +idx: 10, delta: 4 --- found smudge! +idx: 10 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [1, 2, 3, 6, 8, 9, 11, 13], b (1): [0, 4, 5, 6, 7, 11, 12, 14] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 4, 5, 6, 7, 11, 12, 14], b (2): [3, 5, 6, 7, 8, 11, 13, 14] +idx: 1, delta: 2, matching: false, a (3): [0, 3, 4, 5, 9, 10, 11, 12, 13], b (0): [1, 2, 3, 6, 8, 9, 11, 13] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [3, 5, 6, 7, 8, 11, 13, 14], b (3): [0, 3, 4, 5, 9, 10, 11, 12, 13] +idx: 2, delta: 2, matching: false, a (4): [0, 3, 4, 5, 9, 10, 11, 12, 13], b (1): [0, 4, 5, 6, 7, 11, 12, 14] +idx: 2, delta: 3, matching: false, a (5): [3, 5, 6, 7, 8, 11, 13, 14], b (0): [1, 2, 3, 6, 8, 9, 11, 13] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: true, a (3): [0, 3, 4, 5, 9, 10, 11, 12, 13], b (4): [0, 3, 4, 5, 9, 10, 11, 12, 13] +idx: 3, delta: 2, matching: true, a (5): [3, 5, 6, 7, 8, 11, 13, 14], b (2): [3, 5, 6, 7, 8, 11, 13, 14] +idx: 3, delta: 3, matching: true, a (6): [0, 4, 5, 6, 7, 11, 12, 14], b (1): [0, 4, 5, 6, 7, 11, 12, 14] +idx: 3, delta: 4, matching: false, a (7): [1, 2, 3, 6, 7, 8, 9, 11, 13], b (0): [1, 2, 3, 6, 8, 9, 11, 13] +idx: 3, delta: 4 --- found smudge! +idx: 3 --- EXITING WITH true +.###..#.##.#.#. +#...####...##.# +...#.####..#.## +#..###...#####. +#..###...#####. +...#.####..#.## +#...####...##.# +.###..####.#.#. +#.#..#.####..## +#..#####..#..## +#..#####..#..## +411 (vert: 11, horiz: 4) + +idx: 0, delta: 0, matching: false, a (0): [0, 7, 9, 10], b (1): [8, 10] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [8, 10], b (2): [0, 1, 2, 5, 6, 7] +idx: 1, delta: 2, matching: false, a (3): [1, 3, 4, 6, 8, 10], b (0): [0, 7, 9, 10] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 2, 5, 6, 7], b (3): [1, 3, 4, 6, 8, 10] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 3, 4, 5, 6], b (1): [8, 10] +idx: 2, delta: 3, matching: false, a (5): [2, 5, 9, 10], b (0): [0, 7, 9, 10] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 3, 4, 6, 8, 10], b (4): [1, 2, 3, 4, 5, 6] +idx: 3, delta: 2, matching: false, a (5): [2, 5, 9, 10], b (2): [0, 1, 2, 5, 6, 7] +idx: 3, delta: 3, matching: false, a (6): [2, 5, 9], b (1): [8, 10] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 6, 7, 10], b (0): [0, 7, 9, 10] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 2, 3, 4, 5, 6], b (5): [2, 5, 9, 10] +idx: 4, delta: 2, matching: false, a (6): [2, 5, 9], b (3): [1, 3, 4, 6, 8, 10] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 6, 7, 10], b (2): [0, 1, 2, 5, 6, 7] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 2, 3, 4, 5, 6, 7, 10], b (1): [8, 10] +idx: 4, delta: 5, matching: false, a (9): [0, 2, 5, 7, 10], b (0): [0, 7, 9, 10] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [2, 5, 9, 10], b (6): [2, 5, 9] +idx: 5, delta: 0 --- found smudge! +idx: 5, delta: 2, matching: false, a (7): [0, 1, 6, 7, 10], b (4): [1, 2, 3, 4, 5, 6] +idx: 5, delta: 2 --- found smudge twice! +idx: 6, delta: 0, matching: false, a (6): [2, 5, 9], b (7): [0, 1, 6, 7, 10] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 2, 3, 4, 5, 6, 7, 10], b (5): [2, 5, 9, 10] +idx: 6, delta: 3, matching: false, a (9): [0, 2, 5, 7, 10], b (4): [1, 2, 3, 4, 5, 6] +idx: 6, delta: 4, matching: false, a (10): [0, 7, 8, 10], b (3): [1, 3, 4, 6, 8, 10] +idx: 6, delta: 5, matching: false, a (11): [0, 7, 9, 10], b (2): [0, 1, 2, 5, 6, 7] +idx: 6, delta: 6, matching: false, a (12): [1, 3, 4, 6, 8], b (1): [8, 10] +idx: 6, delta: 7, matching: false, a (13): [1, 3, 4, 6], b (0): [0, 7, 9, 10] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 6, 7, 10], b (8): [0, 1, 2, 3, 4, 5, 6, 7, 10] +idx: 7, delta: 2, matching: false, a (9): [0, 2, 5, 7, 10], b (6): [2, 5, 9] +idx: 7, delta: 3, matching: false, a (10): [0, 7, 8, 10], b (5): [2, 5, 9, 10] +idx: 7, delta: 4, matching: false, a (11): [0, 7, 9, 10], b (4): [1, 2, 3, 4, 5, 6] +idx: 7, delta: 5, matching: false, a (12): [1, 3, 4, 6, 8], b (3): [1, 3, 4, 6, 8, 10] +idx: 7, delta: 5 --- found smudge! +idx: 7, delta: 6, matching: false, a (13): [1, 3, 4, 6], b (2): [0, 1, 2, 5, 6, 7] +idx: 7, delta: 6 --- found smudge twice! +idx: 8, delta: 0, matching: false, a (8): [0, 1, 2, 3, 4, 5, 6, 7, 10], b (9): [0, 2, 5, 7, 10] +idx: 8, delta: 2, matching: false, a (10): [0, 7, 8, 10], b (7): [0, 1, 6, 7, 10] +idx: 8, delta: 3, matching: false, a (11): [0, 7, 9, 10], b (6): [2, 5, 9] +idx: 8, delta: 4, matching: false, a (12): [1, 3, 4, 6, 8], b (5): [2, 5, 9, 10] +idx: 8, delta: 5, matching: false, a (13): [1, 3, 4, 6], b (4): [1, 2, 3, 4, 5, 6] +idx: 8, delta: 6, matching: false, a (14): [0, 7, 9, 10], b (3): [1, 3, 4, 6, 8, 10] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 2, 5, 7, 10], b (10): [0, 7, 8, 10] +idx: 9, delta: 2, matching: false, a (11): [0, 7, 9, 10], b (8): [0, 1, 2, 3, 4, 5, 6, 7, 10] +idx: 9, delta: 3, matching: false, a (12): [1, 3, 4, 6, 8], b (7): [0, 1, 6, 7, 10] +idx: 9, delta: 4, matching: false, a (13): [1, 3, 4, 6], b (6): [2, 5, 9] +idx: 9, delta: 5, matching: false, a (14): [0, 7, 9, 10], b (5): [2, 5, 9, 10] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 7, 8, 10], b (11): [0, 7, 9, 10] +idx: 10, delta: 2, matching: false, a (12): [1, 3, 4, 6, 8], b (9): [0, 2, 5, 7, 10] +idx: 10, delta: 3, matching: false, a (13): [1, 3, 4, 6], b (8): [0, 1, 2, 3, 4, 5, 6, 7, 10] +idx: 10, delta: 4, matching: false, a (14): [0, 7, 9, 10], b (7): [0, 1, 6, 7, 10] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [0, 7, 9, 10], b (12): [1, 3, 4, 6, 8] +idx: 11, delta: 2, matching: false, a (13): [1, 3, 4, 6], b (10): [0, 7, 8, 10] +idx: 11, delta: 3, matching: false, a (14): [0, 7, 9, 10], b (9): [0, 2, 5, 7, 10] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [1, 3, 4, 6, 8], b (13): [1, 3, 4, 6] +idx: 12, delta: 0 --- found smudge! +idx: 12, delta: 2, matching: true, a (14): [0, 7, 9, 10], b (11): [0, 7, 9, 10] +idx: 12 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [0, 2, 7, 8, 9, 10, 11, 14], b (1): [2, 3, 4, 7, 8, 12, 13] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [2, 3, 4, 7, 8, 12, 13], b (2): [2, 4, 5, 6, 8, 9] +idx: 1, delta: 2, matching: false, a (3): [3, 4, 8, 12, 13], b (0): [0, 2, 7, 8, 9, 10, 11, 14] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [2, 4, 5, 6, 8, 9], b (3): [3, 4, 8, 12, 13] +idx: 2, delta: 2, matching: false, a (4): [3, 4, 8, 12, 13], b (1): [2, 3, 4, 7, 8, 12, 13] +idx: 2, delta: 3, matching: false, a (5): [2, 4, 5, 6, 8, 9], b (0): [0, 2, 7, 8, 9, 10, 11, 14] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: true, a (3): [3, 4, 8, 12, 13], b (4): [3, 4, 8, 12, 13] +idx: 3, delta: 2, matching: true, a (5): [2, 4, 5, 6, 8, 9], b (2): [2, 4, 5, 6, 8, 9] +idx: 3, delta: 3, matching: true, a (6): [2, 3, 4, 7, 8, 12, 13], b (1): [2, 3, 4, 7, 8, 12, 13] +idx: 3, delta: 4, matching: true, a (7): [0, 2, 7, 8, 9, 10, 11, 14], b (0): [0, 2, 7, 8, 9, 10, 11, 14] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [3, 4, 8, 12, 13], b (5): [2, 4, 5, 6, 8, 9] +idx: 4, delta: 2, matching: false, a (6): [2, 3, 4, 7, 8, 12, 13], b (3): [3, 4, 8, 12, 13] +idx: 4, delta: 3, matching: false, a (7): [0, 2, 7, 8, 9, 10, 11, 14], b (2): [2, 4, 5, 6, 8, 9] +idx: 4, delta: 4, matching: false, a (8): [1, 3, 10, 12], b (1): [2, 3, 4, 7, 8, 12, 13] +idx: 4, delta: 5, matching: false, a (9): [0, 5, 6, 11, 14], b (0): [0, 2, 7, 8, 9, 10, 11, 14] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [2, 4, 5, 6, 8, 9], b (6): [2, 3, 4, 7, 8, 12, 13] +idx: 5, delta: 2, matching: false, a (7): [0, 2, 7, 8, 9, 10, 11, 14], b (4): [3, 4, 8, 12, 13] +idx: 5, delta: 3, matching: false, a (8): [1, 3, 10, 12], b (3): [3, 4, 8, 12, 13] +idx: 5, delta: 4, matching: false, a (9): [0, 5, 6, 11, 14], b (2): [2, 4, 5, 6, 8, 9] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 3, 5, 7, 8, 9, 10, 11, 14], b (1): [2, 3, 4, 7, 8, 12, 13] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [2, 3, 4, 7, 8, 12, 13], b (7): [0, 2, 7, 8, 9, 10, 11, 14] +idx: 6, delta: 2, matching: false, a (8): [1, 3, 10, 12], b (5): [2, 4, 5, 6, 8, 9] +idx: 6, delta: 3, matching: false, a (9): [0, 5, 6, 11, 14], b (4): [3, 4, 8, 12, 13] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 3, 5, 7, 8, 9, 10, 11, 14], b (3): [3, 4, 8, 12, 13] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 2, 7, 8, 9, 10, 11, 14], b (8): [1, 3, 10, 12] +idx: 7, delta: 2, matching: false, a (9): [0, 5, 6, 11, 14], b (6): [2, 3, 4, 7, 8, 12, 13] +idx: 7, delta: 3, matching: false, a (10): [0, 1, 3, 5, 7, 8, 9, 10, 11, 14], b (5): [2, 4, 5, 6, 8, 9] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [1, 3, 10, 12], b (9): [0, 5, 6, 11, 14] +idx: 8, delta: 2, matching: false, a (10): [0, 1, 3, 5, 7, 8, 9, 10, 11, 14], b (7): [0, 2, 7, 8, 9, 10, 11, 14] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 5, 6, 11, 14], b (10): [0, 1, 3, 5, 7, 8, 9, 10, 11, 14] +idx: 9 --- EXITING WITH false +idx: 10 --- EXITING WITH false +#.#....#####..# +..###..##...##. +..#.###.##..... +...##...#...##. +...##...#...##. +..#.###.##..... +..###..##...##. +#.#....#####..# +.#.#......#.#.. +#....##....#..# +##.#.#.#####..# +13 (vert: 13, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [1, 2, 4, 5], b (1): [0, 1, 2, 3, 4, 7, 8] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 2, 3, 4, 7, 8], b (2): [1, 2] +idx: 1, delta: 2, matching: false, a (3): [7], b (0): [1, 2, 4, 5] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 2], b (3): [7] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 2, 3, 4, 6, 7, 8], b (1): [0, 1, 2, 3, 4, 7, 8] +idx: 2, delta: 2 --- found smudge! +idx: 2, delta: 3, matching: false, a (5): [0, 1, 2, 3, 5, 7, 8], b (0): [1, 2, 4, 5] +idx: 2, delta: 3 --- found smudge twice! +idx: 3, delta: 0, matching: false, a (3): [7], b (4): [0, 1, 2, 3, 4, 6, 7, 8] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 2, 3, 5, 7, 8], b (2): [1, 2] +idx: 3, delta: 3, matching: false, a (6): [0, 3, 6], b (1): [0, 1, 2, 3, 4, 7, 8] +idx: 3, delta: 4, matching: false, a (7): [1, 2, 4, 6, 7, 8], b (0): [1, 2, 4, 5] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 2, 3, 4, 6, 7, 8], b (5): [0, 1, 2, 3, 5, 7, 8] +idx: 4, delta: 2, matching: false, a (6): [0, 3, 6], b (3): [7] +idx: 4, delta: 3, matching: false, a (7): [1, 2, 4, 6, 7, 8], b (2): [1, 2] +idx: 4, delta: 4, matching: false, a (8): [2, 8], b (1): [0, 1, 2, 3, 4, 7, 8] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 2, 3, 4], b (0): [1, 2, 4, 5] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 2, 3, 5, 7, 8], b (6): [0, 3, 6] +idx: 5, delta: 2, matching: false, a (7): [1, 2, 4, 6, 7, 8], b (4): [0, 1, 2, 3, 4, 6, 7, 8] +idx: 5, delta: 3, matching: false, a (8): [2, 8], b (3): [7] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 2, 3, 4], b (2): [1, 2] +idx: 5, delta: 5, matching: false, a (10): [5, 6, 7, 8], b (1): [0, 1, 2, 3, 4, 7, 8] +idx: 5, delta: 6, matching: false, a (11): [4, 5, 6], b (0): [1, 2, 4, 5] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 3, 6], b (7): [1, 2, 4, 6, 7, 8] +idx: 6, delta: 2, matching: false, a (8): [2, 8], b (5): [0, 1, 2, 3, 5, 7, 8] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 2, 3, 4], b (4): [0, 1, 2, 3, 4, 6, 7, 8] +idx: 6, delta: 4, matching: false, a (10): [5, 6, 7, 8], b (3): [7] +idx: 6, delta: 5, matching: false, a (11): [4, 5, 6], b (2): [1, 2] +idx: 6, delta: 6, matching: false, a (12): [4, 5, 6, 8], b (1): [0, 1, 2, 3, 4, 7, 8] +idx: 6, delta: 7, matching: false, a (13): [0, 3, 7], b (0): [1, 2, 4, 5] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [1, 2, 4, 6, 7, 8], b (8): [2, 8] +idx: 7, delta: 2, matching: false, a (9): [0, 1, 2, 3, 4], b (6): [0, 3, 6] +idx: 7, delta: 3, matching: false, a (10): [5, 6, 7, 8], b (5): [0, 1, 2, 3, 5, 7, 8] +idx: 7, delta: 4, matching: false, a (11): [4, 5, 6], b (4): [0, 1, 2, 3, 4, 6, 7, 8] +idx: 7, delta: 5, matching: false, a (12): [4, 5, 6, 8], b (3): [7] +idx: 7, delta: 6, matching: false, a (13): [0, 3, 7], b (2): [1, 2] +idx: 7, delta: 7, matching: false, a (14): [1, 2, 5], b (1): [0, 1, 2, 3, 4, 7, 8] +idx: 7, delta: 8, matching: false, a (15): [0, 3, 6, 8], b (0): [1, 2, 4, 5] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [2, 8], b (9): [0, 1, 2, 3, 4] +idx: 8, delta: 2, matching: false, a (10): [5, 6, 7, 8], b (7): [1, 2, 4, 6, 7, 8] +idx: 8, delta: 3, matching: false, a (11): [4, 5, 6], b (6): [0, 3, 6] +idx: 8, delta: 4, matching: false, a (12): [4, 5, 6, 8], b (5): [0, 1, 2, 3, 5, 7, 8] +idx: 8, delta: 5, matching: false, a (13): [0, 3, 7], b (4): [0, 1, 2, 3, 4, 6, 7, 8] +idx: 8, delta: 6, matching: false, a (14): [1, 2, 5], b (3): [7] +idx: 8, delta: 7, matching: false, a (15): [0, 3, 6, 8], b (2): [1, 2] +idx: 8, delta: 8, matching: false, a (16): [0, 3, 6, 8], b (1): [0, 1, 2, 3, 4, 7, 8] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 1, 2, 3, 4], b (10): [5, 6, 7, 8] +idx: 9, delta: 2, matching: false, a (11): [4, 5, 6], b (8): [2, 8] +idx: 9, delta: 3, matching: false, a (12): [4, 5, 6, 8], b (7): [1, 2, 4, 6, 7, 8] +idx: 9, delta: 4, matching: false, a (13): [0, 3, 7], b (6): [0, 3, 6] +idx: 9, delta: 5, matching: false, a (14): [1, 2, 5], b (5): [0, 1, 2, 3, 5, 7, 8] +idx: 9, delta: 6, matching: false, a (15): [0, 3, 6, 8], b (4): [0, 1, 2, 3, 4, 6, 7, 8] +idx: 9, delta: 7, matching: false, a (16): [0, 3, 6, 8], b (3): [7] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [5, 6, 7, 8], b (11): [4, 5, 6] +idx: 10, delta: 2, matching: false, a (12): [4, 5, 6, 8], b (9): [0, 1, 2, 3, 4] +idx: 10, delta: 3, matching: false, a (13): [0, 3, 7], b (8): [2, 8] +idx: 10, delta: 4, matching: false, a (14): [1, 2, 5], b (7): [1, 2, 4, 6, 7, 8] +idx: 10, delta: 5, matching: false, a (15): [0, 3, 6, 8], b (6): [0, 3, 6] +idx: 10, delta: 5 --- found smudge! +idx: 10, delta: 6, matching: false, a (16): [0, 3, 6, 8], b (5): [0, 1, 2, 3, 5, 7, 8] +idx: 10, delta: 6 --- found smudge twice! +idx: 11, delta: 0, matching: false, a (11): [4, 5, 6], b (12): [4, 5, 6, 8] +idx: 11, delta: 0 --- found smudge! +idx: 11, delta: 2, matching: false, a (13): [0, 3, 7], b (10): [5, 6, 7, 8] +idx: 11, delta: 2 --- found smudge twice! +idx: 12, delta: 0, matching: false, a (12): [4, 5, 6, 8], b (13): [0, 3, 7] +idx: 12, delta: 2, matching: false, a (14): [1, 2, 5], b (11): [4, 5, 6] +idx: 12, delta: 3, matching: false, a (15): [0, 3, 6, 8], b (10): [5, 6, 7, 8] +idx: 12, delta: 4, matching: false, a (16): [0, 3, 6, 8], b (9): [0, 1, 2, 3, 4] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: false, a (13): [0, 3, 7], b (14): [1, 2, 5] +idx: 13, delta: 2, matching: false, a (15): [0, 3, 6, 8], b (12): [4, 5, 6, 8] +idx: 13, delta: 3, matching: false, a (16): [0, 3, 6, 8], b (11): [4, 5, 6] +idx: 13 --- EXITING WITH false +idx: 14, delta: 0, matching: false, a (14): [1, 2, 5], b (15): [0, 3, 6, 8] +idx: 14, delta: 2, matching: false, a (16): [0, 3, 6, 8], b (13): [0, 3, 7] +idx: 14 --- EXITING WITH false +idx: 15, delta: 0, matching: true, a (15): [0, 3, 6, 8], b (16): [0, 3, 6, 8] +idx: 15 --- EXITING WITH false +idx: 16 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [1, 4, 5, 6, 9, 13, 15, 16], b (1): [0, 1, 2, 4, 5, 7, 9, 14] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 2, 4, 5, 7, 9, 14], b (2): [0, 1, 2, 4, 5, 7, 8, 9, 14] +idx: 1, delta: 0 --- found smudge! +idx: 1, delta: 2, matching: true, a (3): [1, 4, 5, 6, 9, 13, 15, 16], b (0): [1, 4, 5, 6, 9, 13, 15, 16] +idx: 1 --- EXITING WITH true +.#..###..#...#.## +###.##.#.#....#.. +###.##.###....#.. +.#..###..#...#.## +##..#..#.#.##.... +#....#....###.#.. +....#.##..###..## +.#.###.#..#..#... +.#..##.##.#.#..## +200 (vert: 0, horiz: 2) + +idx: 0, delta: 0, matching: false, a (0): [1, 2, 4, 5, 7, 10], b (1): [1, 2, 6, 7, 10] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 2, 6, 7, 10], b (2): [3, 4, 6] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 5, 6, 8, 9], b (0): [1, 2, 4, 5, 7, 10] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [3, 4, 6], b (3): [0, 1, 5, 6, 8, 9] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 5, 6, 8, 9], b (1): [1, 2, 6, 7, 10] +idx: 2, delta: 3, matching: false, a (5): [3, 4, 6], b (0): [1, 2, 4, 5, 7, 10] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: true, a (3): [0, 1, 5, 6, 8, 9], b (4): [0, 1, 5, 6, 8, 9] +idx: 3, delta: 2, matching: true, a (5): [3, 4, 6], b (2): [3, 4, 6] +idx: 3, delta: 3, matching: false, a (6): [1, 2, 4, 6, 7, 10], b (1): [1, 2, 6, 7, 10] +idx: 3, delta: 3 --- found smudge! +idx: 3, delta: 4, matching: true, a (7): [1, 2, 4, 5, 7, 10], b (0): [1, 2, 4, 5, 7, 10] +idx: 3 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [3, 4, 8], b (1): [0, 1, 3, 4, 6, 7, 8, 9] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 3, 4, 6, 7, 8, 9], b (2): [0, 1, 6, 7, 10] +idx: 1, delta: 2, matching: false, a (3): [2, 5], b (0): [3, 4, 8] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 6, 7, 10], b (3): [2, 5] +idx: 2, delta: 2, matching: false, a (4): [0, 2, 5, 6, 7], b (1): [0, 1, 3, 4, 6, 7, 8, 9] +idx: 2, delta: 3, matching: false, a (5): [0, 3, 4, 7, 10], b (0): [3, 4, 8] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [2, 5], b (4): [0, 2, 5, 6, 7] +idx: 3, delta: 2, matching: false, a (5): [0, 3, 4, 7, 10], b (2): [0, 1, 6, 7, 10] +idx: 3, delta: 3, matching: false, a (6): [1, 2, 3, 4, 5, 6, 9], b (1): [0, 1, 3, 4, 6, 7, 8, 9] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 6, 7, 10], b (0): [3, 4, 8] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 2, 5, 6, 7], b (5): [0, 3, 4, 7, 10] +idx: 4, delta: 2, matching: false, a (6): [1, 2, 3, 4, 5, 6, 9], b (3): [2, 5] +idx: 4, delta: 3, matching: true, a (7): [0, 1, 6, 7, 10], b (2): [0, 1, 6, 7, 10] +idx: 4, delta: 4, matching: false, a (8): [3, 4, 10], b (1): [0, 1, 3, 4, 6, 7, 8, 9] +idx: 4, delta: 5, matching: false, a (9): [3, 4, 10], b (0): [3, 4, 8] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 3, 4, 7, 10], b (6): [1, 2, 3, 4, 5, 6, 9] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 6, 7, 10], b (4): [0, 2, 5, 6, 7] +idx: 5, delta: 3, matching: false, a (8): [3, 4, 10], b (3): [2, 5] +idx: 5, delta: 4, matching: false, a (9): [3, 4, 10], b (2): [0, 1, 6, 7, 10] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 6, 7, 10], b (1): [0, 1, 3, 4, 6, 7, 8, 9] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [1, 2, 3, 4, 5, 6, 9], b (7): [0, 1, 6, 7, 10] +idx: 6, delta: 2, matching: false, a (8): [3, 4, 10], b (5): [0, 3, 4, 7, 10] +idx: 6, delta: 3, matching: false, a (9): [3, 4, 10], b (4): [0, 2, 5, 6, 7] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 6, 7, 10], b (3): [2, 5] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 6, 7, 10], b (8): [3, 4, 10] +idx: 7, delta: 2, matching: false, a (9): [3, 4, 10], b (6): [1, 2, 3, 4, 5, 6, 9] +idx: 7, delta: 3, matching: false, a (10): [0, 1, 6, 7, 10], b (5): [0, 3, 4, 7, 10] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: true, a (8): [3, 4, 10], b (9): [3, 4, 10] +idx: 8, delta: 2, matching: true, a (10): [0, 1, 6, 7, 10], b (7): [0, 1, 6, 7, 10] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [3, 4, 10], b (10): [0, 1, 6, 7, 10] +idx: 9 --- EXITING WITH false +idx: 10 --- EXITING WITH false +...##...#.. +##.##.####. +##....##..# +..#..#..... +#.#..###... +#..##..#..# +.######..#. +##....##..# +...##.....# +...##.....# +##....##..# +4 (vert: 4, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [0, 1, 2, 3, 5, 6, 7, 10], b (1): [2, 3, 4, 6, 7, 8, 10, 11, 12] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [2, 3, 4, 6, 7, 8, 10, 11, 12], b (2): [1, 4, 5, 6, 7, 8, 12] +idx: 1, delta: 2, matching: false, a (3): [1, 4, 5, 6, 7, 8, 12], b (0): [0, 1, 2, 3, 5, 6, 7, 10] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: true, a (2): [1, 4, 5, 6, 7, 8, 12], b (3): [1, 4, 5, 6, 7, 8, 12] +idx: 2, delta: 2, matching: true, a (4): [2, 3, 4, 6, 7, 8, 10, 11, 12], b (1): [2, 3, 4, 6, 7, 8, 10, 11, 12] +idx: 2, delta: 3, matching: true, a (5): [0, 1, 2, 3, 5, 6, 7, 10], b (0): [0, 1, 2, 3, 5, 6, 7, 10] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 4, 5, 6, 7, 8, 12], b (4): [2, 3, 4, 6, 7, 8, 10, 11, 12] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 2, 3, 5, 6, 7, 10], b (2): [1, 4, 5, 6, 7, 8, 12] +idx: 3, delta: 3, matching: false, a (6): [1, 2, 6, 8, 10, 11, 12], b (1): [2, 3, 4, 6, 7, 8, 10, 11, 12] +idx: 3, delta: 4, matching: false, a (7): [1, 2, 3, 4, 5, 9, 10], b (0): [0, 1, 2, 3, 5, 6, 7, 10] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [2, 3, 4, 6, 7, 8, 10, 11, 12], b (5): [0, 1, 2, 3, 5, 6, 7, 10] +idx: 4, delta: 2, matching: false, a (6): [1, 2, 6, 8, 10, 11, 12], b (3): [1, 4, 5, 6, 7, 8, 12] +idx: 4, delta: 3, matching: false, a (7): [1, 2, 3, 4, 5, 9, 10], b (2): [1, 4, 5, 6, 7, 8, 12] +idx: 4, delta: 4, matching: false, a (8): [1, 2, 4, 6, 8, 9, 11], b (1): [2, 3, 4, 6, 7, 8, 10, 11, 12] +idx: 4, delta: 5, matching: false, a (9): [1, 2, 4, 6, 8, 9, 11], b (0): [0, 1, 2, 3, 5, 6, 7, 10] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 2, 3, 5, 6, 7, 10], b (6): [1, 2, 6, 8, 10, 11, 12] +idx: 5, delta: 2, matching: false, a (7): [1, 2, 3, 4, 5, 9, 10], b (4): [2, 3, 4, 6, 7, 8, 10, 11, 12] +idx: 5, delta: 3, matching: false, a (8): [1, 2, 4, 6, 8, 9, 11], b (3): [1, 4, 5, 6, 7, 8, 12] +idx: 5, delta: 4, matching: false, a (9): [1, 2, 4, 6, 8, 9, 11], b (2): [1, 4, 5, 6, 7, 8, 12] +idx: 5, delta: 5, matching: false, a (10): [1, 2, 3, 4, 5, 9, 10], b (1): [2, 3, 4, 6, 7, 8, 10, 11, 12] +idx: 5, delta: 6, matching: false, a (11): [1, 2, 6, 8, 10, 11, 12], b (0): [0, 1, 2, 3, 5, 6, 7, 10] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [1, 2, 6, 8, 10, 11, 12], b (7): [1, 2, 3, 4, 5, 9, 10] +idx: 6, delta: 2, matching: false, a (8): [1, 2, 4, 6, 8, 9, 11], b (5): [0, 1, 2, 3, 5, 6, 7, 10] +idx: 6, delta: 3, matching: false, a (9): [1, 2, 4, 6, 8, 9, 11], b (4): [2, 3, 4, 6, 7, 8, 10, 11, 12] +idx: 6, delta: 4, matching: false, a (10): [1, 2, 3, 4, 5, 9, 10], b (3): [1, 4, 5, 6, 7, 8, 12] +idx: 6, delta: 5, matching: false, a (11): [1, 2, 6, 8, 10, 11, 12], b (2): [1, 4, 5, 6, 7, 8, 12] +idx: 6, delta: 6, matching: false, a (12): [0, 1, 2, 3, 5, 6, 7, 10], b (1): [2, 3, 4, 6, 7, 8, 10, 11, 12] +idx: 6, delta: 7, matching: false, a (13): [2, 3, 4, 6, 7, 8, 10, 11, 12], b (0): [0, 1, 2, 3, 5, 6, 7, 10] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [1, 2, 3, 4, 5, 9, 10], b (8): [1, 2, 4, 6, 8, 9, 11] +idx: 7, delta: 2, matching: false, a (9): [1, 2, 4, 6, 8, 9, 11], b (6): [1, 2, 6, 8, 10, 11, 12] +idx: 7, delta: 3, matching: false, a (10): [1, 2, 3, 4, 5, 9, 10], b (5): [0, 1, 2, 3, 5, 6, 7, 10] +idx: 7, delta: 4, matching: false, a (11): [1, 2, 6, 8, 10, 11, 12], b (4): [2, 3, 4, 6, 7, 8, 10, 11, 12] +idx: 7, delta: 5, matching: false, a (12): [0, 1, 2, 3, 5, 6, 7, 10], b (3): [1, 4, 5, 6, 7, 8, 12] +idx: 7, delta: 6, matching: false, a (13): [2, 3, 4, 6, 7, 8, 10, 11, 12], b (2): [1, 4, 5, 6, 7, 8, 12] +idx: 7, delta: 7, matching: false, a (14): [1, 5, 6, 7, 8, 12], b (1): [2, 3, 4, 6, 7, 8, 10, 11, 12] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: true, a (8): [1, 2, 4, 6, 8, 9, 11], b (9): [1, 2, 4, 6, 8, 9, 11] +idx: 8, delta: 2, matching: true, a (10): [1, 2, 3, 4, 5, 9, 10], b (7): [1, 2, 3, 4, 5, 9, 10] +idx: 8, delta: 3, matching: true, a (11): [1, 2, 6, 8, 10, 11, 12], b (6): [1, 2, 6, 8, 10, 11, 12] +idx: 8, delta: 4, matching: true, a (12): [0, 1, 2, 3, 5, 6, 7, 10], b (5): [0, 1, 2, 3, 5, 6, 7, 10] +idx: 8, delta: 5, matching: true, a (13): [2, 3, 4, 6, 7, 8, 10, 11, 12], b (4): [2, 3, 4, 6, 7, 8, 10, 11, 12] +idx: 8, delta: 6, matching: false, a (14): [1, 5, 6, 7, 8, 12], b (3): [1, 4, 5, 6, 7, 8, 12] +idx: 8, delta: 6 --- found smudge! +idx: 8 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [0, 5, 12], b (1): [0, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 14] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 14], b (2): [0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 4, 5, 7, 10, 12, 13], b (0): [0, 5, 12] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], b (3): [0, 1, 4, 5, 7, 10, 12, 13] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 3, 4, 7, 8, 9, 10, 13], b (1): [0, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 14] +idx: 2, delta: 3, matching: false, a (5): [0, 2, 3, 5, 7, 10, 12, 14], b (0): [0, 5, 12] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 4, 5, 7, 10, 12, 13], b (4): [1, 2, 3, 4, 7, 8, 9, 10, 13] +idx: 3, delta: 2, matching: false, a (5): [0, 2, 3, 5, 7, 10, 12, 14], b (2): [0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14], b (1): [0, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 14] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 2, 3, 4, 5, 12, 13, 14], b (0): [0, 5, 12] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 2, 3, 4, 7, 8, 9, 10, 13], b (5): [0, 2, 3, 5, 7, 10, 12, 14] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14], b (3): [0, 1, 4, 5, 7, 10, 12, 13] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 2, 3, 4, 5, 12, 13, 14], b (2): [0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] +idx: 4, delta: 4, matching: false, a (8): [1, 2, 3, 4, 6, 8, 9, 11, 13, 14], b (1): [0, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 14] +idx: 4, delta: 5, matching: false, a (9): [7, 8, 9, 10], b (0): [0, 5, 12] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 2, 3, 5, 7, 10, 12, 14], b (6): [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 2, 3, 4, 5, 12, 13, 14], b (4): [1, 2, 3, 4, 7, 8, 9, 10, 13] +idx: 5, delta: 3, matching: false, a (8): [1, 2, 3, 4, 6, 8, 9, 11, 13, 14], b (3): [0, 1, 4, 5, 7, 10, 12, 13] +idx: 5, delta: 4, matching: false, a (9): [7, 8, 9, 10], b (2): [0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 4, 5, 6, 7, 10, 11, 12, 13], b (1): [0, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 14] +idx: 5, delta: 6, matching: false, a (11): [1, 4, 6, 8, 9, 11, 13], b (0): [0, 5, 12] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14], b (7): [0, 1, 2, 3, 4, 5, 12, 13, 14] +idx: 6, delta: 2, matching: false, a (8): [1, 2, 3, 4, 6, 8, 9, 11, 13, 14], b (5): [0, 2, 3, 5, 7, 10, 12, 14] +idx: 6, delta: 3, matching: false, a (9): [7, 8, 9, 10], b (4): [1, 2, 3, 4, 7, 8, 9, 10, 13] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 4, 5, 6, 7, 10, 11, 12, 13], b (3): [0, 1, 4, 5, 7, 10, 12, 13] +idx: 6, delta: 5, matching: false, a (11): [1, 4, 6, 8, 9, 11, 13], b (2): [0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] +idx: 6, delta: 6, matching: false, a (12): [1, 2, 3, 4, 6, 11, 13, 14], b (1): [0, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 14] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 2, 3, 4, 5, 12, 13, 14], b (8): [1, 2, 3, 4, 6, 8, 9, 11, 13, 14] +idx: 7, delta: 2, matching: false, a (9): [7, 8, 9, 10], b (6): [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14] +idx: 7, delta: 3, matching: false, a (10): [0, 1, 4, 5, 6, 7, 10, 11, 12, 13], b (5): [0, 2, 3, 5, 7, 10, 12, 14] +idx: 7, delta: 4, matching: false, a (11): [1, 4, 6, 8, 9, 11, 13], b (4): [1, 2, 3, 4, 7, 8, 9, 10, 13] +idx: 7, delta: 5, matching: false, a (12): [1, 2, 3, 4, 6, 11, 13, 14], b (3): [0, 1, 4, 5, 7, 10, 12, 13] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [1, 2, 3, 4, 6, 8, 9, 11, 13, 14], b (9): [7, 8, 9, 10] +idx: 8, delta: 2, matching: false, a (10): [0, 1, 4, 5, 6, 7, 10, 11, 12, 13], b (7): [0, 1, 2, 3, 4, 5, 12, 13, 14] +idx: 8, delta: 3, matching: false, a (11): [1, 4, 6, 8, 9, 11, 13], b (6): [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14] +idx: 8, delta: 4, matching: false, a (12): [1, 2, 3, 4, 6, 11, 13, 14], b (5): [0, 2, 3, 5, 7, 10, 12, 14] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [7, 8, 9, 10], b (10): [0, 1, 4, 5, 6, 7, 10, 11, 12, 13] +idx: 9, delta: 2, matching: false, a (11): [1, 4, 6, 8, 9, 11, 13], b (8): [1, 2, 3, 4, 6, 8, 9, 11, 13, 14] +idx: 9, delta: 3, matching: false, a (12): [1, 2, 3, 4, 6, 11, 13, 14], b (7): [0, 1, 2, 3, 4, 5, 12, 13, 14] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 1, 4, 5, 6, 7, 10, 11, 12, 13], b (11): [1, 4, 6, 8, 9, 11, 13] +idx: 10, delta: 2, matching: false, a (12): [1, 2, 3, 4, 6, 11, 13, 14], b (9): [7, 8, 9, 10] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [1, 4, 6, 8, 9, 11, 13], b (12): [1, 2, 3, 4, 6, 11, 13, 14] +idx: 11 --- EXITING WITH false +idx: 12 --- EXITING WITH false +#....#......#.. +#.##.########.# +##..##########. +##..##.#..#.##. +.####..####..#. +#.##.#.#..#.#.# +#######.##.#### +######......### +.####.#.##.#.## +.......####.... +##..####..####. +.#..#.#.##.#.#. +.####.#....#.## +9 (vert: 9, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [0, 1, 2, 3, 4, 12, 13, 14], b (1): [0, 2, 3, 6, 7, 8, 11, 13, 14] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 2, 3, 6, 7, 8, 11, 13, 14], b (2): [0, 2, 3, 10, 12, 13] +idx: 1, delta: 2, matching: false, a (3): [0, 3, 4, 9, 12, 14], b (0): [0, 1, 2, 3, 4, 12, 13, 14] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 2, 3, 10, 12, 13], b (3): [0, 3, 4, 9, 12, 14] +idx: 2, delta: 2, matching: false, a (4): [0, 3, 4, 9, 12, 14], b (1): [0, 2, 3, 6, 7, 8, 11, 13, 14] +idx: 2, delta: 3, matching: false, a (5): [0, 2, 3, 10, 12, 13, 14], b (0): [0, 1, 2, 3, 4, 12, 13, 14] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: true, a (3): [0, 3, 4, 9, 12, 14], b (4): [0, 3, 4, 9, 12, 14] +idx: 3, delta: 2, matching: false, a (5): [0, 2, 3, 10, 12, 13, 14], b (2): [0, 2, 3, 10, 12, 13] +idx: 3, delta: 2 --- found smudge! +idx: 3, delta: 3, matching: true, a (6): [0, 2, 3, 6, 7, 8, 11, 13, 14], b (1): [0, 2, 3, 6, 7, 8, 11, 13, 14] +idx: 3, delta: 4, matching: true, a (7): [0, 1, 2, 3, 4, 12, 13, 14], b (0): [0, 1, 2, 3, 4, 12, 13, 14] +idx: 3 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [0, 1, 2, 3, 4, 5, 6, 7, 11, 12], b (1): [0, 7, 8, 9, 14] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 7, 8, 9, 14], b (2): [0, 1, 2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 12], b (0): [0, 1, 2, 3, 4, 5, 6, 7, 11, 12] +idx: 1, delta: 2 --- found smudge! +idx: 1 --- EXITING WITH true +########...##.. +#......###....# +###..########## +#########..##.. +#..##..#...##.. +........#..##.. +.#....#.##.##.# +.#....#.##.##.# +.#....#........ +...##......##.. +..#..#...#.##.# +.#....#.#..##.. +#.####.###.##.# +###..###..####. +##.######..##.. +204 (vert: 4, horiz: 2) + +idx: 0, delta: 0, matching: true, a (0): [3, 5, 9, 10], b (1): [3, 5, 9, 10] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [3, 5, 9, 10], b (2): [0, 1, 2, 3, 6] +idx: 1, delta: 2, matching: false, a (3): [0, 2, 5, 6, 7, 10], b (0): [3, 5, 9, 10] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 2, 3, 6], b (3): [0, 2, 5, 6, 7, 10] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 4, 5, 6, 8], b (1): [3, 5, 9, 10] +idx: 2, delta: 3, matching: false, a (5): [3, 4, 5, 6, 8], b (0): [3, 5, 9, 10] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 2, 5, 6, 7, 10], b (4): [1, 2, 4, 5, 6, 8] +idx: 3, delta: 2, matching: false, a (5): [3, 4, 5, 6, 8], b (2): [0, 1, 2, 3, 6] +idx: 3, delta: 3, matching: false, a (6): [1, 2, 4, 6, 7, 8, 9, 10], b (1): [3, 5, 9, 10] +idx: 3, delta: 4, matching: false, a (7): [2, 3, 4, 5, 6, 7, 9, 10], b (0): [3, 5, 9, 10] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 2, 4, 5, 6, 8], b (5): [3, 4, 5, 6, 8] +idx: 4, delta: 2, matching: false, a (6): [1, 2, 4, 6, 7, 8, 9, 10], b (3): [0, 2, 5, 6, 7, 10] +idx: 4, delta: 3, matching: false, a (7): [2, 3, 4, 5, 6, 7, 9, 10], b (2): [0, 1, 2, 3, 6] +idx: 4, delta: 4, matching: false, a (8): [2, 3, 5, 6, 7, 8, 9, 10], b (1): [3, 5, 9, 10] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 2, 5, 6, 9], b (0): [3, 5, 9, 10] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [3, 4, 5, 6, 8], b (6): [1, 2, 4, 6, 7, 8, 9, 10] +idx: 5, delta: 2, matching: false, a (7): [2, 3, 4, 5, 6, 7, 9, 10], b (4): [1, 2, 4, 5, 6, 8] +idx: 5, delta: 3, matching: false, a (8): [2, 3, 5, 6, 7, 8, 9, 10], b (3): [0, 2, 5, 6, 7, 10] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 2, 5, 6, 9], b (2): [0, 1, 2, 3, 6] +idx: 5, delta: 5, matching: false, a (10): [0, 2, 4, 5, 8, 10], b (1): [3, 5, 9, 10] +idx: 5, delta: 6, matching: false, a (11): [0, 2, 4, 5, 8, 10], b (0): [3, 5, 9, 10] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [1, 2, 4, 6, 7, 8, 9, 10], b (7): [2, 3, 4, 5, 6, 7, 9, 10] +idx: 6, delta: 2, matching: false, a (8): [2, 3, 5, 6, 7, 8, 9, 10], b (5): [3, 4, 5, 6, 8] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 2, 5, 6, 9], b (4): [1, 2, 4, 5, 6, 8] +idx: 6, delta: 4, matching: false, a (10): [0, 2, 4, 5, 8, 10], b (3): [0, 2, 5, 6, 7, 10] +idx: 6, delta: 5, matching: false, a (11): [0, 2, 4, 5, 8, 10], b (2): [0, 1, 2, 3, 6] +idx: 6, delta: 6, matching: false, a (12): [0, 1, 5, 6, 9], b (1): [3, 5, 9, 10] +idx: 6, delta: 7, matching: false, a (13): [2, 3, 5, 6, 7, 8, 9, 10], b (0): [3, 5, 9, 10] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [2, 3, 4, 5, 6, 7, 9, 10], b (8): [2, 3, 5, 6, 7, 8, 9, 10] +idx: 7, delta: 2, matching: false, a (9): [0, 1, 2, 5, 6, 9], b (6): [1, 2, 4, 6, 7, 8, 9, 10] +idx: 7, delta: 3, matching: false, a (10): [0, 2, 4, 5, 8, 10], b (5): [3, 4, 5, 6, 8] +idx: 7, delta: 4, matching: false, a (11): [0, 2, 4, 5, 8, 10], b (4): [1, 2, 4, 5, 6, 8] +idx: 7, delta: 5, matching: false, a (12): [0, 1, 5, 6, 9], b (3): [0, 2, 5, 6, 7, 10] +idx: 7, delta: 6, matching: false, a (13): [2, 3, 5, 6, 7, 8, 9, 10], b (2): [0, 1, 2, 3, 6] +idx: 7, delta: 7, matching: false, a (14): [2, 3, 4, 5, 6, 7, 9, 10], b (1): [3, 5, 9, 10] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [2, 3, 5, 6, 7, 8, 9, 10], b (9): [0, 1, 2, 5, 6, 9] +idx: 8, delta: 2, matching: false, a (10): [0, 2, 4, 5, 8, 10], b (7): [2, 3, 4, 5, 6, 7, 9, 10] +idx: 8, delta: 3, matching: false, a (11): [0, 2, 4, 5, 8, 10], b (6): [1, 2, 4, 6, 7, 8, 9, 10] +idx: 8, delta: 4, matching: false, a (12): [0, 1, 5, 6, 9], b (5): [3, 4, 5, 6, 8] +idx: 8, delta: 5, matching: false, a (13): [2, 3, 5, 6, 7, 8, 9, 10], b (4): [1, 2, 4, 5, 6, 8] +idx: 8, delta: 6, matching: false, a (14): [2, 3, 4, 5, 6, 7, 9, 10], b (3): [0, 2, 5, 6, 7, 10] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 1, 2, 5, 6, 9], b (10): [0, 2, 4, 5, 8, 10] +idx: 9, delta: 2, matching: false, a (11): [0, 2, 4, 5, 8, 10], b (8): [2, 3, 5, 6, 7, 8, 9, 10] +idx: 9, delta: 3, matching: false, a (12): [0, 1, 5, 6, 9], b (7): [2, 3, 4, 5, 6, 7, 9, 10] +idx: 9, delta: 4, matching: false, a (13): [2, 3, 5, 6, 7, 8, 9, 10], b (6): [1, 2, 4, 6, 7, 8, 9, 10] +idx: 9, delta: 5, matching: false, a (14): [2, 3, 4, 5, 6, 7, 9, 10], b (5): [3, 4, 5, 6, 8] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: true, a (10): [0, 2, 4, 5, 8, 10], b (11): [0, 2, 4, 5, 8, 10] +idx: 10, delta: 2, matching: false, a (12): [0, 1, 5, 6, 9], b (9): [0, 1, 2, 5, 6, 9] +idx: 10, delta: 2 --- found smudge! +idx: 10, delta: 3, matching: true, a (13): [2, 3, 5, 6, 7, 8, 9, 10], b (8): [2, 3, 5, 6, 7, 8, 9, 10] +idx: 10, delta: 4, matching: true, a (14): [2, 3, 4, 5, 6, 7, 9, 10], b (7): [2, 3, 4, 5, 6, 7, 9, 10] +idx: 10 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [2, 3, 9, 10, 11, 12], b (1): [2, 4, 6, 9, 12] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [2, 4, 6, 9, 12], b (2): [2, 3, 4, 6, 7, 8, 9, 10, 11, 13, 14] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 2, 5, 7, 8, 13, 14], b (0): [2, 3, 9, 10, 11, 12] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [2, 3, 4, 6, 7, 8, 9, 10, 11, 13, 14], b (3): [0, 1, 2, 5, 7, 8, 13, 14] +idx: 2, delta: 2, matching: false, a (4): [4, 5, 6, 7, 10, 11, 14], b (1): [2, 4, 6, 9, 12] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14], b (0): [2, 3, 9, 10, 11, 12] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 2, 5, 7, 8, 13, 14], b (4): [4, 5, 6, 7, 10, 11, 14] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14], b (2): [2, 3, 4, 6, 7, 8, 9, 10, 11, 13, 14] +idx: 3, delta: 3, matching: false, a (6): [2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14], b (1): [2, 4, 6, 9, 12] +idx: 3, delta: 4, matching: false, a (7): [3, 6, 7, 8, 13, 14], b (0): [2, 3, 9, 10, 11, 12] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [4, 5, 6, 7, 10, 11, 14], b (5): [0, 1, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14] +idx: 4, delta: 2, matching: false, a (6): [2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14], b (3): [0, 1, 2, 5, 7, 8, 13, 14] +idx: 4, delta: 3, matching: false, a (7): [3, 6, 7, 8, 13, 14], b (2): [2, 3, 4, 6, 7, 8, 9, 10, 11, 13, 14] +idx: 4, delta: 4, matching: false, a (8): [4, 5, 6, 8, 10, 11, 13], b (1): [2, 4, 6, 9, 12] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 6, 7, 8, 9, 12, 13, 14], b (0): [2, 3, 9, 10, 11, 12] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14], b (6): [2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14] +idx: 5, delta: 2, matching: false, a (7): [3, 6, 7, 8, 13, 14], b (4): [4, 5, 6, 7, 10, 11, 14] +idx: 5, delta: 3, matching: false, a (8): [4, 5, 6, 8, 10, 11, 13], b (3): [0, 1, 2, 5, 7, 8, 13, 14] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 6, 7, 8, 9, 12, 13, 14], b (2): [2, 3, 4, 6, 7, 8, 9, 10, 11, 13, 14] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 3, 6, 7, 8, 10, 11, 13, 14], b (1): [2, 4, 6, 9, 12] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14], b (7): [3, 6, 7, 8, 13, 14] +idx: 6, delta: 2, matching: false, a (8): [4, 5, 6, 8, 10, 11, 13], b (5): [0, 1, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 6, 7, 8, 9, 12, 13, 14], b (4): [4, 5, 6, 7, 10, 11, 14] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 3, 6, 7, 8, 10, 11, 13, 14], b (3): [0, 1, 2, 5, 7, 8, 13, 14] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [3, 6, 7, 8, 13, 14], b (8): [4, 5, 6, 8, 10, 11, 13] +idx: 7, delta: 2, matching: false, a (9): [0, 1, 6, 7, 8, 9, 12, 13, 14], b (6): [2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14] +idx: 7, delta: 3, matching: false, a (10): [0, 1, 3, 6, 7, 8, 10, 11, 13, 14], b (5): [0, 1, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [4, 5, 6, 8, 10, 11, 13], b (9): [0, 1, 6, 7, 8, 9, 12, 13, 14] +idx: 8, delta: 2, matching: false, a (10): [0, 1, 3, 6, 7, 8, 10, 11, 13, 14], b (7): [3, 6, 7, 8, 13, 14] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 1, 6, 7, 8, 9, 12, 13, 14], b (10): [0, 1, 3, 6, 7, 8, 10, 11, 13, 14] +idx: 9 --- EXITING WITH false +idx: 10 --- EXITING WITH false +..##.....####.. +..#.#.#..#..#.. +..###.######.## +###..#.##....## +....####..##..# +##.###.######## +..########..### +...#..###....## +....###.#.##.#. +##....####..### +##.#..###.##.## +11 (vert: 11, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [2, 4, 6, 7, 9], b (1): [0, 1, 2, 3, 4, 10, 11, 12] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 2, 3, 4, 10, 11, 12], b (2): [0, 2, 3, 5, 6, 7, 8, 10, 11, 12] +idx: 1, delta: 2, matching: false, a (3): [0, 2, 5, 8, 9, 11, 12], b (0): [2, 4, 6, 7, 9] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 2, 3, 5, 6, 7, 8, 10, 11, 12], b (3): [0, 2, 5, 8, 9, 11, 12] +idx: 2, delta: 2, matching: false, a (4): [0, 2, 7, 9], b (1): [0, 1, 2, 3, 4, 10, 11, 12] +idx: 2, delta: 3, matching: false, a (5): [2, 4, 6, 7], b (0): [2, 4, 6, 7, 9] +idx: 2, delta: 3 --- found smudge! +idx: 2 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [1, 2, 3, 4, 6, 8, 9, 10, 11, 14], b (1): [1, 7, 10, 11, 12, 13, 14, 15, 16] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 7, 10, 11, 12, 13, 14, 15, 16], b (2): [0, 1, 2, 3, 4, 5, 7, 8, 9, 12, 15, 16] +idx: 1, delta: 2, matching: false, a (3): [1, 2, 8, 11, 13, 15, 16], b (0): [1, 2, 3, 4, 6, 8, 9, 10, 11, 14] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 2, 3, 4, 5, 7, 8, 9, 12, 15, 16], b (3): [1, 2, 8, 11, 13, 15, 16] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 5, 8, 10, 11, 12, 13, 15, 16], b (1): [1, 7, 10, 11, 12, 13, 14, 15, 16] +idx: 2, delta: 3, matching: false, a (5): [2, 3, 7, 9, 10, 11, 12, 14, 15, 16], b (0): [1, 2, 3, 4, 6, 8, 9, 10, 11, 14] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 2, 8, 11, 13, 15, 16], b (4): [0, 1, 5, 8, 10, 11, 12, 13, 15, 16] +idx: 3, delta: 2, matching: false, a (5): [2, 3, 7, 9, 10, 11, 12, 14, 15, 16], b (2): [0, 1, 2, 3, 4, 5, 7, 8, 9, 12, 15, 16] +idx: 3, delta: 3, matching: false, a (6): [0, 2, 5, 6, 7, 8, 12, 13, 14], b (1): [1, 7, 10, 11, 12, 13, 14, 15, 16] +idx: 3, delta: 4, matching: false, a (7): [0, 2, 4, 5, 8, 10, 14], b (0): [1, 2, 3, 4, 6, 8, 9, 10, 11, 14] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 5, 8, 10, 11, 12, 13, 15, 16], b (5): [2, 3, 7, 9, 10, 11, 12, 14, 15, 16] +idx: 4, delta: 2, matching: false, a (6): [0, 2, 5, 6, 7, 8, 12, 13, 14], b (3): [1, 2, 8, 11, 13, 15, 16] +idx: 4, delta: 3, matching: false, a (7): [0, 2, 4, 5, 8, 10, 14], b (2): [0, 1, 2, 3, 4, 5, 7, 8, 9, 12, 15, 16] +idx: 4, delta: 4, matching: false, a (8): [2, 3, 6, 8, 11, 13], b (1): [1, 7, 10, 11, 12, 13, 14, 15, 16] +idx: 4, delta: 5, matching: false, a (9): [0, 3, 4, 7, 12, 13], b (0): [1, 2, 3, 4, 6, 8, 9, 10, 11, 14] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [2, 3, 7, 9, 10, 11, 12, 14, 15, 16], b (6): [0, 2, 5, 6, 7, 8, 12, 13, 14] +idx: 5, delta: 2, matching: false, a (7): [0, 2, 4, 5, 8, 10, 14], b (4): [0, 1, 5, 8, 10, 11, 12, 13, 15, 16] +idx: 5, delta: 3, matching: false, a (8): [2, 3, 6, 8, 11, 13], b (3): [1, 2, 8, 11, 13, 15, 16] +idx: 5, delta: 4, matching: false, a (9): [0, 3, 4, 7, 12, 13], b (2): [0, 1, 2, 3, 4, 5, 7, 8, 9, 12, 15, 16] +idx: 5, delta: 5, matching: false, a (10): [1, 2, 8, 9, 11, 13, 15, 16], b (1): [1, 7, 10, 11, 12, 13, 14, 15, 16] +idx: 5, delta: 6, matching: false, a (11): [1, 2, 3, 6, 7, 8, 13, 15, 16], b (0): [1, 2, 3, 4, 6, 8, 9, 10, 11, 14] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 2, 5, 6, 7, 8, 12, 13, 14], b (7): [0, 2, 4, 5, 8, 10, 14] +idx: 6, delta: 2, matching: false, a (8): [2, 3, 6, 8, 11, 13], b (5): [2, 3, 7, 9, 10, 11, 12, 14, 15, 16] +idx: 6, delta: 3, matching: false, a (9): [0, 3, 4, 7, 12, 13], b (4): [0, 1, 5, 8, 10, 11, 12, 13, 15, 16] +idx: 6, delta: 4, matching: false, a (10): [1, 2, 8, 9, 11, 13, 15, 16], b (3): [1, 2, 8, 11, 13, 15, 16] +idx: 6, delta: 4 --- found smudge! +idx: 6, delta: 5, matching: false, a (11): [1, 2, 3, 6, 7, 8, 13, 15, 16], b (2): [0, 1, 2, 3, 4, 5, 7, 8, 9, 12, 15, 16] +idx: 6, delta: 5 --- found smudge twice! +idx: 7, delta: 0, matching: false, a (7): [0, 2, 4, 5, 8, 10, 14], b (8): [2, 3, 6, 8, 11, 13] +idx: 7, delta: 2, matching: false, a (9): [0, 3, 4, 7, 12, 13], b (6): [0, 2, 5, 6, 7, 8, 12, 13, 14] +idx: 7, delta: 3, matching: false, a (10): [1, 2, 8, 9, 11, 13, 15, 16], b (5): [2, 3, 7, 9, 10, 11, 12, 14, 15, 16] +idx: 7, delta: 4, matching: false, a (11): [1, 2, 3, 6, 7, 8, 13, 15, 16], b (4): [0, 1, 5, 8, 10, 11, 12, 13, 15, 16] +idx: 7, delta: 5, matching: false, a (12): [1, 2, 3, 6, 7, 8, 9, 13, 15, 16], b (3): [1, 2, 8, 11, 13, 15, 16] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [2, 3, 6, 8, 11, 13], b (9): [0, 3, 4, 7, 12, 13] +idx: 8, delta: 2, matching: false, a (10): [1, 2, 8, 9, 11, 13, 15, 16], b (7): [0, 2, 4, 5, 8, 10, 14] +idx: 8, delta: 3, matching: false, a (11): [1, 2, 3, 6, 7, 8, 13, 15, 16], b (6): [0, 2, 5, 6, 7, 8, 12, 13, 14] +idx: 8, delta: 4, matching: false, a (12): [1, 2, 3, 6, 7, 8, 9, 13, 15, 16], b (5): [2, 3, 7, 9, 10, 11, 12, 14, 15, 16] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 3, 4, 7, 12, 13], b (10): [1, 2, 8, 9, 11, 13, 15, 16] +idx: 9, delta: 2, matching: false, a (11): [1, 2, 3, 6, 7, 8, 13, 15, 16], b (8): [2, 3, 6, 8, 11, 13] +idx: 9, delta: 3, matching: false, a (12): [1, 2, 3, 6, 7, 8, 9, 13, 15, 16], b (7): [0, 2, 4, 5, 8, 10, 14] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [1, 2, 8, 9, 11, 13, 15, 16], b (11): [1, 2, 3, 6, 7, 8, 13, 15, 16] +idx: 10, delta: 2, matching: false, a (12): [1, 2, 3, 6, 7, 8, 9, 13, 15, 16], b (9): [0, 3, 4, 7, 12, 13] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [1, 2, 3, 6, 7, 8, 13, 15, 16], b (12): [1, 2, 3, 6, 7, 8, 9, 13, 15, 16] +idx: 11, delta: 0 --- found smudge! +idx: 11 --- EXITING WITH true +.####.#.####..#.. +.#.....#..####### +######.###..#..## +.##.....#..#.#.## +##...#..#.####.## +..##...#.####.### +#.#..####...###.. +#.#.##..#.#...#.. +..##..#.#..#.#... +#..##..#....##... +.##.....##.#.#.## +.###..###....#.## +.###..####...#.## +1203 (vert: 3, horiz: 12) + +idx: 0, delta: 0, matching: true, a (0): [1, 3, 4, 7], b (1): [1, 3, 4, 7] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 3, 4, 7], b (2): [0, 4, 6, 8] +idx: 1, delta: 2, matching: false, a (3): [1, 2, 3, 5, 6, 7, 8], b (0): [1, 3, 4, 7] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 4, 6, 8], b (3): [1, 2, 3, 5, 6, 7, 8] +idx: 2, delta: 2, matching: false, a (4): [4, 5, 7], b (1): [1, 3, 4, 7] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 4, 5, 7], b (0): [1, 3, 4, 7] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 2, 3, 5, 6, 7, 8], b (4): [4, 5, 7] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 4, 5, 7], b (2): [0, 4, 6, 8] +idx: 3, delta: 3, matching: false, a (6): [0, 2, 5, 6, 8], b (1): [1, 3, 4, 7] +idx: 3, delta: 4, matching: false, a (7): [0, 2, 5, 6, 8], b (0): [1, 3, 4, 7] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [4, 5, 7], b (5): [0, 1, 4, 5, 7] +idx: 4, delta: 2, matching: false, a (6): [0, 2, 5, 6, 8], b (3): [1, 2, 3, 5, 6, 7, 8] +idx: 4, delta: 3, matching: false, a (7): [0, 2, 5, 6, 8], b (2): [0, 4, 6, 8] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 4, 5, 7], b (1): [1, 3, 4, 7] +idx: 4, delta: 5, matching: false, a (9): [4, 5, 7], b (0): [1, 3, 4, 7] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 4, 5, 7], b (6): [0, 2, 5, 6, 8] +idx: 5, delta: 2, matching: false, a (7): [0, 2, 5, 6, 8], b (4): [4, 5, 7] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 4, 5, 7], b (3): [1, 2, 3, 5, 6, 7, 8] +idx: 5, delta: 4, matching: false, a (9): [4, 5, 7], b (2): [0, 4, 6, 8] +idx: 5, delta: 5, matching: false, a (10): [1, 2, 3, 5, 6, 7, 8], b (1): [1, 3, 4, 7] +idx: 5, delta: 6, matching: false, a (11): [0, 4, 6, 8], b (0): [1, 3, 4, 7] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: true, a (6): [0, 2, 5, 6, 8], b (7): [0, 2, 5, 6, 8] +idx: 6, delta: 2, matching: true, a (8): [0, 1, 4, 5, 7], b (5): [0, 1, 4, 5, 7] +idx: 6, delta: 3, matching: true, a (9): [4, 5, 7], b (4): [4, 5, 7] +idx: 6, delta: 4, matching: true, a (10): [1, 2, 3, 5, 6, 7, 8], b (3): [1, 2, 3, 5, 6, 7, 8] +idx: 6, delta: 5, matching: true, a (11): [0, 4, 6, 8], b (2): [0, 4, 6, 8] +idx: 6, delta: 6, matching: false, a (12): [3, 4, 7], b (1): [1, 3, 4, 7] +idx: 6, delta: 6 --- found smudge! +idx: 6 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [2, 5, 6, 7, 8, 11], b (1): [0, 1, 3, 5, 8, 10] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 3, 5, 8, 10], b (2): [3, 6, 7, 10] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 3, 10, 12], b (0): [2, 5, 6, 7, 8, 11] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [3, 6, 7, 10], b (3): [0, 1, 3, 10, 12] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 2, 4, 5, 8, 9, 11, 12], b (1): [0, 1, 3, 5, 8, 10] +idx: 2, delta: 3, matching: false, a (5): [3, 4, 5, 6, 7, 8, 9, 10], b (0): [2, 5, 6, 7, 8, 11] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 3, 10, 12], b (4): [0, 1, 2, 4, 5, 8, 9, 11, 12] +idx: 3, delta: 2, matching: false, a (5): [3, 4, 5, 6, 7, 8, 9, 10], b (2): [3, 6, 7, 10] +idx: 3, delta: 3, matching: false, a (6): [2, 3, 6, 7, 10, 11], b (1): [0, 1, 3, 5, 8, 10] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 3, 4, 5, 8, 9, 10, 12], b (0): [2, 5, 6, 7, 8, 11] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 2, 4, 5, 8, 9, 11, 12], b (5): [3, 4, 5, 6, 7, 8, 9, 10] +idx: 4, delta: 2, matching: false, a (6): [2, 3, 6, 7, 10, 11], b (3): [0, 1, 3, 10, 12] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 3, 4, 5, 8, 9, 10, 12], b (2): [3, 6, 7, 10] +idx: 4, delta: 4, matching: false, a (8): [2, 3, 6, 7, 10, 11], b (1): [0, 1, 3, 5, 8, 10] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [3, 4, 5, 6, 7, 8, 9, 10], b (6): [2, 3, 6, 7, 10, 11] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 3, 4, 5, 8, 9, 10, 12], b (4): [0, 1, 2, 4, 5, 8, 9, 11, 12] +idx: 5, delta: 3, matching: false, a (8): [2, 3, 6, 7, 10, 11], b (3): [0, 1, 3, 10, 12] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [2, 3, 6, 7, 10, 11], b (7): [0, 1, 3, 4, 5, 8, 9, 10, 12] +idx: 6, delta: 2, matching: false, a (8): [2, 3, 6, 7, 10, 11], b (5): [3, 4, 5, 6, 7, 8, 9, 10] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 3, 4, 5, 8, 9, 10, 12], b (8): [2, 3, 6, 7, 10, 11] +idx: 7 --- EXITING WITH false +idx: 8 --- EXITING WITH false +..#..####..#. +##.#.#..#.#.. +...#..##..#.. +##.#......#.# +###.##..##.## +...########.. +..##..##..##. +##.###..###.# +..##..##..##. +7 (vert: 7, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [3, 5, 9, 10], b (1): [0, 1, 3, 4, 5, 8, 9, 10, 11] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 3, 4, 5, 8, 9, 10, 11], b (2): [0, 2, 4, 5, 11] +idx: 1, delta: 2, matching: false, a (3): [1, 2, 4, 5, 6, 8, 11], b (0): [3, 5, 9, 10] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 2, 4, 5, 11], b (3): [1, 2, 4, 5, 6, 8, 11] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 3, 4, 6, 7, 8, 11, 12], b (1): [0, 1, 3, 4, 5, 8, 9, 10, 11] +idx: 2, delta: 3, matching: false, a (5): [0, 3, 4, 6, 9, 10], b (0): [3, 5, 9, 10] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 2, 4, 5, 6, 8, 11], b (4): [1, 2, 3, 4, 6, 7, 8, 11, 12] +idx: 3, delta: 2, matching: false, a (5): [0, 3, 4, 6, 9, 10], b (2): [0, 2, 4, 5, 11] +idx: 3, delta: 3, matching: false, a (6): [3, 4, 7, 9, 10, 12], b (1): [0, 1, 3, 4, 5, 8, 9, 10, 11] +idx: 3, delta: 4, matching: false, a (7): [3, 4, 5, 8, 9, 10, 11], b (0): [3, 5, 9, 10] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 2, 3, 4, 6, 7, 8, 11, 12], b (5): [0, 3, 4, 6, 9, 10] +idx: 4, delta: 2, matching: false, a (6): [3, 4, 7, 9, 10, 12], b (3): [1, 2, 4, 5, 6, 8, 11] +idx: 4, delta: 3, matching: false, a (7): [3, 4, 5, 8, 9, 10, 11], b (2): [0, 2, 4, 5, 11] +idx: 4, delta: 4, matching: false, a (8): [0, 3, 6], b (1): [0, 1, 3, 4, 5, 8, 9, 10, 11] +idx: 4, delta: 5, matching: false, a (9): [1, 3, 6, 8, 9, 10, 11], b (0): [3, 5, 9, 10] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 3, 4, 6, 9, 10], b (6): [3, 4, 7, 9, 10, 12] +idx: 5, delta: 2, matching: false, a (7): [3, 4, 5, 8, 9, 10, 11], b (4): [1, 2, 3, 4, 6, 7, 8, 11, 12] +idx: 5, delta: 3, matching: false, a (8): [0, 3, 6], b (3): [1, 2, 4, 5, 6, 8, 11] +idx: 5, delta: 4, matching: false, a (9): [1, 3, 6, 8, 9, 10, 11], b (2): [0, 2, 4, 5, 11] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 5, 7, 8, 9, 10, 11, 12], b (1): [0, 1, 3, 4, 5, 8, 9, 10, 11] +idx: 5, delta: 6, matching: false, a (11): [2, 5, 7, 8, 11, 12], b (0): [3, 5, 9, 10] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [3, 4, 7, 9, 10, 12], b (7): [3, 4, 5, 8, 9, 10, 11] +idx: 6, delta: 2, matching: false, a (8): [0, 3, 6], b (5): [0, 3, 4, 6, 9, 10] +idx: 6, delta: 3, matching: false, a (9): [1, 3, 6, 8, 9, 10, 11], b (4): [1, 2, 3, 4, 6, 7, 8, 11, 12] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 5, 7, 8, 9, 10, 11, 12], b (3): [1, 2, 4, 5, 6, 8, 11] +idx: 6, delta: 5, matching: false, a (11): [2, 5, 7, 8, 11, 12], b (2): [0, 2, 4, 5, 11] +idx: 6, delta: 6, matching: false, a (12): [1, 2, 5, 8, 11], b (1): [0, 1, 3, 4, 5, 8, 9, 10, 11] +idx: 6, delta: 7, matching: false, a (13): [0, 5, 6, 9, 10], b (0): [3, 5, 9, 10] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [3, 4, 5, 8, 9, 10, 11], b (8): [0, 3, 6] +idx: 7, delta: 2, matching: false, a (9): [1, 3, 6, 8, 9, 10, 11], b (6): [3, 4, 7, 9, 10, 12] +idx: 7, delta: 3, matching: false, a (10): [0, 1, 5, 7, 8, 9, 10, 11, 12], b (5): [0, 3, 4, 6, 9, 10] +idx: 7, delta: 4, matching: false, a (11): [2, 5, 7, 8, 11, 12], b (4): [1, 2, 3, 4, 6, 7, 8, 11, 12] +idx: 7, delta: 5, matching: false, a (12): [1, 2, 5, 8, 11], b (3): [1, 2, 4, 5, 6, 8, 11] +idx: 7, delta: 6, matching: false, a (13): [0, 5, 6, 9, 10], b (2): [0, 2, 4, 5, 11] +idx: 7, delta: 7, matching: false, a (14): [0, 5, 6, 9, 10], b (1): [0, 1, 3, 4, 5, 8, 9, 10, 11] +idx: 7, delta: 8, matching: false, a (15): [1, 2, 5, 8, 11], b (0): [3, 5, 9, 10] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 3, 6], b (9): [1, 3, 6, 8, 9, 10, 11] +idx: 8, delta: 2, matching: false, a (10): [0, 1, 5, 7, 8, 9, 10, 11, 12], b (7): [3, 4, 5, 8, 9, 10, 11] +idx: 8, delta: 3, matching: false, a (11): [2, 5, 7, 8, 11, 12], b (6): [3, 4, 7, 9, 10, 12] +idx: 8, delta: 4, matching: false, a (12): [1, 2, 5, 8, 11], b (5): [0, 3, 4, 6, 9, 10] +idx: 8, delta: 5, matching: false, a (13): [0, 5, 6, 9, 10], b (4): [1, 2, 3, 4, 6, 7, 8, 11, 12] +idx: 8, delta: 6, matching: false, a (14): [0, 5, 6, 9, 10], b (3): [1, 2, 4, 5, 6, 8, 11] +idx: 8, delta: 7, matching: false, a (15): [1, 2, 5, 8, 11], b (2): [0, 2, 4, 5, 11] +idx: 8, delta: 8, matching: false, a (16): [2, 5, 7, 8, 11, 12], b (1): [0, 1, 3, 4, 5, 8, 9, 10, 11] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [1, 3, 6, 8, 9, 10, 11], b (10): [0, 1, 5, 7, 8, 9, 10, 11, 12] +idx: 9, delta: 2, matching: false, a (11): [2, 5, 7, 8, 11, 12], b (8): [0, 3, 6] +idx: 9, delta: 3, matching: false, a (12): [1, 2, 5, 8, 11], b (7): [3, 4, 5, 8, 9, 10, 11] +idx: 9, delta: 4, matching: false, a (13): [0, 5, 6, 9, 10], b (6): [3, 4, 7, 9, 10, 12] +idx: 9, delta: 5, matching: false, a (14): [0, 5, 6, 9, 10], b (5): [0, 3, 4, 6, 9, 10] +idx: 9, delta: 6, matching: false, a (15): [1, 2, 5, 8, 11], b (4): [1, 2, 3, 4, 6, 7, 8, 11, 12] +idx: 9, delta: 7, matching: false, a (16): [2, 5, 7, 8, 11, 12], b (3): [1, 2, 4, 5, 6, 8, 11] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 1, 5, 7, 8, 9, 10, 11, 12], b (11): [2, 5, 7, 8, 11, 12] +idx: 10, delta: 2, matching: false, a (12): [1, 2, 5, 8, 11], b (9): [1, 3, 6, 8, 9, 10, 11] +idx: 10, delta: 3, matching: false, a (13): [0, 5, 6, 9, 10], b (8): [0, 3, 6] +idx: 10, delta: 4, matching: false, a (14): [0, 5, 6, 9, 10], b (7): [3, 4, 5, 8, 9, 10, 11] +idx: 10, delta: 5, matching: false, a (15): [1, 2, 5, 8, 11], b (6): [3, 4, 7, 9, 10, 12] +idx: 10, delta: 6, matching: false, a (16): [2, 5, 7, 8, 11, 12], b (5): [0, 3, 4, 6, 9, 10] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [2, 5, 7, 8, 11, 12], b (12): [1, 2, 5, 8, 11] +idx: 11, delta: 2, matching: false, a (13): [0, 5, 6, 9, 10], b (10): [0, 1, 5, 7, 8, 9, 10, 11, 12] +idx: 11, delta: 3, matching: false, a (14): [0, 5, 6, 9, 10], b (9): [1, 3, 6, 8, 9, 10, 11] +idx: 11, delta: 4, matching: false, a (15): [1, 2, 5, 8, 11], b (8): [0, 3, 6] +idx: 11, delta: 5, matching: false, a (16): [2, 5, 7, 8, 11, 12], b (7): [3, 4, 5, 8, 9, 10, 11] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [1, 2, 5, 8, 11], b (13): [0, 5, 6, 9, 10] +idx: 12, delta: 2, matching: false, a (14): [0, 5, 6, 9, 10], b (11): [2, 5, 7, 8, 11, 12] +idx: 12, delta: 3, matching: false, a (15): [1, 2, 5, 8, 11], b (10): [0, 1, 5, 7, 8, 9, 10, 11, 12] +idx: 12, delta: 4, matching: false, a (16): [2, 5, 7, 8, 11, 12], b (9): [1, 3, 6, 8, 9, 10, 11] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: true, a (13): [0, 5, 6, 9, 10], b (14): [0, 5, 6, 9, 10] +idx: 13, delta: 2, matching: true, a (15): [1, 2, 5, 8, 11], b (12): [1, 2, 5, 8, 11] +idx: 13, delta: 3, matching: true, a (16): [2, 5, 7, 8, 11, 12], b (11): [2, 5, 7, 8, 11, 12] +idx: 13 --- EXITING WITH false +idx: 14, delta: 0, matching: false, a (14): [0, 5, 6, 9, 10], b (15): [1, 2, 5, 8, 11] +idx: 14, delta: 2, matching: false, a (16): [2, 5, 7, 8, 11, 12], b (13): [0, 5, 6, 9, 10] +idx: 14 --- EXITING WITH false +idx: 15, delta: 0, matching: false, a (15): [1, 2, 5, 8, 11], b (16): [2, 5, 7, 8, 11, 12] +idx: 15 --- EXITING WITH false +idx: 16 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [1, 2, 5, 8, 10, 13, 14], b (1): [1, 3, 4, 9, 10, 12, 15] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 3, 4, 9, 10, 12, 15], b (2): [2, 3, 4, 11, 12, 15, 16] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 4, 5, 6, 7, 8, 9], b (0): [1, 2, 5, 8, 10, 13, 14] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [2, 3, 4, 11, 12, 15, 16], b (3): [0, 1, 4, 5, 6, 7, 8, 9] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 3, 4, 5, 6, 7], b (1): [1, 3, 4, 9, 10, 12, 15] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 2, 3, 7, 10, 11, 12, 13, 14, 15, 16], b (0): [1, 2, 5, 8, 10, 13, 14] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 4, 5, 6, 7, 8, 9], b (4): [1, 2, 3, 4, 5, 6, 7] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 2, 3, 7, 10, 11, 12, 13, 14, 15, 16], b (2): [2, 3, 4, 11, 12, 15, 16] +idx: 3, delta: 3, matching: false, a (6): [3, 4, 5, 8, 9, 13, 14], b (1): [1, 3, 4, 9, 10, 12, 15] +idx: 3, delta: 4, matching: false, a (7): [4, 6, 10, 11, 16], b (0): [1, 2, 5, 8, 10, 13, 14] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 2, 3, 4, 5, 6, 7], b (5): [0, 1, 2, 3, 7, 10, 11, 12, 13, 14, 15, 16] +idx: 4, delta: 2, matching: false, a (6): [3, 4, 5, 8, 9, 13, 14], b (3): [0, 1, 4, 5, 6, 7, 8, 9] +idx: 4, delta: 3, matching: false, a (7): [4, 6, 10, 11, 16], b (2): [2, 3, 4, 11, 12, 15, 16] +idx: 4, delta: 4, matching: false, a (8): [1, 3, 4, 7, 9, 10, 11, 12, 15, 16], b (1): [1, 3, 4, 9, 10, 12, 15] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 5, 6, 7, 9, 10, 13, 14], b (0): [1, 2, 5, 8, 10, 13, 14] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 2, 3, 7, 10, 11, 12, 13, 14, 15, 16], b (6): [3, 4, 5, 8, 9, 13, 14] +idx: 5, delta: 2, matching: false, a (7): [4, 6, 10, 11, 16], b (4): [1, 2, 3, 4, 5, 6, 7] +idx: 5, delta: 3, matching: false, a (8): [1, 3, 4, 7, 9, 10, 11, 12, 15, 16], b (3): [0, 1, 4, 5, 6, 7, 8, 9] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 5, 6, 7, 9, 10, 13, 14], b (2): [2, 3, 4, 11, 12, 15, 16] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 5, 6, 7, 9, 10, 13, 14], b (1): [1, 3, 4, 9, 10, 12, 15] +idx: 5, delta: 6, matching: false, a (11): [1, 2, 3, 4, 7, 9, 10, 11, 12, 15, 16], b (0): [1, 2, 5, 8, 10, 13, 14] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [3, 4, 5, 8, 9, 13, 14], b (7): [4, 6, 10, 11, 16] +idx: 6, delta: 2, matching: false, a (8): [1, 3, 4, 7, 9, 10, 11, 12, 15, 16], b (5): [0, 1, 2, 3, 7, 10, 11, 12, 13, 14, 15, 16] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 5, 6, 7, 9, 10, 13, 14], b (4): [1, 2, 3, 4, 5, 6, 7] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 5, 6, 7, 9, 10, 13, 14], b (3): [0, 1, 4, 5, 6, 7, 8, 9] +idx: 6, delta: 5, matching: false, a (11): [1, 2, 3, 4, 7, 9, 10, 11, 12, 15, 16], b (2): [2, 3, 4, 11, 12, 15, 16] +idx: 6, delta: 6, matching: false, a (12): [4, 6, 10, 11, 16], b (1): [1, 3, 4, 9, 10, 12, 15] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [4, 6, 10, 11, 16], b (8): [1, 3, 4, 7, 9, 10, 11, 12, 15, 16] +idx: 7, delta: 2, matching: false, a (9): [0, 1, 5, 6, 7, 9, 10, 13, 14], b (6): [3, 4, 5, 8, 9, 13, 14] +idx: 7, delta: 3, matching: false, a (10): [0, 1, 5, 6, 7, 9, 10, 13, 14], b (5): [0, 1, 2, 3, 7, 10, 11, 12, 13, 14, 15, 16] +idx: 7, delta: 4, matching: false, a (11): [1, 2, 3, 4, 7, 9, 10, 11, 12, 15, 16], b (4): [1, 2, 3, 4, 5, 6, 7] +idx: 7, delta: 5, matching: false, a (12): [4, 6, 10, 11, 16], b (3): [0, 1, 4, 5, 6, 7, 8, 9] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [1, 3, 4, 7, 9, 10, 11, 12, 15, 16], b (9): [0, 1, 5, 6, 7, 9, 10, 13, 14] +idx: 8, delta: 2, matching: false, a (10): [0, 1, 5, 6, 7, 9, 10, 13, 14], b (7): [4, 6, 10, 11, 16] +idx: 8, delta: 3, matching: false, a (11): [1, 2, 3, 4, 7, 9, 10, 11, 12, 15, 16], b (6): [3, 4, 5, 8, 9, 13, 14] +idx: 8, delta: 4, matching: false, a (12): [4, 6, 10, 11, 16], b (5): [0, 1, 2, 3, 7, 10, 11, 12, 13, 14, 15, 16] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: true, a (9): [0, 1, 5, 6, 7, 9, 10, 13, 14], b (10): [0, 1, 5, 6, 7, 9, 10, 13, 14] +idx: 9, delta: 2, matching: false, a (11): [1, 2, 3, 4, 7, 9, 10, 11, 12, 15, 16], b (8): [1, 3, 4, 7, 9, 10, 11, 12, 15, 16] +idx: 9, delta: 2 --- found smudge! +idx: 9, delta: 3, matching: true, a (12): [4, 6, 10, 11, 16], b (7): [4, 6, 10, 11, 16] +idx: 9 --- EXITING WITH true +.##..#..#.#..##.. +.#.##....##.#..#. +..###......##..## +##..######....... +.#######......... +####...#..####### +...###..##...##.. +....#.#...##....# +.#.##..#.####..## +##...###.##..##.. +##...###.##..##.. +.####..#.####..## +....#.#...##....# +1000 (vert: 0, horiz: 10) + +idx: 0, delta: 0, matching: false, a (0): [0, 1, 2, 3, 8, 9, 10, 12, 13, 15, 16], b (1): [3, 4, 7, 9, 10, 13] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [3, 4, 7, 9, 10, 13], b (2): [3, 7, 12, 13, 16] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 3, 5, 9, 11, 12, 15], b (0): [0, 1, 2, 3, 8, 9, 10, 12, 13, 15, 16] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [3, 7, 12, 13, 16], b (3): [0, 1, 3, 5, 9, 11, 12, 15] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 2, 3, 4, 7, 8, 11, 16], b (1): [3, 4, 7, 9, 10, 13] +idx: 2, delta: 3, matching: false, a (5): [4, 10, 11, 13, 14, 16], b (0): [0, 1, 2, 3, 8, 9, 10, 12, 13, 15, 16] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 3, 5, 9, 11, 12, 15], b (4): [0, 1, 2, 3, 4, 7, 8, 11, 16] +idx: 3, delta: 2, matching: false, a (5): [4, 10, 11, 13, 14, 16], b (2): [3, 7, 12, 13, 16] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 2, 5, 9, 11, 12, 14], b (1): [3, 4, 7, 9, 10, 13] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 2, 3, 4, 6, 11, 13, 14, 16], b (0): [0, 1, 2, 3, 8, 9, 10, 12, 13, 15, 16] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 2, 3, 4, 7, 8, 11, 16], b (5): [4, 10, 11, 13, 14, 16] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 2, 5, 9, 11, 12, 14], b (3): [0, 1, 3, 5, 9, 11, 12, 15] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 2, 3, 4, 6, 11, 13, 14, 16], b (2): [3, 7, 12, 13, 16] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 2, 3, 4, 6, 11, 13, 14, 15, 16], b (1): [3, 4, 7, 9, 10, 13] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 2, 5, 9, 11, 12, 14], b (0): [0, 1, 2, 3, 8, 9, 10, 12, 13, 15, 16] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [4, 10, 11, 13, 14, 16], b (6): [0, 1, 2, 5, 9, 11, 12, 14] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 2, 3, 4, 6, 11, 13, 14, 16], b (4): [0, 1, 2, 3, 4, 7, 8, 11, 16] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 2, 3, 4, 6, 11, 13, 14, 15, 16], b (3): [0, 1, 3, 5, 9, 11, 12, 15] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 2, 5, 9, 11, 12, 14], b (2): [3, 7, 12, 13, 16] +idx: 5, delta: 5, matching: false, a (10): [4, 10, 11, 13, 14, 16], b (1): [3, 4, 7, 9, 10, 13] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 1, 2, 5, 9, 11, 12, 14], b (7): [0, 1, 2, 3, 4, 6, 11, 13, 14, 16] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 2, 3, 4, 6, 11, 13, 14, 15, 16], b (5): [4, 10, 11, 13, 14, 16] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 2, 5, 9, 11, 12, 14], b (4): [0, 1, 2, 3, 4, 7, 8, 11, 16] +idx: 6, delta: 4, matching: false, a (10): [4, 10, 11, 13, 14, 16], b (3): [0, 1, 3, 5, 9, 11, 12, 15] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 2, 3, 4, 6, 11, 13, 14, 16], b (8): [0, 1, 2, 3, 4, 6, 11, 13, 14, 15, 16] +idx: 7, delta: 0 --- found smudge! +idx: 7, delta: 2, matching: true, a (9): [0, 1, 2, 5, 9, 11, 12, 14], b (6): [0, 1, 2, 5, 9, 11, 12, 14] +idx: 7, delta: 3, matching: true, a (10): [4, 10, 11, 13, 14, 16], b (5): [4, 10, 11, 13, 14, 16] +idx: 7 --- EXITING WITH true +idx: 0, delta: 0, matching: true, a (0): [0, 3, 4, 6, 7, 8, 9], b (1): [0, 3, 4, 6, 7, 8, 9] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 3, 4, 6, 7, 8, 9], b (2): [0, 4, 6, 7, 8, 9] +idx: 1, delta: 0 --- found smudge! +idx: 1, delta: 2, matching: false, a (3): [0, 1, 2, 3, 4, 7, 8], b (0): [0, 3, 4, 6, 7, 8, 9] +idx: 1, delta: 2 --- found smudge twice! +idx: 2, delta: 0, matching: false, a (2): [0, 4, 6, 7, 8, 9], b (3): [0, 1, 2, 3, 4, 7, 8] +idx: 2, delta: 2, matching: false, a (4): [1, 4, 5, 7, 8, 10], b (1): [0, 3, 4, 6, 7, 8, 9] +idx: 2, delta: 3, matching: false, a (5): [3, 6, 9], b (0): [0, 3, 4, 6, 7, 8, 9] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 2, 3, 4, 7, 8], b (4): [1, 4, 5, 7, 8, 10] +idx: 3, delta: 2, matching: false, a (5): [3, 6, 9], b (2): [0, 4, 6, 7, 8, 9] +idx: 3, delta: 3, matching: false, a (6): [7, 8], b (1): [0, 3, 4, 6, 7, 8, 9] +idx: 3, delta: 4, matching: false, a (7): [1, 2, 4], b (0): [0, 3, 4, 6, 7, 8, 9] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 4, 5, 7, 8, 10], b (5): [3, 6, 9] +idx: 4, delta: 2, matching: false, a (6): [7, 8], b (3): [0, 1, 2, 3, 4, 7, 8] +idx: 4, delta: 3, matching: false, a (7): [1, 2, 4], b (2): [0, 4, 6, 7, 8, 9] +idx: 4, delta: 4, matching: false, a (8): [0, 4], b (1): [0, 3, 4, 6, 7, 8, 9] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 3, 6, 9], b (0): [0, 3, 4, 6, 7, 8, 9] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [3, 6, 9], b (6): [7, 8] +idx: 5, delta: 2, matching: false, a (7): [1, 2, 4], b (4): [1, 4, 5, 7, 8, 10] +idx: 5, delta: 3, matching: false, a (8): [0, 4], b (3): [0, 1, 2, 3, 4, 7, 8] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 3, 6, 9], b (2): [0, 4, 6, 7, 8, 9] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 5, 10], b (1): [0, 3, 4, 6, 7, 8, 9] +idx: 5, delta: 6, matching: false, a (11): [3, 4, 5, 6, 7, 8, 9, 10], b (0): [0, 3, 4, 6, 7, 8, 9] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [7, 8], b (7): [1, 2, 4] +idx: 6, delta: 2, matching: false, a (8): [0, 4], b (5): [3, 6, 9] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 3, 6, 9], b (4): [1, 4, 5, 7, 8, 10] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 5, 10], b (3): [0, 1, 2, 3, 4, 7, 8] +idx: 6, delta: 5, matching: false, a (11): [3, 4, 5, 6, 7, 8, 9, 10], b (2): [0, 4, 6, 7, 8, 9] +idx: 6, delta: 6, matching: false, a (12): [0, 2, 3, 6, 9], b (1): [0, 3, 4, 6, 7, 8, 9] +idx: 6, delta: 7, matching: false, a (13): [0, 1, 2, 5, 7, 8, 10], b (0): [0, 3, 4, 6, 7, 8, 9] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [1, 2, 4], b (8): [0, 4] +idx: 7, delta: 2, matching: false, a (9): [0, 1, 3, 6, 9], b (6): [7, 8] +idx: 7, delta: 3, matching: false, a (10): [0, 1, 5, 10], b (5): [3, 6, 9] +idx: 7, delta: 4, matching: false, a (11): [3, 4, 5, 6, 7, 8, 9, 10], b (4): [1, 4, 5, 7, 8, 10] +idx: 7, delta: 5, matching: false, a (12): [0, 2, 3, 6, 9], b (3): [0, 1, 2, 3, 4, 7, 8] +idx: 7, delta: 6, matching: false, a (13): [0, 1, 2, 5, 7, 8, 10], b (2): [0, 4, 6, 7, 8, 9] +idx: 7, delta: 7, matching: false, a (14): [5, 6, 7, 8, 9, 10], b (1): [0, 3, 4, 6, 7, 8, 9] +idx: 7, delta: 8, matching: false, a (15): [0, 3, 8], b (0): [0, 3, 4, 6, 7, 8, 9] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 4], b (9): [0, 1, 3, 6, 9] +idx: 8, delta: 2, matching: false, a (10): [0, 1, 5, 10], b (7): [1, 2, 4] +idx: 8, delta: 3, matching: false, a (11): [3, 4, 5, 6, 7, 8, 9, 10], b (6): [7, 8] +idx: 8, delta: 4, matching: false, a (12): [0, 2, 3, 6, 9], b (5): [3, 6, 9] +idx: 8, delta: 5, matching: false, a (13): [0, 1, 2, 5, 7, 8, 10], b (4): [1, 4, 5, 7, 8, 10] +idx: 8, delta: 6, matching: false, a (14): [5, 6, 7, 8, 9, 10], b (3): [0, 1, 2, 3, 4, 7, 8] +idx: 8, delta: 7, matching: false, a (15): [0, 3, 8], b (2): [0, 4, 6, 7, 8, 9] +idx: 8, delta: 8, matching: false, a (16): [0, 2, 4, 5, 7, 8, 10], b (1): [0, 3, 4, 6, 7, 8, 9] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 1, 3, 6, 9], b (10): [0, 1, 5, 10] +idx: 9, delta: 2, matching: false, a (11): [3, 4, 5, 6, 7, 8, 9, 10], b (8): [0, 4] +idx: 9, delta: 3, matching: false, a (12): [0, 2, 3, 6, 9], b (7): [1, 2, 4] +idx: 9, delta: 4, matching: false, a (13): [0, 1, 2, 5, 7, 8, 10], b (6): [7, 8] +idx: 9, delta: 5, matching: false, a (14): [5, 6, 7, 8, 9, 10], b (5): [3, 6, 9] +idx: 9, delta: 6, matching: false, a (15): [0, 3, 8], b (4): [1, 4, 5, 7, 8, 10] +idx: 9, delta: 7, matching: false, a (16): [0, 2, 4, 5, 7, 8, 10], b (3): [0, 1, 2, 3, 4, 7, 8] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 1, 5, 10], b (11): [3, 4, 5, 6, 7, 8, 9, 10] +idx: 10, delta: 2, matching: false, a (12): [0, 2, 3, 6, 9], b (9): [0, 1, 3, 6, 9] +idx: 10, delta: 3, matching: false, a (13): [0, 1, 2, 5, 7, 8, 10], b (8): [0, 4] +idx: 10, delta: 4, matching: false, a (14): [5, 6, 7, 8, 9, 10], b (7): [1, 2, 4] +idx: 10, delta: 5, matching: false, a (15): [0, 3, 8], b (6): [7, 8] +idx: 10, delta: 6, matching: false, a (16): [0, 2, 4, 5, 7, 8, 10], b (5): [3, 6, 9] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [3, 4, 5, 6, 7, 8, 9, 10], b (12): [0, 2, 3, 6, 9] +idx: 11, delta: 2, matching: false, a (13): [0, 1, 2, 5, 7, 8, 10], b (10): [0, 1, 5, 10] +idx: 11, delta: 3, matching: false, a (14): [5, 6, 7, 8, 9, 10], b (9): [0, 1, 3, 6, 9] +idx: 11, delta: 4, matching: false, a (15): [0, 3, 8], b (8): [0, 4] +idx: 11, delta: 5, matching: false, a (16): [0, 2, 4, 5, 7, 8, 10], b (7): [1, 2, 4] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [0, 2, 3, 6, 9], b (13): [0, 1, 2, 5, 7, 8, 10] +idx: 12, delta: 2, matching: false, a (14): [5, 6, 7, 8, 9, 10], b (11): [3, 4, 5, 6, 7, 8, 9, 10] +idx: 12, delta: 3, matching: false, a (15): [0, 3, 8], b (10): [0, 1, 5, 10] +idx: 12, delta: 4, matching: false, a (16): [0, 2, 4, 5, 7, 8, 10], b (9): [0, 1, 3, 6, 9] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: false, a (13): [0, 1, 2, 5, 7, 8, 10], b (14): [5, 6, 7, 8, 9, 10] +idx: 13, delta: 2, matching: false, a (15): [0, 3, 8], b (12): [0, 2, 3, 6, 9] +idx: 13, delta: 3, matching: false, a (16): [0, 2, 4, 5, 7, 8, 10], b (11): [3, 4, 5, 6, 7, 8, 9, 10] +idx: 13 --- EXITING WITH false +idx: 14, delta: 0, matching: false, a (14): [5, 6, 7, 8, 9, 10], b (15): [0, 3, 8] +idx: 14, delta: 2, matching: false, a (16): [0, 2, 4, 5, 7, 8, 10], b (13): [0, 1, 2, 5, 7, 8, 10] +idx: 14 --- EXITING WITH false +idx: 15, delta: 0, matching: false, a (15): [0, 3, 8], b (16): [0, 2, 4, 5, 7, 8, 10] +idx: 15 --- EXITING WITH false +idx: 16 --- EXITING WITH false +#..##.####. +#..##.####. +#...#.####. +#####..##.. +.#..##.##.# +...#..#..#. +.......##.. +.##.#...... +#...#...... +##.#..#..#. +##...#....# +...######## +#.##..#..#. +###..#.##.# +.....###### +#..#....#.. +#.#.##.##.# +8 (vert: 8, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [0, 5, 6, 8, 9, 10, 13, 14], b (1): [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 13] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 13], b (2): [1, 4, 6, 7, 11, 12] +idx: 1, delta: 2, matching: false, a (3): [1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 13, 14], b (0): [0, 5, 6, 8, 9, 10, 13, 14] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 4, 6, 7, 11, 12], b (3): [1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 13, 14] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 4, 5, 6, 8, 10, 13], b (1): [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 13] +idx: 2, delta: 3, matching: false, a (5): [2, 3, 8, 10, 13], b (0): [0, 5, 6, 8, 9, 10, 13, 14] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 13, 14], b (4): [0, 1, 4, 5, 6, 8, 10, 13] +idx: 3, delta: 2, matching: false, a (5): [2, 3, 8, 10, 13], b (2): [1, 4, 6, 7, 11, 12] +idx: 3, delta: 3, matching: false, a (6): [0, 5, 7, 10, 13], b (1): [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 13] +idx: 3, delta: 4, matching: false, a (7): [1, 4, 7, 8, 10, 11, 12, 13], b (0): [0, 5, 6, 8, 9, 10, 13, 14] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 4, 5, 6, 8, 10, 13], b (5): [2, 3, 8, 10, 13] +idx: 4, delta: 2, matching: false, a (6): [0, 5, 7, 10, 13], b (3): [1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 13, 14] +idx: 4, delta: 3, matching: false, a (7): [1, 4, 7, 8, 10, 11, 12, 13], b (2): [1, 4, 6, 7, 11, 12] +idx: 4, delta: 4, matching: false, a (8): [2, 3, 8, 9, 11, 12, 14], b (1): [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 13] +idx: 4, delta: 5, matching: false, a (9): [1, 4, 7, 8, 10, 11, 12, 13], b (0): [0, 5, 6, 8, 9, 10, 13, 14] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [2, 3, 8, 10, 13], b (6): [0, 5, 7, 10, 13] +idx: 5, delta: 2, matching: false, a (7): [1, 4, 7, 8, 10, 11, 12, 13], b (4): [0, 1, 4, 5, 6, 8, 10, 13] +idx: 5, delta: 3, matching: false, a (8): [2, 3, 8, 9, 11, 12, 14], b (3): [1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 13, 14] +idx: 5, delta: 4, matching: false, a (9): [1, 4, 7, 8, 10, 11, 12, 13], b (2): [1, 4, 6, 7, 11, 12] +idx: 5, delta: 5, matching: false, a (10): [1, 2, 3, 4, 7, 10, 13], b (1): [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 13] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 5, 7, 10, 13], b (7): [1, 4, 7, 8, 10, 11, 12, 13] +idx: 6, delta: 2, matching: false, a (8): [2, 3, 8, 9, 11, 12, 14], b (5): [2, 3, 8, 10, 13] +idx: 6, delta: 3, matching: false, a (9): [1, 4, 7, 8, 10, 11, 12, 13], b (4): [0, 1, 4, 5, 6, 8, 10, 13] +idx: 6, delta: 4, matching: false, a (10): [1, 2, 3, 4, 7, 10, 13], b (3): [1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 13, 14] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [1, 4, 7, 8, 10, 11, 12, 13], b (8): [2, 3, 8, 9, 11, 12, 14] +idx: 7, delta: 2, matching: false, a (9): [1, 4, 7, 8, 10, 11, 12, 13], b (6): [0, 5, 7, 10, 13] +idx: 7, delta: 3, matching: false, a (10): [1, 2, 3, 4, 7, 10, 13], b (5): [2, 3, 8, 10, 13] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [2, 3, 8, 9, 11, 12, 14], b (9): [1, 4, 7, 8, 10, 11, 12, 13] +idx: 8, delta: 2, matching: false, a (10): [1, 2, 3, 4, 7, 10, 13], b (7): [1, 4, 7, 8, 10, 11, 12, 13] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [1, 4, 7, 8, 10, 11, 12, 13], b (10): [1, 2, 3, 4, 7, 10, 13] +idx: 9 --- EXITING WITH false +idx: 10 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [0, 1, 4, 6], b (1): [1, 2, 3, 4, 7, 9, 10] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 2, 3, 4, 7, 9, 10], b (2): [1, 3, 5, 8, 10] +idx: 1, delta: 2, matching: false, a (3): [1, 3, 5, 8, 10], b (0): [0, 1, 4, 6] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: true, a (2): [1, 3, 5, 8, 10], b (3): [1, 3, 5, 8, 10] +idx: 2, delta: 2, matching: true, a (4): [1, 2, 3, 4, 7, 9, 10], b (1): [1, 2, 3, 4, 7, 9, 10] +idx: 2, delta: 3, matching: true, a (5): [0, 1, 4, 6], b (0): [0, 1, 4, 6] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 3, 5, 8, 10], b (4): [1, 2, 3, 4, 7, 9, 10] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 4, 6], b (2): [1, 3, 5, 8, 10] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 2, 3, 4], b (1): [1, 2, 3, 4, 7, 9, 10] +idx: 3, delta: 4, matching: false, a (7): [1, 2, 3, 6, 7, 9, 10], b (0): [0, 1, 4, 6] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 2, 3, 4, 7, 9, 10], b (5): [0, 1, 4, 6] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 2, 3, 4], b (3): [1, 3, 5, 8, 10] +idx: 4, delta: 3, matching: false, a (7): [1, 2, 3, 6, 7, 9, 10], b (2): [1, 3, 5, 8, 10] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 4, 5, 7, 8, 9], b (1): [1, 2, 3, 4, 7, 9, 10] +idx: 4, delta: 5, matching: false, a (9): [0, 3, 8], b (0): [0, 1, 4, 6] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 4, 6], b (6): [0, 1, 2, 3, 4] +idx: 5, delta: 2, matching: false, a (7): [1, 2, 3, 6, 7, 9, 10], b (4): [1, 2, 3, 4, 7, 9, 10] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 4, 5, 7, 8, 9], b (3): [1, 3, 5, 8, 10] +idx: 5, delta: 4, matching: false, a (9): [0, 3, 8], b (2): [1, 3, 5, 8, 10] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 3, 4, 5, 6, 7, 9, 10], b (1): [1, 2, 3, 4, 7, 9, 10] +idx: 5, delta: 6, matching: false, a (11): [1, 2, 3, 7, 8, 9], b (0): [0, 1, 4, 6] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 1, 2, 3, 4], b (7): [1, 2, 3, 6, 7, 9, 10] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 4, 5, 7, 8, 9], b (5): [0, 1, 4, 6] +idx: 6, delta: 3, matching: false, a (9): [0, 3, 8], b (4): [1, 2, 3, 4, 7, 9, 10] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 3, 4, 5, 6, 7, 9, 10], b (3): [1, 3, 5, 8, 10] +idx: 6, delta: 5, matching: false, a (11): [1, 2, 3, 7, 8, 9], b (2): [1, 3, 5, 8, 10] +idx: 6, delta: 6, matching: false, a (12): [2, 3, 7, 8, 9], b (1): [1, 2, 3, 4, 7, 9, 10] +idx: 6, delta: 7, matching: false, a (13): [0, 1, 3, 4, 5, 6, 7, 9, 10], b (0): [0, 1, 4, 6] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [1, 2, 3, 6, 7, 9, 10], b (8): [0, 1, 4, 5, 7, 8, 9] +idx: 7, delta: 2, matching: false, a (9): [0, 3, 8], b (6): [0, 1, 2, 3, 4] +idx: 7, delta: 3, matching: false, a (10): [0, 1, 3, 4, 5, 6, 7, 9, 10], b (5): [0, 1, 4, 6] +idx: 7, delta: 4, matching: false, a (11): [1, 2, 3, 7, 8, 9], b (4): [1, 2, 3, 4, 7, 9, 10] +idx: 7, delta: 5, matching: false, a (12): [2, 3, 7, 8, 9], b (3): [1, 3, 5, 8, 10] +idx: 7, delta: 6, matching: false, a (13): [0, 1, 3, 4, 5, 6, 7, 9, 10], b (2): [1, 3, 5, 8, 10] +idx: 7, delta: 7, matching: false, a (14): [0, 3, 8], b (1): [1, 2, 3, 4, 7, 9, 10] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 1, 4, 5, 7, 8, 9], b (9): [0, 3, 8] +idx: 8, delta: 2, matching: false, a (10): [0, 1, 3, 4, 5, 6, 7, 9, 10], b (7): [1, 2, 3, 6, 7, 9, 10] +idx: 8, delta: 3, matching: false, a (11): [1, 2, 3, 7, 8, 9], b (6): [0, 1, 2, 3, 4] +idx: 8, delta: 4, matching: false, a (12): [2, 3, 7, 8, 9], b (5): [0, 1, 4, 6] +idx: 8, delta: 5, matching: false, a (13): [0, 1, 3, 4, 5, 6, 7, 9, 10], b (4): [1, 2, 3, 4, 7, 9, 10] +idx: 8, delta: 6, matching: false, a (14): [0, 3, 8], b (3): [1, 3, 5, 8, 10] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 3, 8], b (10): [0, 1, 3, 4, 5, 6, 7, 9, 10] +idx: 9, delta: 2, matching: false, a (11): [1, 2, 3, 7, 8, 9], b (8): [0, 1, 4, 5, 7, 8, 9] +idx: 9, delta: 3, matching: false, a (12): [2, 3, 7, 8, 9], b (7): [1, 2, 3, 6, 7, 9, 10] +idx: 9, delta: 4, matching: false, a (13): [0, 1, 3, 4, 5, 6, 7, 9, 10], b (6): [0, 1, 2, 3, 4] +idx: 9, delta: 5, matching: false, a (14): [0, 3, 8], b (5): [0, 1, 4, 6] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 1, 3, 4, 5, 6, 7, 9, 10], b (11): [1, 2, 3, 7, 8, 9] +idx: 10, delta: 2, matching: false, a (12): [2, 3, 7, 8, 9], b (9): [0, 3, 8] +idx: 10, delta: 3, matching: false, a (13): [0, 1, 3, 4, 5, 6, 7, 9, 10], b (8): [0, 1, 4, 5, 7, 8, 9] +idx: 10, delta: 4, matching: false, a (14): [0, 3, 8], b (7): [1, 2, 3, 6, 7, 9, 10] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [1, 2, 3, 7, 8, 9], b (12): [2, 3, 7, 8, 9] +idx: 11, delta: 0 --- found smudge! +idx: 11, delta: 2, matching: true, a (13): [0, 1, 3, 4, 5, 6, 7, 9, 10], b (10): [0, 1, 3, 4, 5, 6, 7, 9, 10] +idx: 11, delta: 3, matching: true, a (14): [0, 3, 8], b (9): [0, 3, 8] +idx: 11 --- EXITING WITH true +##..#.#.... +.####..#.## +.#.#.#..#.# +.#.#.#..#.# +.####..#.## +##..#.#.... +#####...... +.###..##.## +##..##.###. +#..#....#.. +##.#####.## +.###...###. +..##...###. +##.#####.## +#..#....#.. +1200 (vert: 0, horiz: 12) + +idx: 0, delta: 0, matching: true, a (0): [1, 7, 9, 10, 12, 13], b (1): [1, 7, 9, 10, 12, 13] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 7, 9, 10, 12, 13], b (2): [0, 1, 4, 6, 7, 8, 10, 13, 14] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 2, 4, 5, 10], b (0): [1, 7, 9, 10, 12, 13] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 4, 6, 7, 8, 10, 13, 14], b (3): [0, 1, 2, 4, 5, 10] +idx: 2, delta: 2, matching: false, a (4): [0, 3, 4, 6, 8, 9, 10, 11], b (1): [1, 7, 9, 10, 12, 13] +idx: 2, delta: 3, matching: false, a (5): [3, 4, 7, 8, 11, 12, 13], b (0): [1, 7, 9, 10, 12, 13] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 2, 4, 5, 10], b (4): [0, 3, 4, 6, 8, 9, 10, 11] +idx: 3, delta: 2, matching: false, a (5): [3, 4, 7, 8, 11, 12, 13], b (2): [0, 1, 4, 6, 7, 8, 10, 13, 14] +idx: 3, delta: 3, matching: false, a (6): [2, 5, 8, 10, 12, 14], b (1): [1, 7, 9, 10, 12, 13] +idx: 3, delta: 4, matching: false, a (7): [2, 5, 8, 10, 12, 14], b (0): [1, 7, 9, 10, 12, 13] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 3, 4, 6, 8, 9, 10, 11], b (5): [3, 4, 7, 8, 11, 12, 13] +idx: 4, delta: 2, matching: false, a (6): [2, 5, 8, 10, 12, 14], b (3): [0, 1, 2, 4, 5, 10] +idx: 4, delta: 3, matching: false, a (7): [2, 5, 8, 10, 12, 14], b (2): [0, 1, 4, 6, 7, 8, 10, 13, 14] +idx: 4, delta: 4, matching: false, a (8): [3, 4, 7, 11, 12, 13], b (1): [1, 7, 9, 10, 12, 13] +idx: 4, delta: 5, matching: false, a (9): [0, 3, 4, 6, 8, 9, 10, 11], b (0): [1, 7, 9, 10, 12, 13] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [3, 4, 7, 8, 11, 12, 13], b (6): [2, 5, 8, 10, 12, 14] +idx: 5, delta: 2, matching: false, a (7): [2, 5, 8, 10, 12, 14], b (4): [0, 3, 4, 6, 8, 9, 10, 11] +idx: 5, delta: 3, matching: false, a (8): [3, 4, 7, 11, 12, 13], b (3): [0, 1, 2, 4, 5, 10] +idx: 5, delta: 4, matching: false, a (9): [0, 3, 4, 6, 8, 9, 10, 11], b (2): [0, 1, 4, 6, 7, 8, 10, 13, 14] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 2, 4, 5, 10], b (1): [1, 7, 9, 10, 12, 13] +idx: 5, delta: 6, matching: false, a (11): [0, 1, 4, 6, 7, 8, 10, 13, 14], b (0): [1, 7, 9, 10, 12, 13] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: true, a (6): [2, 5, 8, 10, 12, 14], b (7): [2, 5, 8, 10, 12, 14] +idx: 6, delta: 2, matching: false, a (8): [3, 4, 7, 11, 12, 13], b (5): [3, 4, 7, 8, 11, 12, 13] +idx: 6, delta: 2 --- found smudge! +idx: 6, delta: 3, matching: true, a (9): [0, 3, 4, 6, 8, 9, 10, 11], b (4): [0, 3, 4, 6, 8, 9, 10, 11] +idx: 6, delta: 4, matching: true, a (10): [0, 1, 2, 4, 5, 10], b (3): [0, 1, 2, 4, 5, 10] +idx: 6, delta: 5, matching: true, a (11): [0, 1, 4, 6, 7, 8, 10, 13, 14], b (2): [0, 1, 4, 6, 7, 8, 10, 13, 14] +idx: 6, delta: 6, matching: true, a (12): [1, 7, 9, 10, 12, 13], b (1): [1, 7, 9, 10, 12, 13] +idx: 6 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [2, 3, 4, 9, 10, 11], b (1): [0, 1, 2, 3, 10, 11, 12] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 2, 3, 10, 11, 12], b (2): [3, 6, 7, 10] +idx: 1, delta: 2, matching: false, a (3): [4, 5, 8, 9], b (0): [2, 3, 4, 9, 10, 11] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [3, 6, 7, 10], b (3): [4, 5, 8, 9] +idx: 2, delta: 2, matching: false, a (4): [2, 3, 4, 5, 8, 9, 10, 11], b (1): [0, 1, 2, 3, 10, 11, 12] +idx: 2, delta: 3, matching: false, a (5): [3, 6, 7, 10], b (0): [2, 3, 4, 9, 10, 11] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [4, 5, 8, 9], b (4): [2, 3, 4, 5, 8, 9, 10, 11] +idx: 3, delta: 2, matching: true, a (5): [3, 6, 7, 10], b (2): [3, 6, 7, 10] +idx: 3, delta: 3, matching: false, a (6): [2, 4, 9, 11], b (1): [0, 1, 2, 3, 10, 11, 12] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 2, 5, 8, 11, 12], b (0): [2, 3, 4, 9, 10, 11] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [2, 3, 4, 5, 8, 9, 10, 11], b (5): [3, 6, 7, 10] +idx: 4, delta: 2, matching: false, a (6): [2, 4, 9, 11], b (3): [4, 5, 8, 9] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 2, 5, 8, 11, 12], b (2): [3, 6, 7, 10] +idx: 4, delta: 4, matching: false, a (8): [2, 4, 5, 6, 7, 9, 11], b (1): [0, 1, 2, 3, 10, 11, 12] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 4, 9, 12], b (0): [2, 3, 4, 9, 10, 11] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [3, 6, 7, 10], b (6): [2, 4, 9, 11] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 2, 5, 8, 11, 12], b (4): [2, 3, 4, 5, 8, 9, 10, 11] +idx: 5, delta: 3, matching: false, a (8): [2, 4, 5, 6, 7, 9, 11], b (3): [4, 5, 8, 9] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 4, 9, 12], b (2): [3, 6, 7, 10] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 2, 3, 4, 6, 7, 9, 10, 11, 12], b (1): [0, 1, 2, 3, 10, 11, 12] +idx: 5, delta: 6, matching: false, a (11): [4, 5, 8, 9], b (0): [2, 3, 4, 9, 10, 11] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [2, 4, 9, 11], b (7): [0, 1, 2, 5, 8, 11, 12] +idx: 6, delta: 2, matching: false, a (8): [2, 4, 5, 6, 7, 9, 11], b (5): [3, 6, 7, 10] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 4, 9, 12], b (4): [2, 3, 4, 5, 8, 9, 10, 11] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 2, 3, 4, 6, 7, 9, 10, 11, 12], b (3): [4, 5, 8, 9] +idx: 6, delta: 5, matching: false, a (11): [4, 5, 8, 9], b (2): [3, 6, 7, 10] +idx: 6, delta: 6, matching: false, a (12): [0, 1, 5, 6, 7, 8, 12], b (1): [0, 1, 2, 3, 10, 11, 12] +idx: 6, delta: 7, matching: false, a (13): [0, 1, 2, 5, 8, 11, 12], b (0): [2, 3, 4, 9, 10, 11] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 2, 5, 8, 11, 12], b (8): [2, 4, 5, 6, 7, 9, 11] +idx: 7, delta: 2, matching: false, a (9): [0, 1, 4, 9, 12], b (6): [2, 4, 9, 11] +idx: 7, delta: 3, matching: false, a (10): [0, 1, 2, 3, 4, 6, 7, 9, 10, 11, 12], b (5): [3, 6, 7, 10] +idx: 7, delta: 4, matching: false, a (11): [4, 5, 8, 9], b (4): [2, 3, 4, 5, 8, 9, 10, 11] +idx: 7, delta: 5, matching: false, a (12): [0, 1, 5, 6, 7, 8, 12], b (3): [4, 5, 8, 9] +idx: 7, delta: 6, matching: false, a (13): [0, 1, 2, 5, 8, 11, 12], b (2): [3, 6, 7, 10] +idx: 7, delta: 7, matching: false, a (14): [2, 6, 7, 11], b (1): [0, 1, 2, 3, 10, 11, 12] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [2, 4, 5, 6, 7, 9, 11], b (9): [0, 1, 4, 9, 12] +idx: 8, delta: 2, matching: false, a (10): [0, 1, 2, 3, 4, 6, 7, 9, 10, 11, 12], b (7): [0, 1, 2, 5, 8, 11, 12] +idx: 8, delta: 3, matching: false, a (11): [4, 5, 8, 9], b (6): [2, 4, 9, 11] +idx: 8, delta: 4, matching: false, a (12): [0, 1, 5, 6, 7, 8, 12], b (5): [3, 6, 7, 10] +idx: 8, delta: 5, matching: false, a (13): [0, 1, 2, 5, 8, 11, 12], b (4): [2, 3, 4, 5, 8, 9, 10, 11] +idx: 8, delta: 6, matching: false, a (14): [2, 6, 7, 11], b (3): [4, 5, 8, 9] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 1, 4, 9, 12], b (10): [0, 1, 2, 3, 4, 6, 7, 9, 10, 11, 12] +idx: 9, delta: 2, matching: false, a (11): [4, 5, 8, 9], b (8): [2, 4, 5, 6, 7, 9, 11] +idx: 9, delta: 3, matching: false, a (12): [0, 1, 5, 6, 7, 8, 12], b (7): [0, 1, 2, 5, 8, 11, 12] +idx: 9, delta: 4, matching: false, a (13): [0, 1, 2, 5, 8, 11, 12], b (6): [2, 4, 9, 11] +idx: 9, delta: 5, matching: false, a (14): [2, 6, 7, 11], b (5): [3, 6, 7, 10] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 1, 2, 3, 4, 6, 7, 9, 10, 11, 12], b (11): [4, 5, 8, 9] +idx: 10, delta: 2, matching: false, a (12): [0, 1, 5, 6, 7, 8, 12], b (9): [0, 1, 4, 9, 12] +idx: 10, delta: 3, matching: false, a (13): [0, 1, 2, 5, 8, 11, 12], b (8): [2, 4, 5, 6, 7, 9, 11] +idx: 10, delta: 4, matching: false, a (14): [2, 6, 7, 11], b (7): [0, 1, 2, 5, 8, 11, 12] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [4, 5, 8, 9], b (12): [0, 1, 5, 6, 7, 8, 12] +idx: 11, delta: 2, matching: false, a (13): [0, 1, 2, 5, 8, 11, 12], b (10): [0, 1, 2, 3, 4, 6, 7, 9, 10, 11, 12] +idx: 11, delta: 3, matching: false, a (14): [2, 6, 7, 11], b (9): [0, 1, 4, 9, 12] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [0, 1, 5, 6, 7, 8, 12], b (13): [0, 1, 2, 5, 8, 11, 12] +idx: 12, delta: 2, matching: false, a (14): [2, 6, 7, 11], b (11): [4, 5, 8, 9] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: false, a (13): [0, 1, 2, 5, 8, 11, 12], b (14): [2, 6, 7, 11] +idx: 13 --- EXITING WITH false +idx: 14 --- EXITING WITH false +..###....###. +####......### +...#..##..#.. +....##..##... +..####..####. +...#..##..#.. +..#.#....#.#. +###..#..#..## +..#.####.#.#. +##..#....#..# +#####.##.#### +....##..##... +##...####...# +###..#..#..## +..#...##...#. +7 (vert: 7, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [0, 2, 3, 5, 6, 7, 8, 14, 16], b (1): [0, 1, 2, 3, 4, 6, 9, 13, 15, 16] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 2, 3, 4, 6, 9, 13, 15, 16], b (2): [2, 3, 7, 8, 9, 11, 12, 15, 16] +idx: 1, delta: 2, matching: false, a (3): [0, 5, 6, 9, 10, 11, 14, 16], b (0): [0, 2, 3, 5, 6, 7, 8, 14, 16] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [2, 3, 7, 8, 9, 11, 12, 15, 16], b (3): [0, 5, 6, 9, 10, 11, 14, 16] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 3, 4, 6, 7, 9, 13, 14, 16], b (1): [0, 1, 2, 3, 4, 6, 9, 13, 15, 16] +idx: 2, delta: 3, matching: false, a (5): [1, 4, 6, 7, 9, 10, 12, 13, 14, 15, 16], b (0): [0, 2, 3, 5, 6, 7, 8, 14, 16] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 5, 6, 9, 10, 11, 14, 16], b (4): [1, 2, 3, 4, 6, 7, 9, 13, 14, 16] +idx: 3, delta: 2, matching: false, a (5): [1, 4, 6, 7, 9, 10, 12, 13, 14, 15, 16], b (2): [2, 3, 7, 8, 9, 11, 12, 15, 16] +idx: 3, delta: 3, matching: false, a (6): [6, 9, 10, 12], b (1): [0, 1, 2, 3, 4, 6, 9, 13, 15, 16] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 2, 3, 4, 5, 6, 8, 15, 16], b (0): [0, 2, 3, 5, 6, 7, 8, 14, 16] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 2, 3, 4, 6, 7, 9, 13, 14, 16], b (5): [1, 4, 6, 7, 9, 10, 12, 13, 14, 15, 16] +idx: 4, delta: 2, matching: false, a (6): [6, 9, 10, 12], b (3): [0, 5, 6, 9, 10, 11, 14, 16] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 2, 3, 4, 5, 6, 8, 15, 16], b (2): [2, 3, 7, 8, 9, 11, 12, 15, 16] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 16], b (1): [0, 1, 2, 3, 4, 6, 9, 13, 15, 16] +idx: 4, delta: 5, matching: false, a (9): [2, 3, 6, 8, 11, 12, 13, 15], b (0): [0, 2, 3, 5, 6, 7, 8, 14, 16] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 4, 6, 7, 9, 10, 12, 13, 14, 15, 16], b (6): [6, 9, 10, 12] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 2, 3, 4, 5, 6, 8, 15, 16], b (4): [1, 2, 3, 4, 6, 7, 9, 13, 14, 16] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 16], b (3): [0, 5, 6, 9, 10, 11, 14, 16] +idx: 5, delta: 4, matching: false, a (9): [2, 3, 6, 8, 11, 12, 13, 15], b (2): [2, 3, 7, 8, 9, 11, 12, 15, 16] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 4, 5, 7, 8, 11, 12, 15, 16], b (1): [0, 1, 2, 3, 4, 6, 9, 13, 15, 16] +idx: 5, delta: 6, matching: false, a (11): [0, 5, 10, 12, 13, 15, 16], b (0): [0, 2, 3, 5, 6, 7, 8, 14, 16] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [6, 9, 10, 12], b (7): [0, 1, 2, 3, 4, 5, 6, 8, 15, 16] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 16], b (5): [1, 4, 6, 7, 9, 10, 12, 13, 14, 15, 16] +idx: 6, delta: 3, matching: false, a (9): [2, 3, 6, 8, 11, 12, 13, 15], b (4): [1, 2, 3, 4, 6, 7, 9, 13, 14, 16] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 4, 5, 7, 8, 11, 12, 15, 16], b (3): [0, 5, 6, 9, 10, 11, 14, 16] +idx: 6, delta: 5, matching: false, a (11): [0, 5, 10, 12, 13, 15, 16], b (2): [2, 3, 7, 8, 9, 11, 12, 15, 16] +idx: 6, delta: 6, matching: false, a (12): [1, 4, 6, 9, 10, 11, 12], b (1): [0, 1, 2, 3, 4, 6, 9, 13, 15, 16] +idx: 6, delta: 7, matching: false, a (13): [1, 4, 6, 9, 10, 11, 12], b (0): [0, 2, 3, 5, 6, 7, 8, 14, 16] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 2, 3, 4, 5, 6, 8, 15, 16], b (8): [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 16] +idx: 7, delta: 2, matching: false, a (9): [2, 3, 6, 8, 11, 12, 13, 15], b (6): [6, 9, 10, 12] +idx: 7, delta: 3, matching: false, a (10): [0, 1, 4, 5, 7, 8, 11, 12, 15, 16], b (5): [1, 4, 6, 7, 9, 10, 12, 13, 14, 15, 16] +idx: 7, delta: 4, matching: false, a (11): [0, 5, 10, 12, 13, 15, 16], b (4): [1, 2, 3, 4, 6, 7, 9, 13, 14, 16] +idx: 7, delta: 5, matching: false, a (12): [1, 4, 6, 9, 10, 11, 12], b (3): [0, 5, 6, 9, 10, 11, 14, 16] +idx: 7, delta: 6, matching: false, a (13): [1, 4, 6, 9, 10, 11, 12], b (2): [2, 3, 7, 8, 9, 11, 12, 15, 16] +idx: 7, delta: 7, matching: false, a (14): [0, 5, 10, 12, 13, 15, 16], b (1): [0, 1, 2, 3, 4, 6, 9, 13, 15, 16] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 16], b (9): [2, 3, 6, 8, 11, 12, 13, 15] +idx: 8, delta: 2, matching: false, a (10): [0, 1, 4, 5, 7, 8, 11, 12, 15, 16], b (7): [0, 1, 2, 3, 4, 5, 6, 8, 15, 16] +idx: 8, delta: 3, matching: false, a (11): [0, 5, 10, 12, 13, 15, 16], b (6): [6, 9, 10, 12] +idx: 8, delta: 4, matching: false, a (12): [1, 4, 6, 9, 10, 11, 12], b (5): [1, 4, 6, 7, 9, 10, 12, 13, 14, 15, 16] +idx: 8, delta: 5, matching: false, a (13): [1, 4, 6, 9, 10, 11, 12], b (4): [1, 2, 3, 4, 6, 7, 9, 13, 14, 16] +idx: 8, delta: 6, matching: false, a (14): [0, 5, 10, 12, 13, 15, 16], b (3): [0, 5, 6, 9, 10, 11, 14, 16] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [2, 3, 6, 8, 11, 12, 13, 15], b (10): [0, 1, 4, 5, 7, 8, 11, 12, 15, 16] +idx: 9, delta: 2, matching: false, a (11): [0, 5, 10, 12, 13, 15, 16], b (8): [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 16] +idx: 9, delta: 3, matching: false, a (12): [1, 4, 6, 9, 10, 11, 12], b (7): [0, 1, 2, 3, 4, 5, 6, 8, 15, 16] +idx: 9, delta: 4, matching: false, a (13): [1, 4, 6, 9, 10, 11, 12], b (6): [6, 9, 10, 12] +idx: 9, delta: 5, matching: false, a (14): [0, 5, 10, 12, 13, 15, 16], b (5): [1, 4, 6, 7, 9, 10, 12, 13, 14, 15, 16] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 1, 4, 5, 7, 8, 11, 12, 15, 16], b (11): [0, 5, 10, 12, 13, 15, 16] +idx: 10, delta: 2, matching: false, a (12): [1, 4, 6, 9, 10, 11, 12], b (9): [2, 3, 6, 8, 11, 12, 13, 15] +idx: 10, delta: 3, matching: false, a (13): [1, 4, 6, 9, 10, 11, 12], b (8): [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 16] +idx: 10, delta: 4, matching: false, a (14): [0, 5, 10, 12, 13, 15, 16], b (7): [0, 1, 2, 3, 4, 5, 6, 8, 15, 16] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [0, 5, 10, 12, 13, 15, 16], b (12): [1, 4, 6, 9, 10, 11, 12] +idx: 11, delta: 2, matching: false, a (13): [1, 4, 6, 9, 10, 11, 12], b (10): [0, 1, 4, 5, 7, 8, 11, 12, 15, 16] +idx: 11, delta: 3, matching: false, a (14): [0, 5, 10, 12, 13, 15, 16], b (9): [2, 3, 6, 8, 11, 12, 13, 15] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: true, a (12): [1, 4, 6, 9, 10, 11, 12], b (13): [1, 4, 6, 9, 10, 11, 12] +idx: 12, delta: 2, matching: true, a (14): [0, 5, 10, 12, 13, 15, 16], b (11): [0, 5, 10, 12, 13, 15, 16] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: false, a (13): [1, 4, 6, 9, 10, 11, 12], b (14): [0, 5, 10, 12, 13, 15, 16] +idx: 13 --- EXITING WITH false +idx: 14 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [0, 1, 3, 7, 8, 10, 11, 14], b (1): [1, 4, 5, 7, 8, 10, 12, 13] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 4, 5, 7, 8, 10, 12, 13], b (2): [0, 1, 2, 4, 7, 8, 9] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 2, 4, 7, 8, 9], b (0): [0, 1, 3, 7, 8, 10, 11, 14] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: true, a (2): [0, 1, 2, 4, 7, 8, 9], b (3): [0, 1, 2, 4, 7, 8, 9] +idx: 2, delta: 2, matching: true, a (4): [1, 4, 5, 7, 8, 10, 12, 13], b (1): [1, 4, 5, 7, 8, 10, 12, 13] +idx: 2, delta: 3, matching: false, a (5): [0, 3, 7, 8, 10, 11, 14], b (0): [0, 1, 3, 7, 8, 10, 11, 14] +idx: 2, delta: 3 --- found smudge! +idx: 2 --- EXITING WITH true +##.#...##.##..# +.#..##.##.#.##. +###.#..###..... +###.#..###..... +.#..##.##.#.##. +#..#...##.##..# +##.#####.#..##. +#.#.##..#.#.... +#.#....####.... +.######.#...##. +...#.##.#..#### +..##....###.##. +..#..##.####### +.#..##...#.#..# +#..###......... +.##..#.#.###..# +######.##.##..# +300 (vert: 0, horiz: 3) + +idx: 0, delta: 0, matching: false, a (0): [0, 1, 2, 4, 5, 9, 10, 11, 12], b (1): [0, 1, 4, 5, 6, 7] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 4, 5, 6, 7], b (2): [3, 5] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 2, 5, 10, 11, 12], b (0): [0, 1, 2, 4, 5, 9, 10, 11, 12] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [3, 5], b (3): [0, 1, 2, 5, 10, 11, 12] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 3, 4, 5, 6], b (1): [0, 1, 4, 5, 6, 7] +idx: 2, delta: 3, matching: false, a (5): [0, 4, 5, 6, 8, 9, 12], b (0): [0, 1, 2, 4, 5, 9, 10, 11, 12] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 2, 5, 10, 11, 12], b (4): [0, 1, 3, 4, 5, 6] +idx: 3, delta: 2, matching: false, a (5): [0, 4, 5, 6, 8, 9, 12], b (2): [3, 5] +idx: 3, delta: 3, matching: false, a (6): [7, 8], b (1): [0, 1, 4, 5, 6, 7] +idx: 3, delta: 4, matching: false, a (7): [4, 7, 10, 11, 12], b (0): [0, 1, 2, 4, 5, 9, 10, 11, 12] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 3, 4, 5, 6], b (5): [0, 4, 5, 6, 8, 9, 12] +idx: 4, delta: 2, matching: false, a (6): [7, 8], b (3): [0, 1, 2, 5, 10, 11, 12] +idx: 4, delta: 3, matching: false, a (7): [4, 7, 10, 11, 12], b (2): [3, 5] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 3, 4, 5, 7, 11, 12], b (1): [0, 1, 4, 5, 6, 7] +idx: 4, delta: 5, matching: false, a (9): [0, 2, 5], b (0): [0, 1, 2, 4, 5, 9, 10, 11, 12] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 4, 5, 6, 8, 9, 12], b (6): [7, 8] +idx: 5, delta: 2, matching: false, a (7): [4, 7, 10, 11, 12], b (4): [0, 1, 3, 4, 5, 6] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 3, 4, 5, 7, 11, 12], b (3): [0, 1, 2, 5, 10, 11, 12] +idx: 5, delta: 4, matching: false, a (9): [0, 2, 5], b (2): [3, 5] +idx: 5, delta: 5, matching: false, a (10): [2, 3, 4, 5, 6, 9, 11, 12], b (1): [0, 1, 4, 5, 6, 7] +idx: 5, delta: 6, matching: false, a (11): [0, 1, 3, 4, 5, 7, 11, 12], b (0): [0, 1, 2, 4, 5, 9, 10, 11, 12] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [7, 8], b (7): [4, 7, 10, 11, 12] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 3, 4, 5, 7, 11, 12], b (5): [0, 4, 5, 6, 8, 9, 12] +idx: 6, delta: 3, matching: false, a (9): [0, 2, 5], b (4): [0, 1, 3, 4, 5, 6] +idx: 6, delta: 4, matching: false, a (10): [2, 3, 4, 5, 6, 9, 11, 12], b (3): [0, 1, 2, 5, 10, 11, 12] +idx: 6, delta: 5, matching: false, a (11): [0, 1, 3, 4, 5, 7, 11, 12], b (2): [3, 5] +idx: 6, delta: 6, matching: false, a (12): [0, 1, 2, 4, 5, 6, 7, 8, 11, 12], b (1): [0, 1, 4, 5, 6, 7] +idx: 6, delta: 7, matching: false, a (13): [0, 2, 5, 6, 9], b (0): [0, 1, 2, 4, 5, 9, 10, 11, 12] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [4, 7, 10, 11, 12], b (8): [0, 1, 3, 4, 5, 7, 11, 12] +idx: 7, delta: 2, matching: false, a (9): [0, 2, 5], b (6): [7, 8] +idx: 7, delta: 3, matching: false, a (10): [2, 3, 4, 5, 6, 9, 11, 12], b (5): [0, 4, 5, 6, 8, 9, 12] +idx: 7, delta: 4, matching: false, a (11): [0, 1, 3, 4, 5, 7, 11, 12], b (4): [0, 1, 3, 4, 5, 6] +idx: 7, delta: 5, matching: false, a (12): [0, 1, 2, 4, 5, 6, 7, 8, 11, 12], b (3): [0, 1, 2, 5, 10, 11, 12] +idx: 7, delta: 6, matching: false, a (13): [0, 2, 5, 6, 9], b (2): [3, 5] +idx: 7, delta: 7, matching: false, a (14): [0, 2, 5, 6, 9], b (1): [0, 1, 4, 5, 6, 7] +idx: 7, delta: 8, matching: false, a (15): [0, 1, 2, 4, 5, 6, 7, 8, 11, 12], b (0): [0, 1, 2, 4, 5, 9, 10, 11, 12] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 1, 3, 4, 5, 7, 11, 12], b (9): [0, 2, 5] +idx: 8, delta: 2, matching: false, a (10): [2, 3, 4, 5, 6, 9, 11, 12], b (7): [4, 7, 10, 11, 12] +idx: 8, delta: 3, matching: false, a (11): [0, 1, 3, 4, 5, 7, 11, 12], b (6): [7, 8] +idx: 8, delta: 4, matching: false, a (12): [0, 1, 2, 4, 5, 6, 7, 8, 11, 12], b (5): [0, 4, 5, 6, 8, 9, 12] +idx: 8, delta: 5, matching: false, a (13): [0, 2, 5, 6, 9], b (4): [0, 1, 3, 4, 5, 6] +idx: 8, delta: 6, matching: false, a (14): [0, 2, 5, 6, 9], b (3): [0, 1, 2, 5, 10, 11, 12] +idx: 8, delta: 7, matching: false, a (15): [0, 1, 2, 4, 5, 6, 7, 8, 11, 12], b (2): [3, 5] +idx: 8, delta: 8, matching: false, a (16): [0, 1, 3, 4, 5, 7, 11, 12], b (1): [0, 1, 4, 5, 6, 7] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 2, 5], b (10): [2, 3, 4, 5, 6, 9, 11, 12] +idx: 9, delta: 2, matching: true, a (11): [0, 1, 3, 4, 5, 7, 11, 12], b (8): [0, 1, 3, 4, 5, 7, 11, 12] +idx: 9, delta: 3, matching: false, a (12): [0, 1, 2, 4, 5, 6, 7, 8, 11, 12], b (7): [4, 7, 10, 11, 12] +idx: 9, delta: 4, matching: false, a (13): [0, 2, 5, 6, 9], b (6): [7, 8] +idx: 9, delta: 5, matching: false, a (14): [0, 2, 5, 6, 9], b (5): [0, 4, 5, 6, 8, 9, 12] +idx: 9, delta: 6, matching: false, a (15): [0, 1, 2, 4, 5, 6, 7, 8, 11, 12], b (4): [0, 1, 3, 4, 5, 6] +idx: 9, delta: 7, matching: false, a (16): [0, 1, 3, 4, 5, 7, 11, 12], b (3): [0, 1, 2, 5, 10, 11, 12] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [2, 3, 4, 5, 6, 9, 11, 12], b (11): [0, 1, 3, 4, 5, 7, 11, 12] +idx: 10, delta: 2, matching: false, a (12): [0, 1, 2, 4, 5, 6, 7, 8, 11, 12], b (9): [0, 2, 5] +idx: 10, delta: 3, matching: false, a (13): [0, 2, 5, 6, 9], b (8): [0, 1, 3, 4, 5, 7, 11, 12] +idx: 10, delta: 4, matching: false, a (14): [0, 2, 5, 6, 9], b (7): [4, 7, 10, 11, 12] +idx: 10, delta: 5, matching: false, a (15): [0, 1, 2, 4, 5, 6, 7, 8, 11, 12], b (6): [7, 8] +idx: 10, delta: 6, matching: false, a (16): [0, 1, 3, 4, 5, 7, 11, 12], b (5): [0, 4, 5, 6, 8, 9, 12] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [0, 1, 3, 4, 5, 7, 11, 12], b (12): [0, 1, 2, 4, 5, 6, 7, 8, 11, 12] +idx: 11, delta: 2, matching: false, a (13): [0, 2, 5, 6, 9], b (10): [2, 3, 4, 5, 6, 9, 11, 12] +idx: 11, delta: 3, matching: false, a (14): [0, 2, 5, 6, 9], b (9): [0, 2, 5] +idx: 11, delta: 4, matching: false, a (15): [0, 1, 2, 4, 5, 6, 7, 8, 11, 12], b (8): [0, 1, 3, 4, 5, 7, 11, 12] +idx: 11, delta: 5, matching: false, a (16): [0, 1, 3, 4, 5, 7, 11, 12], b (7): [4, 7, 10, 11, 12] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [0, 1, 2, 4, 5, 6, 7, 8, 11, 12], b (13): [0, 2, 5, 6, 9] +idx: 12, delta: 2, matching: false, a (14): [0, 2, 5, 6, 9], b (11): [0, 1, 3, 4, 5, 7, 11, 12] +idx: 12, delta: 3, matching: false, a (15): [0, 1, 2, 4, 5, 6, 7, 8, 11, 12], b (10): [2, 3, 4, 5, 6, 9, 11, 12] +idx: 12, delta: 4, matching: false, a (16): [0, 1, 3, 4, 5, 7, 11, 12], b (9): [0, 2, 5] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: true, a (13): [0, 2, 5, 6, 9], b (14): [0, 2, 5, 6, 9] +idx: 13, delta: 2, matching: true, a (15): [0, 1, 2, 4, 5, 6, 7, 8, 11, 12], b (12): [0, 1, 2, 4, 5, 6, 7, 8, 11, 12] +idx: 13, delta: 3, matching: true, a (16): [0, 1, 3, 4, 5, 7, 11, 12], b (11): [0, 1, 3, 4, 5, 7, 11, 12] +idx: 13 --- EXITING WITH false +idx: 14, delta: 0, matching: false, a (14): [0, 2, 5, 6, 9], b (15): [0, 1, 2, 4, 5, 6, 7, 8, 11, 12] +idx: 14, delta: 2, matching: false, a (16): [0, 1, 3, 4, 5, 7, 11, 12], b (13): [0, 2, 5, 6, 9] +idx: 14 --- EXITING WITH false +idx: 15, delta: 0, matching: false, a (15): [0, 1, 2, 4, 5, 6, 7, 8, 11, 12], b (16): [0, 1, 3, 4, 5, 7, 11, 12] +idx: 15 --- EXITING WITH false +idx: 16 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [0, 1, 3, 4, 5, 8, 9, 11, 12, 13, 14, 15, 16], b (1): [0, 1, 3, 4, 8, 11, 12, 15, 16] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 3, 4, 8, 11, 12, 15, 16], b (2): [0, 3, 9, 10, 12, 13, 14, 15] +idx: 1, delta: 2, matching: false, a (3): [2, 4, 8, 10, 11, 16], b (0): [0, 1, 3, 4, 5, 8, 9, 11, 12, 13, 14, 15, 16] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 3, 9, 10, 12, 13, 14, 15], b (3): [2, 4, 8, 10, 11, 16] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 4, 5, 7, 8, 10, 11, 12, 15, 16], b (1): [0, 1, 3, 4, 8, 11, 12, 15, 16] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16], b (0): [0, 1, 3, 4, 5, 8, 9, 11, 12, 13, 14, 15, 16] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [2, 4, 8, 10, 11, 16], b (4): [0, 1, 4, 5, 7, 8, 10, 11, 12, 15, 16] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16], b (2): [0, 3, 9, 10, 12, 13, 14, 15] +idx: 3, delta: 3, matching: false, a (6): [1, 4, 5, 10, 12, 13, 14, 15], b (1): [0, 1, 3, 4, 8, 11, 12, 15, 16] +idx: 3, delta: 4, matching: false, a (7): [1, 6, 7, 8, 11, 12, 15, 16], b (0): [0, 1, 3, 4, 5, 8, 9, 11, 12, 13, 14, 15, 16] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 4, 5, 7, 8, 10, 11, 12, 15, 16], b (5): [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16] +idx: 4, delta: 2, matching: false, a (6): [1, 4, 5, 10, 12, 13, 14, 15], b (3): [2, 4, 8, 10, 11, 16] +idx: 4, delta: 3, matching: false, a (7): [1, 6, 7, 8, 11, 12, 15, 16], b (2): [0, 3, 9, 10, 12, 13, 14, 15] +idx: 4, delta: 4, matching: false, a (8): [5, 6, 12, 15], b (1): [0, 1, 3, 4, 8, 11, 12, 15, 16] +idx: 4, delta: 5, matching: false, a (9): [0, 5, 10, 13, 14], b (0): [0, 1, 3, 4, 5, 8, 9, 11, 12, 13, 14, 15, 16] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16], b (6): [1, 4, 5, 10, 12, 13, 14, 15] +idx: 5, delta: 2, matching: false, a (7): [1, 6, 7, 8, 11, 12, 15, 16], b (4): [0, 1, 4, 5, 7, 8, 10, 11, 12, 15, 16] +idx: 5, delta: 3, matching: false, a (8): [5, 6, 12, 15], b (3): [2, 4, 8, 10, 11, 16] +idx: 5, delta: 4, matching: false, a (9): [0, 5, 10, 13, 14], b (2): [0, 3, 9, 10, 12, 13, 14, 15] +idx: 5, delta: 5, matching: false, a (10): [0, 3, 7], b (1): [0, 1, 3, 4, 8, 11, 12, 15, 16] +idx: 5, delta: 6, matching: false, a (11): [0, 3, 7, 8, 10, 11, 12, 15, 16], b (0): [0, 1, 3, 4, 5, 8, 9, 11, 12, 13, 14, 15, 16] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [1, 4, 5, 10, 12, 13, 14, 15], b (7): [1, 6, 7, 8, 11, 12, 15, 16] +idx: 6, delta: 2, matching: false, a (8): [5, 6, 12, 15], b (5): [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16] +idx: 6, delta: 3, matching: false, a (9): [0, 5, 10, 13, 14], b (4): [0, 1, 4, 5, 7, 8, 10, 11, 12, 15, 16] +idx: 6, delta: 4, matching: false, a (10): [0, 3, 7], b (3): [2, 4, 8, 10, 11, 16] +idx: 6, delta: 5, matching: false, a (11): [0, 3, 7, 8, 10, 11, 12, 15, 16], b (2): [0, 3, 9, 10, 12, 13, 14, 15] +idx: 6, delta: 6, matching: false, a (12): [0, 3, 5, 7, 8, 10, 11, 12, 15, 16], b (1): [0, 1, 3, 4, 8, 11, 12, 15, 16] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [1, 6, 7, 8, 11, 12, 15, 16], b (8): [5, 6, 12, 15] +idx: 7, delta: 2, matching: false, a (9): [0, 5, 10, 13, 14], b (6): [1, 4, 5, 10, 12, 13, 14, 15] +idx: 7, delta: 3, matching: false, a (10): [0, 3, 7], b (5): [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16] +idx: 7, delta: 4, matching: false, a (11): [0, 3, 7, 8, 10, 11, 12, 15, 16], b (4): [0, 1, 4, 5, 7, 8, 10, 11, 12, 15, 16] +idx: 7, delta: 5, matching: false, a (12): [0, 3, 5, 7, 8, 10, 11, 12, 15, 16], b (3): [2, 4, 8, 10, 11, 16] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [5, 6, 12, 15], b (9): [0, 5, 10, 13, 14] +idx: 8, delta: 2, matching: false, a (10): [0, 3, 7], b (7): [1, 6, 7, 8, 11, 12, 15, 16] +idx: 8, delta: 3, matching: false, a (11): [0, 3, 7, 8, 10, 11, 12, 15, 16], b (6): [1, 4, 5, 10, 12, 13, 14, 15] +idx: 8, delta: 4, matching: false, a (12): [0, 3, 5, 7, 8, 10, 11, 12, 15, 16], b (5): [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 5, 10, 13, 14], b (10): [0, 3, 7] +idx: 9, delta: 2, matching: false, a (11): [0, 3, 7, 8, 10, 11, 12, 15, 16], b (8): [5, 6, 12, 15] +idx: 9, delta: 3, matching: false, a (12): [0, 3, 5, 7, 8, 10, 11, 12, 15, 16], b (7): [1, 6, 7, 8, 11, 12, 15, 16] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 3, 7], b (11): [0, 3, 7, 8, 10, 11, 12, 15, 16] +idx: 10, delta: 2, matching: false, a (12): [0, 3, 5, 7, 8, 10, 11, 12, 15, 16], b (9): [0, 5, 10, 13, 14] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [0, 3, 7, 8, 10, 11, 12, 15, 16], b (12): [0, 3, 5, 7, 8, 10, 11, 12, 15, 16] +idx: 11, delta: 0 --- found smudge! +idx: 11 --- EXITING WITH true +##.###..##.###### +##.##...#..##..## +#..#.....##.####. +..#.#...#.##....# +##..##.##.###..## +######..######### +.#..##....#.####. +.#....###..##..## +.....##.....#..#. +#....#....#..##.. +#..#...#......... +#..#...##.###..## +#..#.#.##.###..## +1200 (vert: 0, horiz: 12) + +idx: 0, delta: 0, matching: false, a (0): [1, 2, 4, 7, 8, 9, 10, 11, 14, 15, 16], b (1): [1, 2, 5, 7, 11, 12, 14, 15] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 2, 5, 7, 11, 12, 14, 15], b (2): [0, 3, 4, 9, 12, 13, 15, 16] +idx: 1, delta: 2, matching: false, a (3): [0, 3, 5, 6, 7, 8, 9, 12, 13, 16], b (0): [1, 2, 4, 7, 8, 9, 10, 11, 14, 15, 16] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 3, 4, 9, 12, 13, 15, 16], b (3): [0, 3, 5, 6, 7, 8, 9, 12, 13, 16] +idx: 2, delta: 2, matching: false, a (4): [0, 3, 5, 6, 7, 8, 9, 12, 13, 16], b (1): [1, 2, 5, 7, 11, 12, 14, 15] +idx: 2, delta: 3, matching: false, a (5): [0, 3, 4, 9, 12, 13, 15, 16], b (0): [1, 2, 4, 7, 8, 9, 10, 11, 14, 15, 16] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: true, a (3): [0, 3, 5, 6, 7, 8, 9, 12, 13, 16], b (4): [0, 3, 5, 6, 7, 8, 9, 12, 13, 16] +idx: 3, delta: 2, matching: true, a (5): [0, 3, 4, 9, 12, 13, 15, 16], b (2): [0, 3, 4, 9, 12, 13, 15, 16] +idx: 3, delta: 3, matching: false, a (6): [1, 2, 5, 7, 11, 12, 13, 14, 15], b (1): [1, 2, 5, 7, 11, 12, 14, 15] +idx: 3, delta: 3 --- found smudge! +idx: 3 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [2, 3, 4, 5], b (1): [0, 1, 6] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: true, a (1): [0, 1, 6], b (2): [0, 1, 6] +idx: 1, delta: 2, matching: true, a (3): [2, 3, 4, 5], b (0): [2, 3, 4, 5] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 6], b (3): [2, 3, 4, 5] +idx: 2, delta: 2, matching: false, a (4): [0, 2, 5], b (1): [0, 1, 6] +idx: 2, delta: 3, matching: false, a (5): [1, 3, 4, 6], b (0): [2, 3, 4, 5] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [2, 3, 4, 5], b (4): [0, 2, 5] +idx: 3, delta: 2, matching: false, a (5): [1, 3, 4, 6], b (2): [0, 1, 6] +idx: 3, delta: 3, matching: false, a (6): [3, 4], b (1): [0, 1, 6] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 3, 4, 6], b (0): [2, 3, 4, 5] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 2, 5], b (5): [1, 3, 4, 6] +idx: 4, delta: 2, matching: false, a (6): [3, 4], b (3): [2, 3, 4, 5] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 3, 4, 6], b (2): [0, 1, 6] +idx: 4, delta: 4, matching: false, a (8): [0, 3, 4], b (1): [0, 1, 6] +idx: 4, delta: 5, matching: false, a (9): [0, 2, 3, 4, 5], b (0): [2, 3, 4, 5] +idx: 4, delta: 5 --- found smudge! +idx: 4 --- EXITING WITH true +..####. +##....# +##....# +..####. +#.#..#. +.#.##.# +...##.. +##.##.# +#..##.. +#.####. +#...... +##....# +.###### +..##### +##....# +###..## +#.####. +504 (vert: 4, horiz: 5) + +idx: 0, delta: 0, matching: false, a (0): [2, 3, 4, 6, 7, 8, 9, 12], b (1): [1, 2, 4, 6, 7, 8, 13, 14] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 2, 4, 6, 7, 8, 13, 14], b (2): [5, 6, 9, 10, 12] +idx: 1, delta: 2, matching: false, a (3): [0, 2, 4, 6, 8, 13, 14], b (0): [2, 3, 4, 6, 7, 8, 9, 12] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [5, 6, 9, 10, 12], b (3): [0, 2, 4, 6, 8, 13, 14] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 3, 5, 8, 9, 10, 12], b (1): [1, 2, 4, 6, 7, 8, 13, 14] +idx: 2, delta: 3, matching: false, a (5): [2, 3, 5, 6, 8, 9, 11, 12, 13, 14], b (0): [2, 3, 4, 6, 7, 8, 9, 12] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 2, 4, 6, 8, 13, 14], b (4): [1, 2, 3, 5, 8, 9, 10, 12] +idx: 3, delta: 2, matching: false, a (5): [2, 3, 5, 6, 8, 9, 11, 12, 13, 14], b (2): [5, 6, 9, 10, 12] +idx: 3, delta: 3, matching: false, a (6): [0, 2, 3, 4, 5, 6, 7, 8, 11], b (1): [1, 2, 4, 6, 7, 8, 13, 14] +idx: 3, delta: 4, matching: false, a (7): [0, 2, 3, 4, 5, 7, 8, 11], b (0): [2, 3, 4, 6, 7, 8, 9, 12] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 2, 3, 5, 8, 9, 10, 12], b (5): [2, 3, 5, 6, 8, 9, 11, 12, 13, 14] +idx: 4, delta: 2, matching: false, a (6): [0, 2, 3, 4, 5, 6, 7, 8, 11], b (3): [0, 2, 4, 6, 8, 13, 14] +idx: 4, delta: 3, matching: false, a (7): [0, 2, 3, 4, 5, 7, 8, 11], b (2): [5, 6, 9, 10, 12] +idx: 4, delta: 4, matching: false, a (8): [2, 3, 5, 6, 8, 9, 11, 12, 13, 14], b (1): [1, 2, 4, 6, 7, 8, 13, 14] +idx: 4, delta: 5, matching: false, a (9): [1, 2, 3, 5, 8, 9, 10, 12], b (0): [2, 3, 4, 6, 7, 8, 9, 12] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [2, 3, 5, 6, 8, 9, 11, 12, 13, 14], b (6): [0, 2, 3, 4, 5, 6, 7, 8, 11] +idx: 5, delta: 2, matching: false, a (7): [0, 2, 3, 4, 5, 7, 8, 11], b (4): [1, 2, 3, 5, 8, 9, 10, 12] +idx: 5, delta: 3, matching: false, a (8): [2, 3, 5, 6, 8, 9, 11, 12, 13, 14], b (3): [0, 2, 4, 6, 8, 13, 14] +idx: 5, delta: 4, matching: false, a (9): [1, 2, 3, 5, 8, 9, 10, 12], b (2): [5, 6, 9, 10, 12] +idx: 5, delta: 5, matching: false, a (10): [0, 2, 4, 6, 8, 13, 14], b (1): [1, 2, 4, 6, 7, 8, 13, 14] +idx: 5, delta: 6, matching: false, a (11): [5, 6, 9, 10, 12], b (0): [2, 3, 4, 6, 7, 8, 9, 12] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 2, 3, 4, 5, 6, 7, 8, 11], b (7): [0, 2, 3, 4, 5, 7, 8, 11] +idx: 6, delta: 0 --- found smudge! +idx: 6, delta: 2, matching: true, a (8): [2, 3, 5, 6, 8, 9, 11, 12, 13, 14], b (5): [2, 3, 5, 6, 8, 9, 11, 12, 13, 14] +idx: 6, delta: 3, matching: true, a (9): [1, 2, 3, 5, 8, 9, 10, 12], b (4): [1, 2, 3, 5, 8, 9, 10, 12] +idx: 6, delta: 4, matching: true, a (10): [0, 2, 4, 6, 8, 13, 14], b (3): [0, 2, 4, 6, 8, 13, 14] +idx: 6, delta: 5, matching: true, a (11): [5, 6, 9, 10, 12], b (2): [5, 6, 9, 10, 12] +idx: 6, delta: 6, matching: true, a (12): [1, 2, 4, 6, 7, 8, 13, 14], b (1): [1, 2, 4, 6, 7, 8, 13, 14] +idx: 6, delta: 7, matching: true, a (13): [2, 3, 4, 6, 7, 8, 9, 12], b (0): [2, 3, 4, 6, 7, 8, 9, 12] +idx: 6 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [3, 6, 7, 10, 14, 15, 16], b (1): [1, 4, 9, 12, 16] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 4, 9, 12, 16], b (2): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 15, 16] +idx: 1, delta: 2, matching: false, a (3): [0, 4, 5, 6, 7, 8, 9, 13], b (0): [3, 6, 7, 10, 14, 15, 16] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 15, 16], b (3): [0, 4, 5, 6, 7, 8, 9, 13] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 3, 6, 7, 10, 12, 13], b (1): [1, 4, 9, 12, 16] +idx: 2, delta: 3, matching: false, a (5): [2, 4, 5, 6, 7, 8, 9, 11, 15, 16], b (0): [3, 6, 7, 10, 14, 15, 16] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 4, 5, 6, 7, 8, 9, 13], b (4): [0, 1, 3, 6, 7, 10, 12, 13] +idx: 3, delta: 2, matching: false, a (5): [2, 4, 5, 6, 7, 8, 9, 11, 15, 16], b (2): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 15, 16] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 2, 3, 5, 6, 8, 10, 11, 12, 13, 14, 15], b (1): [1, 4, 9, 12, 16] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 6, 7, 12, 13, 14], b (0): [3, 6, 7, 10, 14, 15, 16] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 3, 6, 7, 10, 12, 13], b (5): [2, 4, 5, 6, 7, 8, 9, 11, 15, 16] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 2, 3, 5, 6, 8, 10, 11, 12, 13, 14, 15], b (3): [0, 4, 5, 6, 7, 8, 9, 13] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 6, 7, 12, 13, 14], b (2): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 15, 16] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 15], b (1): [1, 4, 9, 12, 16] +idx: 4, delta: 5, matching: false, a (9): [0, 2, 4, 5, 8, 9, 11, 13, 15, 16], b (0): [3, 6, 7, 10, 14, 15, 16] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [2, 4, 5, 6, 7, 8, 9, 11, 15, 16], b (6): [0, 1, 2, 3, 5, 6, 8, 10, 11, 12, 13, 14, 15] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 6, 7, 12, 13, 14], b (4): [0, 1, 3, 6, 7, 10, 12, 13] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 15], b (3): [0, 4, 5, 6, 7, 8, 9, 13] +idx: 5, delta: 4, matching: false, a (9): [0, 2, 4, 5, 8, 9, 11, 13, 15, 16], b (2): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 15, 16] +idx: 5, delta: 5, matching: false, a (10): [2, 4, 9, 11], b (1): [1, 4, 9, 12, 16] +idx: 5, delta: 6, matching: false, a (11): [5, 6, 7, 8, 14, 15], b (0): [3, 6, 7, 10, 14, 15, 16] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 1, 2, 3, 5, 6, 8, 10, 11, 12, 13, 14, 15], b (7): [0, 1, 6, 7, 12, 13, 14] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 15], b (5): [2, 4, 5, 6, 7, 8, 9, 11, 15, 16] +idx: 6, delta: 3, matching: false, a (9): [0, 2, 4, 5, 8, 9, 11, 13, 15, 16], b (4): [0, 1, 3, 6, 7, 10, 12, 13] +idx: 6, delta: 4, matching: false, a (10): [2, 4, 9, 11], b (3): [0, 4, 5, 6, 7, 8, 9, 13] +idx: 6, delta: 5, matching: false, a (11): [5, 6, 7, 8, 14, 15], b (2): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 15, 16] +idx: 6, delta: 6, matching: false, a (12): [0, 2, 4, 5, 8, 9, 11, 13, 14, 15], b (1): [1, 4, 9, 12, 16] +idx: 6, delta: 7, matching: false, a (13): [1, 3, 5, 8, 10, 12, 14, 15], b (0): [3, 6, 7, 10, 14, 15, 16] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 6, 7, 12, 13, 14], b (8): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 15] +idx: 7, delta: 2, matching: false, a (9): [0, 2, 4, 5, 8, 9, 11, 13, 15, 16], b (6): [0, 1, 2, 3, 5, 6, 8, 10, 11, 12, 13, 14, 15] +idx: 7, delta: 3, matching: false, a (10): [2, 4, 9, 11], b (5): [2, 4, 5, 6, 7, 8, 9, 11, 15, 16] +idx: 7, delta: 4, matching: false, a (11): [5, 6, 7, 8, 14, 15], b (4): [0, 1, 3, 6, 7, 10, 12, 13] +idx: 7, delta: 5, matching: false, a (12): [0, 2, 4, 5, 8, 9, 11, 13, 14, 15], b (3): [0, 4, 5, 6, 7, 8, 9, 13] +idx: 7, delta: 6, matching: false, a (13): [1, 3, 5, 8, 10, 12, 14, 15], b (2): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 15, 16] +idx: 7, delta: 7, matching: false, a (14): [1, 3, 5, 8, 10, 12, 14, 15], b (1): [1, 4, 9, 12, 16] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 15], b (9): [0, 2, 4, 5, 8, 9, 11, 13, 15, 16] +idx: 8, delta: 2, matching: false, a (10): [2, 4, 9, 11], b (7): [0, 1, 6, 7, 12, 13, 14] +idx: 8, delta: 3, matching: false, a (11): [5, 6, 7, 8, 14, 15], b (6): [0, 1, 2, 3, 5, 6, 8, 10, 11, 12, 13, 14, 15] +idx: 8, delta: 4, matching: false, a (12): [0, 2, 4, 5, 8, 9, 11, 13, 14, 15], b (5): [2, 4, 5, 6, 7, 8, 9, 11, 15, 16] +idx: 8, delta: 5, matching: false, a (13): [1, 3, 5, 8, 10, 12, 14, 15], b (4): [0, 1, 3, 6, 7, 10, 12, 13] +idx: 8, delta: 6, matching: false, a (14): [1, 3, 5, 8, 10, 12, 14, 15], b (3): [0, 4, 5, 6, 7, 8, 9, 13] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 2, 4, 5, 8, 9, 11, 13, 15, 16], b (10): [2, 4, 9, 11] +idx: 9, delta: 2, matching: false, a (11): [5, 6, 7, 8, 14, 15], b (8): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 15] +idx: 9, delta: 3, matching: false, a (12): [0, 2, 4, 5, 8, 9, 11, 13, 14, 15], b (7): [0, 1, 6, 7, 12, 13, 14] +idx: 9, delta: 4, matching: false, a (13): [1, 3, 5, 8, 10, 12, 14, 15], b (6): [0, 1, 2, 3, 5, 6, 8, 10, 11, 12, 13, 14, 15] +idx: 9, delta: 5, matching: false, a (14): [1, 3, 5, 8, 10, 12, 14, 15], b (5): [2, 4, 5, 6, 7, 8, 9, 11, 15, 16] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [2, 4, 9, 11], b (11): [5, 6, 7, 8, 14, 15] +idx: 10, delta: 2, matching: false, a (12): [0, 2, 4, 5, 8, 9, 11, 13, 14, 15], b (9): [0, 2, 4, 5, 8, 9, 11, 13, 15, 16] +idx: 10, delta: 3, matching: false, a (13): [1, 3, 5, 8, 10, 12, 14, 15], b (8): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 15] +idx: 10, delta: 4, matching: false, a (14): [1, 3, 5, 8, 10, 12, 14, 15], b (7): [0, 1, 6, 7, 12, 13, 14] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [5, 6, 7, 8, 14, 15], b (12): [0, 2, 4, 5, 8, 9, 11, 13, 14, 15] +idx: 11, delta: 2, matching: false, a (13): [1, 3, 5, 8, 10, 12, 14, 15], b (10): [2, 4, 9, 11] +idx: 11, delta: 3, matching: false, a (14): [1, 3, 5, 8, 10, 12, 14, 15], b (9): [0, 2, 4, 5, 8, 9, 11, 13, 15, 16] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [0, 2, 4, 5, 8, 9, 11, 13, 14, 15], b (13): [1, 3, 5, 8, 10, 12, 14, 15] +idx: 12, delta: 2, matching: false, a (14): [1, 3, 5, 8, 10, 12, 14, 15], b (11): [5, 6, 7, 8, 14, 15] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: true, a (13): [1, 3, 5, 8, 10, 12, 14, 15], b (14): [1, 3, 5, 8, 10, 12, 14, 15] +idx: 13 --- EXITING WITH false +idx: 14 --- EXITING WITH false +...#..##..#...### +.#..#....#..#...# +##.########.##.## +#...######...#... +##.#..##..#.##... +..#.######.#...## +####.##.#.######. +##....##....###.. +##.########.##.#. +#.#.##..##.#.#.## +..#.#....#.#..... +.....####.....##. +#.#.##..##.#.###. +.#.#.#..#.#.#.##. +.#.#.#..#.#.#.##. +7 (vert: 7, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [0, 1, 5], b (1): [0, 2, 3, 5, 6] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 2, 3, 5, 6], b (2): [1, 4, 6] +idx: 1, delta: 2, matching: false, a (3): [2, 3, 6], b (0): [0, 1, 5] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 4, 6], b (3): [2, 3, 6] +idx: 2, delta: 2, matching: false, a (4): [2, 3, 6], b (1): [0, 2, 3, 5, 6] +idx: 2, delta: 3, matching: false, a (5): [1, 4, 6], b (0): [0, 1, 5] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: true, a (3): [2, 3, 6], b (4): [2, 3, 6] +idx: 3, delta: 2, matching: true, a (5): [1, 4, 6], b (2): [1, 4, 6] +idx: 3, delta: 3, matching: true, a (6): [0, 2, 3, 5, 6], b (1): [0, 2, 3, 5, 6] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [2, 3, 6], b (5): [1, 4, 6] +idx: 4, delta: 2, matching: false, a (6): [0, 2, 3, 5, 6], b (3): [2, 3, 6] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 4, 6], b (6): [0, 2, 3, 5, 6] +idx: 5 --- EXITING WITH false +idx: 6 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [0, 1, 6], b (1): [0, 2, 5] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 2, 5], b (2): [1, 3, 4, 6] +idx: 1, delta: 2, matching: false, a (3): [1, 3, 4, 6], b (0): [0, 1, 6] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: true, a (2): [1, 3, 4, 6], b (3): [1, 3, 4, 6] +idx: 2, delta: 2, matching: false, a (4): [2, 5], b (1): [0, 2, 5] +idx: 2, delta: 2 --- found smudge! +idx: 2, delta: 3, matching: true, a (5): [0, 1, 6], b (0): [0, 1, 6] +idx: 2 --- EXITING WITH true +##....# +#.#..#. +.#.##.# +.#.##.# +..#..#. +##....# +.###### +300 (vert: 0, horiz: 3) + +idx: 0, delta: 0, matching: false, a (0): [0, 1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14], b (1): [2, 6, 7, 8, 9, 13] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [2, 6, 7, 8, 9, 13], b (2): [0, 2, 5, 6, 7, 8, 9, 10, 13] +idx: 1, delta: 2, matching: false, a (3): [0, 6, 7, 8, 9], b (0): [0, 1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 2, 5, 6, 7, 8, 9, 10, 13], b (3): [0, 6, 7, 8, 9] +idx: 2, delta: 2, matching: false, a (4): [0, 4, 11], b (1): [2, 6, 7, 8, 9, 13] +idx: 2, delta: 3, matching: false, a (5): [1, 2, 5, 6, 7, 8, 9, 10, 13, 14], b (0): [0, 1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 6, 7, 8, 9], b (4): [0, 4, 11] +idx: 3, delta: 2, matching: false, a (5): [1, 2, 5, 6, 7, 8, 9, 10, 13, 14], b (2): [0, 2, 5, 6, 7, 8, 9, 10, 13] +idx: 3, delta: 3, matching: false, a (6): [3, 5, 10, 12], b (1): [2, 6, 7, 8, 9, 13] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 2, 4, 7, 8, 11, 13, 14], b (0): [0, 1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 4, 11], b (5): [1, 2, 5, 6, 7, 8, 9, 10, 13, 14] +idx: 4, delta: 2, matching: false, a (6): [3, 5, 10, 12], b (3): [0, 6, 7, 8, 9] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 2, 4, 7, 8, 11, 13, 14], b (2): [0, 2, 5, 6, 7, 8, 9, 10, 13] +idx: 4, delta: 4, matching: false, a (8): [0, 2, 3, 6, 9, 12, 13], b (1): [2, 6, 7, 8, 9, 13] +idx: 4, delta: 5, matching: false, a (9): [2, 4, 11, 13], b (0): [0, 1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 2, 5, 6, 7, 8, 9, 10, 13, 14], b (6): [3, 5, 10, 12] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 2, 4, 7, 8, 11, 13, 14], b (4): [0, 4, 11] +idx: 5, delta: 3, matching: false, a (8): [0, 2, 3, 6, 9, 12, 13], b (3): [0, 6, 7, 8, 9] +idx: 5, delta: 4, matching: false, a (9): [2, 4, 11, 13], b (2): [0, 2, 5, 6, 7, 8, 9, 10, 13] +idx: 5, delta: 5, matching: false, a (10): [0, 2, 3, 12, 13], b (1): [2, 6, 7, 8, 9, 13] +idx: 5, delta: 6, matching: false, a (11): [0, 3, 5, 10, 12], b (0): [0, 1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [3, 5, 10, 12], b (7): [0, 1, 2, 4, 7, 8, 11, 13, 14] +idx: 6, delta: 2, matching: false, a (8): [0, 2, 3, 6, 9, 12, 13], b (5): [1, 2, 5, 6, 7, 8, 9, 10, 13, 14] +idx: 6, delta: 3, matching: false, a (9): [2, 4, 11, 13], b (4): [0, 4, 11] +idx: 6, delta: 4, matching: false, a (10): [0, 2, 3, 12, 13], b (3): [0, 6, 7, 8, 9] +idx: 6, delta: 5, matching: false, a (11): [0, 3, 5, 10, 12], b (2): [0, 2, 5, 6, 7, 8, 9, 10, 13] +idx: 6, delta: 6, matching: false, a (12): [3, 5, 10, 12], b (1): [2, 6, 7, 8, 9, 13] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 2, 4, 7, 8, 11, 13, 14], b (8): [0, 2, 3, 6, 9, 12, 13] +idx: 7, delta: 2, matching: false, a (9): [2, 4, 11, 13], b (6): [3, 5, 10, 12] +idx: 7, delta: 3, matching: false, a (10): [0, 2, 3, 12, 13], b (5): [1, 2, 5, 6, 7, 8, 9, 10, 13, 14] +idx: 7, delta: 4, matching: false, a (11): [0, 3, 5, 10, 12], b (4): [0, 4, 11] +idx: 7, delta: 5, matching: false, a (12): [3, 5, 10, 12], b (3): [0, 6, 7, 8, 9] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 2, 3, 6, 9, 12, 13], b (9): [2, 4, 11, 13] +idx: 8, delta: 2, matching: false, a (10): [0, 2, 3, 12, 13], b (7): [0, 1, 2, 4, 7, 8, 11, 13, 14] +idx: 8, delta: 3, matching: false, a (11): [0, 3, 5, 10, 12], b (6): [3, 5, 10, 12] +idx: 8, delta: 3 --- found smudge! +idx: 8, delta: 4, matching: false, a (12): [3, 5, 10, 12], b (5): [1, 2, 5, 6, 7, 8, 9, 10, 13, 14] +idx: 8, delta: 4 --- found smudge twice! +idx: 9, delta: 0, matching: false, a (9): [2, 4, 11, 13], b (10): [0, 2, 3, 12, 13] +idx: 9, delta: 2, matching: false, a (11): [0, 3, 5, 10, 12], b (8): [0, 2, 3, 6, 9, 12, 13] +idx: 9, delta: 3, matching: false, a (12): [3, 5, 10, 12], b (7): [0, 1, 2, 4, 7, 8, 11, 13, 14] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 2, 3, 12, 13], b (11): [0, 3, 5, 10, 12] +idx: 10, delta: 2, matching: false, a (12): [3, 5, 10, 12], b (9): [2, 4, 11, 13] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [0, 3, 5, 10, 12], b (12): [3, 5, 10, 12] +idx: 11, delta: 0 --- found smudge! +idx: 11 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [0, 2, 3, 4, 7, 8, 10, 11], b (1): [0, 5, 7] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 5, 7], b (2): [0, 1, 2, 5, 7, 8, 9, 10] +idx: 1, delta: 2, matching: false, a (3): [0, 6, 8, 10, 11, 12], b (0): [0, 2, 3, 4, 7, 8, 10, 11] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 2, 5, 7, 8, 9, 10], b (3): [0, 6, 8, 10, 11, 12] +idx: 2, delta: 2, matching: false, a (4): [0, 4, 7, 9], b (1): [0, 5, 7] +idx: 2, delta: 3, matching: false, a (5): [0, 2, 5, 6, 11, 12], b (0): [0, 2, 3, 4, 7, 8, 10, 11] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 6, 8, 10, 11, 12], b (4): [0, 4, 7, 9] +idx: 3, delta: 2, matching: false, a (5): [0, 2, 5, 6, 11, 12], b (2): [0, 1, 2, 5, 7, 8, 9, 10] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 2, 3, 5, 8], b (1): [0, 5, 7] +idx: 3, delta: 4, matching: false, a (7): [1, 2, 3, 5, 7], b (0): [0, 2, 3, 4, 7, 8, 10, 11] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 4, 7, 9], b (5): [0, 2, 5, 6, 11, 12] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 2, 3, 5, 8], b (3): [0, 6, 8, 10, 11, 12] +idx: 4, delta: 3, matching: false, a (7): [1, 2, 3, 5, 7], b (2): [0, 1, 2, 5, 7, 8, 9, 10] +idx: 4, delta: 4, matching: false, a (8): [1, 2, 3, 5, 7], b (1): [0, 5, 7] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 2, 3, 5, 8], b (0): [0, 2, 3, 4, 7, 8, 10, 11] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 2, 5, 6, 11, 12], b (6): [0, 1, 2, 3, 5, 8] +idx: 5, delta: 2, matching: false, a (7): [1, 2, 3, 5, 7], b (4): [0, 4, 7, 9] +idx: 5, delta: 3, matching: false, a (8): [1, 2, 3, 5, 7], b (3): [0, 6, 8, 10, 11, 12] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 2, 3, 5, 8], b (2): [0, 1, 2, 5, 7, 8, 9, 10] +idx: 5, delta: 5, matching: false, a (10): [0, 2, 5, 6, 11, 12], b (1): [0, 5, 7] +idx: 5, delta: 6, matching: false, a (11): [0, 4, 7, 9], b (0): [0, 2, 3, 4, 7, 8, 10, 11] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 1, 2, 3, 5, 8], b (7): [1, 2, 3, 5, 7] +idx: 6, delta: 2, matching: false, a (8): [1, 2, 3, 5, 7], b (5): [0, 2, 5, 6, 11, 12] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 2, 3, 5, 8], b (4): [0, 4, 7, 9] +idx: 6, delta: 4, matching: false, a (10): [0, 2, 5, 6, 11, 12], b (3): [0, 6, 8, 10, 11, 12] +idx: 6, delta: 5, matching: false, a (11): [0, 4, 7, 9], b (2): [0, 1, 2, 5, 7, 8, 9, 10] +idx: 6, delta: 6, matching: false, a (12): [0, 6, 8, 10, 11, 12], b (1): [0, 5, 7] +idx: 6, delta: 7, matching: false, a (13): [0, 1, 2, 5, 7, 8, 9, 10], b (0): [0, 2, 3, 4, 7, 8, 10, 11] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: true, a (7): [1, 2, 3, 5, 7], b (8): [1, 2, 3, 5, 7] +idx: 7, delta: 2, matching: true, a (9): [0, 1, 2, 3, 5, 8], b (6): [0, 1, 2, 3, 5, 8] +idx: 7, delta: 3, matching: true, a (10): [0, 2, 5, 6, 11, 12], b (5): [0, 2, 5, 6, 11, 12] +idx: 7, delta: 4, matching: true, a (11): [0, 4, 7, 9], b (4): [0, 4, 7, 9] +idx: 7, delta: 5, matching: true, a (12): [0, 6, 8, 10, 11, 12], b (3): [0, 6, 8, 10, 11, 12] +idx: 7, delta: 6, matching: true, a (13): [0, 1, 2, 5, 7, 8, 9, 10], b (2): [0, 1, 2, 5, 7, 8, 9, 10] +idx: 7, delta: 7, matching: true, a (14): [0, 5, 7], b (1): [0, 5, 7] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [1, 2, 3, 5, 7], b (9): [0, 1, 2, 3, 5, 8] +idx: 8, delta: 2, matching: false, a (10): [0, 2, 5, 6, 11, 12], b (7): [1, 2, 3, 5, 7] +idx: 8, delta: 3, matching: false, a (11): [0, 4, 7, 9], b (6): [0, 1, 2, 3, 5, 8] +idx: 8, delta: 4, matching: false, a (12): [0, 6, 8, 10, 11, 12], b (5): [0, 2, 5, 6, 11, 12] +idx: 8, delta: 5, matching: false, a (13): [0, 1, 2, 5, 7, 8, 9, 10], b (4): [0, 4, 7, 9] +idx: 8, delta: 6, matching: false, a (14): [0, 5, 7], b (3): [0, 6, 8, 10, 11, 12] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 1, 2, 3, 5, 8], b (10): [0, 2, 5, 6, 11, 12] +idx: 9, delta: 2, matching: false, a (11): [0, 4, 7, 9], b (8): [1, 2, 3, 5, 7] +idx: 9, delta: 3, matching: false, a (12): [0, 6, 8, 10, 11, 12], b (7): [1, 2, 3, 5, 7] +idx: 9, delta: 4, matching: false, a (13): [0, 1, 2, 5, 7, 8, 9, 10], b (6): [0, 1, 2, 3, 5, 8] +idx: 9, delta: 5, matching: false, a (14): [0, 5, 7], b (5): [0, 2, 5, 6, 11, 12] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 2, 5, 6, 11, 12], b (11): [0, 4, 7, 9] +idx: 10, delta: 2, matching: false, a (12): [0, 6, 8, 10, 11, 12], b (9): [0, 1, 2, 3, 5, 8] +idx: 10, delta: 3, matching: false, a (13): [0, 1, 2, 5, 7, 8, 9, 10], b (8): [1, 2, 3, 5, 7] +idx: 10, delta: 4, matching: false, a (14): [0, 5, 7], b (7): [1, 2, 3, 5, 7] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [0, 4, 7, 9], b (12): [0, 6, 8, 10, 11, 12] +idx: 11, delta: 2, matching: false, a (13): [0, 1, 2, 5, 7, 8, 9, 10], b (10): [0, 2, 5, 6, 11, 12] +idx: 11, delta: 3, matching: false, a (14): [0, 5, 7], b (9): [0, 1, 2, 3, 5, 8] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [0, 6, 8, 10, 11, 12], b (13): [0, 1, 2, 5, 7, 8, 9, 10] +idx: 12, delta: 2, matching: false, a (14): [0, 5, 7], b (11): [0, 4, 7, 9] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: false, a (13): [0, 1, 2, 5, 7, 8, 9, 10], b (14): [0, 5, 7] +idx: 13 --- EXITING WITH false +idx: 14 --- EXITING WITH false +#.###..##.##. +#....#.#..... +###..#.####.. +#.....#.#.### +#...#..#.#... +#.#..##....## +####.#..#.... +.###.#.#..... +.###.#.#..... +####.#..#.... +#.#..##....## +#...#..#.#... +#.....#.#.### +###..#.####.. +#....#.#..... +12 (vert: 12, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [2, 3, 4, 6, 7, 9, 10], b (1): [4, 6, 7, 9] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [4, 6, 7, 9], b (2): [0, 1, 2, 4, 9] +idx: 1, delta: 2, matching: false, a (3): [1, 3, 5, 6, 7, 8, 10], b (0): [2, 3, 4, 6, 7, 9, 10] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 2, 4, 9], b (3): [1, 3, 5, 6, 7, 8, 10] +idx: 2, delta: 2, matching: false, a (4): [2, 5, 8], b (1): [4, 6, 7, 9] +idx: 2, delta: 3, matching: false, a (5): [2, 5, 6, 7, 8], b (0): [2, 3, 4, 6, 7, 9, 10] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 3, 5, 6, 7, 8, 10], b (4): [2, 5, 8] +idx: 3, delta: 2, matching: false, a (5): [2, 5, 6, 7, 8], b (2): [0, 1, 2, 4, 9] +idx: 3, delta: 3, matching: false, a (6): [3, 10], b (1): [4, 6, 7, 9] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 2, 5, 8], b (0): [2, 3, 4, 6, 7, 9, 10] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [2, 5, 8], b (5): [2, 5, 6, 7, 8] +idx: 4, delta: 2, matching: false, a (6): [3, 10], b (3): [1, 3, 5, 6, 7, 8, 10] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 2, 5, 8], b (2): [0, 1, 2, 4, 9] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 4, 5, 6, 7, 8, 9], b (1): [4, 6, 7, 9] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10], b (0): [2, 3, 4, 6, 7, 9, 10] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [2, 5, 6, 7, 8], b (6): [3, 10] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 2, 5, 8], b (4): [2, 5, 8] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 4, 5, 6, 7, 8, 9], b (3): [1, 3, 5, 6, 7, 8, 10] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10], b (2): [0, 1, 2, 4, 9] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 2, 5, 8], b (1): [4, 6, 7, 9] +idx: 5, delta: 6, matching: false, a (11): [3, 10], b (0): [2, 3, 4, 6, 7, 9, 10] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [3, 10], b (7): [0, 1, 2, 5, 8] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 4, 5, 6, 7, 8, 9], b (5): [2, 5, 6, 7, 8] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10], b (4): [2, 5, 8] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 2, 5, 8], b (3): [1, 3, 5, 6, 7, 8, 10] +idx: 6, delta: 5, matching: false, a (11): [3, 10], b (2): [0, 1, 2, 4, 9] +idx: 6, delta: 6, matching: false, a (12): [2, 5, 6, 7, 8], b (1): [4, 6, 7, 9] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 2, 5, 8], b (8): [0, 1, 4, 5, 6, 7, 8, 9] +idx: 7, delta: 2, matching: false, a (9): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10], b (6): [3, 10] +idx: 7, delta: 3, matching: false, a (10): [0, 1, 2, 5, 8], b (5): [2, 5, 6, 7, 8] +idx: 7, delta: 4, matching: false, a (11): [3, 10], b (4): [2, 5, 8] +idx: 7, delta: 5, matching: false, a (12): [2, 5, 6, 7, 8], b (3): [1, 3, 5, 6, 7, 8, 10] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 1, 4, 5, 6, 7, 8, 9], b (9): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10] +idx: 8, delta: 2, matching: true, a (10): [0, 1, 2, 5, 8], b (7): [0, 1, 2, 5, 8] +idx: 8, delta: 3, matching: true, a (11): [3, 10], b (6): [3, 10] +idx: 8, delta: 4, matching: true, a (12): [2, 5, 6, 7, 8], b (5): [2, 5, 6, 7, 8] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10], b (10): [0, 1, 2, 5, 8] +idx: 9, delta: 2, matching: false, a (11): [3, 10], b (8): [0, 1, 4, 5, 6, 7, 8, 9] +idx: 9, delta: 3, matching: false, a (12): [2, 5, 6, 7, 8], b (7): [0, 1, 2, 5, 8] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 1, 2, 5, 8], b (11): [3, 10] +idx: 10, delta: 2, matching: false, a (12): [2, 5, 6, 7, 8], b (9): [0, 1, 3, 4, 5, 6, 7, 8, 9, 10] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [3, 10], b (12): [2, 5, 6, 7, 8] +idx: 11 --- EXITING WITH false +idx: 12 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [2, 7, 8, 9, 10], b (1): [2, 3, 7, 8, 9, 10] +idx: 0, delta: 0 --- found smudge! +idx: 0 --- EXITING WITH true +..#....####.. +..##...####.. +#.#.##.#..#.# +#..#..#..#.#. +###.....##... +...###.####.# +##.#.#..##..# +##.#.#..##..# +...###.####.# +###.....##... +#..#..#..#.#. +100 (vert: 0, horiz: 1) + +idx: 0, delta: 0, matching: false, a (0): [1, 3, 5, 9, 10, 11, 13], b (1): [0, 2, 5, 9, 10, 11, 12, 14, 15] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 2, 5, 9, 10, 11, 12, 14, 15], b (2): [0, 2, 3, 5, 9, 10, 11, 12, 14, 15] +idx: 1, delta: 0 --- found smudge! +idx: 1, delta: 2, matching: true, a (3): [1, 3, 5, 9, 10, 11, 13], b (0): [1, 3, 5, 9, 10, 11, 13] +idx: 1 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [1, 2, 5, 7, 10, 13], b (1): [0, 3, 6, 7, 9, 14] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 3, 6, 7, 9, 14], b (2): [1, 2, 6, 9, 11, 12, 14] +idx: 1, delta: 2, matching: false, a (3): [0, 2, 3, 4, 5, 7, 9, 10, 13, 14], b (0): [1, 2, 5, 7, 10, 13] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 2, 6, 9, 11, 12, 14], b (3): [0, 2, 3, 4, 5, 7, 9, 10, 13, 14] +idx: 2, delta: 2, matching: false, a (4): [4, 6, 9, 11, 12, 14], b (1): [0, 3, 6, 7, 9, 14] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 2, 3, 4, 5, 6, 8], b (0): [1, 2, 5, 7, 10, 13] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 2, 3, 4, 5, 7, 9, 10, 13, 14], b (4): [4, 6, 9, 11, 12, 14] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 2, 3, 4, 5, 6, 8], b (2): [1, 2, 6, 9, 11, 12, 14] +idx: 3, delta: 3, matching: false, a (6): [4, 8, 10, 11, 12, 13], b (1): [0, 3, 6, 7, 9, 14] +idx: 3, delta: 4, matching: false, a (7): [4, 5, 7], b (0): [1, 2, 5, 7, 10, 13] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [4, 6, 9, 11, 12, 14], b (5): [0, 1, 2, 3, 4, 5, 6, 8] +idx: 4, delta: 2, matching: false, a (6): [4, 8, 10, 11, 12, 13], b (3): [0, 2, 3, 4, 5, 7, 9, 10, 13, 14] +idx: 4, delta: 3, matching: false, a (7): [4, 5, 7], b (2): [1, 2, 6, 9, 11, 12, 14] +idx: 4, delta: 4, matching: false, a (8): [7, 8, 10, 13], b (1): [0, 3, 6, 7, 9, 14] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 2, 3, 5, 10, 13], b (0): [1, 2, 5, 7, 10, 13] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 2, 3, 4, 5, 6, 8], b (6): [4, 8, 10, 11, 12, 13] +idx: 5, delta: 2, matching: false, a (7): [4, 5, 7], b (4): [4, 6, 9, 11, 12, 14] +idx: 5, delta: 3, matching: false, a (8): [7, 8, 10, 13], b (3): [0, 2, 3, 4, 5, 7, 9, 10, 13, 14] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 2, 3, 5, 10, 13], b (2): [1, 2, 6, 9, 11, 12, 14] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 2, 3, 4, 7, 9, 10, 11, 12, 13, 14], b (1): [0, 3, 6, 7, 9, 14] +idx: 5, delta: 6, matching: false, a (11): [0, 1, 2, 3, 5, 8], b (0): [1, 2, 5, 7, 10, 13] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [4, 8, 10, 11, 12, 13], b (7): [4, 5, 7] +idx: 6, delta: 2, matching: false, a (8): [7, 8, 10, 13], b (5): [0, 1, 2, 3, 4, 5, 6, 8] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 2, 3, 5, 10, 13], b (4): [4, 6, 9, 11, 12, 14] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 2, 3, 4, 7, 9, 10, 11, 12, 13, 14], b (3): [0, 2, 3, 4, 5, 7, 9, 10, 13, 14] +idx: 6, delta: 5, matching: false, a (11): [0, 1, 2, 3, 5, 8], b (2): [1, 2, 6, 9, 11, 12, 14] +idx: 6, delta: 6, matching: false, a (12): [1, 2, 4, 7, 10, 13], b (1): [0, 3, 6, 7, 9, 14] +idx: 6, delta: 7, matching: false, a (13): [0, 3, 4, 5, 6, 7, 10, 11, 12, 13], b (0): [1, 2, 5, 7, 10, 13] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [4, 5, 7], b (8): [7, 8, 10, 13] +idx: 7, delta: 2, matching: false, a (9): [0, 1, 2, 3, 5, 10, 13], b (6): [4, 8, 10, 11, 12, 13] +idx: 7, delta: 3, matching: false, a (10): [0, 1, 2, 3, 4, 7, 9, 10, 11, 12, 13, 14], b (5): [0, 1, 2, 3, 4, 5, 6, 8] +idx: 7, delta: 4, matching: false, a (11): [0, 1, 2, 3, 5, 8], b (4): [4, 6, 9, 11, 12, 14] +idx: 7, delta: 5, matching: false, a (12): [1, 2, 4, 7, 10, 13], b (3): [0, 2, 3, 4, 5, 7, 9, 10, 13, 14] +idx: 7, delta: 6, matching: false, a (13): [0, 3, 4, 5, 6, 7, 10, 11, 12, 13], b (2): [1, 2, 6, 9, 11, 12, 14] +idx: 7, delta: 7, matching: false, a (14): [1, 2, 8], b (1): [0, 3, 6, 7, 9, 14] +idx: 7, delta: 8, matching: false, a (15): [1, 2, 4, 5, 6, 10, 13], b (0): [1, 2, 5, 7, 10, 13] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [7, 8, 10, 13], b (9): [0, 1, 2, 3, 5, 10, 13] +idx: 8, delta: 2, matching: false, a (10): [0, 1, 2, 3, 4, 7, 9, 10, 11, 12, 13, 14], b (7): [4, 5, 7] +idx: 8, delta: 3, matching: false, a (11): [0, 1, 2, 3, 5, 8], b (6): [4, 8, 10, 11, 12, 13] +idx: 8, delta: 4, matching: false, a (12): [1, 2, 4, 7, 10, 13], b (5): [0, 1, 2, 3, 4, 5, 6, 8] +idx: 8, delta: 5, matching: false, a (13): [0, 3, 4, 5, 6, 7, 10, 11, 12, 13], b (4): [4, 6, 9, 11, 12, 14] +idx: 8, delta: 6, matching: false, a (14): [1, 2, 8], b (3): [0, 2, 3, 4, 5, 7, 9, 10, 13, 14] +idx: 8, delta: 7, matching: false, a (15): [1, 2, 4, 5, 6, 10, 13], b (2): [1, 2, 6, 9, 11, 12, 14] +idx: 8, delta: 8, matching: false, a (16): [4, 5, 7, 11, 12], b (1): [0, 3, 6, 7, 9, 14] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 1, 2, 3, 5, 10, 13], b (10): [0, 1, 2, 3, 4, 7, 9, 10, 11, 12, 13, 14] +idx: 9, delta: 2, matching: false, a (11): [0, 1, 2, 3, 5, 8], b (8): [7, 8, 10, 13] +idx: 9, delta: 3, matching: false, a (12): [1, 2, 4, 7, 10, 13], b (7): [4, 5, 7] +idx: 9, delta: 4, matching: false, a (13): [0, 3, 4, 5, 6, 7, 10, 11, 12, 13], b (6): [4, 8, 10, 11, 12, 13] +idx: 9, delta: 5, matching: false, a (14): [1, 2, 8], b (5): [0, 1, 2, 3, 4, 5, 6, 8] +idx: 9, delta: 6, matching: false, a (15): [1, 2, 4, 5, 6, 10, 13], b (4): [4, 6, 9, 11, 12, 14] +idx: 9, delta: 7, matching: false, a (16): [4, 5, 7, 11, 12], b (3): [0, 2, 3, 4, 5, 7, 9, 10, 13, 14] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 1, 2, 3, 4, 7, 9, 10, 11, 12, 13, 14], b (11): [0, 1, 2, 3, 5, 8] +idx: 10, delta: 2, matching: false, a (12): [1, 2, 4, 7, 10, 13], b (9): [0, 1, 2, 3, 5, 10, 13] +idx: 10, delta: 3, matching: false, a (13): [0, 3, 4, 5, 6, 7, 10, 11, 12, 13], b (8): [7, 8, 10, 13] +idx: 10, delta: 4, matching: false, a (14): [1, 2, 8], b (7): [4, 5, 7] +idx: 10, delta: 5, matching: false, a (15): [1, 2, 4, 5, 6, 10, 13], b (6): [4, 8, 10, 11, 12, 13] +idx: 10, delta: 6, matching: false, a (16): [4, 5, 7, 11, 12], b (5): [0, 1, 2, 3, 4, 5, 6, 8] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [0, 1, 2, 3, 5, 8], b (12): [1, 2, 4, 7, 10, 13] +idx: 11, delta: 2, matching: false, a (13): [0, 3, 4, 5, 6, 7, 10, 11, 12, 13], b (10): [0, 1, 2, 3, 4, 7, 9, 10, 11, 12, 13, 14] +idx: 11, delta: 3, matching: false, a (14): [1, 2, 8], b (9): [0, 1, 2, 3, 5, 10, 13] +idx: 11, delta: 4, matching: false, a (15): [1, 2, 4, 5, 6, 10, 13], b (8): [7, 8, 10, 13] +idx: 11, delta: 5, matching: false, a (16): [4, 5, 7, 11, 12], b (7): [4, 5, 7] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [1, 2, 4, 7, 10, 13], b (13): [0, 3, 4, 5, 6, 7, 10, 11, 12, 13] +idx: 12, delta: 2, matching: false, a (14): [1, 2, 8], b (11): [0, 1, 2, 3, 5, 8] +idx: 12, delta: 3, matching: false, a (15): [1, 2, 4, 5, 6, 10, 13], b (10): [0, 1, 2, 3, 4, 7, 9, 10, 11, 12, 13, 14] +idx: 12, delta: 4, matching: false, a (16): [4, 5, 7, 11, 12], b (9): [0, 1, 2, 3, 5, 10, 13] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: false, a (13): [0, 3, 4, 5, 6, 7, 10, 11, 12, 13], b (14): [1, 2, 8] +idx: 13, delta: 2, matching: false, a (15): [1, 2, 4, 5, 6, 10, 13], b (12): [1, 2, 4, 7, 10, 13] +idx: 13, delta: 3, matching: false, a (16): [4, 5, 7, 11, 12], b (11): [0, 1, 2, 3, 5, 8] +idx: 13 --- EXITING WITH false +idx: 14, delta: 0, matching: false, a (14): [1, 2, 8], b (15): [1, 2, 4, 5, 6, 10, 13] +idx: 14, delta: 2, matching: false, a (16): [4, 5, 7, 11, 12], b (13): [0, 3, 4, 5, 6, 7, 10, 11, 12, 13] +idx: 14 --- EXITING WITH false +idx: 15, delta: 0, matching: false, a (15): [1, 2, 4, 5, 6, 10, 13], b (16): [4, 5, 7, 11, 12] +idx: 15 --- EXITING WITH false +idx: 16 --- EXITING WITH false +.##..#.#..#..#. +#..#..##.#....# +.##...#..#.##.# +#.####.#.##..## +....#.#..#.##.# +#######.#...... +....#...#.####. +....##.#....... +.......##.#..#. +####.#....#..#. +#####..#.###### +####.#..#...... +.##.#..#..#..#. +#..#####..####. +.##.....#...... +.##.###...#..#. +....##.#...##.. +2 (vert: 2, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [0, 4, 7, 8, 11, 12, 15], b (1): [0, 1, 3, 4, 5, 6, 8, 9, 10, 11, 13, 14, 16] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 3, 4, 5, 6, 8, 9, 10, 11, 13, 14, 16], b (2): [1, 2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] +idx: 1, delta: 2, matching: false, a (3): [0, 2, 3, 4, 6, 13, 15, 16], b (0): [0, 4, 7, 8, 11, 12, 15] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], b (3): [0, 2, 3, 4, 6, 13, 15, 16] +idx: 2, delta: 2, matching: false, a (4): [3, 6, 7, 12, 13, 16], b (1): [0, 1, 3, 4, 5, 6, 8, 9, 10, 11, 13, 14, 16] +idx: 2, delta: 3, matching: false, a (5): [3, 6, 7, 12, 13, 16], b (0): [0, 4, 7, 8, 11, 12, 15] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 2, 3, 4, 6, 13, 15, 16], b (4): [3, 6, 7, 12, 13, 16] +idx: 3, delta: 2, matching: false, a (5): [3, 6, 7, 12, 13, 16], b (2): [1, 2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] +idx: 3, delta: 3, matching: false, a (6): [0, 2, 3, 4, 6, 13, 15, 16], b (1): [0, 1, 3, 4, 5, 6, 8, 9, 10, 11, 13, 14, 16] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: true, a (4): [3, 6, 7, 12, 13, 16], b (5): [3, 6, 7, 12, 13, 16] +idx: 4, delta: 2, matching: true, a (6): [0, 2, 3, 4, 6, 13, 15, 16], b (3): [0, 2, 3, 4, 6, 13, 15, 16] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [3, 6, 7, 12, 13, 16], b (6): [0, 2, 3, 4, 6, 13, 15, 16] +idx: 5 --- EXITING WITH false +idx: 6 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [0, 1, 3, 6], b (1): [1, 2] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 2], b (2): [2, 3, 6] +idx: 1, delta: 2, matching: false, a (3): [1, 3, 4, 5, 6], b (0): [0, 1, 3, 6] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [2, 3, 6], b (3): [1, 3, 4, 5, 6] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 3, 6], b (1): [1, 2] +idx: 2, delta: 3, matching: false, a (5): [1, 2], b (0): [0, 1, 3, 6] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 3, 4, 5, 6], b (4): [0, 1, 3, 6] +idx: 3, delta: 2, matching: false, a (5): [1, 2], b (2): [2, 3, 6] +idx: 3, delta: 3, matching: false, a (6): [1, 2, 3, 4, 5, 6], b (1): [1, 2] +idx: 3, delta: 4, matching: false, a (7): [0, 2, 4, 5], b (0): [0, 1, 3, 6] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 3, 6], b (5): [1, 2] +idx: 4, delta: 2, matching: false, a (6): [1, 2, 3, 4, 5, 6], b (3): [1, 3, 4, 5, 6] +idx: 4, delta: 2 --- found smudge! +idx: 4, delta: 3, matching: false, a (7): [0, 2, 4, 5], b (2): [2, 3, 6] +idx: 4, delta: 3 --- found smudge twice! +idx: 5, delta: 0, matching: false, a (5): [1, 2], b (6): [1, 2, 3, 4, 5, 6] +idx: 5, delta: 2, matching: false, a (7): [0, 2, 4, 5], b (4): [0, 1, 3, 6] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 2], b (3): [1, 3, 4, 5, 6] +idx: 5, delta: 4, matching: false, a (9): [1, 2], b (2): [2, 3, 6] +idx: 5, delta: 5, matching: true, a (10): [1, 2], b (1): [1, 2] +idx: 5, delta: 6, matching: false, a (11): [0, 1, 2], b (0): [0, 1, 3, 6] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [1, 2, 3, 4, 5, 6], b (7): [0, 2, 4, 5] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 2], b (5): [1, 2] +idx: 6, delta: 2 --- found smudge! +idx: 6, delta: 3, matching: false, a (9): [1, 2], b (4): [0, 1, 3, 6] +idx: 6, delta: 3 --- found smudge twice! +idx: 7, delta: 0, matching: false, a (7): [0, 2, 4, 5], b (8): [0, 1, 2] +idx: 7, delta: 2, matching: false, a (9): [1, 2], b (6): [1, 2, 3, 4, 5, 6] +idx: 7, delta: 3, matching: true, a (10): [1, 2], b (5): [1, 2] +idx: 7, delta: 4, matching: false, a (11): [0, 1, 2], b (4): [0, 1, 3, 6] +idx: 7, delta: 5, matching: false, a (12): [0, 2, 4, 5], b (3): [1, 3, 4, 5, 6] +idx: 7, delta: 6, matching: false, a (13): [1, 2, 3, 4, 5, 6], b (2): [2, 3, 6] +idx: 7, delta: 7, matching: true, a (14): [1, 2], b (1): [1, 2] +idx: 7, delta: 8, matching: false, a (15): [0, 3, 6], b (0): [0, 1, 3, 6] +idx: 7, delta: 8 --- found smudge! +idx: 7 --- EXITING WITH true +##.#..# +.##.... +..##..# +.#.#### +##.#..# +.##.... +.###### +#.#.##. +###.... +.##.... +.##.... +###.... +#.#.##. +.###### +.##.... +#..#..# +.#.#### +800 (vert: 0, horiz: 8) + +idx: 0, delta: 0, matching: false, a (0): [0, 2, 3, 6], b (1): [0, 4, 5, 6] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 4, 5, 6], b (2): [1, 2, 4] +idx: 1, delta: 2, matching: false, a (3): [5, 8], b (0): [0, 2, 3, 6] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 2, 4], b (3): [5, 8] +idx: 2, delta: 2, matching: false, a (4): [2, 5, 6, 8], b (1): [0, 4, 5, 6] +idx: 2, delta: 3, matching: false, a (5): [2, 5, 6, 8], b (0): [0, 2, 3, 6] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [5, 8], b (4): [2, 5, 6, 8] +idx: 3, delta: 2, matching: false, a (5): [2, 5, 6, 8], b (2): [1, 2, 4] +idx: 3, delta: 3, matching: false, a (6): [5, 8], b (1): [0, 4, 5, 6] +idx: 3, delta: 4, matching: false, a (7): [1, 2, 4], b (0): [0, 2, 3, 6] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: true, a (4): [2, 5, 6, 8], b (5): [2, 5, 6, 8] +idx: 4, delta: 2, matching: true, a (6): [5, 8], b (3): [5, 8] +idx: 4, delta: 3, matching: true, a (7): [1, 2, 4], b (2): [1, 2, 4] +idx: 4, delta: 4, matching: true, a (8): [0, 4, 5, 6], b (1): [0, 4, 5, 6] +idx: 4, delta: 5, matching: true, a (9): [0, 2, 3, 6], b (0): [0, 2, 3, 6] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [2, 5, 6, 8], b (6): [5, 8] +idx: 5, delta: 2, matching: false, a (7): [1, 2, 4], b (4): [2, 5, 6, 8] +idx: 5, delta: 3, matching: false, a (8): [0, 4, 5, 6], b (3): [5, 8] +idx: 5, delta: 4, matching: false, a (9): [0, 2, 3, 6], b (2): [1, 2, 4] +idx: 5, delta: 5, matching: false, a (10): [0, 3, 4, 7], b (1): [0, 4, 5, 6] +idx: 5, delta: 6, matching: false, a (11): [1, 3, 4, 5, 7, 8], b (0): [0, 2, 3, 6] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [5, 8], b (7): [1, 2, 4] +idx: 6, delta: 2, matching: false, a (8): [0, 4, 5, 6], b (5): [2, 5, 6, 8] +idx: 6, delta: 3, matching: false, a (9): [0, 2, 3, 6], b (4): [2, 5, 6, 8] +idx: 6, delta: 4, matching: false, a (10): [0, 3, 4, 7], b (3): [5, 8] +idx: 6, delta: 5, matching: false, a (11): [1, 3, 4, 5, 7, 8], b (2): [1, 2, 4] +idx: 6, delta: 6, matching: false, a (12): [1, 3, 4, 5, 7, 8], b (1): [0, 4, 5, 6] +idx: 6, delta: 7, matching: false, a (13): [0, 3, 4, 7], b (0): [0, 2, 3, 6] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [1, 2, 4], b (8): [0, 4, 5, 6] +idx: 7, delta: 2, matching: false, a (9): [0, 2, 3, 6], b (6): [5, 8] +idx: 7, delta: 3, matching: false, a (10): [0, 3, 4, 7], b (5): [2, 5, 6, 8] +idx: 7, delta: 4, matching: false, a (11): [1, 3, 4, 5, 7, 8], b (4): [2, 5, 6, 8] +idx: 7, delta: 5, matching: false, a (12): [1, 3, 4, 5, 7, 8], b (3): [5, 8] +idx: 7, delta: 6, matching: false, a (13): [0, 3, 4, 7], b (2): [1, 2, 4] +idx: 7, delta: 7, matching: false, a (14): [0, 2, 3, 6], b (1): [0, 4, 5, 6] +idx: 7, delta: 8, matching: false, a (15): [0, 4, 5, 6], b (0): [0, 2, 3, 6] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 4, 5, 6], b (9): [0, 2, 3, 6] +idx: 8, delta: 2, matching: false, a (10): [0, 3, 4, 7], b (7): [1, 2, 4] +idx: 8, delta: 3, matching: false, a (11): [1, 3, 4, 5, 7, 8], b (6): [5, 8] +idx: 8, delta: 4, matching: false, a (12): [1, 3, 4, 5, 7, 8], b (5): [2, 5, 6, 8] +idx: 8, delta: 5, matching: false, a (13): [0, 3, 4, 7], b (4): [2, 5, 6, 8] +idx: 8, delta: 6, matching: false, a (14): [0, 2, 3, 6], b (3): [5, 8] +idx: 8, delta: 7, matching: false, a (15): [0, 4, 5, 6], b (2): [1, 2, 4] +idx: 8, delta: 8, matching: false, a (16): [1, 2, 4, 6], b (1): [0, 4, 5, 6] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 2, 3, 6], b (10): [0, 3, 4, 7] +idx: 9, delta: 2, matching: false, a (11): [1, 3, 4, 5, 7, 8], b (8): [0, 4, 5, 6] +idx: 9, delta: 3, matching: false, a (12): [1, 3, 4, 5, 7, 8], b (7): [1, 2, 4] +idx: 9, delta: 4, matching: false, a (13): [0, 3, 4, 7], b (6): [5, 8] +idx: 9, delta: 5, matching: false, a (14): [0, 2, 3, 6], b (5): [2, 5, 6, 8] +idx: 9, delta: 6, matching: false, a (15): [0, 4, 5, 6], b (4): [2, 5, 6, 8] +idx: 9, delta: 7, matching: false, a (16): [1, 2, 4, 6], b (3): [5, 8] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 3, 4, 7], b (11): [1, 3, 4, 5, 7, 8] +idx: 10, delta: 2, matching: false, a (12): [1, 3, 4, 5, 7, 8], b (9): [0, 2, 3, 6] +idx: 10, delta: 3, matching: false, a (13): [0, 3, 4, 7], b (8): [0, 4, 5, 6] +idx: 10, delta: 4, matching: false, a (14): [0, 2, 3, 6], b (7): [1, 2, 4] +idx: 10, delta: 5, matching: false, a (15): [0, 4, 5, 6], b (6): [5, 8] +idx: 10, delta: 6, matching: false, a (16): [1, 2, 4, 6], b (5): [2, 5, 6, 8] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: true, a (11): [1, 3, 4, 5, 7, 8], b (12): [1, 3, 4, 5, 7, 8] +idx: 11, delta: 2, matching: true, a (13): [0, 3, 4, 7], b (10): [0, 3, 4, 7] +idx: 11, delta: 3, matching: true, a (14): [0, 2, 3, 6], b (9): [0, 2, 3, 6] +idx: 11, delta: 4, matching: true, a (15): [0, 4, 5, 6], b (8): [0, 4, 5, 6] +idx: 11, delta: 5, matching: false, a (16): [1, 2, 4, 6], b (7): [1, 2, 4] +idx: 11, delta: 5 --- found smudge! +idx: 11 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [0, 1, 8, 9, 10, 13, 14, 15], b (1): [2, 7, 11, 12, 16] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [2, 7, 11, 12, 16], b (2): [0, 2, 4, 5, 7, 9, 14, 16] +idx: 1, delta: 2, matching: false, a (3): [0, 9, 10, 11, 12, 13, 14], b (0): [0, 1, 8, 9, 10, 13, 14, 15] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 2, 4, 5, 7, 9, 14, 16], b (3): [0, 9, 10, 11, 12, 13, 14] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 7, 8, 10, 11, 12, 13, 15, 16], b (1): [2, 7, 11, 12, 16] +idx: 2, delta: 3, matching: false, a (5): [1, 3, 4, 5, 6, 8, 11, 12, 15], b (0): [0, 1, 8, 9, 10, 13, 14, 15] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 9, 10, 11, 12, 13, 14], b (4): [1, 2, 7, 8, 10, 11, 12, 13, 15, 16] +idx: 3, delta: 2, matching: false, a (5): [1, 3, 4, 5, 6, 8, 11, 12, 15], b (2): [0, 2, 4, 5, 7, 9, 14, 16] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 4, 5, 8, 9, 14, 15, 16], b (1): [2, 7, 11, 12, 16] +idx: 3, delta: 4, matching: false, a (7): [10, 11, 12, 13], b (0): [0, 1, 8, 9, 10, 13, 14, 15] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 2, 7, 8, 10, 11, 12, 13, 15, 16], b (5): [1, 3, 4, 5, 6, 8, 11, 12, 15] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 4, 5, 8, 9, 14, 15, 16], b (3): [0, 9, 10, 11, 12, 13, 14] +idx: 4, delta: 3, matching: false, a (7): [10, 11, 12, 13], b (2): [0, 2, 4, 5, 7, 9, 14, 16] +idx: 4, delta: 4, matching: false, a (8): [3, 4, 5, 6, 11, 12], b (1): [2, 7, 11, 12, 16] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 3, 4, 5, 6, 8, 11, 12, 15], b (6): [0, 1, 4, 5, 8, 9, 14, 15, 16] +idx: 5, delta: 2, matching: false, a (7): [10, 11, 12, 13], b (4): [1, 2, 7, 8, 10, 11, 12, 13, 15, 16] +idx: 5, delta: 3, matching: false, a (8): [3, 4, 5, 6, 11, 12], b (3): [0, 9, 10, 11, 12, 13, 14] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 1, 4, 5, 8, 9, 14, 15, 16], b (7): [10, 11, 12, 13] +idx: 6, delta: 2, matching: false, a (8): [3, 4, 5, 6, 11, 12], b (5): [1, 3, 4, 5, 6, 8, 11, 12, 15] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [10, 11, 12, 13], b (8): [3, 4, 5, 6, 11, 12] +idx: 7 --- EXITING WITH false +idx: 8 --- EXITING WITH false +##......###..###. +..#....#...##...# +#.#.##.#.#....#.# +#........######.. +.##....##.####.## +.#.####.#..##..#. +##..##..##....### +..........####... +...####....##.... +12 (vert: 12, horiz: 0) + +idx: 0, delta: 0, matching: true, a (0): [0, 1, 2, 3, 4, 7], b (1): [0, 1, 2, 3, 4, 7] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 2, 3, 4, 7], b (2): [1, 2, 4, 7, 8] +idx: 1, delta: 2, matching: false, a (3): [2, 3, 5, 6, 7, 8], b (0): [0, 1, 2, 3, 4, 7] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 2, 4, 7, 8], b (3): [2, 3, 5, 6, 7, 8] +idx: 2, delta: 2, matching: false, a (4): [2, 3, 4, 5], b (1): [0, 1, 2, 3, 4, 7] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 4, 7], b (0): [0, 1, 2, 3, 4, 7] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [2, 3, 5, 6, 7, 8], b (4): [2, 3, 4, 5] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 4, 7], b (2): [1, 2, 4, 7, 8] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 2, 4, 5, 6, 8], b (1): [0, 1, 2, 3, 4, 7] +idx: 3, delta: 4, matching: false, a (7): [2, 4, 6], b (0): [0, 1, 2, 3, 4, 7] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [2, 3, 4, 5], b (5): [0, 1, 4, 7] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 2, 4, 5, 6, 8], b (3): [2, 3, 5, 6, 7, 8] +idx: 4, delta: 3, matching: false, a (7): [2, 4, 6], b (2): [1, 2, 4, 7, 8] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 6, 7, 8], b (1): [0, 1, 2, 3, 4, 7] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 6, 7, 8], b (0): [0, 1, 2, 3, 4, 7] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 4, 7], b (6): [0, 1, 2, 4, 5, 6, 8] +idx: 5, delta: 2, matching: false, a (7): [2, 4, 6], b (4): [2, 3, 4, 5] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 6, 7, 8], b (3): [2, 3, 5, 6, 7, 8] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 6, 7, 8], b (2): [1, 2, 4, 7, 8] +idx: 5, delta: 5, matching: false, a (10): [2, 4, 6], b (1): [0, 1, 2, 3, 4, 7] +idx: 5, delta: 6, matching: false, a (11): [0, 1, 2, 4, 5, 6, 8], b (0): [0, 1, 2, 3, 4, 7] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 1, 2, 4, 5, 6, 8], b (7): [2, 4, 6] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 6, 7, 8], b (5): [0, 1, 4, 7] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 6, 7, 8], b (4): [2, 3, 4, 5] +idx: 6, delta: 4, matching: false, a (10): [2, 4, 6], b (3): [2, 3, 5, 6, 7, 8] +idx: 6, delta: 5, matching: false, a (11): [0, 1, 2, 4, 5, 6, 8], b (2): [1, 2, 4, 7, 8] +idx: 6, delta: 6, matching: false, a (12): [0, 1, 4, 7], b (1): [0, 1, 2, 3, 4, 7] +idx: 6, delta: 7, matching: false, a (13): [2, 3, 4, 5], b (0): [0, 1, 2, 3, 4, 7] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [2, 4, 6], b (8): [0, 1, 6, 7, 8] +idx: 7, delta: 2, matching: false, a (9): [0, 1, 6, 7, 8], b (6): [0, 1, 2, 4, 5, 6, 8] +idx: 7, delta: 3, matching: false, a (10): [2, 4, 6], b (5): [0, 1, 4, 7] +idx: 7, delta: 4, matching: false, a (11): [0, 1, 2, 4, 5, 6, 8], b (4): [2, 3, 4, 5] +idx: 7, delta: 5, matching: false, a (12): [0, 1, 4, 7], b (3): [2, 3, 5, 6, 7, 8] +idx: 7, delta: 6, matching: false, a (13): [2, 3, 4, 5], b (2): [1, 2, 4, 7, 8] +idx: 7, delta: 7, matching: false, a (14): [2, 3, 5, 6, 7, 8], b (1): [0, 1, 2, 3, 4, 7] +idx: 7, delta: 8, matching: false, a (15): [1, 2, 4, 7, 8], b (0): [0, 1, 2, 3, 4, 7] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: true, a (8): [0, 1, 6, 7, 8], b (9): [0, 1, 6, 7, 8] +idx: 8, delta: 2, matching: true, a (10): [2, 4, 6], b (7): [2, 4, 6] +idx: 8, delta: 3, matching: true, a (11): [0, 1, 2, 4, 5, 6, 8], b (6): [0, 1, 2, 4, 5, 6, 8] +idx: 8, delta: 4, matching: true, a (12): [0, 1, 4, 7], b (5): [0, 1, 4, 7] +idx: 8, delta: 5, matching: true, a (13): [2, 3, 4, 5], b (4): [2, 3, 4, 5] +idx: 8, delta: 6, matching: true, a (14): [2, 3, 5, 6, 7, 8], b (3): [2, 3, 5, 6, 7, 8] +idx: 8, delta: 7, matching: true, a (15): [1, 2, 4, 7, 8], b (2): [1, 2, 4, 7, 8] +idx: 8, delta: 8, matching: false, a (16): [0, 1, 2, 3, 4, 7, 8], b (1): [0, 1, 2, 3, 4, 7] +idx: 8, delta: 8 --- found smudge! +idx: 8 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [0, 1, 5, 6, 8, 9, 11, 12, 16], b (1): [0, 1, 2, 5, 6, 8, 9, 11, 12, 15, 16] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 2, 5, 6, 8, 9, 11, 12, 15, 16], b (2): [0, 1, 2, 3, 4, 6, 7, 10, 11, 13, 14, 15, 16] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 3, 4, 13, 14, 16], b (0): [0, 1, 5, 6, 8, 9, 11, 12, 16] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 2, 3, 4, 6, 7, 10, 11, 13, 14, 15, 16], b (3): [0, 1, 3, 4, 13, 14, 16] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 2, 4, 5, 6, 7, 10, 11, 12, 13, 15, 16], b (1): [0, 1, 2, 5, 6, 8, 9, 11, 12, 15, 16] +idx: 2, delta: 3, matching: false, a (5): [3, 4, 6, 11, 13, 14], b (0): [0, 1, 5, 6, 8, 9, 11, 12, 16] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 3, 4, 13, 14, 16], b (4): [0, 1, 2, 4, 5, 6, 7, 10, 11, 12, 13, 15, 16] +idx: 3, delta: 2, matching: false, a (5): [3, 4, 6, 11, 13, 14], b (2): [0, 1, 2, 3, 4, 6, 7, 10, 11, 13, 14, 15, 16] +idx: 3, delta: 3, matching: false, a (6): [3, 6, 7, 8, 9, 10, 11, 14], b (1): [0, 1, 2, 5, 6, 8, 9, 11, 12, 15, 16] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 2, 3, 5, 8, 9, 12, 14, 15, 16], b (0): [0, 1, 5, 6, 8, 9, 11, 12, 16] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 2, 4, 5, 6, 7, 10, 11, 12, 13, 15, 16], b (5): [3, 4, 6, 11, 13, 14] +idx: 4, delta: 2, matching: false, a (6): [3, 6, 7, 8, 9, 10, 11, 14], b (3): [0, 1, 3, 4, 13, 14, 16] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 2, 3, 5, 8, 9, 12, 14, 15, 16], b (2): [0, 1, 2, 3, 4, 6, 7, 10, 11, 13, 14, 15, 16] +idx: 4, delta: 4, matching: false, a (8): [2, 3, 6, 8, 9, 11, 14, 15, 16], b (1): [0, 1, 2, 5, 6, 8, 9, 11, 12, 15, 16] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [3, 4, 6, 11, 13, 14], b (6): [3, 6, 7, 8, 9, 10, 11, 14] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 2, 3, 5, 8, 9, 12, 14, 15, 16], b (4): [0, 1, 2, 4, 5, 6, 7, 10, 11, 12, 13, 15, 16] +idx: 5, delta: 3, matching: false, a (8): [2, 3, 6, 8, 9, 11, 14, 15, 16], b (3): [0, 1, 3, 4, 13, 14, 16] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [3, 6, 7, 8, 9, 10, 11, 14], b (7): [0, 1, 2, 3, 5, 8, 9, 12, 14, 15, 16] +idx: 6, delta: 2, matching: false, a (8): [2, 3, 6, 8, 9, 11, 14, 15, 16], b (5): [3, 4, 6, 11, 13, 14] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 2, 3, 5, 8, 9, 12, 14, 15, 16], b (8): [2, 3, 6, 8, 9, 11, 14, 15, 16] +idx: 7 --- EXITING WITH false +idx: 8 --- EXITING WITH false +##...##.##.##...# +###..##.##.##..## +#####.##..##.#### +##.##........##.# +###.####..####.## +...##.#....#.##.. +...#..######..#.. +####.#..##..#.### +..##..#.##.#..### +9 (vert: 9, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [3, 4, 5, 8, 9, 10], b (1): [1, 3, 5, 6, 7, 8, 10, 12, 15] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 3, 5, 6, 7, 8, 10, 12, 15], b (2): [0, 1, 4, 9, 12, 13, 14, 15] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 3, 4, 5, 8, 9, 10, 12, 13, 14, 15], b (0): [3, 4, 5, 8, 9, 10] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 4, 9, 12, 13, 14, 15], b (3): [0, 1, 3, 4, 5, 8, 9, 10, 12, 13, 14, 15] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 2, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16], b (1): [1, 3, 5, 6, 7, 8, 10, 12, 15] +idx: 2, delta: 3, matching: false, a (5): [1, 2, 5, 6, 7, 8, 11, 12, 15, 16], b (0): [3, 4, 5, 8, 9, 10] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 3, 4, 5, 8, 9, 10, 12, 13, 14, 15], b (4): [0, 1, 2, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16] +idx: 3, delta: 2, matching: false, a (5): [1, 2, 5, 6, 7, 8, 11, 12, 15, 16], b (2): [0, 1, 4, 9, 12, 13, 14, 15] +idx: 3, delta: 3, matching: false, a (6): [0, 2, 3, 4, 9, 10, 11, 13, 14, 16], b (1): [1, 3, 5, 6, 7, 8, 10, 12, 15] +idx: 3, delta: 4, matching: false, a (7): [0, 2, 3, 4, 5, 8, 9, 10, 11, 13, 14, 16], b (0): [3, 4, 5, 8, 9, 10] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 2, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16], b (5): [1, 2, 5, 6, 7, 8, 11, 12, 15, 16] +idx: 4, delta: 2, matching: false, a (6): [0, 2, 3, 4, 9, 10, 11, 13, 14, 16], b (3): [0, 1, 3, 4, 5, 8, 9, 10, 12, 13, 14, 15] +idx: 4, delta: 3, matching: false, a (7): [0, 2, 3, 4, 5, 8, 9, 10, 11, 13, 14, 16], b (2): [0, 1, 4, 9, 12, 13, 14, 15] +idx: 4, delta: 4, matching: false, a (8): [1, 2, 3, 10, 11, 12, 16], b (1): [1, 3, 5, 6, 7, 8, 10, 12, 15] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 2, 5, 6, 7, 8, 11, 12, 15, 16], b (6): [0, 2, 3, 4, 9, 10, 11, 13, 14, 16] +idx: 5, delta: 2, matching: false, a (7): [0, 2, 3, 4, 5, 8, 9, 10, 11, 13, 14, 16], b (4): [0, 1, 2, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16] +idx: 5, delta: 3, matching: false, a (8): [1, 2, 3, 10, 11, 12, 16], b (3): [0, 1, 3, 4, 5, 8, 9, 10, 12, 13, 14, 15] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 2, 3, 4, 9, 10, 11, 13, 14, 16], b (7): [0, 2, 3, 4, 5, 8, 9, 10, 11, 13, 14, 16] +idx: 6, delta: 2, matching: false, a (8): [1, 2, 3, 10, 11, 12, 16], b (5): [1, 2, 5, 6, 7, 8, 11, 12, 15, 16] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 2, 3, 4, 5, 8, 9, 10, 11, 13, 14, 16], b (8): [1, 2, 3, 10, 11, 12, 16] +idx: 7 --- EXITING WITH false +idx: 8 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [2, 3, 4, 6, 7], b (1): [1, 2, 3, 4, 5, 8] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 2, 3, 4, 5, 8], b (2): [4, 5, 6, 7, 8] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 3, 6, 7, 8], b (0): [2, 3, 4, 6, 7] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [4, 5, 6, 7, 8], b (3): [0, 1, 3, 6, 7, 8] +idx: 2, delta: 2, matching: false, a (4): [0, 2, 3, 6, 7], b (1): [1, 2, 3, 4, 5, 8] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 3, 4, 5, 7], b (0): [2, 3, 4, 6, 7] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 3, 6, 7, 8], b (4): [0, 2, 3, 6, 7] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 3, 4, 5, 7], b (2): [4, 5, 6, 7, 8] +idx: 3, delta: 3, matching: false, a (6): [1, 4, 5], b (1): [1, 2, 3, 4, 5, 8] +idx: 3, delta: 4, matching: false, a (7): [1, 4, 5], b (0): [2, 3, 4, 6, 7] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 2, 3, 6, 7], b (5): [0, 1, 3, 4, 5, 7] +idx: 4, delta: 2, matching: false, a (6): [1, 4, 5], b (3): [0, 1, 3, 6, 7, 8] +idx: 4, delta: 3, matching: false, a (7): [1, 4, 5], b (2): [4, 5, 6, 7, 8] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 3, 4, 5, 7], b (1): [1, 2, 3, 4, 5, 8] +idx: 4, delta: 5, matching: false, a (9): [0, 2, 3, 6, 7], b (0): [2, 3, 4, 6, 7] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 3, 4, 5, 7], b (6): [1, 4, 5] +idx: 5, delta: 2, matching: false, a (7): [1, 4, 5], b (4): [0, 2, 3, 6, 7] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 3, 4, 5, 7], b (3): [0, 1, 3, 6, 7, 8] +idx: 5, delta: 4, matching: false, a (9): [0, 2, 3, 6, 7], b (2): [4, 5, 6, 7, 8] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 3, 6, 7, 8], b (1): [1, 2, 3, 4, 5, 8] +idx: 5, delta: 6, matching: false, a (11): [4, 5, 6, 7, 8], b (0): [2, 3, 4, 6, 7] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: true, a (6): [1, 4, 5], b (7): [1, 4, 5] +idx: 6, delta: 2, matching: true, a (8): [0, 1, 3, 4, 5, 7], b (5): [0, 1, 3, 4, 5, 7] +idx: 6, delta: 3, matching: true, a (9): [0, 2, 3, 6, 7], b (4): [0, 2, 3, 6, 7] +idx: 6, delta: 4, matching: true, a (10): [0, 1, 3, 6, 7, 8], b (3): [0, 1, 3, 6, 7, 8] +idx: 6, delta: 5, matching: true, a (11): [4, 5, 6, 7, 8], b (2): [4, 5, 6, 7, 8] +idx: 6, delta: 6, matching: true, a (12): [1, 2, 3, 4, 5, 8], b (1): [1, 2, 3, 4, 5, 8] +idx: 6, delta: 7, matching: true, a (13): [2, 3, 4, 6, 7], b (0): [2, 3, 4, 6, 7] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [1, 4, 5], b (8): [0, 1, 3, 4, 5, 7] +idx: 7, delta: 2, matching: false, a (9): [0, 2, 3, 6, 7], b (6): [1, 4, 5] +idx: 7, delta: 3, matching: false, a (10): [0, 1, 3, 6, 7, 8], b (5): [0, 1, 3, 4, 5, 7] +idx: 7, delta: 4, matching: false, a (11): [4, 5, 6, 7, 8], b (4): [0, 2, 3, 6, 7] +idx: 7, delta: 5, matching: false, a (12): [1, 2, 3, 4, 5, 8], b (3): [0, 1, 3, 6, 7, 8] +idx: 7, delta: 6, matching: false, a (13): [2, 3, 4, 6, 7], b (2): [4, 5, 6, 7, 8] +idx: 7, delta: 7, matching: false, a (14): [2, 3, 4, 6, 7], b (1): [1, 2, 3, 4, 5, 8] +idx: 7, delta: 8, matching: false, a (15): [1, 2, 3, 4, 5], b (0): [2, 3, 4, 6, 7] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 1, 3, 4, 5, 7], b (9): [0, 2, 3, 6, 7] +idx: 8, delta: 2, matching: false, a (10): [0, 1, 3, 6, 7, 8], b (7): [1, 4, 5] +idx: 8, delta: 3, matching: false, a (11): [4, 5, 6, 7, 8], b (6): [1, 4, 5] +idx: 8, delta: 4, matching: false, a (12): [1, 2, 3, 4, 5, 8], b (5): [0, 1, 3, 4, 5, 7] +idx: 8, delta: 5, matching: false, a (13): [2, 3, 4, 6, 7], b (4): [0, 2, 3, 6, 7] +idx: 8, delta: 6, matching: false, a (14): [2, 3, 4, 6, 7], b (3): [0, 1, 3, 6, 7, 8] +idx: 8, delta: 7, matching: false, a (15): [1, 2, 3, 4, 5], b (2): [4, 5, 6, 7, 8] +idx: 8, delta: 8, matching: false, a (16): [4, 5, 6, 7, 8], b (1): [1, 2, 3, 4, 5, 8] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 2, 3, 6, 7], b (10): [0, 1, 3, 6, 7, 8] +idx: 9, delta: 2, matching: false, a (11): [4, 5, 6, 7, 8], b (8): [0, 1, 3, 4, 5, 7] +idx: 9, delta: 3, matching: false, a (12): [1, 2, 3, 4, 5, 8], b (7): [1, 4, 5] +idx: 9, delta: 4, matching: false, a (13): [2, 3, 4, 6, 7], b (6): [1, 4, 5] +idx: 9, delta: 5, matching: false, a (14): [2, 3, 4, 6, 7], b (5): [0, 1, 3, 4, 5, 7] +idx: 9, delta: 6, matching: false, a (15): [1, 2, 3, 4, 5], b (4): [0, 2, 3, 6, 7] +idx: 9, delta: 7, matching: false, a (16): [4, 5, 6, 7, 8], b (3): [0, 1, 3, 6, 7, 8] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 1, 3, 6, 7, 8], b (11): [4, 5, 6, 7, 8] +idx: 10, delta: 2, matching: false, a (12): [1, 2, 3, 4, 5, 8], b (9): [0, 2, 3, 6, 7] +idx: 10, delta: 3, matching: false, a (13): [2, 3, 4, 6, 7], b (8): [0, 1, 3, 4, 5, 7] +idx: 10, delta: 4, matching: false, a (14): [2, 3, 4, 6, 7], b (7): [1, 4, 5] +idx: 10, delta: 5, matching: false, a (15): [1, 2, 3, 4, 5], b (6): [1, 4, 5] +idx: 10, delta: 6, matching: false, a (16): [4, 5, 6, 7, 8], b (5): [0, 1, 3, 4, 5, 7] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [4, 5, 6, 7, 8], b (12): [1, 2, 3, 4, 5, 8] +idx: 11, delta: 2, matching: false, a (13): [2, 3, 4, 6, 7], b (10): [0, 1, 3, 6, 7, 8] +idx: 11, delta: 3, matching: false, a (14): [2, 3, 4, 6, 7], b (9): [0, 2, 3, 6, 7] +idx: 11, delta: 4, matching: false, a (15): [1, 2, 3, 4, 5], b (8): [0, 1, 3, 4, 5, 7] +idx: 11, delta: 5, matching: false, a (16): [4, 5, 6, 7, 8], b (7): [1, 4, 5] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [1, 2, 3, 4, 5, 8], b (13): [2, 3, 4, 6, 7] +idx: 12, delta: 2, matching: false, a (14): [2, 3, 4, 6, 7], b (11): [4, 5, 6, 7, 8] +idx: 12, delta: 3, matching: false, a (15): [1, 2, 3, 4, 5], b (10): [0, 1, 3, 6, 7, 8] +idx: 12, delta: 4, matching: false, a (16): [4, 5, 6, 7, 8], b (9): [0, 2, 3, 6, 7] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: true, a (13): [2, 3, 4, 6, 7], b (14): [2, 3, 4, 6, 7] +idx: 13, delta: 2, matching: false, a (15): [1, 2, 3, 4, 5], b (12): [1, 2, 3, 4, 5, 8] +idx: 13, delta: 2 --- found smudge! +idx: 13, delta: 3, matching: true, a (16): [4, 5, 6, 7, 8], b (11): [4, 5, 6, 7, 8] +idx: 13 --- EXITING WITH true +..###.##. +.#####..# +....##### +##.#..### +#.##..##. +##.###.#. +.#..##... +.#..##... +##.###.#. +#.##..##. +##.#..### +....##### +.#####..# +..###.##. +..###.##. +.#####... +....##### +1400 (vert: 0, horiz: 14) + +idx: 0, delta: 0, matching: false, a (0): [1, 8, 11, 13], b (1): [2, 7, 12] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [2, 7, 12], b (2): [1, 8, 10, 13] +idx: 1, delta: 2, matching: false, a (3): [1, 4, 5, 8, 14], b (0): [1, 8, 11, 13] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 8, 10, 13], b (3): [1, 4, 5, 8, 14] +idx: 2, delta: 2, matching: false, a (4): [1, 4, 5, 8, 14], b (1): [2, 7, 12] +idx: 2, delta: 3, matching: false, a (5): [1, 8, 10, 13], b (0): [1, 8, 11, 13] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: true, a (3): [1, 4, 5, 8, 14], b (4): [1, 4, 5, 8, 14] +idx: 3, delta: 2, matching: true, a (5): [1, 8, 10, 13], b (2): [1, 8, 10, 13] +idx: 3, delta: 3, matching: true, a (6): [2, 7, 12], b (1): [2, 7, 12] +idx: 3, delta: 4, matching: true, a (7): [1, 8, 11, 13], b (0): [1, 8, 11, 13] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 4, 5, 8, 14], b (5): [1, 8, 10, 13] +idx: 4, delta: 2, matching: false, a (6): [2, 7, 12], b (3): [1, 4, 5, 8, 14] +idx: 4, delta: 3, matching: false, a (7): [1, 8, 11, 13], b (2): [1, 8, 10, 13] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 2, 3, 6, 7, 9, 11, 12, 13], b (1): [2, 7, 12] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 8, 10, 13], b (6): [2, 7, 12] +idx: 5, delta: 2, matching: false, a (7): [1, 8, 11, 13], b (4): [1, 4, 5, 8, 14] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 2, 3, 6, 7, 9, 11, 12, 13], b (3): [1, 4, 5, 8, 14] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [2, 7, 12], b (7): [1, 8, 11, 13] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 2, 3, 6, 7, 9, 11, 12, 13], b (5): [1, 8, 10, 13] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [1, 8, 11, 13], b (8): [0, 1, 2, 3, 6, 7, 9, 11, 12, 13] +idx: 7 --- EXITING WITH false +idx: 8 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [8], b (1): [0, 2, 3, 4, 5, 7, 8] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 2, 3, 4, 5, 7, 8], b (2): [1, 6, 8] +idx: 1, delta: 2, matching: true, a (3): [8], b (0): [8] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 6, 8], b (3): [8] +idx: 2, delta: 2, matching: false, a (4): [3, 4], b (1): [0, 2, 3, 4, 5, 7, 8] +idx: 2, delta: 3, matching: false, a (5): [3, 4], b (0): [8] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [8], b (4): [3, 4] +idx: 3, delta: 2, matching: false, a (5): [3, 4], b (2): [1, 6, 8] +idx: 3, delta: 3, matching: false, a (6): [8], b (1): [0, 2, 3, 4, 5, 7, 8] +idx: 3, delta: 4, matching: false, a (7): [1, 6, 8], b (0): [8] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: true, a (4): [3, 4], b (5): [3, 4] +idx: 4, delta: 2, matching: true, a (6): [8], b (3): [8] +idx: 4, delta: 3, matching: true, a (7): [1, 6, 8], b (2): [1, 6, 8] +idx: 4, delta: 4, matching: false, a (8): [0, 2, 3, 4, 5, 7], b (1): [0, 2, 3, 4, 5, 7, 8] +idx: 4, delta: 4 --- found smudge! +idx: 4, delta: 5, matching: true, a (9): [8], b (0): [8] +idx: 4 --- EXITING WITH true +........# +#.####.## +.#....#.# +........# +...##.... +...##.... +........# +.#....#.# +#.####.#. +........# +..#..#... +#......## +.#....#.# +#.#..#.## +...##.... +500 (vert: 0, horiz: 5) + +idx: 0, delta: 0, matching: false, a (0): [1, 2, 3, 4, 5, 7, 10, 12, 13, 14, 15, 16], b (1): [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16], b (2): [3, 5, 6, 7, 8, 9, 10, 11, 12, 14] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 6, 11, 16], b (0): [1, 2, 3, 4, 5, 7, 10, 12, 13, 14, 15, 16] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [3, 5, 6, 7, 8, 9, 10, 11, 12, 14], b (3): [0, 1, 6, 11, 16] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 5, 6, 11, 12, 15, 16], b (1): [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 2, 4, 8, 9, 13, 15, 16], b (0): [1, 2, 3, 4, 5, 7, 10, 12, 13, 14, 15, 16] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 6, 11, 16], b (4): [1, 2, 5, 6, 11, 12, 15, 16] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 2, 4, 8, 9, 13, 15, 16], b (2): [3, 5, 6, 7, 8, 9, 10, 11, 12, 14] +idx: 3, delta: 3, matching: false, a (6): [0, 2, 3, 5, 6, 12, 14, 15], b (1): [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16] +idx: 3, delta: 4, matching: false, a (7): [2, 3, 5, 12, 14, 15], b (0): [1, 2, 3, 4, 5, 7, 10, 12, 13, 14, 15, 16] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 2, 5, 6, 11, 12, 15, 16], b (5): [0, 1, 2, 4, 8, 9, 13, 15, 16] +idx: 4, delta: 2, matching: false, a (6): [0, 2, 3, 5, 6, 12, 14, 15], b (3): [0, 1, 6, 11, 16] +idx: 4, delta: 3, matching: false, a (7): [2, 3, 5, 12, 14, 15], b (2): [3, 5, 6, 7, 8, 9, 10, 11, 12, 14] +idx: 4, delta: 4, matching: false, a (8): [2, 3, 5, 12, 14, 15], b (1): [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 2, 4, 8, 9, 13, 15, 16], b (6): [0, 2, 3, 5, 6, 12, 14, 15] +idx: 5, delta: 2, matching: false, a (7): [2, 3, 5, 12, 14, 15], b (4): [1, 2, 5, 6, 11, 12, 15, 16] +idx: 5, delta: 3, matching: false, a (8): [2, 3, 5, 12, 14, 15], b (3): [0, 1, 6, 11, 16] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 2, 3, 5, 6, 12, 14, 15], b (7): [2, 3, 5, 12, 14, 15] +idx: 6, delta: 2, matching: false, a (8): [2, 3, 5, 12, 14, 15], b (5): [0, 1, 2, 4, 8, 9, 13, 15, 16] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: true, a (7): [2, 3, 5, 12, 14, 15], b (8): [2, 3, 5, 12, 14, 15] +idx: 7 --- EXITING WITH false +idx: 8 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [3, 5, 6], b (1): [0, 1, 3, 4, 5] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 3, 4, 5], b (2): [0, 4, 5, 6, 7, 8] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 2, 6, 7, 8], b (0): [3, 5, 6] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 4, 5, 6, 7, 8], b (3): [0, 1, 2, 6, 7, 8] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 5], b (1): [0, 1, 3, 4, 5] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 2, 4, 6, 7, 8], b (0): [3, 5, 6] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 2, 6, 7, 8], b (4): [0, 1, 5] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 2, 4, 6, 7, 8], b (2): [0, 4, 5, 6, 7, 8] +idx: 3, delta: 3, matching: false, a (6): [1, 2, 3, 4, 6], b (1): [0, 1, 3, 4, 5] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 2], b (0): [3, 5, 6] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 5], b (5): [0, 1, 2, 4, 6, 7, 8] +idx: 4, delta: 2, matching: false, a (6): [1, 2, 3, 4, 6], b (3): [0, 1, 2, 6, 7, 8] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 2], b (2): [0, 4, 5, 6, 7, 8] +idx: 4, delta: 4, matching: false, a (8): [1, 2, 5], b (1): [0, 1, 3, 4, 5] +idx: 4, delta: 5, matching: false, a (9): [1, 2, 5], b (0): [3, 5, 6] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 2, 4, 6, 7, 8], b (6): [1, 2, 3, 4, 6] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 2], b (4): [0, 1, 5] +idx: 5, delta: 3, matching: false, a (8): [1, 2, 5], b (3): [0, 1, 2, 6, 7, 8] +idx: 5, delta: 4, matching: false, a (9): [1, 2, 5], b (2): [0, 4, 5, 6, 7, 8] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 2], b (1): [0, 1, 3, 4, 5] +idx: 5, delta: 6, matching: false, a (11): [1, 2, 3, 4], b (0): [3, 5, 6] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [1, 2, 3, 4, 6], b (7): [0, 1, 2] +idx: 6, delta: 2, matching: false, a (8): [1, 2, 5], b (5): [0, 1, 2, 4, 6, 7, 8] +idx: 6, delta: 3, matching: false, a (9): [1, 2, 5], b (4): [0, 1, 5] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 2], b (3): [0, 1, 2, 6, 7, 8] +idx: 6, delta: 5, matching: false, a (11): [1, 2, 3, 4], b (2): [0, 4, 5, 6, 7, 8] +idx: 6, delta: 6, matching: false, a (12): [0, 1, 2, 4, 6, 7, 8], b (1): [0, 1, 3, 4, 5] +idx: 6, delta: 7, matching: false, a (13): [0, 1, 5], b (0): [3, 5, 6] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 2], b (8): [1, 2, 5] +idx: 7, delta: 2, matching: false, a (9): [1, 2, 5], b (6): [1, 2, 3, 4, 6] +idx: 7, delta: 3, matching: false, a (10): [0, 1, 2], b (5): [0, 1, 2, 4, 6, 7, 8] +idx: 7, delta: 4, matching: false, a (11): [1, 2, 3, 4], b (4): [0, 1, 5] +idx: 7, delta: 5, matching: false, a (12): [0, 1, 2, 4, 6, 7, 8], b (3): [0, 1, 2, 6, 7, 8] +idx: 7, delta: 5 --- found smudge! +idx: 7, delta: 6, matching: false, a (13): [0, 1, 5], b (2): [0, 4, 5, 6, 7, 8] +idx: 7, delta: 6 --- found smudge twice! +idx: 8, delta: 0, matching: true, a (8): [1, 2, 5], b (9): [1, 2, 5] +idx: 8, delta: 2, matching: true, a (10): [0, 1, 2], b (7): [0, 1, 2] +idx: 8, delta: 3, matching: false, a (11): [1, 2, 3, 4], b (6): [1, 2, 3, 4, 6] +idx: 8, delta: 3 --- found smudge! +idx: 8, delta: 4, matching: true, a (12): [0, 1, 2, 4, 6, 7, 8], b (5): [0, 1, 2, 4, 6, 7, 8] +idx: 8, delta: 5, matching: true, a (13): [0, 1, 5], b (4): [0, 1, 5] +idx: 8, delta: 6, matching: true, a (14): [0, 1, 2, 6, 7, 8], b (3): [0, 1, 2, 6, 7, 8] +idx: 8, delta: 7, matching: true, a (15): [0, 4, 5, 6, 7, 8], b (2): [0, 4, 5, 6, 7, 8] +idx: 8, delta: 8, matching: true, a (16): [0, 1, 3, 4, 5], b (1): [0, 1, 3, 4, 5] +idx: 8 --- EXITING WITH true +...#.##.. +##.###... +#...##### +###...### +##...#... +###.#.### +.####.#.. +###...... +.##..#... +.##..#... +###...... +.####.... +###.#.### +##...#... +###...### +#...##### +##.###... +900 (vert: 0, horiz: 9) + +idx: 0, delta: 0, matching: false, a (0): [0, 1, 2, 5, 8], b (1): [3, 4, 8] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [3, 4, 8], b (2): [4, 5, 6, 7] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 4, 6], b (0): [0, 1, 2, 5, 8] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [4, 5, 6, 7], b (3): [0, 1, 4, 6] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 3, 4, 5, 6, 7, 8], b (1): [3, 4, 8] +idx: 2, delta: 3, matching: false, a (5): [1, 5, 6, 8], b (0): [0, 1, 2, 5, 8] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 4, 6], b (4): [1, 2, 3, 4, 5, 6, 7, 8] +idx: 3, delta: 2, matching: false, a (5): [1, 5, 6, 8], b (2): [4, 5, 6, 7] +idx: 3, delta: 3, matching: false, a (6): [1, 5, 6, 8], b (1): [3, 4, 8] +idx: 3, delta: 4, matching: false, a (7): [1, 2, 3, 4, 5, 6, 7, 8], b (0): [0, 1, 2, 5, 8] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 2, 3, 4, 5, 6, 7, 8], b (5): [1, 5, 6, 8] +idx: 4, delta: 2, matching: false, a (6): [1, 5, 6, 8], b (3): [0, 1, 4, 6] +idx: 4, delta: 3, matching: false, a (7): [1, 2, 3, 4, 5, 6, 7, 8], b (2): [4, 5, 6, 7] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 4, 6], b (1): [3, 4, 8] +idx: 4, delta: 5, matching: false, a (9): [4, 6, 7], b (0): [0, 1, 2, 5, 8] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: true, a (5): [1, 5, 6, 8], b (6): [1, 5, 6, 8] +idx: 5, delta: 2, matching: true, a (7): [1, 2, 3, 4, 5, 6, 7, 8], b (4): [1, 2, 3, 4, 5, 6, 7, 8] +idx: 5, delta: 3, matching: true, a (8): [0, 1, 4, 6], b (3): [0, 1, 4, 6] +idx: 5, delta: 4, matching: false, a (9): [4, 6, 7], b (2): [4, 5, 6, 7] +idx: 5, delta: 4 --- found smudge! +idx: 5, delta: 5, matching: true, a (10): [3, 4, 8], b (1): [3, 4, 8] +idx: 5, delta: 6, matching: true, a (11): [0, 1, 2, 5, 8], b (0): [0, 1, 2, 5, 8] +idx: 5 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [0, 3, 8, 11, 12, 14, 15], b (1): [0, 3, 4, 5, 6, 7, 8, 11, 12, 14, 15] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 3, 4, 5, 6, 7, 8, 11, 12, 14, 15], b (2): [0, 4, 7, 11] +idx: 1, delta: 2, matching: false, a (3): [1, 4, 7, 10, 12, 13, 16], b (0): [0, 3, 8, 11, 12, 14, 15] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 4, 7, 11], b (3): [1, 4, 7, 10, 12, 13, 16] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 3, 4, 7, 8, 9, 10, 12, 13, 16], b (1): [0, 3, 4, 5, 6, 7, 8, 11, 12, 14, 15] +idx: 2, delta: 3, matching: false, a (5): [0, 2, 4, 5, 6, 7, 11, 12, 13, 14, 15, 16], b (0): [0, 3, 8, 11, 12, 14, 15] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 4, 7, 10, 12, 13, 16], b (4): [1, 2, 3, 4, 7, 8, 9, 10, 12, 13, 16] +idx: 3, delta: 2, matching: false, a (5): [0, 2, 4, 5, 6, 7, 11, 12, 13, 14, 15, 16], b (2): [0, 4, 7, 11] +idx: 3, delta: 3, matching: false, a (6): [2, 3, 4, 5, 6, 7, 8, 9, 14, 15], b (1): [0, 3, 4, 5, 6, 7, 8, 11, 12, 14, 15] +idx: 3, delta: 4, matching: false, a (7): [2, 4, 7, 9, 12], b (0): [0, 3, 8, 11, 12, 14, 15] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 2, 3, 4, 7, 8, 9, 10, 12, 13, 16], b (5): [0, 2, 4, 5, 6, 7, 11, 12, 13, 14, 15, 16] +idx: 4, delta: 2, matching: false, a (6): [2, 3, 4, 5, 6, 7, 8, 9, 14, 15], b (3): [1, 4, 7, 10, 12, 13, 16] +idx: 4, delta: 3, matching: false, a (7): [2, 4, 7, 9, 12], b (2): [0, 4, 7, 11] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 4, 5, 6, 7, 10, 11, 12, 14, 15], b (1): [0, 3, 4, 5, 6, 7, 8, 11, 12, 14, 15] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 2, 4, 5, 6, 7, 11, 12, 13, 14, 15, 16], b (6): [2, 3, 4, 5, 6, 7, 8, 9, 14, 15] +idx: 5, delta: 2, matching: false, a (7): [2, 4, 7, 9, 12], b (4): [1, 2, 3, 4, 7, 8, 9, 10, 12, 13, 16] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 4, 5, 6, 7, 10, 11, 12, 14, 15], b (3): [1, 4, 7, 10, 12, 13, 16] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [2, 3, 4, 5, 6, 7, 8, 9, 14, 15], b (7): [2, 4, 7, 9, 12] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 4, 5, 6, 7, 10, 11, 12, 14, 15], b (5): [0, 2, 4, 5, 6, 7, 11, 12, 13, 14, 15, 16] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [2, 4, 7, 9, 12], b (8): [0, 1, 4, 5, 6, 7, 10, 11, 12, 14, 15] +idx: 7 --- EXITING WITH false +idx: 8 --- EXITING WITH false +#..#....#..##.##. +#..######..##.##. +#...#..#...#..... +.#..#..#..#.##..# +.####..####.##..# +#.#.####...###### +..########....##. +..#.#..#.#..#.... +##..####..###.##. +6 (vert: 6, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [1, 2, 4, 5, 6, 8, 9], b (1): [0, 4, 5, 7, 9] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 4, 5, 7, 9], b (2): [0, 2, 3, 4, 6, 7, 9, 10] +idx: 1, delta: 2, matching: false, a (3): [0, 2, 3, 4, 6, 7, 9, 10], b (0): [1, 2, 4, 5, 6, 8, 9] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: true, a (2): [0, 2, 3, 4, 6, 7, 9, 10], b (3): [0, 2, 3, 4, 6, 7, 9, 10] +idx: 2, delta: 2, matching: true, a (4): [0, 4, 5, 7, 9], b (1): [0, 4, 5, 7, 9] +idx: 2, delta: 3, matching: true, a (5): [1, 2, 4, 5, 6, 8, 9], b (0): [1, 2, 4, 5, 6, 8, 9] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 2, 3, 4, 6, 7, 9, 10], b (4): [0, 4, 5, 7, 9] +idx: 3, delta: 2, matching: false, a (5): [1, 2, 4, 5, 6, 8, 9], b (2): [0, 2, 3, 4, 6, 7, 9, 10] +idx: 3, delta: 3, matching: false, a (6): [0, 3, 6, 7, 8], b (1): [0, 4, 5, 7, 9] +idx: 3, delta: 4, matching: false, a (7): [0, 3, 4, 5, 6, 8], b (0): [1, 2, 4, 5, 6, 8, 9] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 4, 5, 7, 9], b (5): [1, 2, 4, 5, 6, 8, 9] +idx: 4, delta: 2, matching: false, a (6): [0, 3, 6, 7, 8], b (3): [0, 2, 3, 4, 6, 7, 9, 10] +idx: 4, delta: 3, matching: false, a (7): [0, 3, 4, 5, 6, 8], b (2): [0, 2, 3, 4, 6, 7, 9, 10] +idx: 4, delta: 4, matching: false, a (8): [0, 3, 5, 6, 8], b (1): [0, 4, 5, 7, 9] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 2, 4, 5, 6, 8, 9], b (6): [0, 3, 6, 7, 8] +idx: 5, delta: 2, matching: false, a (7): [0, 3, 4, 5, 6, 8], b (4): [0, 4, 5, 7, 9] +idx: 5, delta: 3, matching: false, a (8): [0, 3, 5, 6, 8], b (3): [0, 2, 3, 4, 6, 7, 9, 10] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 3, 6, 7, 8], b (7): [0, 3, 4, 5, 6, 8] +idx: 6, delta: 2, matching: false, a (8): [0, 3, 5, 6, 8], b (5): [1, 2, 4, 5, 6, 8, 9] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 3, 4, 5, 6, 8], b (8): [0, 3, 5, 6, 8] +idx: 7, delta: 0 --- found smudge! +idx: 7 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [1, 2, 3, 4, 6, 7, 8], b (1): [0, 5] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 5], b (2): [0, 2, 3, 5] +idx: 1, delta: 2, matching: false, a (3): [2, 3, 6, 7, 8], b (0): [1, 2, 3, 4, 6, 7, 8] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 2, 3, 5], b (3): [2, 3, 6, 7, 8] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 2, 3, 4, 5, 7], b (1): [0, 5] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 4, 5, 7, 8], b (0): [1, 2, 3, 4, 6, 7, 8] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [2, 3, 6, 7, 8], b (4): [0, 1, 2, 3, 4, 5, 7] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 4, 5, 7, 8], b (2): [0, 2, 3, 5] +idx: 3, delta: 3, matching: false, a (6): [0, 2, 3, 5, 6, 7, 8], b (1): [0, 5] +idx: 3, delta: 4, matching: false, a (7): [1, 2, 3, 4, 6], b (0): [1, 2, 3, 4, 6, 7, 8] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 2, 3, 4, 5, 7], b (5): [0, 1, 4, 5, 7, 8] +idx: 4, delta: 2, matching: false, a (6): [0, 2, 3, 5, 6, 7, 8], b (3): [2, 3, 6, 7, 8] +idx: 4, delta: 3, matching: false, a (7): [1, 2, 3, 4, 6], b (2): [0, 2, 3, 5] +idx: 4, delta: 4, matching: false, a (8): [0, 5, 6, 7, 8], b (1): [0, 5] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 2, 3, 4, 5], b (0): [1, 2, 3, 4, 6, 7, 8] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 4, 5, 7, 8], b (6): [0, 2, 3, 5, 6, 7, 8] +idx: 5, delta: 2, matching: false, a (7): [1, 2, 3, 4, 6], b (4): [0, 1, 2, 3, 4, 5, 7] +idx: 5, delta: 3, matching: false, a (8): [0, 5, 6, 7, 8], b (3): [2, 3, 6, 7, 8] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 2, 3, 4, 5], b (2): [0, 2, 3, 5] +idx: 5, delta: 5, matching: false, a (10): [2, 3], b (1): [0, 5] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 2, 3, 5, 6, 7, 8], b (7): [1, 2, 3, 4, 6] +idx: 6, delta: 2, matching: false, a (8): [0, 5, 6, 7, 8], b (5): [0, 1, 4, 5, 7, 8] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 2, 3, 4, 5], b (4): [0, 1, 2, 3, 4, 5, 7] +idx: 6, delta: 3 --- found smudge! +idx: 6, delta: 4, matching: false, a (10): [2, 3], b (3): [2, 3, 6, 7, 8] +idx: 6, delta: 4 --- found smudge twice! +idx: 7, delta: 0, matching: false, a (7): [1, 2, 3, 4, 6], b (8): [0, 5, 6, 7, 8] +idx: 7, delta: 2, matching: false, a (9): [0, 1, 2, 3, 4, 5], b (6): [0, 2, 3, 5, 6, 7, 8] +idx: 7, delta: 3, matching: false, a (10): [2, 3], b (5): [0, 1, 4, 5, 7, 8] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 5, 6, 7, 8], b (9): [0, 1, 2, 3, 4, 5] +idx: 8, delta: 2, matching: false, a (10): [2, 3], b (7): [1, 2, 3, 4, 6] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 1, 2, 3, 4, 5], b (10): [2, 3] +idx: 9 --- EXITING WITH false +idx: 10 --- EXITING WITH false +.####.### +#....#... +#.##.#... +..##..### +######.#. +##..##.## +#.##.#### +.####.#.. +#....#### +######... +..##..... +8 (vert: 8, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [3, 4, 6, 8, 9, 10, 11], b (1): [1, 3, 5, 6, 11, 12, 14] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 3, 5, 6, 11, 12, 14], b (2): [1, 3, 5, 11, 12, 14] +idx: 1, delta: 0 --- found smudge! +idx: 1, delta: 2, matching: true, a (3): [3, 4, 6, 8, 9, 10, 11], b (0): [3, 4, 6, 8, 9, 10, 11] +idx: 1 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [6, 9], b (1): [1, 2, 6, 7, 8, 9, 11, 12] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 2, 6, 7, 8, 9, 11, 12], b (2): [5, 7, 10, 11, 12] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 2, 3, 5, 7, 8, 9, 11], b (0): [6, 9] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [5, 7, 10, 11, 12], b (3): [0, 1, 2, 3, 5, 7, 8, 9, 11] +idx: 2, delta: 2, matching: false, a (4): [0, 3, 4, 5, 6, 9, 11, 12], b (1): [1, 2, 6, 7, 8, 9, 11, 12] +idx: 2, delta: 3, matching: false, a (5): [1, 2, 4, 7], b (0): [6, 9] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 2, 3, 5, 7, 8, 9, 11], b (4): [0, 3, 4, 5, 6, 9, 11, 12] +idx: 3, delta: 2, matching: false, a (5): [1, 2, 4, 7], b (2): [5, 7, 10, 11, 12] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 3, 5, 6, 7, 10, 11, 12], b (1): [1, 2, 6, 7, 8, 9, 11, 12] +idx: 3, delta: 4, matching: false, a (7): [5, 9, 10, 12], b (0): [6, 9] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 3, 4, 5, 6, 9, 11, 12], b (5): [1, 2, 4, 7] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 3, 5, 6, 7, 10, 11, 12], b (3): [0, 1, 2, 3, 5, 7, 8, 9, 11] +idx: 4, delta: 3, matching: false, a (7): [5, 9, 10, 12], b (2): [5, 7, 10, 11, 12] +idx: 4, delta: 4, matching: false, a (8): [0, 3, 5, 6, 8, 9, 10, 12], b (1): [1, 2, 6, 7, 8, 9, 11, 12] +idx: 4, delta: 5, matching: false, a (9): [0, 3, 4, 5, 7, 10], b (0): [6, 9] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 2, 4, 7], b (6): [0, 1, 3, 5, 6, 7, 10, 11, 12] +idx: 5, delta: 2, matching: false, a (7): [5, 9, 10, 12], b (4): [0, 3, 4, 5, 6, 9, 11, 12] +idx: 5, delta: 3, matching: false, a (8): [0, 3, 5, 6, 8, 9, 10, 12], b (3): [0, 1, 2, 3, 5, 7, 8, 9, 11] +idx: 5, delta: 4, matching: false, a (9): [0, 3, 4, 5, 7, 10], b (2): [5, 7, 10, 11, 12] +idx: 5, delta: 5, matching: false, a (10): [0, 3, 4, 6, 8, 9, 10, 11], b (1): [1, 2, 6, 7, 8, 9, 11, 12] +idx: 5, delta: 6, matching: false, a (11): [0, 1, 2, 3, 5, 8, 11], b (0): [6, 9] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 1, 3, 5, 6, 7, 10, 11, 12], b (7): [5, 9, 10, 12] +idx: 6, delta: 2, matching: false, a (8): [0, 3, 5, 6, 8, 9, 10, 12], b (5): [1, 2, 4, 7] +idx: 6, delta: 3, matching: false, a (9): [0, 3, 4, 5, 7, 10], b (4): [0, 3, 4, 5, 6, 9, 11, 12] +idx: 6, delta: 4, matching: false, a (10): [0, 3, 4, 6, 8, 9, 10, 11], b (3): [0, 1, 2, 3, 5, 7, 8, 9, 11] +idx: 6, delta: 5, matching: false, a (11): [0, 1, 2, 3, 5, 8, 11], b (2): [5, 7, 10, 11, 12] +idx: 6, delta: 6, matching: false, a (12): [1, 2, 5, 9, 10, 11], b (1): [1, 2, 6, 7, 8, 9, 11, 12] +idx: 6, delta: 7, matching: false, a (13): [4, 5, 7, 8, 12], b (0): [6, 9] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [5, 9, 10, 12], b (8): [0, 3, 5, 6, 8, 9, 10, 12] +idx: 7, delta: 2, matching: false, a (9): [0, 3, 4, 5, 7, 10], b (6): [0, 1, 3, 5, 6, 7, 10, 11, 12] +idx: 7, delta: 3, matching: false, a (10): [0, 3, 4, 6, 8, 9, 10, 11], b (5): [1, 2, 4, 7] +idx: 7, delta: 4, matching: false, a (11): [0, 1, 2, 3, 5, 8, 11], b (4): [0, 3, 4, 5, 6, 9, 11, 12] +idx: 7, delta: 5, matching: false, a (12): [1, 2, 5, 9, 10, 11], b (3): [0, 1, 2, 3, 5, 7, 8, 9, 11] +idx: 7, delta: 6, matching: false, a (13): [4, 5, 7, 8, 12], b (2): [5, 7, 10, 11, 12] +idx: 7, delta: 7, matching: false, a (14): [1, 2, 7, 8, 11], b (1): [1, 2, 6, 7, 8, 9, 11, 12] +idx: 7, delta: 8, matching: false, a (15): [4, 6, 7], b (0): [6, 9] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 3, 5, 6, 8, 9, 10, 12], b (9): [0, 3, 4, 5, 7, 10] +idx: 8, delta: 2, matching: false, a (10): [0, 3, 4, 6, 8, 9, 10, 11], b (7): [5, 9, 10, 12] +idx: 8, delta: 3, matching: false, a (11): [0, 1, 2, 3, 5, 8, 11], b (6): [0, 1, 3, 5, 6, 7, 10, 11, 12] +idx: 8, delta: 4, matching: false, a (12): [1, 2, 5, 9, 10, 11], b (5): [1, 2, 4, 7] +idx: 8, delta: 5, matching: false, a (13): [4, 5, 7, 8, 12], b (4): [0, 3, 4, 5, 6, 9, 11, 12] +idx: 8, delta: 6, matching: false, a (14): [1, 2, 7, 8, 11], b (3): [0, 1, 2, 3, 5, 7, 8, 9, 11] +idx: 8, delta: 7, matching: false, a (15): [4, 6, 7], b (2): [5, 7, 10, 11, 12] +idx: 8, delta: 8, matching: false, a (16): [4, 6, 7], b (1): [1, 2, 6, 7, 8, 9, 11, 12] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 3, 4, 5, 7, 10], b (10): [0, 3, 4, 6, 8, 9, 10, 11] +idx: 9, delta: 2, matching: false, a (11): [0, 1, 2, 3, 5, 8, 11], b (8): [0, 3, 5, 6, 8, 9, 10, 12] +idx: 9, delta: 3, matching: false, a (12): [1, 2, 5, 9, 10, 11], b (7): [5, 9, 10, 12] +idx: 9, delta: 4, matching: false, a (13): [4, 5, 7, 8, 12], b (6): [0, 1, 3, 5, 6, 7, 10, 11, 12] +idx: 9, delta: 5, matching: false, a (14): [1, 2, 7, 8, 11], b (5): [1, 2, 4, 7] +idx: 9, delta: 6, matching: false, a (15): [4, 6, 7], b (4): [0, 3, 4, 5, 6, 9, 11, 12] +idx: 9, delta: 7, matching: false, a (16): [4, 6, 7], b (3): [0, 1, 2, 3, 5, 7, 8, 9, 11] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 3, 4, 6, 8, 9, 10, 11], b (11): [0, 1, 2, 3, 5, 8, 11] +idx: 10, delta: 2, matching: false, a (12): [1, 2, 5, 9, 10, 11], b (9): [0, 3, 4, 5, 7, 10] +idx: 10, delta: 3, matching: false, a (13): [4, 5, 7, 8, 12], b (8): [0, 3, 5, 6, 8, 9, 10, 12] +idx: 10, delta: 4, matching: false, a (14): [1, 2, 7, 8, 11], b (7): [5, 9, 10, 12] +idx: 10, delta: 5, matching: false, a (15): [4, 6, 7], b (6): [0, 1, 3, 5, 6, 7, 10, 11, 12] +idx: 10, delta: 6, matching: false, a (16): [4, 6, 7], b (5): [1, 2, 4, 7] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [0, 1, 2, 3, 5, 8, 11], b (12): [1, 2, 5, 9, 10, 11] +idx: 11, delta: 2, matching: false, a (13): [4, 5, 7, 8, 12], b (10): [0, 3, 4, 6, 8, 9, 10, 11] +idx: 11, delta: 3, matching: false, a (14): [1, 2, 7, 8, 11], b (9): [0, 3, 4, 5, 7, 10] +idx: 11, delta: 4, matching: false, a (15): [4, 6, 7], b (8): [0, 3, 5, 6, 8, 9, 10, 12] +idx: 11, delta: 5, matching: false, a (16): [4, 6, 7], b (7): [5, 9, 10, 12] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [1, 2, 5, 9, 10, 11], b (13): [4, 5, 7, 8, 12] +idx: 12, delta: 2, matching: false, a (14): [1, 2, 7, 8, 11], b (11): [0, 1, 2, 3, 5, 8, 11] +idx: 12, delta: 3, matching: false, a (15): [4, 6, 7], b (10): [0, 3, 4, 6, 8, 9, 10, 11] +idx: 12, delta: 4, matching: false, a (16): [4, 6, 7], b (9): [0, 3, 4, 5, 7, 10] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: false, a (13): [4, 5, 7, 8, 12], b (14): [1, 2, 7, 8, 11] +idx: 13, delta: 2, matching: false, a (15): [4, 6, 7], b (12): [1, 2, 5, 9, 10, 11] +idx: 13, delta: 3, matching: false, a (16): [4, 6, 7], b (11): [0, 1, 2, 3, 5, 8, 11] +idx: 13 --- EXITING WITH false +idx: 14, delta: 0, matching: false, a (14): [1, 2, 7, 8, 11], b (15): [4, 6, 7] +idx: 14, delta: 2, matching: false, a (16): [4, 6, 7], b (13): [4, 5, 7, 8, 12] +idx: 14 --- EXITING WITH false +idx: 15, delta: 0, matching: true, a (15): [4, 6, 7], b (16): [4, 6, 7] +idx: 15 --- EXITING WITH false +idx: 16 --- EXITING WITH false +......#..#... +.##...####.## +.....#.#..### +####.#.###.#. +#..####..#.## +.##.#..#..... +##.#.###..### +.....#...##.# +#..#.##.###.# +#..###.#..#.. +#..##.#.####. +####.#..#..#. +.##..#...###. +....##.##...# +.##....##..#. +....#.##..... +....#.##..... +2 (vert: 2, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [0, 1, 3, 5], b (1): [0, 1, 2, 4] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 2, 4], b (2): [4, 6] +idx: 1, delta: 2, matching: false, a (3): [4, 6], b (0): [0, 1, 3, 5] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: true, a (2): [4, 6], b (3): [4, 6] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 2, 4, 6], b (1): [0, 1, 2, 4] +idx: 2, delta: 2 --- found smudge! +idx: 2, delta: 3, matching: true, a (5): [0, 1, 3, 5], b (0): [0, 1, 3, 5] +idx: 2 --- EXITING WITH true +idx: 0, delta: 0, matching: true, a (0): [0, 1, 4, 5], b (1): [0, 1, 4, 5] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 4, 5], b (2): [1, 4] +idx: 1, delta: 2, matching: false, a (3): [0, 5], b (0): [0, 1, 4, 5] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 4], b (3): [0, 5] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 3, 4, 6], b (1): [0, 1, 4, 5] +idx: 2, delta: 3, matching: false, a (5): [0, 5], b (0): [0, 1, 4, 5] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 5], b (4): [1, 2, 3, 4, 6] +idx: 3, delta: 2, matching: false, a (5): [0, 5], b (2): [1, 4] +idx: 3, delta: 3, matching: false, a (6): [2, 3, 4], b (1): [0, 1, 4, 5] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 2, 3, 4, 6], b (5): [0, 5] +idx: 4, delta: 2, matching: false, a (6): [2, 3, 4], b (3): [0, 5] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 5], b (6): [2, 3, 4] +idx: 5 --- EXITING WITH false +idx: 6 --- EXITING WITH false +##..##. +##..##. +.#..#.. +#....#. +.####.# +#....#. +..###.. +3 (vert: 3, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [0, 1, 3, 4, 6, 9, 11, 12], b (1): [0, 1, 2, 4, 5, 6, 9, 10, 11] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 2, 4, 5, 6, 9, 10, 11], b (2): [0, 1, 2, 4, 5, 7, 8, 10, 11] +idx: 1, delta: 2, matching: false, a (3): [3, 4, 11, 12], b (0): [0, 1, 3, 4, 6, 9, 11, 12] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 2, 4, 5, 7, 8, 10, 11], b (3): [3, 4, 11, 12] +idx: 2, delta: 2, matching: false, a (4): [2, 7, 8, 9], b (1): [0, 1, 2, 4, 5, 6, 9, 10, 11] +idx: 2, delta: 3, matching: false, a (5): [3, 5, 6, 7, 8, 9, 10, 12], b (0): [0, 1, 3, 4, 6, 9, 11, 12] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [3, 4, 11, 12], b (4): [2, 7, 8, 9] +idx: 3, delta: 2, matching: false, a (5): [3, 5, 6, 7, 8, 9, 10, 12], b (2): [0, 1, 2, 4, 5, 7, 8, 10, 11] +idx: 3, delta: 3, matching: false, a (6): [4, 5, 6, 7, 8, 9, 10, 11], b (1): [0, 1, 2, 4, 5, 6, 9, 10, 11] +idx: 3, delta: 4, matching: false, a (7): [2, 3, 6, 9, 12], b (0): [0, 1, 3, 4, 6, 9, 11, 12] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [2, 7, 8, 9], b (5): [3, 5, 6, 7, 8, 9, 10, 12] +idx: 4, delta: 2, matching: false, a (6): [4, 5, 6, 7, 8, 9, 10, 11], b (3): [3, 4, 11, 12] +idx: 4, delta: 3, matching: false, a (7): [2, 3, 6, 9, 12], b (2): [0, 1, 2, 4, 5, 7, 8, 10, 11] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 2, 3, 7, 8, 12], b (1): [0, 1, 2, 4, 5, 6, 9, 10, 11] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [3, 5, 6, 7, 8, 9, 10, 12], b (6): [4, 5, 6, 7, 8, 9, 10, 11] +idx: 5, delta: 2, matching: false, a (7): [2, 3, 6, 9, 12], b (4): [2, 7, 8, 9] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 2, 3, 7, 8, 12], b (3): [3, 4, 11, 12] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [4, 5, 6, 7, 8, 9, 10, 11], b (7): [2, 3, 6, 9, 12] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 2, 3, 7, 8, 12], b (5): [3, 5, 6, 7, 8, 9, 10, 12] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [2, 3, 6, 9, 12], b (8): [0, 1, 2, 3, 7, 8, 12] +idx: 7 --- EXITING WITH false +idx: 8 --- EXITING WITH false +idx: 0, delta: 0, matching: true, a (0): [0, 1, 2, 8], b (1): [0, 1, 2, 8] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 2, 8], b (2): [1, 2, 4, 7, 8] +idx: 1, delta: 2, matching: false, a (3): [0, 3, 5, 7, 8], b (0): [0, 1, 2, 8] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 2, 4, 7, 8], b (3): [0, 3, 5, 7, 8] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 2, 3, 6], b (1): [0, 1, 2, 8] +idx: 2, delta: 3, matching: false, a (5): [1, 2, 5, 6], b (0): [0, 1, 2, 8] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 3, 5, 7, 8], b (4): [0, 1, 2, 3, 6] +idx: 3, delta: 2, matching: false, a (5): [1, 2, 5, 6], b (2): [1, 2, 4, 7, 8] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 5, 6, 7], b (1): [0, 1, 2, 8] +idx: 3, delta: 4, matching: false, a (7): [2, 4, 5, 6, 8], b (0): [0, 1, 2, 8] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 2, 3, 6], b (5): [1, 2, 5, 6] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 5, 6, 7], b (3): [0, 3, 5, 7, 8] +idx: 4, delta: 3, matching: false, a (7): [2, 4, 5, 6, 8], b (2): [1, 2, 4, 7, 8] +idx: 4, delta: 4, matching: false, a (8): [2, 4, 5, 6, 8], b (1): [0, 1, 2, 8] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 4, 5, 6, 7], b (0): [0, 1, 2, 8] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 2, 5, 6], b (6): [0, 1, 5, 6, 7] +idx: 5, delta: 2, matching: false, a (7): [2, 4, 5, 6, 8], b (4): [0, 1, 2, 3, 6] +idx: 5, delta: 3, matching: false, a (8): [2, 4, 5, 6, 8], b (3): [0, 3, 5, 7, 8] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 4, 5, 6, 7], b (2): [1, 2, 4, 7, 8] +idx: 5, delta: 5, matching: false, a (10): [1, 2, 5, 6], b (1): [0, 1, 2, 8] +idx: 5, delta: 6, matching: false, a (11): [0, 1, 2, 3, 6], b (0): [0, 1, 2, 8] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 1, 5, 6, 7], b (7): [2, 4, 5, 6, 8] +idx: 6, delta: 2, matching: false, a (8): [2, 4, 5, 6, 8], b (5): [1, 2, 5, 6] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 4, 5, 6, 7], b (4): [0, 1, 2, 3, 6] +idx: 6, delta: 4, matching: false, a (10): [1, 2, 5, 6], b (3): [0, 3, 5, 7, 8] +idx: 6, delta: 5, matching: false, a (11): [0, 1, 2, 3, 6], b (2): [1, 2, 4, 7, 8] +idx: 6, delta: 6, matching: false, a (12): [0, 3, 5, 7, 8], b (1): [0, 1, 2, 8] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: true, a (7): [2, 4, 5, 6, 8], b (8): [2, 4, 5, 6, 8] +idx: 7, delta: 2, matching: false, a (9): [0, 1, 4, 5, 6, 7], b (6): [0, 1, 5, 6, 7] +idx: 7, delta: 2 --- found smudge! +idx: 7, delta: 3, matching: true, a (10): [1, 2, 5, 6], b (5): [1, 2, 5, 6] +idx: 7, delta: 4, matching: true, a (11): [0, 1, 2, 3, 6], b (4): [0, 1, 2, 3, 6] +idx: 7, delta: 5, matching: true, a (12): [0, 3, 5, 7, 8], b (3): [0, 3, 5, 7, 8] +idx: 7 --- EXITING WITH true +###.....# +###.....# +.##.#..## +#..#.#.## +####..#.. +.##..##.. +##...###. +..#.###.# +..#.###.# +##..####. +.##..##.. +####..#.. +#..#.#.## +800 (vert: 0, horiz: 8) + +idx: 0, delta: 0, matching: false, a (0): [0, 1, 2, 3, 4, 7, 8], b (1): [4, 5, 6, 7, 8] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [4, 5, 6, 7, 8], b (2): [0, 3, 4, 5, 7] +idx: 1, delta: 2, matching: false, a (3): [4, 5, 6, 7, 8], b (0): [0, 1, 2, 3, 4, 7, 8] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 3, 4, 5, 7], b (3): [4, 5, 6, 7, 8] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 4, 5, 6, 7, 8], b (1): [4, 5, 6, 7, 8] +idx: 2, delta: 3, matching: false, a (5): [4, 5, 8], b (0): [0, 1, 2, 3, 4, 7, 8] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [4, 5, 6, 7, 8], b (4): [1, 2, 4, 5, 6, 7, 8] +idx: 3, delta: 2, matching: false, a (5): [4, 5, 8], b (2): [0, 3, 4, 5, 7] +idx: 3, delta: 3, matching: false, a (6): [4, 5, 6, 8], b (1): [4, 5, 6, 7, 8] +idx: 3, delta: 3 --- found smudge! +idx: 3, delta: 4, matching: false, a (7): [0, 3, 5, 6], b (0): [0, 1, 2, 3, 4, 7, 8] +idx: 3, delta: 4 --- found smudge twice! +idx: 4, delta: 0, matching: false, a (4): [1, 2, 4, 5, 6, 7, 8], b (5): [4, 5, 8] +idx: 4, delta: 2, matching: false, a (6): [4, 5, 6, 8], b (3): [4, 5, 6, 7, 8] +idx: 4, delta: 2 --- found smudge! +idx: 4, delta: 3, matching: false, a (7): [0, 3, 5, 6], b (2): [0, 3, 4, 5, 7] +idx: 4, delta: 3 --- found smudge twice! +idx: 5, delta: 0, matching: false, a (5): [4, 5, 8], b (6): [4, 5, 6, 8] +idx: 5, delta: 0 --- found smudge! +idx: 5, delta: 2, matching: false, a (7): [0, 3, 5, 6], b (4): [1, 2, 4, 5, 6, 7, 8] +idx: 5, delta: 2 --- found smudge twice! +idx: 6, delta: 0, matching: false, a (6): [4, 5, 6, 8], b (7): [0, 3, 5, 6] +idx: 6, delta: 2, matching: false, a (8): [6, 7], b (5): [4, 5, 8] +idx: 6, delta: 3, matching: false, a (9): [0, 3, 4, 5, 6, 7], b (4): [1, 2, 4, 5, 6, 7, 8] +idx: 6, delta: 4, matching: false, a (10): [1, 2, 5, 8], b (3): [4, 5, 6, 7, 8] +idx: 6, delta: 5, matching: false, a (11): [1, 2, 6, 8], b (2): [0, 3, 4, 5, 7] +idx: 6, delta: 6, matching: false, a (12): [6], b (1): [4, 5, 6, 7, 8] +idx: 6, delta: 7, matching: false, a (13): [1, 2, 5], b (0): [0, 1, 2, 3, 4, 7, 8] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 3, 5, 6], b (8): [6, 7] +idx: 7, delta: 2, matching: false, a (9): [0, 3, 4, 5, 6, 7], b (6): [4, 5, 6, 8] +idx: 7, delta: 3, matching: false, a (10): [1, 2, 5, 8], b (5): [4, 5, 8] +idx: 7, delta: 4, matching: false, a (11): [1, 2, 6, 8], b (4): [1, 2, 4, 5, 6, 7, 8] +idx: 7, delta: 5, matching: false, a (12): [6], b (3): [4, 5, 6, 7, 8] +idx: 7, delta: 6, matching: false, a (13): [1, 2, 5], b (2): [0, 3, 4, 5, 7] +idx: 7, delta: 7, matching: false, a (14): [1, 2, 5], b (1): [4, 5, 6, 7, 8] +idx: 7, delta: 8, matching: false, a (15): [6], b (0): [0, 1, 2, 3, 4, 7, 8] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [6, 7], b (9): [0, 3, 4, 5, 6, 7] +idx: 8, delta: 2, matching: false, a (10): [1, 2, 5, 8], b (7): [0, 3, 5, 6] +idx: 8, delta: 3, matching: false, a (11): [1, 2, 6, 8], b (6): [4, 5, 6, 8] +idx: 8, delta: 4, matching: false, a (12): [6], b (5): [4, 5, 8] +idx: 8, delta: 5, matching: false, a (13): [1, 2, 5], b (4): [1, 2, 4, 5, 6, 7, 8] +idx: 8, delta: 6, matching: false, a (14): [1, 2, 5], b (3): [4, 5, 6, 7, 8] +idx: 8, delta: 7, matching: false, a (15): [6], b (2): [0, 3, 4, 5, 7] +idx: 8, delta: 8, matching: false, a (16): [6, 8], b (1): [4, 5, 6, 7, 8] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 3, 4, 5, 6, 7], b (10): [1, 2, 5, 8] +idx: 9, delta: 2, matching: false, a (11): [1, 2, 6, 8], b (8): [6, 7] +idx: 9, delta: 3, matching: false, a (12): [6], b (7): [0, 3, 5, 6] +idx: 9, delta: 4, matching: false, a (13): [1, 2, 5], b (6): [4, 5, 6, 8] +idx: 9, delta: 5, matching: false, a (14): [1, 2, 5], b (5): [4, 5, 8] +idx: 9, delta: 6, matching: false, a (15): [6], b (4): [1, 2, 4, 5, 6, 7, 8] +idx: 9, delta: 7, matching: false, a (16): [6, 8], b (3): [4, 5, 6, 7, 8] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [1, 2, 5, 8], b (11): [1, 2, 6, 8] +idx: 10, delta: 2, matching: false, a (12): [6], b (9): [0, 3, 4, 5, 6, 7] +idx: 10, delta: 3, matching: false, a (13): [1, 2, 5], b (8): [6, 7] +idx: 10, delta: 4, matching: false, a (14): [1, 2, 5], b (7): [0, 3, 5, 6] +idx: 10, delta: 5, matching: false, a (15): [6], b (6): [4, 5, 6, 8] +idx: 10, delta: 6, matching: false, a (16): [6, 8], b (5): [4, 5, 8] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [1, 2, 6, 8], b (12): [6] +idx: 11, delta: 2, matching: false, a (13): [1, 2, 5], b (10): [1, 2, 5, 8] +idx: 11, delta: 2 --- found smudge! +idx: 11, delta: 3, matching: false, a (14): [1, 2, 5], b (9): [0, 3, 4, 5, 6, 7] +idx: 11, delta: 3 --- found smudge twice! +idx: 12, delta: 0, matching: false, a (12): [6], b (13): [1, 2, 5] +idx: 12, delta: 2, matching: false, a (14): [1, 2, 5], b (11): [1, 2, 6, 8] +idx: 12, delta: 3, matching: false, a (15): [6], b (10): [1, 2, 5, 8] +idx: 12, delta: 4, matching: false, a (16): [6, 8], b (9): [0, 3, 4, 5, 6, 7] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: true, a (13): [1, 2, 5], b (14): [1, 2, 5] +idx: 13, delta: 2, matching: true, a (15): [6], b (12): [6] +idx: 13, delta: 3, matching: false, a (16): [6, 8], b (11): [1, 2, 6, 8] +idx: 13 --- EXITING WITH false +idx: 14, delta: 0, matching: false, a (14): [1, 2, 5], b (15): [6] +idx: 14, delta: 2, matching: false, a (16): [6, 8], b (13): [1, 2, 5] +idx: 14 --- EXITING WITH false +idx: 15, delta: 0, matching: false, a (15): [6], b (16): [6, 8] +idx: 15, delta: 0 --- found smudge! +idx: 15 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [0, 2, 7, 9], b (1): [0, 4, 10, 11, 13, 14] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: true, a (1): [0, 4, 10, 11, 13, 14], b (2): [0, 4, 10, 11, 13, 14] +idx: 1, delta: 2, matching: true, a (3): [0, 2, 7, 9], b (0): [0, 2, 7, 9] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 4, 10, 11, 13, 14], b (3): [0, 2, 7, 9] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 2, 3, 4, 5, 6, 9], b (1): [0, 4, 10, 11, 13, 14] +idx: 2, delta: 3, matching: false, a (5): [1, 2, 3, 4, 5, 6, 7, 9, 10, 13, 14], b (0): [0, 2, 7, 9] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 2, 7, 9], b (4): [0, 1, 2, 3, 4, 5, 6, 9] +idx: 3, delta: 2, matching: false, a (5): [1, 2, 3, 4, 5, 6, 7, 9, 10, 13, 14], b (2): [0, 4, 10, 11, 13, 14] +idx: 3, delta: 3, matching: false, a (6): [1, 3, 4, 6, 7, 8, 9, 11, 12, 15, 16], b (1): [0, 4, 10, 11, 13, 14] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 2, 3, 4, 8, 9], b (0): [0, 2, 7, 9] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 2, 3, 4, 5, 6, 9], b (5): [1, 2, 3, 4, 5, 6, 7, 9, 10, 13, 14] +idx: 4, delta: 2, matching: false, a (6): [1, 3, 4, 6, 7, 8, 9, 11, 12, 15, 16], b (3): [0, 2, 7, 9] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 2, 3, 4, 8, 9], b (2): [0, 4, 10, 11, 13, 14] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 3, 4, 5, 6, 10, 11, 16], b (1): [0, 4, 10, 11, 13, 14] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 2, 3, 4, 5, 6, 7, 9, 10, 13, 14], b (6): [1, 3, 4, 6, 7, 8, 9, 11, 12, 15, 16] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 2, 3, 4, 8, 9], b (4): [0, 1, 2, 3, 4, 5, 6, 9] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 3, 4, 5, 6, 10, 11, 16], b (3): [0, 2, 7, 9] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [1, 3, 4, 6, 7, 8, 9, 11, 12, 15, 16], b (7): [0, 1, 2, 3, 4, 8, 9] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 3, 4, 5, 6, 10, 11, 16], b (5): [1, 2, 3, 4, 5, 6, 7, 9, 10, 13, 14] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 2, 3, 4, 8, 9], b (8): [0, 1, 3, 4, 5, 6, 10, 11, 16] +idx: 7 --- EXITING WITH false +idx: 8 --- EXITING WITH false +#.#....#.#....... +#...#.....##.##.. +#...#.....##.##.. +#.#....#.#....... +#######..#....... +.#######.##..##.. +.#.##.####.##..## +#####...##....... +##.####...##....# +16 (vert: 16, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [0, 2, 3, 7, 10, 11, 12], b (1): [3, 4, 6, 8, 10] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [3, 4, 6, 8, 10], b (2): [0, 3, 4, 6, 8] +idx: 1, delta: 2, matching: false, a (3): [2, 3, 4, 5, 7, 8, 11, 12], b (0): [0, 2, 3, 7, 10, 11, 12] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 3, 4, 6, 8], b (3): [2, 3, 4, 5, 7, 8, 11, 12] +idx: 2, delta: 2, matching: false, a (4): [0, 2, 3, 5, 9, 11, 12], b (1): [3, 4, 6, 8, 10] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 2, 4, 6, 8, 10, 11, 12], b (0): [0, 2, 3, 7, 10, 11, 12] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [2, 3, 4, 5, 7, 8, 11, 12], b (4): [0, 2, 3, 5, 9, 11, 12] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 2, 4, 6, 8, 10, 11, 12], b (2): [0, 3, 4, 6, 8] +idx: 3, delta: 3, matching: false, a (6): [0, 3, 5, 6, 9, 11, 12], b (1): [3, 4, 6, 8, 10] +idx: 3, delta: 4, matching: false, a (7): [0, 3, 5, 6, 9, 11, 12], b (0): [0, 2, 3, 7, 10, 11, 12] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 2, 3, 5, 9, 11, 12], b (5): [0, 1, 2, 4, 6, 8, 10, 11, 12] +idx: 4, delta: 2, matching: false, a (6): [0, 3, 5, 6, 9, 11, 12], b (3): [2, 3, 4, 5, 7, 8, 11, 12] +idx: 4, delta: 3, matching: false, a (7): [0, 3, 5, 6, 9, 11, 12], b (2): [0, 3, 4, 6, 8] +idx: 4, delta: 4, matching: false, a (8): [0, 2, 4, 6, 8, 10, 11, 12], b (1): [3, 4, 6, 8, 10] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 2, 4, 6, 8, 10, 11, 12], b (6): [0, 3, 5, 6, 9, 11, 12] +idx: 5, delta: 2, matching: false, a (7): [0, 3, 5, 6, 9, 11, 12], b (4): [0, 2, 3, 5, 9, 11, 12] +idx: 5, delta: 3, matching: false, a (8): [0, 2, 4, 6, 8, 10, 11, 12], b (3): [2, 3, 4, 5, 7, 8, 11, 12] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: true, a (6): [0, 3, 5, 6, 9, 11, 12], b (7): [0, 3, 5, 6, 9, 11, 12] +idx: 6, delta: 2, matching: false, a (8): [0, 2, 4, 6, 8, 10, 11, 12], b (5): [0, 1, 2, 4, 6, 8, 10, 11, 12] +idx: 6, delta: 2 --- found smudge! +idx: 6 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [0, 2, 4, 5, 6, 7, 8], b (1): [5] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [5], b (2): [0, 3, 4, 5, 8] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 2, 3, 4, 6, 7], b (0): [0, 2, 4, 5, 6, 7, 8] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 3, 4, 5, 8], b (3): [0, 1, 2, 3, 4, 6, 7] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 3, 5, 8], b (1): [5] +idx: 2, delta: 3, matching: false, a (5): [3, 4, 6, 7], b (0): [0, 2, 4, 5, 6, 7, 8] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 2, 3, 4, 6, 7], b (4): [1, 2, 3, 5, 8] +idx: 3, delta: 2, matching: false, a (5): [3, 4, 6, 7], b (2): [0, 3, 4, 5, 8] +idx: 3, delta: 3, matching: false, a (6): [1, 2, 5, 6, 7, 8], b (1): [5] +idx: 3, delta: 4, matching: false, a (7): [0, 3], b (0): [0, 2, 4, 5, 6, 7, 8] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 2, 3, 5, 8], b (5): [3, 4, 6, 7] +idx: 4, delta: 2, matching: false, a (6): [1, 2, 5, 6, 7, 8], b (3): [0, 1, 2, 3, 4, 6, 7] +idx: 4, delta: 3, matching: false, a (7): [0, 3], b (2): [0, 3, 4, 5, 8] +idx: 4, delta: 4, matching: false, a (8): [1, 2, 3, 5, 8], b (1): [5] +idx: 4, delta: 5, matching: false, a (9): [4, 6, 7], b (0): [0, 2, 4, 5, 6, 7, 8] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [3, 4, 6, 7], b (6): [1, 2, 5, 6, 7, 8] +idx: 5, delta: 2, matching: false, a (7): [0, 3], b (4): [1, 2, 3, 5, 8] +idx: 5, delta: 3, matching: false, a (8): [1, 2, 3, 5, 8], b (3): [0, 1, 2, 3, 4, 6, 7] +idx: 5, delta: 4, matching: false, a (9): [4, 6, 7], b (2): [0, 3, 4, 5, 8] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 5, 8], b (1): [5] +idx: 5, delta: 6, matching: false, a (11): [0, 3, 4, 5, 6, 7, 8], b (0): [0, 2, 4, 5, 6, 7, 8] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [1, 2, 5, 6, 7, 8], b (7): [0, 3] +idx: 6, delta: 2, matching: false, a (8): [1, 2, 3, 5, 8], b (5): [3, 4, 6, 7] +idx: 6, delta: 3, matching: false, a (9): [4, 6, 7], b (4): [1, 2, 3, 5, 8] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 5, 8], b (3): [0, 1, 2, 3, 4, 6, 7] +idx: 6, delta: 5, matching: false, a (11): [0, 3, 4, 5, 6, 7, 8], b (2): [0, 3, 4, 5, 8] +idx: 6, delta: 6, matching: false, a (12): [0, 3, 4, 5, 6, 7, 8], b (1): [5] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 3], b (8): [1, 2, 3, 5, 8] +idx: 7, delta: 2, matching: false, a (9): [4, 6, 7], b (6): [1, 2, 5, 6, 7, 8] +idx: 7, delta: 3, matching: false, a (10): [0, 1, 5, 8], b (5): [3, 4, 6, 7] +idx: 7, delta: 4, matching: false, a (11): [0, 3, 4, 5, 6, 7, 8], b (4): [1, 2, 3, 5, 8] +idx: 7, delta: 5, matching: false, a (12): [0, 3, 4, 5, 6, 7, 8], b (3): [0, 1, 2, 3, 4, 6, 7] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [1, 2, 3, 5, 8], b (9): [4, 6, 7] +idx: 8, delta: 2, matching: false, a (10): [0, 1, 5, 8], b (7): [0, 3] +idx: 8, delta: 3, matching: false, a (11): [0, 3, 4, 5, 6, 7, 8], b (6): [1, 2, 5, 6, 7, 8] +idx: 8, delta: 4, matching: false, a (12): [0, 3, 4, 5, 6, 7, 8], b (5): [3, 4, 6, 7] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [4, 6, 7], b (10): [0, 1, 5, 8] +idx: 9, delta: 2, matching: false, a (11): [0, 3, 4, 5, 6, 7, 8], b (8): [1, 2, 3, 5, 8] +idx: 9, delta: 3, matching: false, a (12): [0, 3, 4, 5, 6, 7, 8], b (7): [0, 3] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 1, 5, 8], b (11): [0, 3, 4, 5, 6, 7, 8] +idx: 10, delta: 2, matching: false, a (12): [0, 3, 4, 5, 6, 7, 8], b (9): [4, 6, 7] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: true, a (11): [0, 3, 4, 5, 6, 7, 8], b (12): [0, 3, 4, 5, 6, 7, 8] +idx: 11 --- EXITING WITH false +idx: 12 --- EXITING WITH false +#.#.##### +.....#... +#..###..# +#####.##. +.###.#..# +...##.##. +.##..#### +#..#..... +.###.#..# +....#.##. +##...#..# +#..###### +#..###### +7 (vert: 7, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [1, 4, 5], b (1): [0, 2, 4, 5] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 2, 4, 5], b (2): [0, 2, 3, 6] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 2], b (0): [1, 4, 5] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 2, 3, 6], b (3): [0, 1, 2] +idx: 2, delta: 2, matching: false, a (4): [0, 4, 5], b (1): [0, 2, 4, 5] +idx: 2, delta: 2 --- found smudge! +idx: 2, delta: 3, matching: false, a (5): [0, 2, 3, 4, 5, 6], b (0): [1, 4, 5] +idx: 2, delta: 3 --- found smudge twice! +idx: 3, delta: 0, matching: false, a (3): [0, 1, 2], b (4): [0, 4, 5] +idx: 3, delta: 2, matching: false, a (5): [0, 2, 3, 4, 5, 6], b (2): [0, 2, 3, 6] +idx: 3, delta: 3, matching: false, a (6): [3, 4, 5, 6], b (1): [0, 2, 4, 5] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 2, 3, 6], b (0): [1, 4, 5] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 4, 5], b (5): [0, 2, 3, 4, 5, 6] +idx: 4, delta: 2, matching: false, a (6): [3, 4, 5, 6], b (3): [0, 1, 2] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 2, 3, 6], b (2): [0, 2, 3, 6] +idx: 4, delta: 3 --- found smudge! +idx: 4, delta: 4, matching: false, a (8): [1, 2, 3, 6], b (1): [0, 2, 4, 5] +idx: 4, delta: 4 --- found smudge twice! +idx: 5, delta: 0, matching: false, a (5): [0, 2, 3, 4, 5, 6], b (6): [3, 4, 5, 6] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 2, 3, 6], b (4): [0, 4, 5] +idx: 5, delta: 3, matching: false, a (8): [1, 2, 3, 6], b (3): [0, 1, 2] +idx: 5, delta: 4, matching: false, a (9): [1, 2, 3, 6], b (2): [0, 2, 3, 6] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 2, 3, 6], b (1): [0, 2, 4, 5] +idx: 5, delta: 6, matching: false, a (11): [3, 4, 5, 6], b (0): [1, 4, 5] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [3, 4, 5, 6], b (7): [0, 1, 2, 3, 6] +idx: 6, delta: 2, matching: false, a (8): [1, 2, 3, 6], b (5): [0, 2, 3, 4, 5, 6] +idx: 6, delta: 3, matching: false, a (9): [1, 2, 3, 6], b (4): [0, 4, 5] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 2, 3, 6], b (3): [0, 1, 2] +idx: 6, delta: 5, matching: false, a (11): [3, 4, 5, 6], b (2): [0, 2, 3, 6] +idx: 6, delta: 6, matching: false, a (12): [0, 2, 3, 4, 5, 6], b (1): [0, 2, 4, 5] +idx: 6, delta: 7, matching: false, a (13): [0, 1, 4, 5], b (0): [1, 4, 5] +idx: 6, delta: 7 --- found smudge! +idx: 6 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [1, 2, 3, 4, 5, 7, 10, 12, 13, 14, 15, 16], b (1): [0, 3, 7, 8, 9, 10, 13, 14] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 3, 7, 8, 9, 10, 13, 14], b (2): [1, 2, 3, 5, 7, 8, 9, 10, 12, 14, 15, 16] +idx: 1, delta: 2, matching: false, a (3): [2, 5, 6, 7, 8, 9, 10, 11, 12, 15], b (0): [1, 2, 3, 4, 5, 7, 10, 12, 13, 14, 15, 16] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 2, 3, 5, 7, 8, 9, 10, 12, 14, 15, 16], b (3): [2, 5, 6, 7, 8, 9, 10, 11, 12, 15] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 4, 5, 6, 11, 12, 13, 16], b (1): [0, 3, 7, 8, 9, 10, 13, 14] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 4, 5, 6, 11, 12, 13, 16], b (0): [1, 2, 3, 4, 5, 7, 10, 12, 13, 14, 15, 16] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [2, 5, 6, 7, 8, 9, 10, 11, 12, 15], b (4): [0, 1, 4, 5, 6, 11, 12, 13, 16] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 4, 5, 6, 11, 12, 13, 16], b (2): [1, 2, 3, 5, 7, 8, 9, 10, 12, 14, 15, 16] +idx: 3, delta: 3, matching: false, a (6): [2, 5, 6, 7, 8, 9, 10, 11, 12, 15], b (1): [0, 3, 7, 8, 9, 10, 13, 14] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: true, a (4): [0, 1, 4, 5, 6, 11, 12, 13, 16], b (5): [0, 1, 4, 5, 6, 11, 12, 13, 16] +idx: 4, delta: 2, matching: true, a (6): [2, 5, 6, 7, 8, 9, 10, 11, 12, 15], b (3): [2, 5, 6, 7, 8, 9, 10, 11, 12, 15] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 4, 5, 6, 11, 12, 13, 16], b (6): [2, 5, 6, 7, 8, 9, 10, 11, 12, 15] +idx: 5 --- EXITING WITH false +idx: 6 --- EXITING WITH false +.#####.#..#.##### +#..#...####..##.. +.###.#.####.#.### +..#..########..#. +##..###....###..# +##..###....###..# +..#..########..#. +7 (vert: 7, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 15, 16], b (1): [2, 3, 4, 9, 10, 11, 14, 15, 16] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [2, 3, 4, 9, 10, 11, 14, 15, 16], b (2): [2, 4, 5, 6, 7, 8, 9, 11, 14, 15, 16] +idx: 1, delta: 2, matching: false, a (3): [0, 3, 5, 6, 7, 8, 10, 13, 15, 16], b (0): [1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 15, 16] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [2, 4, 5, 6, 7, 8, 9, 11, 14, 15, 16], b (3): [0, 3, 5, 6, 7, 8, 10, 13, 15, 16] +idx: 2, delta: 2, matching: false, a (4): [2, 3, 5, 8, 10, 11, 15, 16], b (1): [2, 3, 4, 9, 10, 11, 14, 15, 16] +idx: 2, delta: 3, matching: false, a (5): [1, 2, 3, 4, 9, 10, 11, 12, 14], b (0): [1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 15, 16] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 3, 5, 6, 7, 8, 10, 13, 15, 16], b (4): [2, 3, 5, 8, 10, 11, 15, 16] +idx: 3, delta: 2, matching: false, a (5): [1, 2, 3, 4, 9, 10, 11, 12, 14], b (2): [2, 4, 5, 6, 7, 8, 9, 11, 14, 15, 16] +idx: 3, delta: 3, matching: false, a (6): [3, 5, 8, 10, 14], b (1): [2, 3, 4, 9, 10, 11, 14, 15, 16] +idx: 3, delta: 4, matching: false, a (7): [3, 4, 5, 8, 9, 10], b (0): [1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 15, 16] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [2, 3, 5, 8, 10, 11, 15, 16], b (5): [1, 2, 3, 4, 9, 10, 11, 12, 14] +idx: 4, delta: 2, matching: false, a (6): [3, 5, 8, 10, 14], b (3): [0, 3, 5, 6, 7, 8, 10, 13, 15, 16] +idx: 4, delta: 3, matching: false, a (7): [3, 4, 5, 8, 9, 10], b (2): [2, 4, 5, 6, 7, 8, 9, 11, 14, 15, 16] +idx: 4, delta: 4, matching: false, a (8): [0, 2, 3, 5, 8, 10, 11, 13, 15, 16], b (1): [2, 3, 4, 9, 10, 11, 14, 15, 16] +idx: 4, delta: 5, matching: false, a (9): [0, 2, 3, 6, 7, 10, 11, 13, 15, 16], b (0): [1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 15, 16] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 2, 3, 4, 9, 10, 11, 12, 14], b (6): [3, 5, 8, 10, 14] +idx: 5, delta: 2, matching: false, a (7): [3, 4, 5, 8, 9, 10], b (4): [2, 3, 5, 8, 10, 11, 15, 16] +idx: 5, delta: 3, matching: false, a (8): [0, 2, 3, 5, 8, 10, 11, 13, 15, 16], b (3): [0, 3, 5, 6, 7, 8, 10, 13, 15, 16] +idx: 5, delta: 4, matching: false, a (9): [0, 2, 3, 6, 7, 10, 11, 13, 15, 16], b (2): [2, 4, 5, 6, 7, 8, 9, 11, 14, 15, 16] +idx: 5, delta: 5, matching: false, a (10): [4, 9, 15, 16], b (1): [2, 3, 4, 9, 10, 11, 14, 15, 16] +idx: 5, delta: 6, matching: false, a (11): [0, 1, 3, 4, 6, 7, 9, 10, 12, 13, 15, 16], b (0): [1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 15, 16] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [3, 5, 8, 10, 14], b (7): [3, 4, 5, 8, 9, 10] +idx: 6, delta: 2, matching: false, a (8): [0, 2, 3, 5, 8, 10, 11, 13, 15, 16], b (5): [1, 2, 3, 4, 9, 10, 11, 12, 14] +idx: 6, delta: 3, matching: false, a (9): [0, 2, 3, 6, 7, 10, 11, 13, 15, 16], b (4): [2, 3, 5, 8, 10, 11, 15, 16] +idx: 6, delta: 4, matching: false, a (10): [4, 9, 15, 16], b (3): [0, 3, 5, 6, 7, 8, 10, 13, 15, 16] +idx: 6, delta: 5, matching: false, a (11): [0, 1, 3, 4, 6, 7, 9, 10, 12, 13, 15, 16], b (2): [2, 4, 5, 6, 7, 8, 9, 11, 14, 15, 16] +idx: 6, delta: 6, matching: false, a (12): [2, 3, 4, 5, 6, 7, 9, 10, 11, 14], b (1): [2, 3, 4, 9, 10, 11, 14, 15, 16] +idx: 6, delta: 7, matching: false, a (13): [0, 1, 4, 6, 7, 9, 12, 13, 14], b (0): [1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 15, 16] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [3, 4, 5, 8, 9, 10], b (8): [0, 2, 3, 5, 8, 10, 11, 13, 15, 16] +idx: 7, delta: 2, matching: false, a (9): [0, 2, 3, 6, 7, 10, 11, 13, 15, 16], b (6): [3, 5, 8, 10, 14] +idx: 7, delta: 3, matching: false, a (10): [4, 9, 15, 16], b (5): [1, 2, 3, 4, 9, 10, 11, 12, 14] +idx: 7, delta: 4, matching: false, a (11): [0, 1, 3, 4, 6, 7, 9, 10, 12, 13, 15, 16], b (4): [2, 3, 5, 8, 10, 11, 15, 16] +idx: 7, delta: 5, matching: false, a (12): [2, 3, 4, 5, 6, 7, 9, 10, 11, 14], b (3): [0, 3, 5, 6, 7, 8, 10, 13, 15, 16] +idx: 7, delta: 6, matching: false, a (13): [0, 1, 4, 6, 7, 9, 12, 13, 14], b (2): [2, 4, 5, 6, 7, 8, 9, 11, 14, 15, 16] +idx: 7, delta: 7, matching: false, a (14): [2, 6, 7, 11], b (1): [2, 3, 4, 9, 10, 11, 14, 15, 16] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 2, 3, 5, 8, 10, 11, 13, 15, 16], b (9): [0, 2, 3, 6, 7, 10, 11, 13, 15, 16] +idx: 8, delta: 2, matching: false, a (10): [4, 9, 15, 16], b (7): [3, 4, 5, 8, 9, 10] +idx: 8, delta: 3, matching: false, a (11): [0, 1, 3, 4, 6, 7, 9, 10, 12, 13, 15, 16], b (6): [3, 5, 8, 10, 14] +idx: 8, delta: 4, matching: false, a (12): [2, 3, 4, 5, 6, 7, 9, 10, 11, 14], b (5): [1, 2, 3, 4, 9, 10, 11, 12, 14] +idx: 8, delta: 5, matching: false, a (13): [0, 1, 4, 6, 7, 9, 12, 13, 14], b (4): [2, 3, 5, 8, 10, 11, 15, 16] +idx: 8, delta: 6, matching: false, a (14): [2, 6, 7, 11], b (3): [0, 3, 5, 6, 7, 8, 10, 13, 15, 16] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 2, 3, 6, 7, 10, 11, 13, 15, 16], b (10): [4, 9, 15, 16] +idx: 9, delta: 2, matching: false, a (11): [0, 1, 3, 4, 6, 7, 9, 10, 12, 13, 15, 16], b (8): [0, 2, 3, 5, 8, 10, 11, 13, 15, 16] +idx: 9, delta: 3, matching: false, a (12): [2, 3, 4, 5, 6, 7, 9, 10, 11, 14], b (7): [3, 4, 5, 8, 9, 10] +idx: 9, delta: 4, matching: false, a (13): [0, 1, 4, 6, 7, 9, 12, 13, 14], b (6): [3, 5, 8, 10, 14] +idx: 9, delta: 5, matching: false, a (14): [2, 6, 7, 11], b (5): [1, 2, 3, 4, 9, 10, 11, 12, 14] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [4, 9, 15, 16], b (11): [0, 1, 3, 4, 6, 7, 9, 10, 12, 13, 15, 16] +idx: 10, delta: 2, matching: false, a (12): [2, 3, 4, 5, 6, 7, 9, 10, 11, 14], b (9): [0, 2, 3, 6, 7, 10, 11, 13, 15, 16] +idx: 10, delta: 3, matching: false, a (13): [0, 1, 4, 6, 7, 9, 12, 13, 14], b (8): [0, 2, 3, 5, 8, 10, 11, 13, 15, 16] +idx: 10, delta: 4, matching: false, a (14): [2, 6, 7, 11], b (7): [3, 4, 5, 8, 9, 10] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [0, 1, 3, 4, 6, 7, 9, 10, 12, 13, 15, 16], b (12): [2, 3, 4, 5, 6, 7, 9, 10, 11, 14] +idx: 11, delta: 2, matching: false, a (13): [0, 1, 4, 6, 7, 9, 12, 13, 14], b (10): [4, 9, 15, 16] +idx: 11, delta: 3, matching: false, a (14): [2, 6, 7, 11], b (9): [0, 2, 3, 6, 7, 10, 11, 13, 15, 16] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [2, 3, 4, 5, 6, 7, 9, 10, 11, 14], b (13): [0, 1, 4, 6, 7, 9, 12, 13, 14] +idx: 12, delta: 2, matching: false, a (14): [2, 6, 7, 11], b (11): [0, 1, 3, 4, 6, 7, 9, 10, 12, 13, 15, 16] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: false, a (13): [0, 1, 4, 6, 7, 9, 12, 13, 14], b (14): [2, 6, 7, 11] +idx: 13 --- EXITING WITH false +idx: 14 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [3, 8, 9, 11, 13], b (1): [0, 5, 11, 13] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 5, 11, 13], b (2): [0, 1, 2, 4, 5, 8, 9, 12, 14] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 12], b (0): [3, 8, 9, 11, 13] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 2, 4, 5, 8, 9, 12, 14], b (3): [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 12] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 2, 5, 7, 10, 11, 12, 13], b (1): [0, 5, 11, 13] +idx: 2, delta: 3, matching: false, a (5): [2, 3, 4, 6, 7, 8, 12], b (0): [3, 8, 9, 11, 13] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 12], b (4): [0, 1, 2, 5, 7, 10, 11, 12, 13] +idx: 3, delta: 2, matching: false, a (5): [2, 3, 4, 6, 7, 8, 12], b (2): [0, 1, 2, 4, 5, 8, 9, 12, 14] +idx: 3, delta: 3, matching: false, a (6): [0, 2, 3, 9, 11, 12, 13, 14], b (1): [0, 5, 11, 13] +idx: 3, delta: 4, matching: false, a (7): [0, 2, 3, 9, 11, 12, 13, 14], b (0): [3, 8, 9, 11, 13] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 2, 5, 7, 10, 11, 12, 13], b (5): [2, 3, 4, 6, 7, 8, 12] +idx: 4, delta: 2, matching: false, a (6): [0, 2, 3, 9, 11, 12, 13, 14], b (3): [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 12] +idx: 4, delta: 3, matching: false, a (7): [0, 2, 3, 9, 11, 12, 13, 14], b (2): [0, 1, 2, 4, 5, 8, 9, 12, 14] +idx: 4, delta: 4, matching: false, a (8): [2, 3, 4, 6, 7, 8], b (1): [0, 5, 11, 13] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 2, 5, 7, 10, 11, 12, 13], b (0): [3, 8, 9, 11, 13] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [2, 3, 4, 6, 7, 8, 12], b (6): [0, 2, 3, 9, 11, 12, 13, 14] +idx: 5, delta: 2, matching: false, a (7): [0, 2, 3, 9, 11, 12, 13, 14], b (4): [0, 1, 2, 5, 7, 10, 11, 12, 13] +idx: 5, delta: 3, matching: false, a (8): [2, 3, 4, 6, 7, 8], b (3): [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 12] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 2, 5, 7, 10, 11, 12, 13], b (2): [0, 1, 2, 4, 5, 8, 9, 12, 14] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 12], b (1): [0, 5, 11, 13] +idx: 5, delta: 6, matching: false, a (11): [0, 1, 2, 4, 5, 8, 9, 12, 14], b (0): [3, 8, 9, 11, 13] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: true, a (6): [0, 2, 3, 9, 11, 12, 13, 14], b (7): [0, 2, 3, 9, 11, 12, 13, 14] +idx: 6, delta: 2, matching: false, a (8): [2, 3, 4, 6, 7, 8], b (5): [2, 3, 4, 6, 7, 8, 12] +idx: 6, delta: 2 --- found smudge! +idx: 6, delta: 3, matching: true, a (9): [0, 1, 2, 5, 7, 10, 11, 12, 13], b (4): [0, 1, 2, 5, 7, 10, 11, 12, 13] +idx: 6, delta: 4, matching: true, a (10): [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 12], b (3): [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 12] +idx: 6, delta: 5, matching: true, a (11): [0, 1, 2, 4, 5, 8, 9, 12, 14], b (2): [0, 1, 2, 4, 5, 8, 9, 12, 14] +idx: 6, delta: 6, matching: true, a (12): [0, 5, 11, 13], b (1): [0, 5, 11, 13] +idx: 6, delta: 7, matching: true, a (13): [3, 8, 9, 11, 13], b (0): [3, 8, 9, 11, 13] +idx: 6 --- EXITING WITH true +...#....##.#.#. +#....#.....#.#. +###.##..##..#.# +##.#######.##.. +###..#.#..####. +..###.###...#.. +#.##.....#.#### +#.##.....#.#### +..###.###...... +###..#.#..####. +##.#######.##.. +###.##..##..#.# +#....#.....#.#. +...#....##.#.#. +.##..##.....##. +#####...####... +#####...####... +700 (vert: 0, horiz: 7) + +idx: 0, delta: 0, matching: false, a (0): [0, 1, 4, 5, 7, 8], b (1): [1, 2, 4, 6] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 2, 4, 6], b (2): [0, 1, 4] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 2], b (0): [0, 1, 4, 5, 7, 8] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 4], b (3): [0, 1, 2] +idx: 2, delta: 2, matching: false, a (4): [0, 2, 4], b (1): [1, 2, 4, 6] +idx: 2, delta: 3, matching: false, a (5): [2, 5, 7, 8], b (0): [0, 1, 4, 5, 7, 8] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 2], b (4): [0, 2, 4] +idx: 3, delta: 2, matching: false, a (5): [2, 5, 7, 8], b (2): [0, 1, 4] +idx: 3, delta: 3, matching: false, a (6): [1, 5, 8], b (1): [1, 2, 4, 6] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 2, 3, 6], b (0): [0, 1, 4, 5, 7, 8] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 2, 4], b (5): [2, 5, 7, 8] +idx: 4, delta: 2, matching: false, a (6): [1, 5, 8], b (3): [0, 1, 2] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 2, 3, 6], b (2): [0, 1, 4] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 2, 4, 6, 7, 8], b (1): [1, 2, 4, 6] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 4, 5, 6], b (0): [0, 1, 4, 5, 7, 8] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [2, 5, 7, 8], b (6): [1, 5, 8] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 2, 3, 6], b (4): [0, 2, 4] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 2, 4, 6, 7, 8], b (3): [0, 1, 2] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 4, 5, 6], b (2): [0, 1, 4] +idx: 5, delta: 5, matching: false, a (10): [0, 3, 5], b (1): [1, 2, 4, 6] +idx: 5, delta: 6, matching: false, a (11): [0, 2, 4, 5, 6], b (0): [0, 1, 4, 5, 7, 8] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [1, 5, 8], b (7): [0, 1, 2, 3, 6] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 2, 4, 6, 7, 8], b (5): [2, 5, 7, 8] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 4, 5, 6], b (4): [0, 2, 4] +idx: 6, delta: 4, matching: false, a (10): [0, 3, 5], b (3): [0, 1, 2] +idx: 6, delta: 5, matching: false, a (11): [0, 2, 4, 5, 6], b (2): [0, 1, 4] +idx: 6, delta: 6, matching: false, a (12): [0, 2, 4, 5, 6], b (1): [1, 2, 4, 6] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 2, 3, 6], b (8): [0, 1, 2, 4, 6, 7, 8] +idx: 7, delta: 2, matching: false, a (9): [0, 1, 4, 5, 6], b (6): [1, 5, 8] +idx: 7, delta: 3, matching: false, a (10): [0, 3, 5], b (5): [2, 5, 7, 8] +idx: 7, delta: 4, matching: false, a (11): [0, 2, 4, 5, 6], b (4): [0, 2, 4] +idx: 7, delta: 5, matching: false, a (12): [0, 2, 4, 5, 6], b (3): [0, 1, 2] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 1, 2, 4, 6, 7, 8], b (9): [0, 1, 4, 5, 6] +idx: 8, delta: 2, matching: false, a (10): [0, 3, 5], b (7): [0, 1, 2, 3, 6] +idx: 8, delta: 3, matching: false, a (11): [0, 2, 4, 5, 6], b (6): [1, 5, 8] +idx: 8, delta: 4, matching: false, a (12): [0, 2, 4, 5, 6], b (5): [2, 5, 7, 8] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 1, 4, 5, 6], b (10): [0, 3, 5] +idx: 9, delta: 2, matching: false, a (11): [0, 2, 4, 5, 6], b (8): [0, 1, 2, 4, 6, 7, 8] +idx: 9, delta: 3, matching: false, a (12): [0, 2, 4, 5, 6], b (7): [0, 1, 2, 3, 6] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 3, 5], b (11): [0, 2, 4, 5, 6] +idx: 10, delta: 2, matching: false, a (12): [0, 2, 4, 5, 6], b (9): [0, 1, 4, 5, 6] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: true, a (11): [0, 2, 4, 5, 6], b (12): [0, 2, 4, 5, 6] +idx: 11 --- EXITING WITH false +idx: 12 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [0, 2, 3, 4, 7, 8, 9, 10, 11, 12], b (1): [0, 1, 2, 3, 6, 7, 8, 9] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 2, 3, 6, 7, 8, 9], b (2): [1, 3, 4, 5, 7, 8, 11, 12] +idx: 1, delta: 2, matching: false, a (3): [7, 10], b (0): [0, 2, 3, 4, 7, 8, 9, 10, 11, 12] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 3, 4, 5, 7, 8, 11, 12], b (3): [7, 10] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 2, 4, 8, 9, 11, 12], b (1): [0, 1, 2, 3, 6, 7, 8, 9] +idx: 2, delta: 3, matching: false, a (5): [0, 5, 6, 9, 10, 11, 12], b (0): [0, 2, 3, 4, 7, 8, 9, 10, 11, 12] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [7, 10], b (4): [0, 1, 2, 4, 8, 9, 11, 12] +idx: 3, delta: 2, matching: false, a (5): [0, 5, 6, 9, 10, 11, 12], b (2): [1, 3, 4, 5, 7, 8, 11, 12] +idx: 3, delta: 3, matching: false, a (6): [1, 7, 8, 9, 11, 12], b (1): [0, 1, 2, 3, 6, 7, 8, 9] +idx: 3, delta: 4, matching: false, a (7): [0, 5, 8], b (0): [0, 2, 3, 4, 7, 8, 9, 10, 11, 12] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 2, 4, 8, 9, 11, 12], b (5): [0, 5, 6, 9, 10, 11, 12] +idx: 4, delta: 2, matching: false, a (6): [1, 7, 8, 9, 11, 12], b (3): [7, 10] +idx: 4, delta: 3, matching: false, a (7): [0, 5, 8], b (2): [1, 3, 4, 5, 7, 8, 11, 12] +idx: 4, delta: 4, matching: false, a (8): [0, 5, 6, 8], b (1): [0, 1, 2, 3, 6, 7, 8, 9] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 5, 6, 9, 10, 11, 12], b (6): [1, 7, 8, 9, 11, 12] +idx: 5, delta: 2, matching: false, a (7): [0, 5, 8], b (4): [0, 1, 2, 4, 8, 9, 11, 12] +idx: 5, delta: 3, matching: false, a (8): [0, 5, 6, 8], b (3): [7, 10] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [1, 7, 8, 9, 11, 12], b (7): [0, 5, 8] +idx: 6, delta: 2, matching: false, a (8): [0, 5, 6, 8], b (5): [0, 5, 6, 9, 10, 11, 12] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 5, 8], b (8): [0, 5, 6, 8] +idx: 7, delta: 0 --- found smudge! +idx: 7 --- EXITING WITH true +#.###..###### +####..####... +.#.###.##..## +.......#..#.. +###.#...##.## +#....##..#### +.#.....###.## +#....#..#.... +#....##.#.... +800 (vert: 0, horiz: 8) + +idx: 0, delta: 0, matching: false, a (0): [8, 9, 10, 11, 12], b (1): [1, 2, 5, 6, 8, 10, 11] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 2, 5, 6, 8, 10, 11], b (2): [0, 1, 3, 4, 5, 6, 7, 9, 10, 11, 12] +idx: 1, delta: 2, matching: false, a (3): [1, 2, 3, 4, 5, 6, 10, 11], b (0): [8, 9, 10, 11, 12] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 3, 4, 5, 6, 7, 9, 10, 11, 12], b (3): [1, 2, 3, 4, 5, 6, 10, 11] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 3, 4, 6, 7, 8], b (1): [1, 2, 5, 6, 8, 10, 11] +idx: 2, delta: 3, matching: false, a (5): [0, 2, 5, 7, 8], b (0): [8, 9, 10, 11, 12] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 2, 3, 4, 5, 6, 10, 11], b (4): [0, 1, 3, 4, 6, 7, 8] +idx: 3, delta: 2, matching: false, a (5): [0, 2, 5, 7, 8], b (2): [0, 1, 3, 4, 5, 6, 7, 9, 10, 11, 12] +idx: 3, delta: 3, matching: false, a (6): [1, 3, 4, 6, 10, 11], b (1): [1, 2, 5, 6, 8, 10, 11] +idx: 3, delta: 4, matching: false, a (7): [1, 2, 3, 4, 5, 6, 10, 11], b (0): [8, 9, 10, 11, 12] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 3, 4, 6, 7, 8], b (5): [0, 2, 5, 7, 8] +idx: 4, delta: 2, matching: false, a (6): [1, 3, 4, 6, 10, 11], b (3): [1, 2, 3, 4, 5, 6, 10, 11] +idx: 4, delta: 3, matching: false, a (7): [1, 2, 3, 4, 5, 6, 10, 11], b (2): [0, 1, 3, 4, 5, 6, 7, 9, 10, 11, 12] +idx: 4, delta: 4, matching: false, a (8): [1, 2, 3, 4, 5, 6, 8, 10, 11], b (1): [1, 2, 5, 6, 8, 10, 11] +idx: 4, delta: 5, matching: false, a (9): [1, 2, 5, 6, 8, 10, 11], b (0): [8, 9, 10, 11, 12] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 2, 5, 7, 8], b (6): [1, 3, 4, 6, 10, 11] +idx: 5, delta: 2, matching: false, a (7): [1, 2, 3, 4, 5, 6, 10, 11], b (4): [0, 1, 3, 4, 6, 7, 8] +idx: 5, delta: 3, matching: false, a (8): [1, 2, 3, 4, 5, 6, 8, 10, 11], b (3): [1, 2, 3, 4, 5, 6, 10, 11] +idx: 5, delta: 3 --- found smudge! +idx: 5, delta: 4, matching: false, a (9): [1, 2, 5, 6, 8, 10, 11], b (2): [0, 1, 3, 4, 5, 6, 7, 9, 10, 11, 12] +idx: 5, delta: 4 --- found smudge twice! +idx: 6, delta: 0, matching: false, a (6): [1, 3, 4, 6, 10, 11], b (7): [1, 2, 3, 4, 5, 6, 10, 11] +idx: 6, delta: 2, matching: false, a (8): [1, 2, 3, 4, 5, 6, 8, 10, 11], b (5): [0, 2, 5, 7, 8] +idx: 6, delta: 3, matching: false, a (9): [1, 2, 5, 6, 8, 10, 11], b (4): [0, 1, 3, 4, 6, 7, 8] +idx: 6, delta: 4, matching: false, a (10): [3, 4, 8], b (3): [1, 2, 3, 4, 5, 6, 10, 11] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [1, 2, 3, 4, 5, 6, 10, 11], b (8): [1, 2, 3, 4, 5, 6, 8, 10, 11] +idx: 7, delta: 0 --- found smudge! +idx: 7, delta: 2, matching: false, a (9): [1, 2, 5, 6, 8, 10, 11], b (6): [1, 3, 4, 6, 10, 11] +idx: 7, delta: 2 --- found smudge twice! +idx: 8, delta: 0, matching: false, a (8): [1, 2, 3, 4, 5, 6, 8, 10, 11], b (9): [1, 2, 5, 6, 8, 10, 11] +idx: 8, delta: 2, matching: false, a (10): [3, 4, 8], b (7): [1, 2, 3, 4, 5, 6, 10, 11] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [1, 2, 5, 6, 8, 10, 11], b (10): [3, 4, 8] +idx: 9 --- EXITING WITH false +idx: 10 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [2, 4, 5], b (1): [1, 2, 3, 4, 6, 7, 8, 9] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 2, 3, 4, 6, 7, 8, 9], b (2): [1, 3, 5, 7, 8, 9] +idx: 1, delta: 2, matching: false, a (3): [2, 3, 4, 6, 7, 8, 10], b (0): [2, 4, 5] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 3, 5, 7, 8, 9], b (3): [2, 3, 4, 6, 7, 8, 10] +idx: 2, delta: 2, matching: false, a (4): [2, 3, 4, 6, 7, 8, 10], b (1): [1, 2, 3, 4, 6, 7, 8, 9] +idx: 2, delta: 3, matching: false, a (5): [1, 2, 3, 5, 7, 8, 9], b (0): [2, 4, 5] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: true, a (3): [2, 3, 4, 6, 7, 8, 10], b (4): [2, 3, 4, 6, 7, 8, 10] +idx: 3, delta: 2, matching: false, a (5): [1, 2, 3, 5, 7, 8, 9], b (2): [1, 3, 5, 7, 8, 9] +idx: 3, delta: 2 --- found smudge! +idx: 3, delta: 3, matching: true, a (6): [1, 2, 3, 4, 6, 7, 8, 9], b (1): [1, 2, 3, 4, 6, 7, 8, 9] +idx: 3, delta: 4, matching: true, a (7): [2, 4, 5], b (0): [2, 4, 5] +idx: 3 --- EXITING WITH true +..#.##..... +.####.####. +.#.#.#.###. +..###.###.# +..###.###.# +.###.#.###. +.####.####. +..#.##..... +##..##..### +#.#........ +####..####. +####..####. +#.#........ +400 (vert: 0, horiz: 4) + +idx: 0, delta: 0, matching: false, a (0): [1, 3, 5, 6, 10, 11], b (1): [1, 2, 4, 7, 9, 11] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 2, 4, 7, 9, 11], b (2): [1, 4, 5, 8, 11, 12] +idx: 1, delta: 2, matching: false, a (3): [1, 4, 5, 8, 11, 12], b (0): [1, 3, 5, 6, 10, 11] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: true, a (2): [1, 4, 5, 8, 11, 12], b (3): [1, 4, 5, 8, 11, 12] +idx: 2, delta: 2, matching: true, a (4): [1, 2, 4, 7, 9, 11], b (1): [1, 2, 4, 7, 9, 11] +idx: 2, delta: 3, matching: false, a (5): [1, 3, 4, 5, 6, 10, 11], b (0): [1, 3, 5, 6, 10, 11] +idx: 2, delta: 3 --- found smudge! +idx: 2 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [6], b (1): [0, 1, 2, 3, 4, 5] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 2, 3, 4, 5], b (2): [1, 4, 7, 8] +idx: 1, delta: 2, matching: false, a (3): [0, 5, 6, 7, 8], b (0): [6] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 4, 7, 8], b (3): [0, 5, 6, 7, 8] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 3, 4, 5, 7, 8], b (1): [0, 1, 2, 3, 4, 5] +idx: 2, delta: 3, matching: false, a (5): [0, 2, 3, 5, 6], b (0): [6] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 5, 6, 7, 8], b (4): [1, 2, 3, 4, 5, 7, 8] +idx: 3, delta: 2, matching: false, a (5): [0, 2, 3, 5, 6], b (2): [1, 4, 7, 8] +idx: 3, delta: 3, matching: false, a (6): [0, 5, 6], b (1): [0, 1, 2, 3, 4, 5] +idx: 3, delta: 4, matching: false, a (7): [1, 4], b (0): [6] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 2, 3, 4, 5, 7, 8], b (5): [0, 2, 3, 5, 6] +idx: 4, delta: 2, matching: false, a (6): [0, 5, 6], b (3): [0, 5, 6, 7, 8] +idx: 4, delta: 3, matching: false, a (7): [1, 4], b (2): [1, 4, 7, 8] +idx: 4, delta: 4, matching: false, a (8): [2, 3, 6, 7, 8], b (1): [0, 1, 2, 3, 4, 5] +idx: 4, delta: 5, matching: false, a (9): [1, 4, 7, 8], b (0): [6] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 2, 3, 5, 6], b (6): [0, 5, 6] +idx: 5, delta: 2, matching: false, a (7): [1, 4], b (4): [1, 2, 3, 4, 5, 7, 8] +idx: 5, delta: 3, matching: false, a (8): [2, 3, 6, 7, 8], b (3): [0, 5, 6, 7, 8] +idx: 5, delta: 4, matching: true, a (9): [1, 4, 7, 8], b (2): [1, 4, 7, 8] +idx: 5, delta: 5, matching: false, a (10): [0, 5, 7, 8], b (1): [0, 1, 2, 3, 4, 5] +idx: 5, delta: 6, matching: false, a (11): [0, 1, 2, 3, 4, 5, 6], b (0): [6] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 5, 6], b (7): [1, 4] +idx: 6, delta: 2, matching: false, a (8): [2, 3, 6, 7, 8], b (5): [0, 2, 3, 5, 6] +idx: 6, delta: 3, matching: false, a (9): [1, 4, 7, 8], b (4): [1, 2, 3, 4, 5, 7, 8] +idx: 6, delta: 4, matching: false, a (10): [0, 5, 7, 8], b (3): [0, 5, 6, 7, 8] +idx: 6, delta: 4 --- found smudge! +idx: 6, delta: 5, matching: false, a (11): [0, 1, 2, 3, 4, 5, 6], b (2): [1, 4, 7, 8] +idx: 6, delta: 5 --- found smudge twice! +idx: 7, delta: 0, matching: false, a (7): [1, 4], b (8): [2, 3, 6, 7, 8] +idx: 7, delta: 2, matching: false, a (9): [1, 4, 7, 8], b (6): [0, 5, 6] +idx: 7, delta: 3, matching: false, a (10): [0, 5, 7, 8], b (5): [0, 2, 3, 5, 6] +idx: 7, delta: 4, matching: false, a (11): [0, 1, 2, 3, 4, 5, 6], b (4): [1, 2, 3, 4, 5, 7, 8] +idx: 7, delta: 5, matching: false, a (12): [2, 3, 7, 8], b (3): [0, 5, 6, 7, 8] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [2, 3, 6, 7, 8], b (9): [1, 4, 7, 8] +idx: 8, delta: 2, matching: false, a (10): [0, 5, 7, 8], b (7): [1, 4] +idx: 8, delta: 3, matching: false, a (11): [0, 1, 2, 3, 4, 5, 6], b (6): [0, 5, 6] +idx: 8, delta: 4, matching: false, a (12): [2, 3, 7, 8], b (5): [0, 2, 3, 5, 6] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [1, 4, 7, 8], b (10): [0, 5, 7, 8] +idx: 9, delta: 2, matching: false, a (11): [0, 1, 2, 3, 4, 5, 6], b (8): [2, 3, 6, 7, 8] +idx: 9, delta: 3, matching: false, a (12): [2, 3, 7, 8], b (7): [1, 4] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 5, 7, 8], b (11): [0, 1, 2, 3, 4, 5, 6] +idx: 10, delta: 2, matching: false, a (12): [2, 3, 7, 8], b (9): [1, 4, 7, 8] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [0, 1, 2, 3, 4, 5, 6], b (12): [2, 3, 7, 8] +idx: 11 --- EXITING WITH false +idx: 12 --- EXITING WITH false +......#.. +######... +.#..#..## +#....#### +.#####.## +#.##.##.. +#....##.. +.#..#.... +..##..### +.#..#..## +#....#.## +#######.. +..##...## +3 (vert: 3, horiz: 0) + +idx: 0, delta: 0, matching: true, a (0): [2, 4, 5, 6, 7, 8, 9], b (1): [2, 4, 5, 6, 7, 8, 9] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [2, 4, 5, 6, 7, 8, 9], b (2): [0, 2, 3, 6, 8, 10] +idx: 1, delta: 2, matching: false, a (3): [1, 2, 3, 8, 9], b (0): [2, 4, 5, 6, 7, 8, 9] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 2, 3, 6, 8, 10], b (3): [1, 2, 3, 8, 9] +idx: 2, delta: 2, matching: false, a (4): [1, 3, 4, 5, 6, 9], b (1): [2, 4, 5, 6, 7, 8, 9] +idx: 2, delta: 3, matching: false, a (5): [0, 2, 5, 7, 9, 10], b (0): [2, 4, 5, 6, 7, 8, 9] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 2, 3, 8, 9], b (4): [1, 3, 4, 5, 6, 9] +idx: 3, delta: 2, matching: false, a (5): [0, 2, 5, 7, 9, 10], b (2): [0, 2, 3, 6, 8, 10] +idx: 3, delta: 3, matching: false, a (6): [2, 4, 7, 8, 10], b (1): [2, 4, 5, 6, 7, 8, 9] +idx: 3, delta: 4, matching: false, a (7): [2, 4, 7, 8, 10], b (0): [2, 4, 5, 6, 7, 8, 9] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 3, 4, 5, 6, 9], b (5): [0, 2, 5, 7, 9, 10] +idx: 4, delta: 2, matching: false, a (6): [2, 4, 7, 8, 10], b (3): [1, 2, 3, 8, 9] +idx: 4, delta: 3, matching: false, a (7): [2, 4, 7, 8, 10], b (2): [0, 2, 3, 6, 8, 10] +idx: 4, delta: 4, matching: false, a (8): [0, 2, 4, 5, 7, 9, 10], b (1): [2, 4, 5, 6, 7, 8, 9] +idx: 4, delta: 5, matching: false, a (9): [1, 3, 4, 5, 6, 9], b (0): [2, 4, 5, 6, 7, 8, 9] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 2, 5, 7, 9, 10], b (6): [2, 4, 7, 8, 10] +idx: 5, delta: 2, matching: false, a (7): [2, 4, 7, 8, 10], b (4): [1, 3, 4, 5, 6, 9] +idx: 5, delta: 3, matching: false, a (8): [0, 2, 4, 5, 7, 9, 10], b (3): [1, 2, 3, 8, 9] +idx: 5, delta: 4, matching: false, a (9): [1, 3, 4, 5, 6, 9], b (2): [0, 2, 3, 6, 8, 10] +idx: 5, delta: 5, matching: false, a (10): [1, 2, 3, 8, 9], b (1): [2, 4, 5, 6, 7, 8, 9] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: true, a (6): [2, 4, 7, 8, 10], b (7): [2, 4, 7, 8, 10] +idx: 6, delta: 2, matching: false, a (8): [0, 2, 4, 5, 7, 9, 10], b (5): [0, 2, 5, 7, 9, 10] +idx: 6, delta: 2 --- found smudge! +idx: 6, delta: 3, matching: true, a (9): [1, 3, 4, 5, 6, 9], b (4): [1, 3, 4, 5, 6, 9] +idx: 6, delta: 4, matching: true, a (10): [1, 2, 3, 8, 9], b (3): [1, 2, 3, 8, 9] +idx: 6 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [2, 5, 8], b (1): [3, 4, 9, 10] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [3, 4, 9, 10], b (2): [0, 1, 2, 3, 5, 6, 7, 8, 10] +idx: 1, delta: 2, matching: false, a (3): [2, 3, 4, 9, 10], b (0): [2, 5, 8] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 2, 3, 5, 6, 7, 8, 10], b (3): [2, 3, 4, 9, 10] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 4, 6, 7, 8, 9], b (1): [3, 4, 9, 10] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 4, 5, 8, 9], b (0): [2, 5, 8] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [2, 3, 4, 9, 10], b (4): [0, 1, 4, 6, 7, 8, 9] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 4, 5, 8, 9], b (2): [0, 1, 2, 3, 5, 6, 7, 8, 10] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 2, 4, 9], b (1): [3, 4, 9, 10] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 5, 6, 7, 8], b (0): [2, 5, 8] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 4, 6, 7, 8, 9], b (5): [0, 1, 4, 5, 8, 9] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 2, 4, 9], b (3): [2, 3, 4, 9, 10] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 5, 6, 7, 8], b (2): [0, 1, 2, 3, 5, 6, 7, 8, 10] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 2, 3, 6, 7, 10], b (1): [3, 4, 9, 10] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 3, 4, 5, 8, 9, 10], b (0): [2, 5, 8] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 4, 5, 8, 9], b (6): [0, 1, 2, 4, 9] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 5, 6, 7, 8], b (4): [0, 1, 4, 6, 7, 8, 9] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 2, 3, 6, 7, 10], b (3): [2, 3, 4, 9, 10] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 3, 4, 5, 8, 9, 10], b (2): [0, 1, 2, 3, 5, 6, 7, 8, 10] +idx: 5, delta: 5, matching: false, a (10): [2, 5, 6, 7, 8], b (1): [3, 4, 9, 10] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 1, 2, 4, 9], b (7): [0, 1, 5, 6, 7, 8] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 2, 3, 6, 7, 10], b (5): [0, 1, 4, 5, 8, 9] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 3, 4, 5, 8, 9, 10], b (4): [0, 1, 4, 6, 7, 8, 9] +idx: 6, delta: 4, matching: false, a (10): [2, 5, 6, 7, 8], b (3): [2, 3, 4, 9, 10] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 5, 6, 7, 8], b (8): [0, 1, 2, 3, 6, 7, 10] +idx: 7, delta: 2, matching: false, a (9): [0, 1, 3, 4, 5, 8, 9, 10], b (6): [0, 1, 2, 4, 9] +idx: 7, delta: 3, matching: false, a (10): [2, 5, 6, 7, 8], b (5): [0, 1, 4, 5, 8, 9] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 1, 2, 3, 6, 7, 10], b (9): [0, 1, 3, 4, 5, 8, 9, 10] +idx: 8, delta: 2, matching: false, a (10): [2, 5, 6, 7, 8], b (7): [0, 1, 5, 6, 7, 8] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 1, 3, 4, 5, 8, 9, 10], b (10): [2, 5, 6, 7, 8] +idx: 9 --- EXITING WITH false +idx: 10 --- EXITING WITH false +..#..#..#.. +...##....## +####.####.# +..###....## +##..#.####. +##..##..##. +###.#....#. +##...####.. +####..##..# +##.###..### +..#..####.. +7 (vert: 7, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [0, 1, 2, 4, 5], b (1): [0, 1, 3, 5, 6] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 3, 5, 6], b (2): [3, 6] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 3, 4, 5, 6], b (0): [0, 1, 2, 4, 5] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [3, 6], b (3): [0, 1, 3, 4, 5, 6] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 3, 6], b (1): [0, 1, 3, 5, 6] +idx: 2, delta: 2 --- found smudge! +idx: 2, delta: 3, matching: false, a (5): [0, 1, 3, 4, 5, 6], b (0): [0, 1, 2, 4, 5] +idx: 2, delta: 3 --- found smudge twice! +idx: 3, delta: 0, matching: false, a (3): [0, 1, 3, 4, 5, 6], b (4): [0, 1, 3, 6] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 3, 4, 5, 6], b (2): [3, 6] +idx: 3, delta: 3, matching: false, a (6): [2], b (1): [0, 1, 3, 5, 6] +idx: 3, delta: 4, matching: false, a (7): [2, 3, 6], b (0): [0, 1, 2, 4, 5] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 3, 6], b (5): [0, 1, 3, 4, 5, 6] +idx: 4, delta: 2, matching: false, a (6): [2], b (3): [0, 1, 3, 4, 5, 6] +idx: 4, delta: 3, matching: false, a (7): [2, 3, 6], b (2): [3, 6] +idx: 4, delta: 3 --- found smudge! +idx: 4, delta: 4, matching: false, a (8): [2], b (1): [0, 1, 3, 5, 6] +idx: 4, delta: 4 --- found smudge twice! +idx: 5, delta: 0, matching: false, a (5): [0, 1, 3, 4, 5, 6], b (6): [2] +idx: 5, delta: 2, matching: false, a (7): [2, 3, 6], b (4): [0, 1, 3, 6] +idx: 5, delta: 3, matching: false, a (8): [2], b (3): [0, 1, 3, 4, 5, 6] +idx: 5, delta: 4, matching: false, a (9): [4, 5], b (2): [3, 6] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 3, 6], b (1): [0, 1, 3, 5, 6] +idx: 5, delta: 5 --- found smudge! +idx: 5, delta: 6, matching: false, a (11): [0, 1, 2], b (0): [0, 1, 2, 4, 5] +idx: 5, delta: 6 --- found smudge twice! +idx: 6, delta: 0, matching: false, a (6): [2], b (7): [2, 3, 6] +idx: 6, delta: 2, matching: false, a (8): [2], b (5): [0, 1, 3, 4, 5, 6] +idx: 6, delta: 3, matching: false, a (9): [4, 5], b (4): [0, 1, 3, 6] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 3, 6], b (3): [0, 1, 3, 4, 5, 6] +idx: 6, delta: 5, matching: false, a (11): [0, 1, 2], b (2): [3, 6] +idx: 6, delta: 6, matching: false, a (12): [2, 3, 6], b (1): [0, 1, 3, 5, 6] +idx: 6, delta: 7, matching: false, a (13): [0, 1, 3, 6], b (0): [0, 1, 2, 4, 5] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [2, 3, 6], b (8): [2] +idx: 7, delta: 2, matching: false, a (9): [4, 5], b (6): [2] +idx: 7, delta: 3, matching: false, a (10): [0, 1, 3, 6], b (5): [0, 1, 3, 4, 5, 6] +idx: 7, delta: 4, matching: false, a (11): [0, 1, 2], b (4): [0, 1, 3, 6] +idx: 7, delta: 5, matching: false, a (12): [2, 3, 6], b (3): [0, 1, 3, 4, 5, 6] +idx: 7, delta: 6, matching: false, a (13): [0, 1, 3, 6], b (2): [3, 6] +idx: 7, delta: 7, matching: false, a (14): [3, 4, 5, 6], b (1): [0, 1, 3, 5, 6] +idx: 7, delta: 8, matching: false, a (15): [3, 6], b (0): [0, 1, 2, 4, 5] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [2], b (9): [4, 5] +idx: 8, delta: 2, matching: false, a (10): [0, 1, 3, 6], b (7): [2, 3, 6] +idx: 8, delta: 3, matching: false, a (11): [0, 1, 2], b (6): [2] +idx: 8, delta: 4, matching: false, a (12): [2, 3, 6], b (5): [0, 1, 3, 4, 5, 6] +idx: 8, delta: 5, matching: true, a (13): [0, 1, 3, 6], b (4): [0, 1, 3, 6] +idx: 8, delta: 6, matching: false, a (14): [3, 4, 5, 6], b (3): [0, 1, 3, 4, 5, 6] +idx: 8, delta: 7, matching: true, a (15): [3, 6], b (2): [3, 6] +idx: 8, delta: 8, matching: false, a (16): [0, 1, 4, 5], b (1): [0, 1, 3, 5, 6] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [4, 5], b (10): [0, 1, 3, 6] +idx: 9, delta: 2, matching: false, a (11): [0, 1, 2], b (8): [2] +idx: 9, delta: 3, matching: true, a (12): [2, 3, 6], b (7): [2, 3, 6] +idx: 9, delta: 4, matching: false, a (13): [0, 1, 3, 6], b (6): [2] +idx: 9, delta: 5, matching: false, a (14): [3, 4, 5, 6], b (5): [0, 1, 3, 4, 5, 6] +idx: 9, delta: 6, matching: false, a (15): [3, 6], b (4): [0, 1, 3, 6] +idx: 9, delta: 7, matching: false, a (16): [0, 1, 4, 5], b (3): [0, 1, 3, 4, 5, 6] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 1, 3, 6], b (11): [0, 1, 2] +idx: 10, delta: 2, matching: false, a (12): [2, 3, 6], b (9): [4, 5] +idx: 10, delta: 3, matching: false, a (13): [0, 1, 3, 6], b (8): [2] +idx: 10, delta: 4, matching: false, a (14): [3, 4, 5, 6], b (7): [2, 3, 6] +idx: 10, delta: 5, matching: false, a (15): [3, 6], b (6): [2] +idx: 10, delta: 6, matching: false, a (16): [0, 1, 4, 5], b (5): [0, 1, 3, 4, 5, 6] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [0, 1, 2], b (12): [2, 3, 6] +idx: 11, delta: 2, matching: true, a (13): [0, 1, 3, 6], b (10): [0, 1, 3, 6] +idx: 11, delta: 3, matching: false, a (14): [3, 4, 5, 6], b (9): [4, 5] +idx: 11, delta: 4, matching: false, a (15): [3, 6], b (8): [2] +idx: 11, delta: 5, matching: false, a (16): [0, 1, 4, 5], b (7): [2, 3, 6] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [2, 3, 6], b (13): [0, 1, 3, 6] +idx: 12, delta: 2, matching: false, a (14): [3, 4, 5, 6], b (11): [0, 1, 2] +idx: 12, delta: 3, matching: false, a (15): [3, 6], b (10): [0, 1, 3, 6] +idx: 12, delta: 4, matching: false, a (16): [0, 1, 4, 5], b (9): [4, 5] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: false, a (13): [0, 1, 3, 6], b (14): [3, 4, 5, 6] +idx: 13, delta: 2, matching: false, a (15): [3, 6], b (12): [2, 3, 6] +idx: 13, delta: 2 --- found smudge! +idx: 13, delta: 3, matching: false, a (16): [0, 1, 4, 5], b (11): [0, 1, 2] +idx: 13, delta: 3 --- found smudge twice! +idx: 14, delta: 0, matching: false, a (14): [3, 4, 5, 6], b (15): [3, 6] +idx: 14, delta: 2, matching: false, a (16): [0, 1, 4, 5], b (13): [0, 1, 3, 6] +idx: 14 --- EXITING WITH false +idx: 15, delta: 0, matching: false, a (15): [3, 6], b (16): [0, 1, 4, 5] +idx: 15 --- EXITING WITH false +idx: 16 --- EXITING WITH false +idx: 0, delta: 0, matching: true, a (0): [0, 1, 3, 4, 5, 10, 11, 13, 16], b (1): [0, 1, 3, 4, 5, 10, 11, 13, 16] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 3, 4, 5, 10, 11, 13, 16], b (2): [0, 6, 7, 8, 11, 12] +idx: 1, delta: 2, matching: false, a (3): [1, 2, 3, 4, 5, 7, 10, 12, 13, 14, 15], b (0): [0, 1, 3, 4, 5, 10, 11, 13, 16] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 6, 7, 8, 11, 12], b (3): [1, 2, 3, 4, 5, 7, 10, 12, 13, 14, 15] +idx: 2, delta: 2, matching: false, a (4): [0, 3, 5, 9, 14, 16], b (1): [0, 1, 3, 4, 5, 10, 11, 13, 16] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 3, 5, 9, 14, 16], b (0): [0, 1, 3, 4, 5, 10, 11, 13, 16] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 2, 3, 4, 5, 7, 10, 12, 13, 14, 15], b (4): [0, 3, 5, 9, 14, 16] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 3, 5, 9, 14, 16], b (2): [0, 6, 7, 8, 11, 12] +idx: 3, delta: 3, matching: false, a (6): [1, 2, 3, 4, 5, 7, 10, 12, 13, 14, 15], b (1): [0, 1, 3, 4, 5, 10, 11, 13, 16] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 3, 5, 9, 14, 16], b (5): [0, 1, 3, 5, 9, 14, 16] +idx: 4, delta: 0 --- found smudge! +idx: 4, delta: 2, matching: true, a (6): [1, 2, 3, 4, 5, 7, 10, 12, 13, 14, 15], b (3): [1, 2, 3, 4, 5, 7, 10, 12, 13, 14, 15] +idx: 4 --- EXITING WITH true +##.###....##.#..# +##.###....##.#..# +#.....###..##.... +.#####.#..#.####. +#..#.#...#....#.# +##.#.#...#....#.# +.#####.#..#.####. +500 (vert: 0, horiz: 5) + +idx: 0, delta: 0, matching: false, a (0): [2, 3, 4, 8, 9, 10, 11, 12], b (1): [0, 1, 4, 5, 12] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 4, 5, 12], b (2): [0, 1, 4, 5, 8, 9, 11, 12] +idx: 1, delta: 2, matching: false, a (3): [2, 3, 7, 9, 10, 12], b (0): [2, 3, 4, 8, 9, 10, 11, 12] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 4, 5, 8, 9, 11, 12], b (3): [2, 3, 7, 9, 10, 12] +idx: 2, delta: 2, matching: false, a (4): [2, 3, 7, 9, 10, 12], b (1): [0, 1, 4, 5, 12] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 4, 5, 8, 9, 11, 12], b (0): [2, 3, 4, 8, 9, 10, 11, 12] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: true, a (3): [2, 3, 7, 9, 10, 12], b (4): [2, 3, 7, 9, 10, 12] +idx: 3, delta: 2, matching: true, a (5): [0, 1, 4, 5, 8, 9, 11, 12], b (2): [0, 1, 4, 5, 8, 9, 11, 12] +idx: 3, delta: 3, matching: true, a (6): [0, 1, 4, 5, 12], b (1): [0, 1, 4, 5, 12] +idx: 3, delta: 4, matching: false, a (7): [2, 3, 4, 8, 9, 10, 12], b (0): [2, 3, 4, 8, 9, 10, 11, 12] +idx: 3, delta: 4 --- found smudge! +idx: 3 --- EXITING WITH true +idx: 0, delta: 0, matching: true, a (0): [1, 2, 5, 6, 8, 9, 10], b (1): [1, 2, 5, 6, 8, 9, 10] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 2, 5, 6, 8, 9, 10], b (2): [0, 3, 4, 7, 9, 10] +idx: 1, delta: 2, matching: false, a (3): [0, 3, 4, 7, 8, 9, 10], b (0): [1, 2, 5, 6, 8, 9, 10] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 3, 4, 7, 9, 10], b (3): [0, 3, 4, 7, 8, 9, 10] +idx: 2, delta: 0 --- found smudge! +idx: 2, delta: 2, matching: false, a (4): [0, 1, 2, 5, 6, 7, 8], b (1): [1, 2, 5, 6, 8, 9, 10] +idx: 2, delta: 2 --- found smudge twice! +idx: 3, delta: 0, matching: false, a (3): [0, 3, 4, 7, 8, 9, 10], b (4): [0, 1, 2, 5, 6, 7, 8] +idx: 3, delta: 2, matching: false, a (5): [1, 2, 5, 6, 8, 9, 10], b (2): [0, 3, 4, 7, 9, 10] +idx: 3, delta: 3, matching: false, a (6): [8], b (1): [1, 2, 5, 6, 8, 9, 10] +idx: 3, delta: 4, matching: false, a (7): [3, 4], b (0): [1, 2, 5, 6, 8, 9, 10] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 2, 5, 6, 7, 8], b (5): [1, 2, 5, 6, 8, 9, 10] +idx: 4, delta: 2, matching: false, a (6): [8], b (3): [0, 3, 4, 7, 8, 9, 10] +idx: 4, delta: 3, matching: false, a (7): [3, 4], b (2): [0, 3, 4, 7, 9, 10] +idx: 4, delta: 4, matching: false, a (8): [0, 2, 5, 7, 10], b (1): [1, 2, 5, 6, 8, 9, 10] +idx: 4, delta: 5, matching: false, a (9): [0, 2, 3, 4, 5, 7, 8, 9], b (0): [1, 2, 5, 6, 8, 9, 10] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [1, 2, 5, 6, 8, 9, 10], b (6): [8] +idx: 5, delta: 2, matching: false, a (7): [3, 4], b (4): [0, 1, 2, 5, 6, 7, 8] +idx: 5, delta: 3, matching: false, a (8): [0, 2, 5, 7, 10], b (3): [0, 3, 4, 7, 8, 9, 10] +idx: 5, delta: 4, matching: false, a (9): [0, 2, 3, 4, 5, 7, 8, 9], b (2): [0, 3, 4, 7, 9, 10] +idx: 5, delta: 5, matching: false, a (10): [0, 3, 4, 7], b (1): [1, 2, 5, 6, 8, 9, 10] +idx: 5, delta: 6, matching: false, a (11): [0, 2, 5, 8, 9], b (0): [1, 2, 5, 6, 8, 9, 10] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [8], b (7): [3, 4] +idx: 6, delta: 2, matching: false, a (8): [0, 2, 5, 7, 10], b (5): [1, 2, 5, 6, 8, 9, 10] +idx: 6, delta: 3, matching: false, a (9): [0, 2, 3, 4, 5, 7, 8, 9], b (4): [0, 1, 2, 5, 6, 7, 8] +idx: 6, delta: 4, matching: false, a (10): [0, 3, 4, 7], b (3): [0, 3, 4, 7, 8, 9, 10] +idx: 6, delta: 5, matching: false, a (11): [0, 2, 5, 8, 9], b (2): [0, 3, 4, 7, 9, 10] +idx: 6, delta: 6, matching: false, a (12): [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], b (1): [1, 2, 5, 6, 8, 9, 10] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [3, 4], b (8): [0, 2, 5, 7, 10] +idx: 7, delta: 2, matching: false, a (9): [0, 2, 3, 4, 5, 7, 8, 9], b (6): [8] +idx: 7, delta: 3, matching: false, a (10): [0, 3, 4, 7], b (5): [1, 2, 5, 6, 8, 9, 10] +idx: 7, delta: 4, matching: false, a (11): [0, 2, 5, 8, 9], b (4): [0, 1, 2, 5, 6, 7, 8] +idx: 7, delta: 5, matching: false, a (12): [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], b (3): [0, 3, 4, 7, 8, 9, 10] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 2, 5, 7, 10], b (9): [0, 2, 3, 4, 5, 7, 8, 9] +idx: 8, delta: 2, matching: false, a (10): [0, 3, 4, 7], b (7): [3, 4] +idx: 8, delta: 3, matching: false, a (11): [0, 2, 5, 8, 9], b (6): [8] +idx: 8, delta: 4, matching: false, a (12): [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], b (5): [1, 2, 5, 6, 8, 9, 10] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 2, 3, 4, 5, 7, 8, 9], b (10): [0, 3, 4, 7] +idx: 9, delta: 2, matching: false, a (11): [0, 2, 5, 8, 9], b (8): [0, 2, 5, 7, 10] +idx: 9, delta: 3, matching: false, a (12): [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], b (7): [3, 4] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 3, 4, 7], b (11): [0, 2, 5, 8, 9] +idx: 10, delta: 2, matching: false, a (12): [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], b (9): [0, 2, 3, 4, 5, 7, 8, 9] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [0, 2, 5, 8, 9], b (12): [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] +idx: 11 --- EXITING WITH false +idx: 12 --- EXITING WITH false +.##..##.### +.##..##.### +#..##..#.## +#..##..#### +###..####.. +.##..##.### +........#.. +...##...... +#.#..#.#..# +#.####.###. +#..##..#... +#.#..#..##. +##########. +4 (vert: 4, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [0, 2, 5, 7, 8, 10], b (1): [0, 2, 5, 7, 8, 9, 10] +idx: 0, delta: 0 --- found smudge! +idx: 0 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [0, 1, 4, 5, 6, 7, 8, 9, 11, 14], b (1): [3, 5, 7, 9, 13] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [3, 5, 7, 9, 13], b (2): [0, 1, 4, 5, 7, 9, 11, 13, 14] +idx: 1, delta: 2, matching: false, a (3): [5, 6, 7, 10, 11, 13], b (0): [0, 1, 4, 5, 6, 7, 8, 9, 11, 14] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 4, 5, 7, 9, 11, 13, 14], b (3): [5, 6, 7, 10, 11, 13] +idx: 2, delta: 2, matching: false, a (4): [5, 6, 7, 10, 11, 13], b (1): [3, 5, 7, 9, 13] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 4, 5, 7, 9, 11, 13, 14], b (0): [0, 1, 4, 5, 6, 7, 8, 9, 11, 14] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: true, a (3): [5, 6, 7, 10, 11, 13], b (4): [5, 6, 7, 10, 11, 13] +idx: 3, delta: 2, matching: true, a (5): [0, 1, 4, 5, 7, 9, 11, 13, 14], b (2): [0, 1, 4, 5, 7, 9, 11, 13, 14] +idx: 3, delta: 3, matching: true, a (6): [3, 5, 7, 9, 13], b (1): [3, 5, 7, 9, 13] +idx: 3, delta: 4, matching: true, a (7): [0, 1, 4, 5, 6, 7, 8, 9, 11, 14], b (0): [0, 1, 4, 5, 6, 7, 8, 9, 11, 14] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [5, 6, 7, 10, 11, 13], b (5): [0, 1, 4, 5, 7, 9, 11, 13, 14] +idx: 4, delta: 2, matching: false, a (6): [3, 5, 7, 9, 13], b (3): [5, 6, 7, 10, 11, 13] +idx: 4, delta: 3, matching: false, a (7): [0, 1, 4, 5, 6, 7, 8, 9, 11, 14], b (2): [0, 1, 4, 5, 7, 9, 11, 13, 14] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 3, 5, 6, 10, 11, 12, 14], b (1): [3, 5, 7, 9, 13] +idx: 4, delta: 5, matching: false, a (9): [1, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14], b (0): [0, 1, 4, 5, 6, 7, 8, 9, 11, 14] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 4, 5, 7, 9, 11, 13, 14], b (6): [3, 5, 7, 9, 13] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 4, 5, 6, 7, 8, 9, 11, 14], b (4): [5, 6, 7, 10, 11, 13] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 3, 5, 6, 10, 11, 12, 14], b (3): [5, 6, 7, 10, 11, 13] +idx: 5, delta: 4, matching: false, a (9): [1, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14], b (2): [0, 1, 4, 5, 7, 9, 11, 13, 14] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 2, 4, 6, 14], b (1): [3, 5, 7, 9, 13] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [3, 5, 7, 9, 13], b (7): [0, 1, 4, 5, 6, 7, 8, 9, 11, 14] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 3, 5, 6, 10, 11, 12, 14], b (5): [0, 1, 4, 5, 7, 9, 11, 13, 14] +idx: 6, delta: 3, matching: false, a (9): [1, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14], b (4): [5, 6, 7, 10, 11, 13] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 2, 4, 6, 14], b (3): [5, 6, 7, 10, 11, 13] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 4, 5, 6, 7, 8, 9, 11, 14], b (8): [0, 1, 3, 5, 6, 10, 11, 12, 14] +idx: 7, delta: 2, matching: false, a (9): [1, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14], b (6): [3, 5, 7, 9, 13] +idx: 7, delta: 3, matching: false, a (10): [0, 1, 2, 4, 6, 14], b (5): [0, 1, 4, 5, 7, 9, 11, 13, 14] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 1, 3, 5, 6, 10, 11, 12, 14], b (9): [1, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14] +idx: 8, delta: 2, matching: false, a (10): [0, 1, 2, 4, 6, 14], b (7): [0, 1, 4, 5, 6, 7, 8, 9, 11, 14] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [1, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14], b (10): [0, 1, 2, 4, 6, 14] +idx: 9 --- EXITING WITH false +idx: 10 --- EXITING WITH false +##..######.#..# +...#.#.#.#...#. +##..##.#.#.#.## +.....###..##.#. +.....###..##.#. +##..##.#.#.#.## +...#.#.#.#...#. +##..######.#..# +##.#.##...###.# +.#.##.####.#### +###.#.#.......# +1 (vert: 1, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], b (1): [0, 1, 2, 4, 7, 9, 10, 11, 12, 13] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 2, 4, 7, 9, 10, 11, 12, 13], b (2): [0, 11, 13, 15] +idx: 1, delta: 2, matching: false, a (3): [0, 2, 9, 11, 12, 14, 16], b (0): [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 11, 13, 15], b (3): [0, 2, 9, 11, 12, 14, 16] +idx: 2, delta: 2, matching: false, a (4): [1, 5, 6, 10, 12, 14, 16], b (1): [0, 1, 2, 4, 7, 9, 10, 11, 12, 13] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 5, 6, 10, 11, 12, 13, 15], b (0): [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 2, 9, 11, 12, 14, 16], b (4): [1, 5, 6, 10, 12, 14, 16] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 5, 6, 10, 11, 12, 13, 15], b (2): [0, 11, 13, 15] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 5, 6, 10, 11, 13, 15], b (1): [0, 1, 2, 4, 7, 9, 10, 11, 12, 13] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 5, 6, 10, 12, 14, 16], b (5): [0, 1, 5, 6, 10, 11, 12, 13, 15] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 5, 6, 10, 11, 13, 15], b (3): [0, 2, 9, 11, 12, 14, 16] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 5, 6, 10, 11, 12, 13, 15], b (6): [0, 1, 5, 6, 10, 11, 13, 15] +idx: 5, delta: 0 --- found smudge! +idx: 5 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [1, 2, 3, 5, 6], b (1): [0, 1, 4, 5, 6] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 4, 5, 6], b (2): [0, 1, 3] +idx: 1, delta: 2, matching: false, a (3): [0], b (0): [1, 2, 3, 5, 6] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 3], b (3): [0] +idx: 2, delta: 2, matching: false, a (4): [0, 1], b (1): [0, 1, 4, 5, 6] +idx: 2, delta: 3, matching: false, a (5): [0, 4, 5, 6], b (0): [1, 2, 3, 5, 6] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0], b (4): [0, 1] +idx: 3, delta: 0 --- found smudge! +idx: 3, delta: 2, matching: false, a (5): [0, 4, 5, 6], b (2): [0, 1, 3] +idx: 3, delta: 2 --- found smudge twice! +idx: 4, delta: 0, matching: false, a (4): [0, 1], b (5): [0, 4, 5, 6] +idx: 4, delta: 2, matching: false, a (6): [0, 4, 5, 6], b (3): [0] +idx: 4, delta: 3, matching: false, a (7): [0, 1], b (2): [0, 1, 3] +idx: 4, delta: 3 --- found smudge! +idx: 4, delta: 4, matching: false, a (8): [0], b (1): [0, 1, 4, 5, 6] +idx: 4, delta: 4 --- found smudge twice! +idx: 5, delta: 0, matching: true, a (5): [0, 4, 5, 6], b (6): [0, 4, 5, 6] +idx: 5, delta: 2, matching: true, a (7): [0, 1], b (4): [0, 1] +idx: 5, delta: 3, matching: true, a (8): [0], b (3): [0] +idx: 5, delta: 4, matching: true, a (9): [0, 1, 3], b (2): [0, 1, 3] +idx: 5, delta: 5, matching: true, a (10): [0, 1, 4, 5, 6], b (1): [0, 1, 4, 5, 6] +idx: 5, delta: 6, matching: true, a (11): [1, 2, 3, 5, 6], b (0): [1, 2, 3, 5, 6] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 4, 5, 6], b (7): [0, 1] +idx: 6, delta: 2, matching: false, a (8): [0], b (5): [0, 4, 5, 6] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 3], b (4): [0, 1] +idx: 6, delta: 3 --- found smudge! +idx: 6, delta: 4, matching: false, a (10): [0, 1, 4, 5, 6], b (3): [0] +idx: 6, delta: 4 --- found smudge twice! +idx: 7, delta: 0, matching: false, a (7): [0, 1], b (8): [0] +idx: 7, delta: 0 --- found smudge! +idx: 7, delta: 2, matching: false, a (9): [0, 1, 3], b (6): [0, 4, 5, 6] +idx: 7, delta: 2 --- found smudge twice! +idx: 8, delta: 0, matching: false, a (8): [0], b (9): [0, 1, 3] +idx: 8, delta: 2, matching: false, a (10): [0, 1, 4, 5, 6], b (7): [0, 1] +idx: 8, delta: 3, matching: false, a (11): [1, 2, 3, 5, 6], b (6): [0, 4, 5, 6] +idx: 8, delta: 4, matching: false, a (12): [1, 3, 4, 5], b (5): [0, 4, 5, 6] +idx: 8, delta: 5, matching: false, a (13): [1, 2, 5, 6], b (4): [0, 1] +idx: 8, delta: 6, matching: false, a (14): [3, 4], b (3): [0] +idx: 8, delta: 7, matching: false, a (15): [2, 5, 6], b (2): [0, 1, 3] +idx: 8, delta: 8, matching: false, a (16): [3, 4], b (1): [0, 1, 4, 5, 6] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 1, 3], b (10): [0, 1, 4, 5, 6] +idx: 9, delta: 2, matching: false, a (11): [1, 2, 3, 5, 6], b (8): [0] +idx: 9, delta: 3, matching: false, a (12): [1, 3, 4, 5], b (7): [0, 1] +idx: 9, delta: 4, matching: false, a (13): [1, 2, 5, 6], b (6): [0, 4, 5, 6] +idx: 9, delta: 5, matching: false, a (14): [3, 4], b (5): [0, 4, 5, 6] +idx: 9, delta: 6, matching: false, a (15): [2, 5, 6], b (4): [0, 1] +idx: 9, delta: 7, matching: false, a (16): [3, 4], b (3): [0] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [0, 1, 4, 5, 6], b (11): [1, 2, 3, 5, 6] +idx: 10, delta: 2, matching: false, a (12): [1, 3, 4, 5], b (9): [0, 1, 3] +idx: 10, delta: 3, matching: false, a (13): [1, 2, 5, 6], b (8): [0] +idx: 10, delta: 4, matching: false, a (14): [3, 4], b (7): [0, 1] +idx: 10, delta: 5, matching: false, a (15): [2, 5, 6], b (6): [0, 4, 5, 6] +idx: 10, delta: 6, matching: false, a (16): [3, 4], b (5): [0, 4, 5, 6] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [1, 2, 3, 5, 6], b (12): [1, 3, 4, 5] +idx: 11, delta: 2, matching: false, a (13): [1, 2, 5, 6], b (10): [0, 1, 4, 5, 6] +idx: 11, delta: 3, matching: false, a (14): [3, 4], b (9): [0, 1, 3] +idx: 11, delta: 4, matching: false, a (15): [2, 5, 6], b (8): [0] +idx: 11, delta: 5, matching: false, a (16): [3, 4], b (7): [0, 1] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [1, 3, 4, 5], b (13): [1, 2, 5, 6] +idx: 12, delta: 2, matching: false, a (14): [3, 4], b (11): [1, 2, 3, 5, 6] +idx: 12, delta: 3, matching: false, a (15): [2, 5, 6], b (10): [0, 1, 4, 5, 6] +idx: 12, delta: 4, matching: false, a (16): [3, 4], b (9): [0, 1, 3] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: false, a (13): [1, 2, 5, 6], b (14): [3, 4] +idx: 13, delta: 2, matching: false, a (15): [2, 5, 6], b (12): [1, 3, 4, 5] +idx: 13, delta: 3, matching: false, a (16): [3, 4], b (11): [1, 2, 3, 5, 6] +idx: 13 --- EXITING WITH false +idx: 14, delta: 0, matching: false, a (14): [3, 4], b (15): [2, 5, 6] +idx: 14, delta: 2, matching: false, a (16): [3, 4], b (13): [1, 2, 5, 6] +idx: 14 --- EXITING WITH false +idx: 15, delta: 0, matching: false, a (15): [2, 5, 6], b (16): [3, 4] +idx: 15 --- EXITING WITH false +idx: 16 --- EXITING WITH false +.###.## +##..### +##.#... +#...... +##..... +#...### +#...### +##..... +#...... +##.#... +##..### +.###.## +.#.###. +.##..## +...##.. +..#..## +...##.. +6 (vert: 6, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [3, 4, 5, 6, 7, 12], b (1): [0, 1, 3, 12] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 3, 12], b (2): [0, 1, 3, 4, 6, 7, 8, 11, 12] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 4, 6, 7, 8, 9, 10, 11, 12], b (0): [3, 4, 5, 6, 7, 12] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 3, 4, 6, 7, 8, 11, 12], b (3): [0, 1, 4, 6, 7, 8, 9, 10, 11, 12] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 3, 4, 5], b (1): [0, 1, 3, 12] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 2, 4, 8, 9, 10, 11], b (0): [3, 4, 5, 6, 7, 12] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 4, 6, 7, 8, 9, 10, 11, 12], b (4): [0, 1, 3, 4, 5] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 2, 4, 8, 9, 10, 11], b (2): [0, 1, 3, 4, 6, 7, 8, 11, 12] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 2, 3, 7, 8, 11, 12], b (1): [0, 1, 3, 12] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 3, 4, 5], b (5): [0, 1, 2, 4, 8, 9, 10, 11] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 2, 3, 7, 8, 11, 12], b (3): [0, 1, 4, 6, 7, 8, 9, 10, 11, 12] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 2, 4, 8, 9, 10, 11], b (6): [0, 1, 2, 3, 7, 8, 11, 12] +idx: 5 --- EXITING WITH false +idx: 6 --- EXITING WITH false +idx: 0, delta: 0, matching: true, a (0): [1, 2, 3, 4, 5, 6], b (1): [1, 2, 3, 4, 5, 6] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 2, 3, 4, 5, 6], b (2): [5, 6] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 2, 4, 6], b (0): [1, 2, 3, 4, 5, 6] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [5, 6], b (3): [0, 1, 2, 4, 6] +idx: 2, delta: 2, matching: false, a (4): [0, 2, 3, 4, 5], b (1): [1, 2, 3, 4, 5, 6] +idx: 2, delta: 3, matching: false, a (5): [0, 4], b (0): [1, 2, 3, 4, 5, 6] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 2, 4, 6], b (4): [0, 2, 3, 4, 5] +idx: 3, delta: 2, matching: false, a (5): [0, 4], b (2): [5, 6] +idx: 3, delta: 3, matching: false, a (6): [0, 2, 3], b (1): [1, 2, 3, 4, 5, 6] +idx: 3, delta: 4, matching: false, a (7): [0, 2, 3, 6], b (0): [1, 2, 3, 4, 5, 6] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 2, 3, 4, 5], b (5): [0, 4] +idx: 4, delta: 2, matching: false, a (6): [0, 2, 3], b (3): [0, 1, 2, 4, 6] +idx: 4, delta: 3, matching: false, a (7): [0, 2, 3, 6], b (2): [5, 6] +idx: 4, delta: 4, matching: false, a (8): [2, 3, 5, 6], b (1): [1, 2, 3, 4, 5, 6] +idx: 4, delta: 5, matching: false, a (9): [3, 5], b (0): [1, 2, 3, 4, 5, 6] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 4], b (6): [0, 2, 3] +idx: 5, delta: 2, matching: false, a (7): [0, 2, 3, 6], b (4): [0, 2, 3, 4, 5] +idx: 5, delta: 3, matching: false, a (8): [2, 3, 5, 6], b (3): [0, 1, 2, 4, 6] +idx: 5, delta: 4, matching: false, a (9): [3, 5], b (2): [5, 6] +idx: 5, delta: 5, matching: false, a (10): [3, 5], b (1): [1, 2, 3, 4, 5, 6] +idx: 5, delta: 6, matching: false, a (11): [2, 3, 5, 6], b (0): [1, 2, 3, 4, 5, 6] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 2, 3], b (7): [0, 2, 3, 6] +idx: 6, delta: 0 --- found smudge! +idx: 6, delta: 2, matching: false, a (8): [2, 3, 5, 6], b (5): [0, 4] +idx: 6, delta: 2 --- found smudge twice! +idx: 7, delta: 0, matching: false, a (7): [0, 2, 3, 6], b (8): [2, 3, 5, 6] +idx: 7, delta: 2, matching: false, a (9): [3, 5], b (6): [0, 2, 3] +idx: 7, delta: 3, matching: false, a (10): [3, 5], b (5): [0, 4] +idx: 7, delta: 4, matching: false, a (11): [2, 3, 5, 6], b (4): [0, 2, 3, 4, 5] +idx: 7, delta: 5, matching: false, a (12): [0, 1, 2, 3, 6], b (3): [0, 1, 2, 4, 6] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [2, 3, 5, 6], b (9): [3, 5] +idx: 8, delta: 2, matching: false, a (10): [3, 5], b (7): [0, 2, 3, 6] +idx: 8, delta: 3, matching: false, a (11): [2, 3, 5, 6], b (6): [0, 2, 3] +idx: 8, delta: 4, matching: false, a (12): [0, 1, 2, 3, 6], b (5): [0, 4] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: true, a (9): [3, 5], b (10): [3, 5] +idx: 9, delta: 2, matching: true, a (11): [2, 3, 5, 6], b (8): [2, 3, 5, 6] +idx: 9, delta: 3, matching: false, a (12): [0, 1, 2, 3, 6], b (7): [0, 2, 3, 6] +idx: 9, delta: 3 --- found smudge! +idx: 9 --- EXITING WITH true +.###### +.###### +.....## +###.#.# +#.####. +#...#.. +#.##... +#.##..# +..##.## +...#.#. +...#.#. +..##.## +####..# +1000 (vert: 0, horiz: 10) + +idx: 0, delta: 0, matching: false, a (0): [2, 5, 8], b (1): [2, 3, 6, 7] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [2, 3, 6, 7], b (2): [2, 4, 5, 6, 7, 8] +idx: 1, delta: 2, matching: false, a (3): [2, 3, 4, 5, 8], b (0): [2, 5, 8] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [2, 4, 5, 6, 7, 8], b (3): [2, 3, 4, 5, 8] +idx: 2, delta: 2, matching: false, a (4): [3, 6], b (1): [2, 3, 6, 7] +idx: 2, delta: 3, matching: false, a (5): [2, 6, 7], b (0): [2, 5, 8] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [2, 3, 4, 5, 8], b (4): [3, 6] +idx: 3, delta: 2, matching: false, a (5): [2, 6, 7], b (2): [2, 4, 5, 6, 7, 8] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 3, 5, 6, 7, 8], b (1): [2, 3, 6, 7] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [3, 6], b (5): [2, 6, 7] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 3, 5, 6, 7, 8], b (3): [2, 3, 4, 5, 8] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [2, 6, 7], b (6): [0, 1, 3, 5, 6, 7, 8] +idx: 5 --- EXITING WITH false +idx: 6 --- EXITING WITH false +idx: 0, delta: 0, matching: true, a (0): [6], b (1): [6] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [6], b (2): [0, 1, 2, 3, 5] +idx: 1, delta: 2, matching: false, a (3): [1, 3, 4, 6], b (0): [6] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 2, 3, 5], b (3): [1, 3, 4, 6] +idx: 2, delta: 2, matching: false, a (4): [2, 3], b (1): [6] +idx: 2, delta: 3, matching: false, a (5): [0, 2, 3, 6], b (0): [6] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 3, 4, 6], b (4): [2, 3] +idx: 3, delta: 2, matching: false, a (5): [0, 2, 3, 6], b (2): [0, 1, 2, 3, 5] +idx: 3, delta: 3, matching: false, a (6): [1, 2, 4, 5, 6], b (1): [6] +idx: 3, delta: 4, matching: false, a (7): [1, 2, 5, 6], b (0): [6] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [2, 3], b (5): [0, 2, 3, 6] +idx: 4, delta: 2, matching: false, a (6): [1, 2, 4, 5, 6], b (3): [1, 3, 4, 6] +idx: 4, delta: 3, matching: false, a (7): [1, 2, 5, 6], b (2): [0, 1, 2, 3, 5] +idx: 4, delta: 4, matching: false, a (8): [0, 2, 3, 6], b (1): [6] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 2, 3, 6], b (6): [1, 2, 4, 5, 6] +idx: 5, delta: 2, matching: false, a (7): [1, 2, 5, 6], b (4): [2, 3] +idx: 5, delta: 3, matching: false, a (8): [0, 2, 3, 6], b (3): [1, 3, 4, 6] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [1, 2, 4, 5, 6], b (7): [1, 2, 5, 6] +idx: 6, delta: 0 --- found smudge! +idx: 6, delta: 2, matching: true, a (8): [0, 2, 3, 6], b (5): [0, 2, 3, 6] +idx: 6 --- EXITING WITH true +......# +......# +####.#. +.#.##.# +..##... +#.##..# +.##.### +.##..## +#.##..# +700 (vert: 0, horiz: 7) + +idx: 0, delta: 0, matching: false, a (0): [1, 2, 3, 4, 6, 8], b (1): [1, 4, 8, 9] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 4, 8, 9], b (2): [0, 1, 2, 3, 4, 5, 8] +idx: 1, delta: 2, matching: false, a (3): [0, 2, 3, 5, 6, 7, 9], b (0): [1, 2, 3, 4, 6, 8] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 2, 3, 4, 5, 8], b (3): [0, 2, 3, 5, 6, 7, 9] +idx: 2, delta: 2, matching: false, a (4): [2, 3, 6], b (1): [1, 4, 8, 9] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 2, 3, 4, 5, 6, 9], b (0): [1, 2, 3, 4, 6, 8] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 2, 3, 5, 6, 7, 9], b (4): [2, 3, 6] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 2, 3, 4, 5, 6, 9], b (2): [0, 1, 2, 3, 4, 5, 8] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 2, 3, 4, 5, 7, 10], b (1): [1, 4, 8, 9] +idx: 3, delta: 4, matching: false, a (7): [1, 4, 9], b (0): [1, 2, 3, 4, 6, 8] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [2, 3, 6], b (5): [0, 1, 2, 3, 4, 5, 6, 9] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 2, 3, 4, 5, 7, 10], b (3): [0, 2, 3, 5, 6, 7, 9] +idx: 4, delta: 3, matching: false, a (7): [1, 4, 9], b (2): [0, 1, 2, 3, 4, 5, 8] +idx: 4, delta: 4, matching: false, a (8): [1, 4, 7], b (1): [1, 4, 8, 9] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 2, 3, 4, 5, 7, 10], b (0): [1, 2, 3, 4, 6, 8] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 2, 3, 4, 5, 6, 9], b (6): [0, 1, 2, 3, 4, 5, 7, 10] +idx: 5, delta: 2, matching: false, a (7): [1, 4, 9], b (4): [2, 3, 6] +idx: 5, delta: 3, matching: false, a (8): [1, 4, 7], b (3): [0, 2, 3, 5, 6, 7, 9] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 2, 3, 4, 5, 7, 10], b (2): [0, 1, 2, 3, 4, 5, 8] +idx: 5, delta: 5, matching: false, a (10): [0, 1, 2, 3, 4, 5, 7], b (1): [1, 4, 8, 9] +idx: 5, delta: 6, matching: false, a (11): [1, 4, 7, 8, 10], b (0): [1, 2, 3, 4, 6, 8] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 1, 2, 3, 4, 5, 7, 10], b (7): [1, 4, 9] +idx: 6, delta: 2, matching: false, a (8): [1, 4, 7], b (5): [0, 1, 2, 3, 4, 5, 6, 9] +idx: 6, delta: 3, matching: false, a (9): [0, 1, 2, 3, 4, 5, 7, 10], b (4): [2, 3, 6] +idx: 6, delta: 4, matching: false, a (10): [0, 1, 2, 3, 4, 5, 7], b (3): [0, 2, 3, 5, 6, 7, 9] +idx: 6, delta: 5, matching: false, a (11): [1, 4, 7, 8, 10], b (2): [0, 1, 2, 3, 4, 5, 8] +idx: 6, delta: 6, matching: false, a (12): [1, 4, 7, 8, 9, 10], b (1): [1, 4, 8, 9] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [1, 4, 9], b (8): [1, 4, 7] +idx: 7, delta: 2, matching: true, a (9): [0, 1, 2, 3, 4, 5, 7, 10], b (6): [0, 1, 2, 3, 4, 5, 7, 10] +idx: 7, delta: 3, matching: false, a (10): [0, 1, 2, 3, 4, 5, 7], b (5): [0, 1, 2, 3, 4, 5, 6, 9] +idx: 7, delta: 4, matching: false, a (11): [1, 4, 7, 8, 10], b (4): [2, 3, 6] +idx: 7, delta: 5, matching: false, a (12): [1, 4, 7, 8, 9, 10], b (3): [0, 2, 3, 5, 6, 7, 9] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [1, 4, 7], b (9): [0, 1, 2, 3, 4, 5, 7, 10] +idx: 8, delta: 2, matching: false, a (10): [0, 1, 2, 3, 4, 5, 7], b (7): [1, 4, 9] +idx: 8, delta: 3, matching: false, a (11): [1, 4, 7, 8, 10], b (6): [0, 1, 2, 3, 4, 5, 7, 10] +idx: 8, delta: 4, matching: false, a (12): [1, 4, 7, 8, 9, 10], b (5): [0, 1, 2, 3, 4, 5, 6, 9] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 1, 2, 3, 4, 5, 7, 10], b (10): [0, 1, 2, 3, 4, 5, 7] +idx: 9, delta: 0 --- found smudge! +idx: 9, delta: 2, matching: false, a (11): [1, 4, 7, 8, 10], b (8): [1, 4, 7] +idx: 9, delta: 2 --- found smudge twice! +idx: 10, delta: 0, matching: false, a (10): [0, 1, 2, 3, 4, 5, 7], b (11): [1, 4, 7, 8, 10] +idx: 10, delta: 2, matching: false, a (12): [1, 4, 7, 8, 9, 10], b (9): [0, 1, 2, 3, 4, 5, 7, 10] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [1, 4, 7, 8, 10], b (12): [1, 4, 7, 8, 9, 10] +idx: 11, delta: 0 --- found smudge! +idx: 11 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [2, 3, 5, 6, 9, 10], b (1): [0, 1, 2, 5, 6, 7, 8, 9, 10, 11, 12] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 2, 5, 6, 7, 8, 9, 10, 11, 12], b (2): [0, 2, 3, 4, 5, 6, 9, 10] +idx: 1, delta: 2, matching: false, a (3): [0, 2, 3, 4, 5, 6, 9, 10], b (0): [2, 3, 5, 6, 9, 10] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: true, a (2): [0, 2, 3, 4, 5, 6, 9, 10], b (3): [0, 2, 3, 4, 5, 6, 9, 10] +idx: 2, delta: 2, matching: true, a (4): [0, 1, 2, 5, 6, 7, 8, 9, 10, 11, 12], b (1): [0, 1, 2, 5, 6, 7, 8, 9, 10, 11, 12] +idx: 2, delta: 3, matching: true, a (5): [2, 3, 5, 6, 9, 10], b (0): [2, 3, 5, 6, 9, 10] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 2, 3, 4, 5, 6, 9, 10], b (4): [0, 1, 2, 5, 6, 7, 8, 9, 10, 11, 12] +idx: 3, delta: 2, matching: false, a (5): [2, 3, 5, 6, 9, 10], b (2): [0, 2, 3, 4, 5, 6, 9, 10] +idx: 3, delta: 3, matching: false, a (6): [0, 3, 4, 5], b (1): [0, 1, 2, 5, 6, 7, 8, 9, 10, 11, 12] +idx: 3, delta: 4, matching: false, a (7): [3, 6, 8, 9, 10, 11, 12], b (0): [2, 3, 5, 6, 9, 10] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 2, 5, 6, 7, 8, 9, 10, 11, 12], b (5): [2, 3, 5, 6, 9, 10] +idx: 4, delta: 2, matching: false, a (6): [0, 3, 4, 5], b (3): [0, 2, 3, 4, 5, 6, 9, 10] +idx: 4, delta: 3, matching: false, a (7): [3, 6, 8, 9, 10, 11, 12], b (2): [0, 2, 3, 4, 5, 6, 9, 10] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 2, 11, 12], b (1): [0, 1, 2, 5, 6, 7, 8, 9, 10, 11, 12] +idx: 4, delta: 5, matching: false, a (9): [1, 3, 5, 7, 12], b (0): [2, 3, 5, 6, 9, 10] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [2, 3, 5, 6, 9, 10], b (6): [0, 3, 4, 5] +idx: 5, delta: 2, matching: false, a (7): [3, 6, 8, 9, 10, 11, 12], b (4): [0, 1, 2, 5, 6, 7, 8, 9, 10, 11, 12] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 2, 11, 12], b (3): [0, 2, 3, 4, 5, 6, 9, 10] +idx: 5, delta: 4, matching: false, a (9): [1, 3, 5, 7, 12], b (2): [0, 2, 3, 4, 5, 6, 9, 10] +idx: 5, delta: 5, matching: false, a (10): [6, 9, 11, 12], b (1): [0, 1, 2, 5, 6, 7, 8, 9, 10, 11, 12] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 3, 4, 5], b (7): [3, 6, 8, 9, 10, 11, 12] +idx: 6, delta: 2, matching: false, a (8): [0, 1, 2, 11, 12], b (5): [2, 3, 5, 6, 9, 10] +idx: 6, delta: 3, matching: false, a (9): [1, 3, 5, 7, 12], b (4): [0, 1, 2, 5, 6, 7, 8, 9, 10, 11, 12] +idx: 6, delta: 4, matching: false, a (10): [6, 9, 11, 12], b (3): [0, 2, 3, 4, 5, 6, 9, 10] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [3, 6, 8, 9, 10, 11, 12], b (8): [0, 1, 2, 11, 12] +idx: 7, delta: 2, matching: false, a (9): [1, 3, 5, 7, 12], b (6): [0, 3, 4, 5] +idx: 7, delta: 3, matching: false, a (10): [6, 9, 11, 12], b (5): [2, 3, 5, 6, 9, 10] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [0, 1, 2, 11, 12], b (9): [1, 3, 5, 7, 12] +idx: 8, delta: 2, matching: false, a (10): [6, 9, 11, 12], b (7): [3, 6, 8, 9, 10, 11, 12] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [1, 3, 5, 7, 12], b (10): [6, 9, 11, 12] +idx: 9 --- EXITING WITH false +idx: 10 --- EXITING WITH false +..##.##..##.. +###..######## +#.#####..##.. +#.#####..##.. +###..######## +..##.##..##.. +#..###....... +...#..#.##### +###........## +.#.#.#.#....# +......#..#.## +12 (vert: 12, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [2, 3, 5], b (1): [2, 6] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [2, 6], b (2): [0, 1, 2, 3, 5, 6] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 3, 5, 6], b (0): [2, 3, 5] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 2, 3, 5, 6], b (3): [0, 1, 3, 5, 6] +idx: 2, delta: 0 --- found smudge! +idx: 2, delta: 2, matching: true, a (4): [2, 6], b (1): [2, 6] +idx: 2, delta: 3, matching: true, a (5): [2, 3, 5], b (0): [2, 3, 5] +idx: 2 --- EXITING WITH true +idx: 0, delta: 0, matching: true, a (0): [2, 3, 8, 15, 16], b (1): [2, 3, 8, 15, 16] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [2, 3, 8, 15, 16], b (2): [0, 1, 2, 4, 5, 6, 7, 10, 11, 12, 14, 15, 16] +idx: 1, delta: 2, matching: false, a (3): [0, 2, 3, 5, 6, 8, 9, 10, 12, 14, 15], b (0): [2, 3, 8, 15, 16] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 2, 4, 5, 6, 7, 10, 11, 12, 14, 15, 16], b (3): [0, 2, 3, 5, 6, 8, 9, 10, 12, 14, 15] +idx: 2, delta: 2, matching: false, a (4): [6, 7, 9, 10, 11, 12, 16], b (1): [2, 3, 8, 15, 16] +idx: 2, delta: 3, matching: false, a (5): [0, 2, 3, 5, 6, 7, 11, 12, 13, 14, 15, 16], b (0): [2, 3, 8, 15, 16] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 2, 3, 5, 6, 8, 9, 10, 12, 14, 15], b (4): [6, 7, 9, 10, 11, 12, 16] +idx: 3, delta: 2, matching: false, a (5): [0, 2, 3, 5, 6, 7, 11, 12, 13, 14, 15, 16], b (2): [0, 1, 2, 4, 5, 6, 7, 10, 11, 12, 14, 15, 16] +idx: 3, delta: 3, matching: false, a (6): [1, 2, 3, 4, 6, 7, 8, 10, 14, 15, 16], b (1): [2, 3, 8, 15, 16] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [6, 7, 9, 10, 11, 12, 16], b (5): [0, 2, 3, 5, 6, 7, 11, 12, 13, 14, 15, 16] +idx: 4, delta: 2, matching: false, a (6): [1, 2, 3, 4, 6, 7, 8, 10, 14, 15, 16], b (3): [0, 2, 3, 5, 6, 8, 9, 10, 12, 14, 15] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 2, 3, 5, 6, 7, 11, 12, 13, 14, 15, 16], b (6): [1, 2, 3, 4, 6, 7, 8, 10, 14, 15, 16] +idx: 5 --- EXITING WITH false +idx: 6 --- EXITING WITH false +..##....#......## +..##....#......## +###.####..###.### +#.##.##.###.#.##. +......##.####...# +#.##.###...###### +.####.###.#...### +3 (vert: 3, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [0], b (1): [0, 1, 2, 4] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 1, 2, 4], b (2): [0, 1, 4, 5, 6] +idx: 1, delta: 2, matching: false, a (3): [4, 5, 6], b (0): [0] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 4, 5, 6], b (3): [4, 5, 6] +idx: 2, delta: 2, matching: false, a (4): [3, 4, 5, 6], b (1): [0, 1, 2, 4] +idx: 2, delta: 3, matching: false, a (5): [3, 5, 6], b (0): [0] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [4, 5, 6], b (4): [3, 4, 5, 6] +idx: 3, delta: 0 --- found smudge! +idx: 3, delta: 2, matching: false, a (5): [3, 5, 6], b (2): [0, 1, 4, 5, 6] +idx: 3, delta: 2 --- found smudge twice! +idx: 4, delta: 0, matching: false, a (4): [3, 4, 5, 6], b (5): [3, 5, 6] +idx: 4, delta: 0 --- found smudge! +idx: 4, delta: 2, matching: false, a (6): [0, 1, 2, 3, 4], b (3): [4, 5, 6] +idx: 4, delta: 2 --- found smudge twice! +idx: 5, delta: 0, matching: false, a (5): [3, 5, 6], b (6): [0, 1, 2, 3, 4] +idx: 5, delta: 2, matching: false, a (7): [0, 1, 2, 3, 4], b (4): [3, 4, 5, 6] +idx: 5, delta: 3, matching: false, a (8): [3, 5, 6], b (3): [4, 5, 6] +idx: 5, delta: 4, matching: false, a (9): [3, 4, 5, 6], b (2): [0, 1, 4, 5, 6] +idx: 5, delta: 5, matching: false, a (10): [4, 5, 6], b (1): [0, 1, 2, 4] +idx: 5, delta: 6, matching: false, a (11): [0, 1, 4, 5, 6], b (0): [0] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: true, a (6): [0, 1, 2, 3, 4], b (7): [0, 1, 2, 3, 4] +idx: 6, delta: 2, matching: true, a (8): [3, 5, 6], b (5): [3, 5, 6] +idx: 6, delta: 3, matching: true, a (9): [3, 4, 5, 6], b (4): [3, 4, 5, 6] +idx: 6, delta: 4, matching: true, a (10): [4, 5, 6], b (3): [4, 5, 6] +idx: 6, delta: 5, matching: true, a (11): [0, 1, 4, 5, 6], b (2): [0, 1, 4, 5, 6] +idx: 6, delta: 6, matching: true, a (12): [0, 1, 2, 4], b (1): [0, 1, 2, 4] +idx: 6, delta: 7, matching: true, a (13): [0], b (0): [0] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 1, 2, 3, 4], b (8): [3, 5, 6] +idx: 7, delta: 2, matching: false, a (9): [3, 4, 5, 6], b (6): [0, 1, 2, 3, 4] +idx: 7, delta: 3, matching: false, a (10): [4, 5, 6], b (5): [3, 5, 6] +idx: 7, delta: 4, matching: false, a (11): [0, 1, 4, 5, 6], b (4): [3, 4, 5, 6] +idx: 7, delta: 5, matching: false, a (12): [0, 1, 2, 4], b (3): [4, 5, 6] +idx: 7, delta: 6, matching: false, a (13): [0], b (2): [0, 1, 4, 5, 6] +idx: 7, delta: 7, matching: false, a (14): [0, 1, 4, 5], b (1): [0, 1, 2, 4] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [3, 5, 6], b (9): [3, 4, 5, 6] +idx: 8, delta: 0 --- found smudge! +idx: 8, delta: 2, matching: false, a (10): [4, 5, 6], b (7): [0, 1, 2, 3, 4] +idx: 8, delta: 2 --- found smudge twice! +idx: 9, delta: 0, matching: false, a (9): [3, 4, 5, 6], b (10): [4, 5, 6] +idx: 9, delta: 0 --- found smudge! +idx: 9, delta: 2, matching: false, a (11): [0, 1, 4, 5, 6], b (8): [3, 5, 6] +idx: 9, delta: 2 --- found smudge twice! +idx: 10, delta: 0, matching: false, a (10): [4, 5, 6], b (11): [0, 1, 4, 5, 6] +idx: 10, delta: 2, matching: false, a (12): [0, 1, 2, 4], b (9): [3, 4, 5, 6] +idx: 10, delta: 3, matching: false, a (13): [0], b (8): [3, 5, 6] +idx: 10, delta: 4, matching: false, a (14): [0, 1, 4, 5], b (7): [0, 1, 2, 3, 4] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [0, 1, 4, 5, 6], b (12): [0, 1, 2, 4] +idx: 11, delta: 2, matching: false, a (13): [0], b (10): [4, 5, 6] +idx: 11, delta: 3, matching: false, a (14): [0, 1, 4, 5], b (9): [3, 4, 5, 6] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [0, 1, 2, 4], b (13): [0] +idx: 12, delta: 2, matching: false, a (14): [0, 1, 4, 5], b (11): [0, 1, 4, 5, 6] +idx: 12, delta: 2 --- found smudge! +idx: 12 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [0, 1, 2, 6, 7, 11, 12, 13, 14], b (1): [1, 2, 6, 7, 11, 12, 14] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [1, 2, 6, 7, 11, 12, 14], b (2): [1, 6, 7, 12] +idx: 1, delta: 2, matching: false, a (3): [4, 5, 6, 7, 8, 9], b (0): [0, 1, 2, 6, 7, 11, 12, 13, 14] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [1, 6, 7, 12], b (3): [4, 5, 6, 7, 8, 9] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 14], b (1): [1, 2, 6, 7, 11, 12, 14] +idx: 2, delta: 3, matching: false, a (5): [2, 3, 4, 5, 8, 9, 10, 11, 14], b (0): [0, 1, 2, 6, 7, 11, 12, 13, 14] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [4, 5, 6, 7, 8, 9], b (4): [1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 14] +idx: 3, delta: 2, matching: false, a (5): [2, 3, 4, 5, 8, 9, 10, 11, 14], b (2): [1, 6, 7, 12] +idx: 3, delta: 3, matching: false, a (6): [2, 3, 4, 5, 8, 9, 10, 11], b (1): [1, 2, 6, 7, 11, 12, 14] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 14], b (5): [2, 3, 4, 5, 8, 9, 10, 11, 14] +idx: 4, delta: 2, matching: false, a (6): [2, 3, 4, 5, 8, 9, 10, 11], b (3): [4, 5, 6, 7, 8, 9] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [2, 3, 4, 5, 8, 9, 10, 11, 14], b (6): [2, 3, 4, 5, 8, 9, 10, 11] +idx: 5, delta: 0 --- found smudge! +idx: 5 --- EXITING WITH true +###...##...#### +.##...##...##.# +.#....##....#.. +....######..... +.####.##.####.# +..####..####..# +..####..####... +613 (vert: 13, horiz: 6) + +idx: 0, delta: 0, matching: false, a (0): [0, 1, 2, 6, 7, 11, 12, 13, 14, 16], b (1): [0, 3, 4, 9, 10, 13, 16] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 3, 4, 9, 10, 13, 16], b (2): [0, 3, 4, 6, 7, 9, 10, 13] +idx: 1, delta: 2, matching: false, a (3): [0, 2, 3, 5, 8, 10, 11, 13, 14, 15], b (0): [0, 1, 2, 6, 7, 11, 12, 13, 14, 16] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 3, 4, 6, 7, 9, 10, 13], b (3): [0, 2, 3, 5, 8, 10, 11, 13, 14, 15] +idx: 2, delta: 2, matching: false, a (4): [0, 1, 4, 6, 7, 9, 12, 13, 14, 15], b (1): [0, 3, 4, 9, 10, 13, 16] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 2, 5, 6, 7, 8, 11, 12, 13, 14, 16], b (0): [0, 1, 2, 6, 7, 11, 12, 13, 14, 16] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 2, 3, 5, 8, 10, 11, 13, 14, 15], b (4): [0, 1, 4, 6, 7, 9, 12, 13, 14, 15] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 2, 5, 6, 7, 8, 11, 12, 13, 14, 16], b (2): [0, 3, 4, 6, 7, 9, 10, 13] +idx: 3, delta: 3, matching: false, a (6): [1, 2, 4, 5, 8, 9, 11, 12, 14, 15, 16], b (1): [0, 3, 4, 9, 10, 13, 16] +idx: 3, delta: 4, matching: false, a (7): [1, 2, 4, 5, 8, 9, 11, 12, 15, 16], b (0): [0, 1, 2, 6, 7, 11, 12, 13, 14, 16] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 1, 4, 6, 7, 9, 12, 13, 14, 15], b (5): [0, 1, 2, 5, 6, 7, 8, 11, 12, 13, 14, 16] +idx: 4, delta: 2, matching: false, a (6): [1, 2, 4, 5, 8, 9, 11, 12, 14, 15, 16], b (3): [0, 2, 3, 5, 8, 10, 11, 13, 14, 15] +idx: 4, delta: 3, matching: false, a (7): [1, 2, 4, 5, 8, 9, 11, 12, 15, 16], b (2): [0, 3, 4, 6, 7, 9, 10, 13] +idx: 4, delta: 4, matching: false, a (8): [0, 1, 2, 5, 6, 7, 8, 11, 12, 13, 14, 16], b (1): [0, 3, 4, 9, 10, 13, 16] +idx: 4, delta: 5, matching: false, a (9): [0, 1, 4, 6, 7, 9, 12, 13, 14, 15], b (0): [0, 1, 2, 6, 7, 11, 12, 13, 14, 16] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 2, 5, 6, 7, 8, 11, 12, 13, 14, 16], b (6): [1, 2, 4, 5, 8, 9, 11, 12, 14, 15, 16] +idx: 5, delta: 2, matching: false, a (7): [1, 2, 4, 5, 8, 9, 11, 12, 15, 16], b (4): [0, 1, 4, 6, 7, 9, 12, 13, 14, 15] +idx: 5, delta: 3, matching: false, a (8): [0, 1, 2, 5, 6, 7, 8, 11, 12, 13, 14, 16], b (3): [0, 2, 3, 5, 8, 10, 11, 13, 14, 15] +idx: 5, delta: 4, matching: false, a (9): [0, 1, 4, 6, 7, 9, 12, 13, 14, 15], b (2): [0, 3, 4, 6, 7, 9, 10, 13] +idx: 5, delta: 5, matching: false, a (10): [0, 2, 3, 5, 8, 10, 11, 13, 14, 15], b (1): [0, 3, 4, 9, 10, 13, 16] +idx: 5, delta: 6, matching: false, a (11): [0, 3, 4, 6, 7, 9, 10, 13], b (0): [0, 1, 2, 6, 7, 11, 12, 13, 14, 16] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [1, 2, 4, 5, 8, 9, 11, 12, 14, 15, 16], b (7): [1, 2, 4, 5, 8, 9, 11, 12, 15, 16] +idx: 6, delta: 0 --- found smudge! +idx: 6, delta: 2, matching: true, a (8): [0, 1, 2, 5, 6, 7, 8, 11, 12, 13, 14, 16], b (5): [0, 1, 2, 5, 6, 7, 8, 11, 12, 13, 14, 16] +idx: 6, delta: 3, matching: true, a (9): [0, 1, 4, 6, 7, 9, 12, 13, 14, 15], b (4): [0, 1, 4, 6, 7, 9, 12, 13, 14, 15] +idx: 6, delta: 4, matching: true, a (10): [0, 2, 3, 5, 8, 10, 11, 13, 14, 15], b (3): [0, 2, 3, 5, 8, 10, 11, 13, 14, 15] +idx: 6, delta: 5, matching: true, a (11): [0, 3, 4, 6, 7, 9, 10, 13], b (2): [0, 3, 4, 6, 7, 9, 10, 13] +idx: 6, delta: 6, matching: true, a (12): [0, 3, 4, 9, 10, 13, 16], b (1): [0, 3, 4, 9, 10, 13, 16] +idx: 6 --- EXITING WITH true +idx: 0, delta: 0, matching: false, a (0): [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12], b (1): [0, 4, 5, 6, 7, 8, 9] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 4, 5, 6, 7, 8, 9], b (2): [0, 3, 5, 6, 7, 8, 10] +idx: 1, delta: 2, matching: false, a (3): [1, 2, 3, 10, 11, 12], b (0): [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 3, 5, 6, 7, 8, 10], b (3): [1, 2, 3, 10, 11, 12] +idx: 2, delta: 2, matching: false, a (4): [1, 2, 4, 6, 7, 9, 11, 12], b (1): [0, 4, 5, 6, 7, 8, 9] +idx: 2, delta: 3, matching: false, a (5): [3, 5, 6, 7, 8, 10], b (0): [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 2, 3, 10, 11, 12], b (4): [1, 2, 4, 6, 7, 9, 11, 12] +idx: 3, delta: 2, matching: false, a (5): [3, 5, 6, 7, 8, 10], b (2): [0, 3, 5, 6, 7, 8, 10] +idx: 3, delta: 2 --- found smudge! +idx: 3, delta: 3, matching: false, a (6): [0, 2, 4, 5, 8, 9, 11], b (1): [0, 4, 5, 6, 7, 8, 9] +idx: 3, delta: 3 --- found smudge twice! +idx: 4, delta: 0, matching: false, a (4): [1, 2, 4, 6, 7, 9, 11, 12], b (5): [3, 5, 6, 7, 8, 10] +idx: 4, delta: 2, matching: false, a (6): [0, 2, 4, 5, 8, 9, 11], b (3): [1, 2, 3, 10, 11, 12] +idx: 4, delta: 3, matching: false, a (7): [0, 2, 4, 5, 8, 9, 11], b (2): [0, 3, 5, 6, 7, 8, 10] +idx: 4, delta: 4, matching: false, a (8): [3, 5, 6, 7, 8, 10], b (1): [0, 4, 5, 6, 7, 8, 9] +idx: 4, delta: 5, matching: false, a (9): [1, 2, 4, 6, 7, 9, 11, 12], b (0): [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [3, 5, 6, 7, 8, 10], b (6): [0, 2, 4, 5, 8, 9, 11] +idx: 5, delta: 2, matching: false, a (7): [0, 2, 4, 5, 8, 9, 11], b (4): [1, 2, 4, 6, 7, 9, 11, 12] +idx: 5, delta: 3, matching: false, a (8): [3, 5, 6, 7, 8, 10], b (3): [1, 2, 3, 10, 11, 12] +idx: 5, delta: 4, matching: false, a (9): [1, 2, 4, 6, 7, 9, 11, 12], b (2): [0, 3, 5, 6, 7, 8, 10] +idx: 5, delta: 5, matching: false, a (10): [1, 2, 3, 10, 11, 12], b (1): [0, 4, 5, 6, 7, 8, 9] +idx: 5, delta: 6, matching: false, a (11): [0, 3, 5, 6, 7, 8, 10], b (0): [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: true, a (6): [0, 2, 4, 5, 8, 9, 11], b (7): [0, 2, 4, 5, 8, 9, 11] +idx: 6, delta: 2, matching: true, a (8): [3, 5, 6, 7, 8, 10], b (5): [3, 5, 6, 7, 8, 10] +idx: 6, delta: 3, matching: true, a (9): [1, 2, 4, 6, 7, 9, 11, 12], b (4): [1, 2, 4, 6, 7, 9, 11, 12] +idx: 6, delta: 4, matching: true, a (10): [1, 2, 3, 10, 11, 12], b (3): [1, 2, 3, 10, 11, 12] +idx: 6, delta: 5, matching: true, a (11): [0, 3, 5, 6, 7, 8, 10], b (2): [0, 3, 5, 6, 7, 8, 10] +idx: 6, delta: 6, matching: true, a (12): [0, 4, 5, 6, 7, 8, 9], b (1): [0, 4, 5, 6, 7, 8, 9] +idx: 6, delta: 7, matching: true, a (13): [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12], b (0): [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [0, 2, 4, 5, 8, 9, 11], b (8): [3, 5, 6, 7, 8, 10] +idx: 7, delta: 2, matching: false, a (9): [1, 2, 4, 6, 7, 9, 11, 12], b (6): [0, 2, 4, 5, 8, 9, 11] +idx: 7, delta: 3, matching: false, a (10): [1, 2, 3, 10, 11, 12], b (5): [3, 5, 6, 7, 8, 10] +idx: 7, delta: 4, matching: false, a (11): [0, 3, 5, 6, 7, 8, 10], b (4): [1, 2, 4, 6, 7, 9, 11, 12] +idx: 7, delta: 5, matching: false, a (12): [0, 4, 5, 6, 7, 8, 9], b (3): [1, 2, 3, 10, 11, 12] +idx: 7, delta: 6, matching: false, a (13): [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12], b (2): [0, 3, 5, 6, 7, 8, 10] +idx: 7, delta: 7, matching: false, a (14): [0, 3, 4, 5, 6, 8, 9, 10], b (1): [0, 4, 5, 6, 7, 8, 9] +idx: 7, delta: 8, matching: false, a (15): [3, 4, 6, 7, 9, 10], b (0): [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [3, 5, 6, 7, 8, 10], b (9): [1, 2, 4, 6, 7, 9, 11, 12] +idx: 8, delta: 2, matching: false, a (10): [1, 2, 3, 10, 11, 12], b (7): [0, 2, 4, 5, 8, 9, 11] +idx: 8, delta: 3, matching: false, a (11): [0, 3, 5, 6, 7, 8, 10], b (6): [0, 2, 4, 5, 8, 9, 11] +idx: 8, delta: 4, matching: false, a (12): [0, 4, 5, 6, 7, 8, 9], b (5): [3, 5, 6, 7, 8, 10] +idx: 8, delta: 5, matching: false, a (13): [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12], b (4): [1, 2, 4, 6, 7, 9, 11, 12] +idx: 8, delta: 6, matching: false, a (14): [0, 3, 4, 5, 6, 8, 9, 10], b (3): [1, 2, 3, 10, 11, 12] +idx: 8, delta: 7, matching: false, a (15): [3, 4, 6, 7, 9, 10], b (2): [0, 3, 5, 6, 7, 8, 10] +idx: 8, delta: 8, matching: false, a (16): [0, 1, 5, 6, 7, 8, 12], b (1): [0, 4, 5, 6, 7, 8, 9] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [1, 2, 4, 6, 7, 9, 11, 12], b (10): [1, 2, 3, 10, 11, 12] +idx: 9, delta: 2, matching: false, a (11): [0, 3, 5, 6, 7, 8, 10], b (8): [3, 5, 6, 7, 8, 10] +idx: 9, delta: 2 --- found smudge! +idx: 9, delta: 3, matching: false, a (12): [0, 4, 5, 6, 7, 8, 9], b (7): [0, 2, 4, 5, 8, 9, 11] +idx: 9, delta: 3 --- found smudge twice! +idx: 10, delta: 0, matching: false, a (10): [1, 2, 3, 10, 11, 12], b (11): [0, 3, 5, 6, 7, 8, 10] +idx: 10, delta: 2, matching: false, a (12): [0, 4, 5, 6, 7, 8, 9], b (9): [1, 2, 4, 6, 7, 9, 11, 12] +idx: 10, delta: 3, matching: false, a (13): [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12], b (8): [3, 5, 6, 7, 8, 10] +idx: 10, delta: 4, matching: false, a (14): [0, 3, 4, 5, 6, 8, 9, 10], b (7): [0, 2, 4, 5, 8, 9, 11] +idx: 10, delta: 5, matching: false, a (15): [3, 4, 6, 7, 9, 10], b (6): [0, 2, 4, 5, 8, 9, 11] +idx: 10, delta: 6, matching: false, a (16): [0, 1, 5, 6, 7, 8, 12], b (5): [3, 5, 6, 7, 8, 10] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [0, 3, 5, 6, 7, 8, 10], b (12): [0, 4, 5, 6, 7, 8, 9] +idx: 11, delta: 2, matching: false, a (13): [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12], b (10): [1, 2, 3, 10, 11, 12] +idx: 11, delta: 3, matching: false, a (14): [0, 3, 4, 5, 6, 8, 9, 10], b (9): [1, 2, 4, 6, 7, 9, 11, 12] +idx: 11, delta: 4, matching: false, a (15): [3, 4, 6, 7, 9, 10], b (8): [3, 5, 6, 7, 8, 10] +idx: 11, delta: 5, matching: false, a (16): [0, 1, 5, 6, 7, 8, 12], b (7): [0, 2, 4, 5, 8, 9, 11] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [0, 4, 5, 6, 7, 8, 9], b (13): [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12] +idx: 12, delta: 2, matching: false, a (14): [0, 3, 4, 5, 6, 8, 9, 10], b (11): [0, 3, 5, 6, 7, 8, 10] +idx: 12, delta: 3, matching: false, a (15): [3, 4, 6, 7, 9, 10], b (10): [1, 2, 3, 10, 11, 12] +idx: 12, delta: 4, matching: false, a (16): [0, 1, 5, 6, 7, 8, 12], b (9): [1, 2, 4, 6, 7, 9, 11, 12] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: false, a (13): [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12], b (14): [0, 3, 4, 5, 6, 8, 9, 10] +idx: 13, delta: 2, matching: false, a (15): [3, 4, 6, 7, 9, 10], b (12): [0, 4, 5, 6, 7, 8, 9] +idx: 13, delta: 3, matching: false, a (16): [0, 1, 5, 6, 7, 8, 12], b (11): [0, 3, 5, 6, 7, 8, 10] +idx: 13 --- EXITING WITH false +idx: 14, delta: 0, matching: false, a (14): [0, 3, 4, 5, 6, 8, 9, 10], b (15): [3, 4, 6, 7, 9, 10] +idx: 14, delta: 2, matching: false, a (16): [0, 1, 5, 6, 7, 8, 12], b (13): [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12] +idx: 14 --- EXITING WITH false +idx: 15, delta: 0, matching: false, a (15): [3, 4, 6, 7, 9, 10], b (16): [0, 1, 5, 6, 7, 8, 12] +idx: 15 --- EXITING WITH false +idx: 16 --- EXITING WITH false +######..##### +#...######... +#..#.####.#.. +.###......### +.##.#.##.#.## +...#.####.#.. +#.#.##..##.#. +#.#.##..##.#. +...#.####.#.. +.##.#.##.#.## +.###......### +#..#.####.#.. +#...######... +######..##### +#..####.###.. +...##.##.##.. +##...####...# +7 (vert: 7, horiz: 0) + +idx: 0, delta: 0, matching: false, a (0): [2, 6, 7, 11, 12, 15], b (1): [0, 2, 3, 6, 7, 9, 12, 15, 16] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 2, 3, 6, 7, 9, 12, 15, 16], b (2): [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 14, 16] +idx: 1, delta: 2, matching: false, a (3): [1, 2, 7, 8, 10, 11, 13, 14, 15], b (0): [2, 6, 7, 11, 12, 15] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 14, 16], b (3): [1, 2, 7, 8, 10, 11, 13, 14, 15] +idx: 2, delta: 2, matching: false, a (4): [0, 4, 5, 9, 10, 12, 13, 15, 16], b (1): [0, 2, 3, 6, 7, 9, 12, 15, 16] +idx: 2, delta: 3, matching: false, a (5): [0, 1, 4, 5, 8, 9, 11, 13, 15, 16], b (0): [2, 6, 7, 11, 12, 15] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 2, 7, 8, 10, 11, 13, 14, 15], b (4): [0, 4, 5, 9, 10, 12, 13, 15, 16] +idx: 3, delta: 2, matching: false, a (5): [0, 1, 4, 5, 8, 9, 11, 13, 15, 16], b (2): [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 14, 16] +idx: 3, delta: 3, matching: false, a (6): [0, 4, 5, 9, 12, 13, 14, 15], b (1): [0, 2, 3, 6, 7, 9, 12, 15, 16] +idx: 3, delta: 4, matching: false, a (7): [4, 5, 12, 13, 15], b (0): [2, 6, 7, 11, 12, 15] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [0, 4, 5, 9, 10, 12, 13, 15, 16], b (5): [0, 1, 4, 5, 8, 9, 11, 13, 15, 16] +idx: 4, delta: 2, matching: false, a (6): [0, 4, 5, 9, 12, 13, 14, 15], b (3): [1, 2, 7, 8, 10, 11, 13, 14, 15] +idx: 4, delta: 3, matching: false, a (7): [4, 5, 12, 13, 15], b (2): [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 14, 16] +idx: 4, delta: 4, matching: false, a (8): [1, 8, 10, 14, 15], b (1): [0, 2, 3, 6, 7, 9, 12, 15, 16] +idx: 4, delta: 5, matching: false, a (9): [0, 3, 6, 9, 11, 14, 16], b (0): [2, 6, 7, 11, 12, 15] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [0, 1, 4, 5, 8, 9, 11, 13, 15, 16], b (6): [0, 4, 5, 9, 12, 13, 14, 15] +idx: 5, delta: 2, matching: false, a (7): [4, 5, 12, 13, 15], b (4): [0, 4, 5, 9, 10, 12, 13, 15, 16] +idx: 5, delta: 3, matching: false, a (8): [1, 8, 10, 14, 15], b (3): [1, 2, 7, 8, 10, 11, 13, 14, 15] +idx: 5, delta: 4, matching: false, a (9): [0, 3, 6, 9, 11, 14, 16], b (2): [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 14, 16] +idx: 5, delta: 5, matching: false, a (10): [11, 12, 13, 16], b (1): [0, 2, 3, 6, 7, 9, 12, 15, 16] +idx: 5, delta: 6, matching: false, a (11): [2, 3, 6, 7, 11, 15], b (0): [2, 6, 7, 11, 12, 15] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [0, 4, 5, 9, 12, 13, 14, 15], b (7): [4, 5, 12, 13, 15] +idx: 6, delta: 2, matching: false, a (8): [1, 8, 10, 14, 15], b (5): [0, 1, 4, 5, 8, 9, 11, 13, 15, 16] +idx: 6, delta: 3, matching: false, a (9): [0, 3, 6, 9, 11, 14, 16], b (4): [0, 4, 5, 9, 10, 12, 13, 15, 16] +idx: 6, delta: 4, matching: false, a (10): [11, 12, 13, 16], b (3): [1, 2, 7, 8, 10, 11, 13, 14, 15] +idx: 6, delta: 5, matching: false, a (11): [2, 3, 6, 7, 11, 15], b (2): [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 14, 16] +idx: 6, delta: 6, matching: false, a (12): [1, 2, 3, 6, 7, 8, 11, 12, 13], b (1): [0, 2, 3, 6, 7, 9, 12, 15, 16] +idx: 6, delta: 7, matching: false, a (13): [10, 13, 15], b (0): [2, 6, 7, 11, 12, 15] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [4, 5, 12, 13, 15], b (8): [1, 8, 10, 14, 15] +idx: 7, delta: 2, matching: false, a (9): [0, 3, 6, 9, 11, 14, 16], b (6): [0, 4, 5, 9, 12, 13, 14, 15] +idx: 7, delta: 3, matching: false, a (10): [11, 12, 13, 16], b (5): [0, 1, 4, 5, 8, 9, 11, 13, 15, 16] +idx: 7, delta: 4, matching: false, a (11): [2, 3, 6, 7, 11, 15], b (4): [0, 4, 5, 9, 10, 12, 13, 15, 16] +idx: 7, delta: 5, matching: false, a (12): [1, 2, 3, 6, 7, 8, 11, 12, 13], b (3): [1, 2, 7, 8, 10, 11, 13, 14, 15] +idx: 7, delta: 6, matching: false, a (13): [10, 13, 15], b (2): [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 14, 16] +idx: 7, delta: 7, matching: false, a (14): [10, 13, 15], b (1): [0, 2, 3, 6, 7, 9, 12, 15, 16] +idx: 7, delta: 8, matching: false, a (15): [1, 2, 3, 6, 7, 8, 11, 12, 13], b (0): [2, 6, 7, 11, 12, 15] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [1, 8, 10, 14, 15], b (9): [0, 3, 6, 9, 11, 14, 16] +idx: 8, delta: 2, matching: false, a (10): [11, 12, 13, 16], b (7): [4, 5, 12, 13, 15] +idx: 8, delta: 3, matching: false, a (11): [2, 3, 6, 7, 11, 15], b (6): [0, 4, 5, 9, 12, 13, 14, 15] +idx: 8, delta: 4, matching: false, a (12): [1, 2, 3, 6, 7, 8, 11, 12, 13], b (5): [0, 1, 4, 5, 8, 9, 11, 13, 15, 16] +idx: 8, delta: 5, matching: false, a (13): [10, 13, 15], b (4): [0, 4, 5, 9, 10, 12, 13, 15, 16] +idx: 8, delta: 6, matching: false, a (14): [10, 13, 15], b (3): [1, 2, 7, 8, 10, 11, 13, 14, 15] +idx: 8, delta: 7, matching: false, a (15): [1, 2, 3, 6, 7, 8, 11, 12, 13], b (2): [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 14, 16] +idx: 8, delta: 8, matching: false, a (16): [2, 3, 6, 7, 11, 15], b (1): [0, 2, 3, 6, 7, 9, 12, 15, 16] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [0, 3, 6, 9, 11, 14, 16], b (10): [11, 12, 13, 16] +idx: 9, delta: 2, matching: false, a (11): [2, 3, 6, 7, 11, 15], b (8): [1, 8, 10, 14, 15] +idx: 9, delta: 3, matching: false, a (12): [1, 2, 3, 6, 7, 8, 11, 12, 13], b (7): [4, 5, 12, 13, 15] +idx: 9, delta: 4, matching: false, a (13): [10, 13, 15], b (6): [0, 4, 5, 9, 12, 13, 14, 15] +idx: 9, delta: 5, matching: false, a (14): [10, 13, 15], b (5): [0, 1, 4, 5, 8, 9, 11, 13, 15, 16] +idx: 9, delta: 6, matching: false, a (15): [1, 2, 3, 6, 7, 8, 11, 12, 13], b (4): [0, 4, 5, 9, 10, 12, 13, 15, 16] +idx: 9, delta: 7, matching: false, a (16): [2, 3, 6, 7, 11, 15], b (3): [1, 2, 7, 8, 10, 11, 13, 14, 15] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [11, 12, 13, 16], b (11): [2, 3, 6, 7, 11, 15] +idx: 10, delta: 2, matching: false, a (12): [1, 2, 3, 6, 7, 8, 11, 12, 13], b (9): [0, 3, 6, 9, 11, 14, 16] +idx: 10, delta: 3, matching: false, a (13): [10, 13, 15], b (8): [1, 8, 10, 14, 15] +idx: 10, delta: 4, matching: false, a (14): [10, 13, 15], b (7): [4, 5, 12, 13, 15] +idx: 10, delta: 5, matching: false, a (15): [1, 2, 3, 6, 7, 8, 11, 12, 13], b (6): [0, 4, 5, 9, 12, 13, 14, 15] +idx: 10, delta: 6, matching: false, a (16): [2, 3, 6, 7, 11, 15], b (5): [0, 1, 4, 5, 8, 9, 11, 13, 15, 16] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [2, 3, 6, 7, 11, 15], b (12): [1, 2, 3, 6, 7, 8, 11, 12, 13] +idx: 11, delta: 2, matching: false, a (13): [10, 13, 15], b (10): [11, 12, 13, 16] +idx: 11, delta: 3, matching: false, a (14): [10, 13, 15], b (9): [0, 3, 6, 9, 11, 14, 16] +idx: 11, delta: 4, matching: false, a (15): [1, 2, 3, 6, 7, 8, 11, 12, 13], b (8): [1, 8, 10, 14, 15] +idx: 11, delta: 5, matching: false, a (16): [2, 3, 6, 7, 11, 15], b (7): [4, 5, 12, 13, 15] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [1, 2, 3, 6, 7, 8, 11, 12, 13], b (13): [10, 13, 15] +idx: 12, delta: 2, matching: false, a (14): [10, 13, 15], b (11): [2, 3, 6, 7, 11, 15] +idx: 12, delta: 3, matching: false, a (15): [1, 2, 3, 6, 7, 8, 11, 12, 13], b (10): [11, 12, 13, 16] +idx: 12, delta: 4, matching: false, a (16): [2, 3, 6, 7, 11, 15], b (9): [0, 3, 6, 9, 11, 14, 16] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: true, a (13): [10, 13, 15], b (14): [10, 13, 15] +idx: 13, delta: 2, matching: true, a (15): [1, 2, 3, 6, 7, 8, 11, 12, 13], b (12): [1, 2, 3, 6, 7, 8, 11, 12, 13] +idx: 13, delta: 3, matching: true, a (16): [2, 3, 6, 7, 11, 15], b (11): [2, 3, 6, 7, 11, 15] +idx: 13 --- EXITING WITH false +idx: 14, delta: 0, matching: false, a (14): [10, 13, 15], b (15): [1, 2, 3, 6, 7, 8, 11, 12, 13] +idx: 14, delta: 2, matching: false, a (16): [2, 3, 6, 7, 11, 15], b (13): [10, 13, 15] +idx: 14 --- EXITING WITH false +idx: 15, delta: 0, matching: false, a (15): [1, 2, 3, 6, 7, 8, 11, 12, 13], b (16): [2, 3, 6, 7, 11, 15] +idx: 15 --- EXITING WITH false +idx: 16 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [1, 2, 4, 5, 6, 9], b (1): [2, 3, 5, 8, 12, 15] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [2, 3, 5, 8, 12, 15], b (2): [0, 1, 2, 3, 11, 12, 15, 16] +idx: 1, delta: 2, matching: false, a (3): [1, 2, 9, 11, 12, 15, 16], b (0): [1, 2, 4, 5, 6, 9] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [0, 1, 2, 3, 11, 12, 15, 16], b (3): [1, 2, 9, 11, 12, 15, 16] +idx: 2, delta: 2, matching: false, a (4): [2, 4, 5, 6, 7], b (1): [2, 3, 5, 8, 12, 15] +idx: 2, delta: 3, matching: false, a (5): [2, 4, 5, 6, 7], b (0): [1, 2, 4, 5, 6, 9] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [1, 2, 9, 11, 12, 15, 16], b (4): [2, 4, 5, 6, 7] +idx: 3, delta: 2, matching: false, a (5): [2, 4, 5, 6, 7], b (2): [0, 1, 2, 3, 11, 12, 15, 16] +idx: 3, delta: 3, matching: false, a (6): [0, 1, 2, 9, 11, 12, 15, 16], b (1): [2, 3, 5, 8, 12, 15] +idx: 3, delta: 4, matching: false, a (7): [0, 1, 2, 3, 11, 12, 15, 16], b (0): [1, 2, 4, 5, 6, 9] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: true, a (4): [2, 4, 5, 6, 7], b (5): [2, 4, 5, 6, 7] +idx: 4, delta: 2, matching: false, a (6): [0, 1, 2, 9, 11, 12, 15, 16], b (3): [1, 2, 9, 11, 12, 15, 16] +idx: 4, delta: 2 --- found smudge! +idx: 4, delta: 3, matching: true, a (7): [0, 1, 2, 3, 11, 12, 15, 16], b (2): [0, 1, 2, 3, 11, 12, 15, 16] +idx: 4, delta: 4, matching: true, a (8): [2, 3, 5, 8, 12, 15], b (1): [2, 3, 5, 8, 12, 15] +idx: 4, delta: 5, matching: true, a (9): [1, 2, 4, 5, 6, 9], b (0): [1, 2, 4, 5, 6, 9] +idx: 4 --- EXITING WITH true +.##.###..#....... +..##.#..#...#..#. +####.......##..## +.##......#.##..## +..#.####......... +..#.####......... +###......#.##..## +####.......##..## +..##.#..#...#..#. +.##.###..#....... +...##...#....##.. +#.##.#...####..## +##..#.##..#.#..#. +...#####..#.####. +..##..#.##....... +##.######..#.##.# +.##.##...##...... +500 (vert: 0, horiz: 5) + +idx: 0, delta: 0, matching: true, a (0): [0, 3, 4, 5, 6, 7, 8, 10, 11], b (1): [0, 3, 4, 5, 6, 7, 8, 10, 11] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: false, a (1): [0, 3, 4, 5, 6, 7, 8, 10, 11], b (2): [3, 4, 5, 10, 12] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 2, 3, 4, 5, 6, 10, 11, 12], b (0): [0, 3, 4, 5, 6, 7, 8, 10, 11] +idx: 1 --- EXITING WITH false +idx: 2, delta: 0, matching: false, a (2): [3, 4, 5, 10, 12], b (3): [0, 1, 2, 3, 4, 5, 6, 10, 11, 12] +idx: 2, delta: 2, matching: false, a (4): [4, 5, 7, 8, 9, 11], b (1): [0, 3, 4, 5, 6, 7, 8, 10, 11] +idx: 2, delta: 3, matching: false, a (5): [8, 10, 11], b (0): [0, 3, 4, 5, 6, 7, 8, 10, 11] +idx: 2 --- EXITING WITH false +idx: 3, delta: 0, matching: false, a (3): [0, 1, 2, 3, 4, 5, 6, 10, 11, 12], b (4): [4, 5, 7, 8, 9, 11] +idx: 3, delta: 2, matching: false, a (5): [8, 10, 11], b (2): [3, 4, 5, 10, 12] +idx: 3, delta: 3, matching: false, a (6): [4, 5, 6, 9, 10, 11, 12], b (1): [0, 3, 4, 5, 6, 7, 8, 10, 11] +idx: 3, delta: 4, matching: false, a (7): [1, 2, 5, 6, 10], b (0): [0, 3, 4, 5, 6, 7, 8, 10, 11] +idx: 3 --- EXITING WITH false +idx: 4, delta: 0, matching: false, a (4): [4, 5, 7, 8, 9, 11], b (5): [8, 10, 11] +idx: 4, delta: 2, matching: false, a (6): [4, 5, 6, 9, 10, 11, 12], b (3): [0, 1, 2, 3, 4, 5, 6, 10, 11, 12] +idx: 4, delta: 3, matching: false, a (7): [1, 2, 5, 6, 10], b (2): [3, 4, 5, 10, 12] +idx: 4, delta: 4, matching: false, a (8): [4, 5, 9, 12], b (1): [0, 3, 4, 5, 6, 7, 8, 10, 11] +idx: 4, delta: 5, matching: false, a (9): [4, 5, 6, 8], b (0): [0, 3, 4, 5, 6, 7, 8, 10, 11] +idx: 4 --- EXITING WITH false +idx: 5, delta: 0, matching: false, a (5): [8, 10, 11], b (6): [4, 5, 6, 9, 10, 11, 12] +idx: 5, delta: 2, matching: false, a (7): [1, 2, 5, 6, 10], b (4): [4, 5, 7, 8, 9, 11] +idx: 5, delta: 3, matching: false, a (8): [4, 5, 9, 12], b (3): [0, 1, 2, 3, 4, 5, 6, 10, 11, 12] +idx: 5, delta: 4, matching: false, a (9): [4, 5, 6, 8], b (2): [3, 4, 5, 10, 12] +idx: 5, delta: 5, matching: false, a (10): [6, 7, 12], b (1): [0, 3, 4, 5, 6, 7, 8, 10, 11] +idx: 5, delta: 6, matching: false, a (11): [1, 2, 5, 7, 8, 10, 11], b (0): [0, 3, 4, 5, 6, 7, 8, 10, 11] +idx: 5 --- EXITING WITH false +idx: 6, delta: 0, matching: false, a (6): [4, 5, 6, 9, 10, 11, 12], b (7): [1, 2, 5, 6, 10] +idx: 6, delta: 2, matching: false, a (8): [4, 5, 9, 12], b (5): [8, 10, 11] +idx: 6, delta: 3, matching: false, a (9): [4, 5, 6, 8], b (4): [4, 5, 7, 8, 9, 11] +idx: 6, delta: 4, matching: false, a (10): [6, 7, 12], b (3): [0, 1, 2, 3, 4, 5, 6, 10, 11, 12] +idx: 6, delta: 5, matching: false, a (11): [1, 2, 5, 7, 8, 10, 11], b (2): [3, 4, 5, 10, 12] +idx: 6, delta: 6, matching: false, a (12): [0, 3, 7, 11], b (1): [0, 3, 4, 5, 6, 7, 8, 10, 11] +idx: 6, delta: 7, matching: false, a (13): [0, 3, 6, 7, 8, 9, 11], b (0): [0, 3, 4, 5, 6, 7, 8, 10, 11] +idx: 6 --- EXITING WITH false +idx: 7, delta: 0, matching: false, a (7): [1, 2, 5, 6, 10], b (8): [4, 5, 9, 12] +idx: 7, delta: 2, matching: false, a (9): [4, 5, 6, 8], b (6): [4, 5, 6, 9, 10, 11, 12] +idx: 7, delta: 3, matching: false, a (10): [6, 7, 12], b (5): [8, 10, 11] +idx: 7, delta: 4, matching: false, a (11): [1, 2, 5, 7, 8, 10, 11], b (4): [4, 5, 7, 8, 9, 11] +idx: 7, delta: 5, matching: false, a (12): [0, 3, 7, 11], b (3): [0, 1, 2, 3, 4, 5, 6, 10, 11, 12] +idx: 7, delta: 6, matching: false, a (13): [0, 3, 6, 7, 8, 9, 11], b (2): [3, 4, 5, 10, 12] +idx: 7, delta: 7, matching: false, a (14): [5, 6, 7, 9], b (1): [0, 3, 4, 5, 6, 7, 8, 10, 11] +idx: 7, delta: 8, matching: false, a (15): [0, 1, 2, 3, 6, 11], b (0): [0, 3, 4, 5, 6, 7, 8, 10, 11] +idx: 7 --- EXITING WITH false +idx: 8, delta: 0, matching: false, a (8): [4, 5, 9, 12], b (9): [4, 5, 6, 8] +idx: 8, delta: 2, matching: false, a (10): [6, 7, 12], b (7): [1, 2, 5, 6, 10] +idx: 8, delta: 3, matching: false, a (11): [1, 2, 5, 7, 8, 10, 11], b (6): [4, 5, 6, 9, 10, 11, 12] +idx: 8, delta: 4, matching: false, a (12): [0, 3, 7, 11], b (5): [8, 10, 11] +idx: 8, delta: 5, matching: false, a (13): [0, 3, 6, 7, 8, 9, 11], b (4): [4, 5, 7, 8, 9, 11] +idx: 8, delta: 6, matching: false, a (14): [5, 6, 7, 9], b (3): [0, 1, 2, 3, 4, 5, 6, 10, 11, 12] +idx: 8, delta: 7, matching: false, a (15): [0, 1, 2, 3, 6, 11], b (2): [3, 4, 5, 10, 12] +idx: 8, delta: 8, matching: false, a (16): [0, 1, 2, 3, 4, 5, 9, 10, 11], b (1): [0, 3, 4, 5, 6, 7, 8, 10, 11] +idx: 8 --- EXITING WITH false +idx: 9, delta: 0, matching: false, a (9): [4, 5, 6, 8], b (10): [6, 7, 12] +idx: 9, delta: 2, matching: false, a (11): [1, 2, 5, 7, 8, 10, 11], b (8): [4, 5, 9, 12] +idx: 9, delta: 3, matching: false, a (12): [0, 3, 7, 11], b (7): [1, 2, 5, 6, 10] +idx: 9, delta: 4, matching: false, a (13): [0, 3, 6, 7, 8, 9, 11], b (6): [4, 5, 6, 9, 10, 11, 12] +idx: 9, delta: 5, matching: false, a (14): [5, 6, 7, 9], b (5): [8, 10, 11] +idx: 9, delta: 6, matching: false, a (15): [0, 1, 2, 3, 6, 11], b (4): [4, 5, 7, 8, 9, 11] +idx: 9, delta: 7, matching: false, a (16): [0, 1, 2, 3, 4, 5, 9, 10, 11], b (3): [0, 1, 2, 3, 4, 5, 6, 10, 11, 12] +idx: 9 --- EXITING WITH false +idx: 10, delta: 0, matching: false, a (10): [6, 7, 12], b (11): [1, 2, 5, 7, 8, 10, 11] +idx: 10, delta: 2, matching: false, a (12): [0, 3, 7, 11], b (9): [4, 5, 6, 8] +idx: 10, delta: 3, matching: false, a (13): [0, 3, 6, 7, 8, 9, 11], b (8): [4, 5, 9, 12] +idx: 10, delta: 4, matching: false, a (14): [5, 6, 7, 9], b (7): [1, 2, 5, 6, 10] +idx: 10, delta: 5, matching: false, a (15): [0, 1, 2, 3, 6, 11], b (6): [4, 5, 6, 9, 10, 11, 12] +idx: 10, delta: 6, matching: false, a (16): [0, 1, 2, 3, 4, 5, 9, 10, 11], b (5): [8, 10, 11] +idx: 10 --- EXITING WITH false +idx: 11, delta: 0, matching: false, a (11): [1, 2, 5, 7, 8, 10, 11], b (12): [0, 3, 7, 11] +idx: 11, delta: 2, matching: false, a (13): [0, 3, 6, 7, 8, 9, 11], b (10): [6, 7, 12] +idx: 11, delta: 3, matching: false, a (14): [5, 6, 7, 9], b (9): [4, 5, 6, 8] +idx: 11, delta: 4, matching: false, a (15): [0, 1, 2, 3, 6, 11], b (8): [4, 5, 9, 12] +idx: 11, delta: 5, matching: false, a (16): [0, 1, 2, 3, 4, 5, 9, 10, 11], b (7): [1, 2, 5, 6, 10] +idx: 11 --- EXITING WITH false +idx: 12, delta: 0, matching: false, a (12): [0, 3, 7, 11], b (13): [0, 3, 6, 7, 8, 9, 11] +idx: 12, delta: 2, matching: false, a (14): [5, 6, 7, 9], b (11): [1, 2, 5, 7, 8, 10, 11] +idx: 12, delta: 3, matching: false, a (15): [0, 1, 2, 3, 6, 11], b (10): [6, 7, 12] +idx: 12, delta: 4, matching: false, a (16): [0, 1, 2, 3, 4, 5, 9, 10, 11], b (9): [4, 5, 6, 8] +idx: 12 --- EXITING WITH false +idx: 13, delta: 0, matching: false, a (13): [0, 3, 6, 7, 8, 9, 11], b (14): [5, 6, 7, 9] +idx: 13, delta: 2, matching: false, a (15): [0, 1, 2, 3, 6, 11], b (12): [0, 3, 7, 11] +idx: 13, delta: 3, matching: false, a (16): [0, 1, 2, 3, 4, 5, 9, 10, 11], b (11): [1, 2, 5, 7, 8, 10, 11] +idx: 13 --- EXITING WITH false +idx: 14, delta: 0, matching: false, a (14): [5, 6, 7, 9], b (15): [0, 1, 2, 3, 6, 11] +idx: 14, delta: 2, matching: false, a (16): [0, 1, 2, 3, 4, 5, 9, 10, 11], b (13): [0, 3, 6, 7, 8, 9, 11] +idx: 14 --- EXITING WITH false +idx: 15, delta: 0, matching: false, a (15): [0, 1, 2, 3, 6, 11], b (16): [0, 1, 2, 3, 4, 5, 9, 10, 11] +idx: 15 --- EXITING WITH false +idx: 16 --- EXITING WITH false +idx: 0, delta: 0, matching: false, a (0): [0, 1, 3, 12, 13, 15, 16], b (1): [3, 7, 11, 15, 16] +idx: 0 --- EXITING WITH false +idx: 1, delta: 0, matching: true, a (1): [3, 7, 11, 15, 16], b (2): [3, 7, 11, 15, 16] +idx: 1, delta: 2, matching: false, a (3): [0, 1, 2, 3, 12, 13, 15, 16], b (0): [0, 1, 3, 12, 13, 15, 16] +idx: 1, delta: 2 --- found smudge! +idx: 1 --- EXITING WITH true +##.#........##.## +...#...#...#...## +...#...#...#...## +####........##.## +#####.#.##......# +#####.####.#..#.# +##.#..##.##..###. +##..#.....#####.. +##..##...#.#.#... +....#.#.#....##.# +####.###...#....# +##.####....###.## +..##..#.#.#...... +200 (vert: 0, horiz: 2) + +test tests::test_part2 ... FAILED + +failures: + +failures: + tests::test_part2 + +test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.02s + diff --git a/y2023/ex13/input.txt b/y2023/ex13/input.txt new file mode 100644 index 0000000..096b141 --- /dev/null +++ b/y2023/ex13/input.txt @@ -0,0 +1,1343 @@ +.##..## +###..## +#..##.. +#..##.. +##....# +.##..## +##.##.# +###..## +.##..## +..#..#. +.#.##.# + +#...#..##.#..##.. +..###.#.##..#..## +.....#...#####.## +.....#...#####.## +..###.#.##..#..## +#...#..##.#..##.. +.##.#.###.###..## +.###.#.#..#.#.#.# +##...#.#.....#.#. +.#...#..##.##..#. +######.#..#..##.# +#######.##.....#. +####.##.##.....#. + +####.##.####### +.####..####.... +####.##.####### +.###.##.###.##. +.##..##..##.... +.#...##...#.##. +#..######..#### +#..#....#..#### +.###.##.###.##. +#.#..##.##.#### +#.#.#..#.#.#..# +####....####### +.##......##.##. + +#..#.###..###.# +.###..#....#..# +.###.#..##..#.# +..###........## +.###.#.#..#.#.# +.....##....##.. +##..#.#.##.#.#. +##..#.#.##.#.#. +.#...##....##.. +.###.#.#..#.#.# +..###........## + +.##.#.# +###..## +#..#.#. +#..#... +#..#... +#.##.#. +###..## +.##.#.# +.##.#.# +###..## +#.##.#. +#..#... +#..#... +#..#.#. +###..## +.##.#.# +....#.. + +#.#..## +#.#.#.# +...##.. +#..###. +.#..##. +.#####. +.#####. +.#..##. +#..###. +...##.. +#.#.#.# +#.##.## +#.##.## + +....###....###. +#..############ +#..#.##....##.# +######..##..### +.##..##.##.##.. +....#.#.##.#.#. +.##..##.##.##.. +.##.###....#### +.##...######... +#..#..#....#..# +.##....#..#.... +.##.#........#. +.##.##.#..#.##. +.##..##.##.##.. +#..###..##..### + +########.##..#. +##....##....##. +.#.##.#..##..## +...........#..# +#######.#.###.. +#.####.###....# +##....###....## +...##....#.#... +##....##.###### +##....##.###### +...##....#.#... +##....###....## +#.####.###....# + +#.###.#.. +#.###.#.. +..##.#.## +#.####.#. +#####...# +#.##.##.. +..##.#... +##...###. +.#....#.# +#..#...## +#..#.#.## + +.#######..### +...##...##... +###..#####... +###..#####... +...##...##... +.#######..### +.#....#.##.#. + +.###.##..##.###.. +...#...##...#.... +..#.#.####.#.#... +.#...#...##...#.# +.....#....#.....# +#.##.##..##.##.#. +...#.######.#...# +#.#..#.##.#..#.#. +....##....##....# +#######..######## +##.#..####..#.##. +#..#..#..#..#..## +#..#..#..#..#..## + +.#.##....## +....#....#. +.#.#.####.# +.####....## +###........ +#.#..####.. +#.##.####.. +##.#......# +...#.####.# +...#.####.# +##.#......# +#.##.####.. +#.#..####.. + +###.#...### +...#..##.#. +.##.#..##.# +.##.###.... +..#.##..#.. +#..#.#.#.## +.#.#..#..## +...#..#..## +#..#.#.#.## +..#.##..#.. +.##.###.... +.##.#..##.# +...#..##.#. +###.#...### +###.#...### + +.##.##. +.#.#..# +.#.#### +##..##. +#.#.... +...#..# +.###### +...#..# +#...##. +.#.#### +.#.#### +#.#.##. +...#..# + +.......###..#.#.# +#.##.#......###.# +.####.##.#.#.##.# +.####.##..####..# +#.##.##......###. +......##..#...... +.####.#.....#.... +##..###.#.#...### +##..##..#.#...### + +..##.##.##. +#..#.#.#### +.#.#...#### +.#..#.##..# +..#####.... +#.####..... +##.##...##. +##.##...##. +#.####..... +..#####.... +.#..#.##..# +##.#...#### +#..#.#.#### +..##.##.##. +#..#.###..# +###.###.##. +####.##.... + +#.#.### +##..... +.#..##. +.###..# +.###..# +.#..##. +##..... +#.#.### +###.### + +##..#...#.### +.#.##.#...### +##.#..###..## +..........### +.#.###.....## +#...#.#.#..## +#.##.#####... +.#.##..###... +...##..##.### +##........... +#####..####.. +#####..####.. +#............ + +###.### +....### +.##..## +...#### +##.#### +#...#.. +###.#.. +..###.. +...#.## +.#.#.## +..###.. + +#.######.## +...####.... +...#..#.... +.#..##..#.. +##.#..#.### +#.#....#.## +#.#......## +####..##### +#.#....#.## +.#.####.#.. +#.##..##.## +##..##..### +.##.##.##.. + +..###..###...## +...#....#....## +.#........#.### +..#.#..#.#..### +#...#..#...##.. +###.#..#.###.## +##############. +#.#.#..#.#.#.## +..##.##.##..... + +##....###...### +.##..##.##..### +##....##...#### +##.##.###.#.... +#..##..##.##.#. +.#....#.###.##. +##....###...### +##....###...### +.#....#.###.##. +#..##..#####.#. +##.##.###.#.... +##....##...#### +.##..##.##..### +##....###...### +..####..#...### +.######.#.##.## +.##..##...####. + +.#.#... +.#.#... +#.#..## +.####.. +...###. +#..##.. +##.#.#. +....#.# +....#.# +##.#.#. +##.##.. +...###. +.####.. + +..##....##. +###.#..#### +##........# +####.##.### +...#....#.. +####.##.### +##.######.# + +..#......#....#.. +.#.#....#.#..#.#. +..#.#..#.#....#.# +##.#.##.#.####.#. +...##..#........# +.#..####..#..#..# +.#.#.##.#.#..#.#. + +.#.#..#...#.. +##...#####.#. +...#...##.#.. +..##.#.#..##. +##...#..####. +####.##.#..#. +...#.#.####.. +..##.#..#..#. +#######...#.# +####..#...### +####.######.# +##..##...##.# +....#..#.##.# +....#..#.##.# +##..##...##.# +####.######.# +####..#...### + +##..##.#.##.#.# +..###..######.. +..#...#..##..#. +####.##.####.## +###.#..#.##.#.. +..###....##.... +###.#....##.... +.....########## +###..###....### +####.###.##.### +..#####.#..#### +##.#####.##.### +##.#..########. + +##.#### +###.#.# +...#### +######. +#####.. +###.... +###...# +..###.. +##..### +..###.# +####.#. +......# +......# +####.#. +..###.# +##.#### +..###.. + +....#.##..##.#. +####..#....#..# +#..#....##....# +......#.##.#... +.##.#........#. +.##...##..##... +#..###.#..#.### +#..###..##..#.# +#..###......### +#..#.#.####.#.# +.......####.... +....##......##. +.##..#.#..#.#.. +#..#.#.####.#.# +.....##....##.. + +.#......#.####..# +#..####..#..##..# +.#.####.#..#..#.. +#...##...#.#.#### +##########....... +#..####..#....##. +.##.##.##.#.#.##. +#........#....##. +..#.##.#....#.##. + +###.##.#....#.##. +..####.##..##.### +###..#..####..#.. +..#.............. +###...##....##... +..#.###..##..###. +...#.#...##...#.# +##...#.#....#.#.. +###.##..####..##. +...##.#......#.## +...#.#...#....#.# +####.....##.....# +###...##.##.##... +####.####..####.# +....#####..#####. + +#.##.#..# +##...#.## +##....##. +....##... +....###.. +##....##. +##...#.## +#.##.#..# +#.##.#..# + +.##.#......#. +#####.####.## +#..#...##...# +.##.###.####. +....#..##..#. +#.##..####..# +....###..###. +#....######.. +##....#..#... +#.##.#....#.# +...#...##...# +..#.########. +..#.########. +...#...##...# +#.##.#....#.# + +.#.#.#..#.... +.#.#.#..#.... +#.#.###.#.... +#......###..# +...##..#.#..# +.##..###.#.## +.#.#.##.#.### +##..##..#.#.# +..#..######.# +#..#.####.#.. +..######.#.## +..######.#.## +#..#.#.##.#.. + +##.###.....#. +##.#..####... +##...###.##.# +###..###..#.# +...##...#..## +...##...#..## +###..###.##.# +##...###.##.# +##.#..####... +##.###.....#. +##...#.##.#.# +..###..#.#... +##.###...#..# + +..#.##....##.#... +###..######..#### +..#.###..###.#... +....##.##.##..... +.###..#..#..###.. +..#####..######.. +######....####### +##.###....###.### +#.#.#.#..#.#.#.## +###.#.####.#.#### +.##.#..##..#.##.. + +.#..##..##. +..#.#....#. +.....####.. +#..###..### +###..#.##.. +####.#..#.# +####.#..#.# + +#.##.## +..##.## +..##.## +#.##.## +.#....# +#.#.... +##.##.# +..###.. +...###. + +####.#..#.# +....######. +......##... +.##.######. +......##... +.##.#.##.#. +.##........ +....######. +.##.....#.. + +##....### +#...##### +#.###...# +.#..#..## +....####. +...##.##. +##...#.#. +##...#.#. +...##.##. +....####. +.#..#..## +#.###...# +#...##### +##.#..### +##.#..### + +#.##..##.#.#.#### +..........##..... +..######..####..# +..######....#.##. +#.##..##.##.##.## +..##..##...#..... +#.##..##.###..... +###....###...#..# +#........###..##. +#...##...##.##### +....##......##### +..##..##..#..#..# +#.#.##.#.#####..# + +##.##.##...###. +#.####.##..###. +..####..#...... +##.##.##.#..#.. +..####...#...## +........#.#.#.# +..#..#..#...##. +##.##.###..##.# +##.##.###...### +###..###.#...## +..#..#...##..#. + +#...#..#....#.. +.#..###..##..## +##..#..##..##.. +.##.#####..#### +.#..#..#....#.. +.#.###..#..#..# +.###.########## +.#......#..#... +#####..#....#.. +.#.#...#.##.#.. +.######..##..## +#.#..##.#..#.## +........####... + +##.#.#.## +....#.... +######... +##.##.##. +###....#. +....##.## +##.#..... +....#..## +...###### +....##### +....#..## + +#.#.#.#.###.#.... +##..###..##.#.... +.#.#.##.###.##### +..###....###.##.. +#..#.#.##..###### +#.#.###..###..... +.####...######... +##..#.#.#..#.#.## +#.####.##...#.### +#.##.#.##.###..## +.##...#.##.....## +.....###.#.###... +.#.##..#....#..## +.#.##..#.#..#..## +.....###.#.###... + +###...#..## +..#.#...### +#.#.##..... +...#...#### +##.#...#.## +......#..## +#..#.##.... +...###..#.. +..#.##.##.. +..#.##.##.. +.#.###..#.. +#..#.##.... +......#..## + +##.#### +#..##.. +..##..# +#..#... +....#.# +##.##.. +#.##..# +#.#.#.. +#.#.#.. +#.##..# +#..##.. +....#.# +#..#... +..##..# +#..##.. +##.#### +##.#### + +#.##.#####.####.# +.#..####.#......# +#..###.##...##... +.##.....####..### +##..###..######## +#.##.#....#.##.#. +#.##.#....#.##.#. +##..###..######## +.##.....####..### +#..###.##...##... +.#..###..#......# + +.###..#.##.#.#. +#...####...##.# +...#.####..#.## +#..###...#####. +#..###...#####. +...#.####..#.## +#...####...##.# +.###..####.#.#. +#.#..#.####..## +#..#####..#..## +#..#####..#..## + +#.#....#####..# +..###..##...##. +..#.###.##..... +...##...#...##. +...##...#...##. +..#.###.##..... +..###..##...##. +#.#....#####..# +.#.#......#.#.. +#....##....#..# +##.#.#.#####..# + +.#..###..#...#.## +###.##.#.#....#.. +###.##.###....#.. +.#..###..#...#.## +##..#..#.#.##.... +#....#....###.#.. +....#.##..###..## +.#.###.#..#..#... +.#..##.##.#.#..## + +...##...#.. +##.##.####. +##....##..# +..#..#..... +#.#..###... +#..##..#..# +.######..#. +##....##..# +...##.....# +...##.....# +##....##..# + +#....#......#.. +#.##.########.# +##..##########. +##..##.#..#.##. +.####..####..#. +#.##.#.#..#.#.# +#######.##.#### +######......### +.####.#.##.#.## +.......####.... +##..####..####. +.#..#.#.##.#.#. +.####.#....#.## + +########...##.. +#......###....# +###..########## +#########..##.. +#..##..#...##.. +........#..##.. +.#....#.##.##.# +.#....#.##.##.# +.#....#........ +...##......##.. +..#..#...#.##.# +.#....#.#..##.. +#.####.###.##.# +###..###..####. +##.######..##.. + +..##.....####.. +..#.#.#..#..#.. +..###.######.## +###..#.##....## +....####..##..# +##.###.######## +..########..### +...#..###....## +....###.#.##.#. +##....####..### +##.#..###.##.## + +.####.#.####..#.. +.#.....#..####### +######.###..#..## +.##.....#..#.#.## +##...#..#.####.## +..##...#.####.### +#.#..####...###.. +#.#.##..#.#...#.. +..##..#.#..#.#... +#..##..#....##... +.##.....##.#.#.## +.###..###....#.## +.###..####...#.## + +..#..####..#. +##.#.#..#.#.. +...#..##..#.. +##.#......#.# +###.##..##.## +...########.. +..##..##..##. +##.###..###.# +..##..##..##. + +.##..#..#.#..##.. +.#.##....##.#..#. +..###......##..## +##..######....... +.#######......... +####...#..####### +...###..##...##.. +....#.#...##....# +.#.##..#.####..## +##...###.##..##.. +##...###.##..##.. +.####..#.####..## +....#.#...##....# + +#..##.####. +#..##.####. +#...#.####. +#####..##.. +.#..##.##.# +...#..#..#. +.......##.. +.##.#...... +#...#...... +##.#..#..#. +##...#....# +...######## +#.##..#..#. +###..#.##.# +.....###### +#..#....#.. +#.#.##.##.# + +##..#.#.... +.####..#.## +.#.#.#..#.# +.#.#.#..#.# +.####..#.## +##..#.#.... +#####...... +.###..##.## +##..##.###. +#..#....#.. +##.#####.## +.###...###. +..##...###. +##.#####.## +#..#....#.. + +..###....###. +####......### +...#..##..#.. +....##..##... +..####..####. +...#..##..#.. +..#.#....#.#. +###..#..#..## +..#.####.#.#. +##..#....#..# +#####.##.#### +....##..##... +##...####...# +###..#..#..## +..#...##...#. + +##.#...##.##..# +.#..##.##.#.##. +###.#..###..... +###.#..###..... +.#..##.##.#.##. +#..#...##.##..# +##.#####.#..##. +#.#.##..#.#.... +#.#....####.... +.######.#...##. +...#.##.#..#### +..##....###.##. +..#..##.####### +.#..##...#.#..# +#..###......... +.##..#.#.###..# +######.##.##..# + +##.###..##.###### +##.##...#..##..## +#..#.....##.####. +..#.#...#.##....# +##..##.##.###..## +######..######### +.#..##....#.####. +.#....###..##..## +.....##.....#..#. +#....#....#..##.. +#..#...#......... +#..#...##.###..## +#..#.#.##.###..## + +..####. +##....# +##....# +..####. +#.#..#. +.#.##.# +...##.. +##.##.# +#..##.. +#.####. +#...... +##....# +.###### +..##### +##....# +###..## +#.####. + +...#..##..#...### +.#..#....#..#...# +##.########.##.## +#...######...#... +##.#..##..#.##... +..#.######.#...## +####.##.#.######. +##....##....###.. +##.########.##.#. +#.#.##..##.#.#.## +..#.#....#.#..... +.....####.....##. +#.#.##..##.#.###. +.#.#.#..#.#.#.##. +.#.#.#..#.#.#.##. + +##....# +#.#..#. +.#.##.# +.#.##.# +..#..#. +##....# +.###### + +#.###..##.##. +#....#.#..... +###..#.####.. +#.....#.#.### +#...#..#.#... +#.#..##....## +####.#..#.... +.###.#.#..... +.###.#.#..... +####.#..#.... +#.#..##....## +#...#..#.#... +#.....#.#.### +###..#.####.. +#....#.#..... + +..#....####.. +..##...####.. +#.#.##.#..#.# +#..#..#..#.#. +###.....##... +...###.####.# +##.#.#..##..# +##.#.#..##..# +...###.####.# +###.....##... +#..#..#..#.#. + +.##..#.#..#..#. +#..#..##.#....# +.##...#..#.##.# +#.####.#.##..## +....#.#..#.##.# +#######.#...... +....#...#.####. +....##.#....... +.......##.#..#. +####.#....#..#. +#####..#.###### +####.#..#...... +.##.#..#..#..#. +#..#####..####. +.##.....#...... +.##.###...#..#. +....##.#...##.. + +##.#..# +.##.... +..##..# +.#.#### +##.#..# +.##.... +.###### +#.#.##. +###.... +.##.... +.##.... +###.... +#.#.##. +.###### +.##.... +#..#..# +.#.#### + +##......###..###. +..#....#...##...# +#.#.##.#.#....#.# +#........######.. +.##....##.####.## +.#.####.#..##..#. +##..##..##....### +..........####... +...####....##.... + +##...##.##.##...# +###..##.##.##..## +#####.##..##.#### +##.##........##.# +###.####..####.## +...##.#....#.##.. +...#..######..#.. +####.#..##..#.### +..##..#.##.#..### + +..###.##. +.#####..# +....##### +##.#..### +#.##..##. +##.###.#. +.#..##... +.#..##... +##.###.#. +#.##..##. +##.#..### +....##### +.#####..# +..###.##. +..###.##. +.#####... +....##### + +........# +#.####.## +.#....#.# +........# +...##.... +...##.... +........# +.#....#.# +#.####.#. +........# +..#..#... +#......## +.#....#.# +#.#..#.## +...##.... + +...#.##.. +##.###... +#...##### +###...### +##...#... +###.#.### +.####.#.. +###...... +.##..#... +.##..#... +###...... +.####.... +###.#.### +##...#... +###...### +#...##### +##.###... + +#..#....#..##.##. +#..######..##.##. +#...#..#...#..... +.#..#..#..#.##..# +.####..####.##..# +#.#.####...###### +..########....##. +..#.#..#.#..#.... +##..####..###.##. + +.####.### +#....#... +#.##.#... +..##..### +######.#. +##..##.## +#.##.#### +.####.#.. +#....#### +######... +..##..... + +......#..#... +.##...####.## +.....#.#..### +####.#.###.#. +#..####..#.## +.##.#..#..... +##.#.###..### +.....#...##.# +#..#.##.###.# +#..###.#..#.. +#..##.#.####. +####.#..#..#. +.##..#...###. +....##.##...# +.##....##..#. +....#.##..... +....#.##..... + +##..##. +##..##. +.#..#.. +#....#. +.####.# +#....#. +..###.. + +###.....# +###.....# +.##.#..## +#..#.#.## +####..#.. +.##..##.. +##...###. +..#.###.# +..#.###.# +##..####. +.##..##.. +####..#.. +#..#.#.## + +#.#....#.#....... +#...#.....##.##.. +#...#.....##.##.. +#.#....#.#....... +#######..#....... +.#######.##..##.. +.#.##.####.##..## +#####...##....... +##.####...##....# + +#.#.##### +.....#... +#..###..# +#####.##. +.###.#..# +...##.##. +.##..#### +#..#..... +.###.#..# +....#.##. +##...#..# +#..###### +#..###### + +.#####.#..#.##### +#..#...####..##.. +.###.#.####.#.### +..#..########..#. +##..###....###..# +##..###....###..# +..#..########..#. + +...#....##.#.#. +#....#.....#.#. +###.##..##..#.# +##.#######.##.. +###..#.#..####. +..###.###...#.. +#.##.....#.#### +#.##.....#.#### +..###.###...... +###..#.#..####. +##.#######.##.. +###.##..##..#.# +#....#.....#.#. +...#....##.#.#. +.##..##.....##. +#####...####... +#####...####... + +#.###..###### +####..####... +.#.###.##..## +.......#..#.. +###.#...##.## +#....##..#### +.#.....###.## +#....#..#.... +#....##.#.... + +..#.##..... +.####.####. +.#.#.#.###. +..###.###.# +..###.###.# +.###.#.###. +.####.####. +..#.##..... +##..##..### +#.#........ +####..####. +####..####. +#.#........ + +......#.. +######... +.#..#..## +#....#### +.#####.## +#.##.##.. +#....##.. +.#..#.... +..##..### +.#..#..## +#....#.## +#######.. +..##...## + +..#..#..#.. +...##....## +####.####.# +..###....## +##..#.####. +##..##..##. +###.#....#. +##...####.. +####..##..# +##.###..### +..#..####.. + +##.###....##.#..# +##.###....##.#..# +#.....###..##.... +.#####.#..#.####. +#..#.#...#....#.# +##.#.#...#....#.# +.#####.#..#.####. + +.##..##.### +.##..##.### +#..##..#.## +#..##..#### +###..####.. +.##..##.### +........#.. +...##...... +#.#..#.#..# +#.####.###. +#..##..#... +#.#..#..##. +##########. + +##..######.#..# +...#.#.#.#...#. +##..##.#.#.#.## +.....###..##.#. +.....###..##.#. +##..##.#.#.#.## +...#.#.#.#...#. +##..######.#..# +##.#.##...###.# +.#.##.####.#### +###.#.#.......# + +.###.## +##..### +##.#... +#...... +##..... +#...### +#...### +##..... +#...... +##.#... +##..### +.###.## +.#.###. +.##..## +...##.. +..#..## +...##.. + +.###### +.###### +.....## +###.#.# +#.####. +#...#.. +#.##... +#.##..# +..##.## +...#.#. +...#.#. +..##.## +####..# + +......# +......# +####.#. +.#.##.# +..##... +#.##..# +.##.### +.##..## +#.##..# + +..##.##..##.. +###..######## +#.#####..##.. +#.#####..##.. +###..######## +..##.##..##.. +#..###....... +...#..#.##### +###........## +.#.#.#.#....# +......#..#.## + +..##....#......## +..##....#......## +###.####..###.### +#.##.##.###.#.##. +......##.####...# +#.##.###...###### +.####.###.#...### + +###...##...#### +.##...##...##.# +.#....##....#.. +....######..... +.####.##.####.# +..####..####..# +..####..####... + +######..##### +#...######... +#..#.####.#.. +.###......### +.##.#.##.#.## +...#.####.#.. +#.#.##..##.#. +#.#.##..##.#. +...#.####.#.. +.##.#.##.#.## +.###......### +#..#.####.#.. +#...######... +######..##### +#..####.###.. +...##.##.##.. +##...####...# + +.##.###..#....... +..##.#..#...#..#. +####.......##..## +.##......#.##..## +..#.####......... +..#.####......... +###......#.##..## +####.......##..## +..##.#..#...#..#. +.##.###..#....... +...##...#....##.. +#.##.#...####..## +##..#.##..#.#..#. +...#####..#.####. +..##..#.##....... +##.######..#.##.# +.##.##...##...... + +##.#........##.## +...#...#...#...## +...#...#...#...## +####........##.## +#####.#.##......# +#####.####.#..#.# +##.#..##.##..###. +##..#.....#####.. +##..##...#.#.#... +....#.#.#....##.# +####.###...#....# +##.####....###.## +..##..#.#.#...... \ No newline at end of file diff --git a/y2023/ex13/src/lib.rs b/y2023/ex13/src/lib.rs new file mode 100644 index 0000000..78d4bca --- /dev/null +++ b/y2023/ex13/src/lib.rs @@ -0,0 +1,89 @@ +use models::Map; + +mod models; + +pub fn part1(input: &str) -> usize { + input + .split("\n\n") + .map(|raw_map| { + let map: Map = raw_map.parse().unwrap(); + let vertical_reflection = match map.find_vertical_reflection() { + Some(col) => col + 1, + None => 0, + }; + let horizontal_reflection = match map.find_horizontal_reflection() { + Some(row) => row + 1, + None => 0, + }; + + vertical_reflection + horizontal_reflection * 100 + }) + .sum() +} + +pub fn part2(input: &str) -> usize { + input + .split("\n\n") + .map(|raw_map| { + let map: Map = raw_map.parse().unwrap(); + let vertical_reflection = match map.find_vertical_reflection_with_smudge() { + Some(col) => col + 1, + None => 0, + }; + let horizontal_reflection = match map.find_horizontal_reflection_with_smudge() { + Some(row) => row + 1, + None => 0, + }; + + let result = vertical_reflection + horizontal_reflection * 100; + + println!( + "{}\n{} (vert: {}, horiz: {})\n", + raw_map, result, vertical_reflection, horizontal_reflection + ); + + result + }) + .sum() +} + +#[cfg(test)] +mod tests { + use super::*; + const INPUT: &str = include_str!("../input.txt"); + const EXAMPLE_INPUT: &str = "#.##..##. +..#.##.#. +##......# +##......# +..#.##.#. +..##..##. +#.#.##.#. + +#...##..# +#....#..# +..##..### +#####.##. +#####.##. +..##..### +#....#..#"; + + #[test] + fn test_part1_example() { + assert_eq!(part1(EXAMPLE_INPUT), 405); + } + + #[test] + fn test_part1() { + assert_eq!(part1(INPUT), 30575); + } + + #[test] + fn test_part2_example() { + assert_eq!(part2(EXAMPLE_INPUT), 400); + } + + #[test] + fn test_part2() { + assert_eq!(part2(INPUT), 0); + } +} diff --git a/y2023/ex13/src/models.rs b/y2023/ex13/src/models.rs new file mode 100644 index 0000000..75a9b0f --- /dev/null +++ b/y2023/ex13/src/models.rs @@ -0,0 +1,251 @@ +use std::{ + cmp::min, + collections::{HashMap, HashSet}, + str::FromStr, +}; + +#[derive(Debug, Clone)] +pub struct Map { + width: usize, + height: usize, + rows: HashMap>, + cols: HashMap>, +} + +impl FromStr for Map { + type Err = (); + + fn from_str(s: &str) -> Result { + let width = s.lines().next().unwrap().len(); + let height = s.lines().count(); + let mut rows: HashMap> = HashMap::new(); + let mut cols: HashMap> = HashMap::new(); + + for (row, line) in s.lines().enumerate() { + for (col, tile) in line.chars().enumerate() { + if tile == '#' { + rows.entry(row).or_default().insert(col); + cols.entry(col).or_default().insert(row); + } + } + } + + Ok(Map { + width, + height, + rows, + cols, + }) + } +} + +impl Map { + fn has_reflection_at( + &self, + idx: usize, + len: usize, + ref_index: &HashMap>, + ) -> bool { + let min_distance_to_edge = min(idx, len - idx); + for delta in 0..=(min_distance_to_edge + 1) { + if idx + delta >= len { + continue; + } + let points_a = ref_index.get(&(idx + delta)); + let points_b = ref_index.get(&(idx + 1 - delta)); + let matching = points_a == points_b; + if !matching { + return false; + } + } + + true + } + + fn has_reflection_with_smudge_at( + &self, + idx: usize, + len: usize, + ref_index: &HashMap>, + ) -> bool { + let min_distance_to_edge = min(idx, len - idx); + let mut found_smudge = false; + + let mut compared = HashSet::new(); + + for delta in 0..=(min_distance_to_edge + 1) { + if idx + delta >= len || idx + 1 - delta >= len { + continue; + } + + let points_a_idx = idx + delta; + let points_b_idx = idx + 1 - delta; + if compared.contains(&(points_a_idx, points_b_idx)) { + continue; + } + + let points_a = ref_index.get(&points_a_idx).unwrap(); + let points_b = ref_index.get(&points_b_idx).unwrap(); + compared.insert((points_a_idx, points_b_idx)); + compared.insert((points_b_idx, points_a_idx)); + let matching = points_a == points_b; + + let mut a = points_a.iter().collect::>(); + a.sort(); + let mut b = points_b.iter().collect::>(); + b.sort(); + println!( + "idx: {}, delta: {}, matching: {}, a ({}): {:?}, b ({}): {:?}", + idx, + delta, + matching, + idx + delta, + a, + idx + 1 - delta, + b + ); + + if !matching && found_smudge { + println!("idx: {}, delta: {} --- found smudge twice!", idx, delta); + // cannot have more than 1 smudge + return false; + } + // Check if there's a smudge. + // There must be only 1 difference between the sets, which means that the instersection + // should contain the same number of elements of the set with the least amount of elements. + let len_diff = (points_a.len() as isize - points_b.len() as isize).abs(); + if points_a.intersection(points_b).count() == min(points_a.len(), points_b.len()) + && len_diff == 1 + { + println!("idx: {}, delta: {} --- found smudge!", idx, delta); + found_smudge = true; + } + } + + println!("idx: {} --- EXITING WITH {}", idx, found_smudge); + + found_smudge + } + + pub fn find_vertical_reflection(&self) -> Option { + (0..self.width).find(|&col| self.has_reflection_at(col, self.width, &self.cols)) + } + + pub fn find_horizontal_reflection(&self) -> Option { + (0..self.height).find(|&row| self.has_reflection_at(row, self.height, &self.rows)) + } + + pub fn find_vertical_reflection_with_smudge(&self) -> Option { + (0..self.width).find(|&col| self.has_reflection_with_smudge_at(col, self.width, &self.cols)) + } + + pub fn find_horizontal_reflection_with_smudge(&self) -> Option { + (0..self.height) + .find(|&row| self.has_reflection_with_smudge_at(row, self.height, &self.rows)) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_find_vertical_reflection() { + let raw_map = "#.##..##. +..#.##.#. +##......# +##......# +..#.##.#. +..##..##. +#.#.##.#."; + let map: Map = raw_map.parse().unwrap(); + let vertical_reflection = map.find_vertical_reflection().unwrap(); + assert_eq!(vertical_reflection, 4); + let horizontal_reflection = map.find_horizontal_reflection(); + assert!(horizontal_reflection.is_none()); + } + + #[test] + fn test_find_vertical_reflection2() { + let raw_map = "####.##.####### +.####..####.... +####.##.####### +.###.##.###.##. +.##..##..##.... +.#...##...#.##. +#..######..#### +#..#....#..#### +.###.##.###.##. +#.#..##.##.#### +#.#.#..#.#.#..# +####....####### +.##......##.##."; + let map: Map = raw_map.parse().unwrap(); + let vertical_reflection = map.find_vertical_reflection().unwrap(); + assert_eq!(vertical_reflection, 12); + let horizontal_reflection = map.find_horizontal_reflection(); + assert!(horizontal_reflection.is_none()); + } + + #[test] + fn test_find_horizontal_reflection() { + let raw_map = "#...##..# +#....#..# +..##..### +#####.##. +#####.##. +..##..### +#....#..#"; + let map: Map = raw_map.parse().unwrap(); + let horizontal_reflection = map.find_horizontal_reflection().unwrap(); + assert_eq!(horizontal_reflection, 3); + let vertical_reflection = map.find_vertical_reflection(); + assert!(vertical_reflection.is_none()); + } + + #[test] + fn test_find_horizontal_reflection2() { + let raw_map = "#.###.#.. +#.###.#.. +..##.#.## +#.####.#. +#####...# +#.##.##.. +..##.#... +##...###. +.#....#.# +#..#...## +#..#.#.##"; + let map: Map = raw_map.parse().unwrap(); + let horizontal_reflection = map.find_horizontal_reflection().unwrap(); + assert_eq!(horizontal_reflection, 0); + } + + #[test] + fn test_find_horizontal_reflection_with_smudge() { + let raw_map = "#.##..##. +..#.##.#. +##......# +##......# +..#.##.#. +..##..##. +#.#.##.#."; + let map: Map = raw_map.parse().unwrap(); + let horizontal_reflection = map.find_horizontal_reflection_with_smudge().unwrap(); + assert_eq!(horizontal_reflection, 2); + } + + #[test] + fn test_find_horizontal_reflection_with_smudge2() { + let raw_map = "#...##..# +#....#..# +..##..### +#####.##. +#####.##. +..##..### +#....#..#"; + let map: Map = raw_map.parse().unwrap(); + let horizontal_reflection = map.find_horizontal_reflection_with_smudge().unwrap(); + assert_eq!(horizontal_reflection, 0); + } +}