summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormathiasmagnusson <mathiasmagnussons@gmail.com>2022-02-26 17:20:49 +0100
committermathiasmagnusson <mathiasmagnussons@gmail.com>2022-02-26 17:20:49 +0100
commit517381626f0d59b91519436b388ac505ced792f2 (patch)
tree77ff5e2e3857c971b6ebec618f163422b1ba9dcf
downloadprogramming-problem-solving-517381626f0d59b91519436b388ac505ced792f2.tar.gz
Initial commit
-rw-r--r--kattis-kth-alginda-quicksort/Cargo.lock85
-rw-r--r--kattis-kth-alginda-quicksort/Cargo.toml12
-rw-r--r--kattis-kth-alginda-quicksort/gen.py11
-rw-r--r--kattis-kth-alginda-quicksort/radix.c146
-rw-r--r--kattis-kth-alginda-quicksort/src/main.rs28
-rw-r--r--kattis-kth-alginda-quicksort/src/radix_sort.rs141
-rwxr-xr-xkattis-kth-alginda-quicksort/test.fish10
-rw-r--r--kattis-kth-javap-windows/Cargo.lock7
-rw-r--r--kattis-kth-javap-windows/Cargo.toml8
-rw-r--r--kattis-kth-javap-windows/input1001
-rw-r--r--kattis-kth-javap-windows/src/main.rs119
-rw-r--r--kattis-open-almostunionfind/Cargo.lock7
-rw-r--r--kattis-open-almostunionfind/Cargo.toml8
-rwxr-xr-xkattis-open-almostunionfind/bad.py53
-rwxr-xr-xkattis-open-almostunionfind/geninput.py15
-rw-r--r--kattis-open-almostunionfind/in2.txt8
-rw-r--r--kattis-open-almostunionfind/in3.txt241
-rw-r--r--kattis-open-almostunionfind/input.txt41
-rw-r--r--kattis-open-almostunionfind/pyout.txt281
-rw-r--r--kattis-open-almostunionfind/rustout.txt281
-rw-r--r--kattis-open-almostunionfind/src/main.rs153
-rw-r--r--unsolved/kattis-kth-adk-spelling/Cargo.lock7
-rw-r--r--unsolved/kattis-kth-adk-spelling/Cargo.toml8
-rw-r--r--unsolved/kattis-kth-adk-spelling/input1011
-rw-r--r--unsolved/kattis-kth-adk-spelling/src/main.rs127
-rw-r--r--unsolved/kattis-kth-adk-spelling/wl500000
-rw-r--r--unsolved/kattis-kth-adk-spelling/wlgen.js5
27 files changed, 503814 insertions, 0 deletions
diff --git a/kattis-kth-alginda-quicksort/Cargo.lock b/kattis-kth-alginda-quicksort/Cargo.lock
new file mode 100644
index 0000000..b3ab7a2
--- /dev/null
+++ b/kattis-kth-alginda-quicksort/Cargo.lock
@@ -0,0 +1,85 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "getrandom"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d39cd93900197114fa1fcb7ae84ca742095eed9442088988ae74fa744e930e77"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "kattis-kth-alginda-quicksort"
+version = "0.1.0"
+dependencies = [
+ "rand",
+ "rand_pcg",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.119"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "rand_pcg"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "wasi"
+version = "0.10.2+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
diff --git a/kattis-kth-alginda-quicksort/Cargo.toml b/kattis-kth-alginda-quicksort/Cargo.toml
new file mode 100644
index 0000000..4968225
--- /dev/null
+++ b/kattis-kth-alginda-quicksort/Cargo.toml
@@ -0,0 +1,12 @@
+[package]
+name = "kattis-kth-alginda-quicksort"
+version = "0.1.0"
+edition = "2021"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dev-dependencies]
+rand = "0.8"
+rand_pcg = "0.3"
+
+[dependencies]
diff --git a/kattis-kth-alginda-quicksort/gen.py b/kattis-kth-alginda-quicksort/gen.py
new file mode 100644
index 0000000..37c4095
--- /dev/null
+++ b/kattis-kth-alginda-quicksort/gen.py
@@ -0,0 +1,11 @@
+from random import randint as r
+from sys import argv
+
+lo = int(argv[1])
+hi = int(argv[2])
+n = int(argv[3])
+
+xs = [r(lo, hi) for _ in range(n)]
+
+print(len(xs), " ")
+print(' \n '.join(str(x) for x in xs))
diff --git a/kattis-kth-alginda-quicksort/radix.c b/kattis-kth-alginda-quicksort/radix.c
new file mode 100644
index 0000000..babc0ec
--- /dev/null
+++ b/kattis-kth-alginda-quicksort/radix.c
@@ -0,0 +1,146 @@
+/* https://kth.kattis.com/problems/kth.alginda.quicksort */
+
+#include <unistd.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <stdint.h>
+/* #include <immintrin.h> */
+
+// longest int: -2147483648
+#define BUFFER_MAX (12 * 600000)
+char buffer[BUFFER_MAX];
+int xs[600000];
+int tmp[600000];
+
+int *radix_sort(int n) {
+ int *out = xs;
+ int *in = tmp;
+ // we loop an even amount of times so the completely sorted array
+ // will be in xs, not tmp
+ for (int m = 0; m < 32; m += 8) {
+ int *tmp = out;
+ out = in;
+ in = tmp;
+
+ int counts[256] = { 0 };
+ for (int i = 0; i < n; i++)
+ counts[(uint8_t) (in[i] >> m)]++;
+
+ int sum = 0;
+ for (int i = 0; i < 256; i++) {
+ sum += counts[i];
+ counts[i] = sum;
+ }
+ for (int i = n - 1; i >= 0; i--) {
+ uint8_t fx = in[i] >> m;
+ counts[fx]--;
+ out[counts[fx]] = in[i];
+ }
+ }
+}
+
+int main() {
+ /* char *buffer = malloc(BUFFER_MAX); */
+ /* ssize_t len = 0; */
+ /* while (true) { */
+ /* if (len >= BUFFER_MAX) return 1; */
+ /* ssize_t r = read(0, &buffer[len], BUFFER_MAX - len); */
+ /* len += r; */
+ /* if (r == 0) */
+ /* break; */
+ /* } */
+ ssize_t len = read(0, buffer, BUFFER_MAX);
+
+ int curr = 0;
+ int n = 0;
+ while (buffer[curr] != ' ' && buffer[curr] != '\n') {
+ n *= 10;
+ n += buffer[curr] - '0';
+ curr++;
+ }
+ while (buffer[curr] == ' ' || buffer[curr] == '\n') curr++;
+
+ for (int i = 0; i < n; i++) {
+ int x = 0;
+ bool neg = false;
+ if (buffer[curr] == '-') {
+ neg = true;
+ curr++;
+ }
+ while (curr < len && buffer[curr] != ' ' && buffer[curr] != '\n') {
+ x *= 10;
+ x += buffer[curr] - '0';
+ curr++;
+ }
+ while (curr < len && (buffer[curr] == ' ' || buffer[curr] == '\n')) curr++;
+
+ if (neg) x = -x;
+ xs[i] = x ^ (1 << 31);
+ }
+
+ radix_sort(n);
+
+ len = 0;
+ for (int i = 0; i < n; i++, len += 12) {
+ long x = xs[i] ^ (1 << 31);
+ bool neg = false;
+ if (x < 0) {
+ neg = true;
+ x = -x;
+ }
+ int j = 11;
+ buffer[len + j--] = '\n';
+ do {
+ buffer[len + j--] = (x % 10) + '0';
+ x /= 10;
+ } while (x > 0);
+ if (neg) buffer[len + j--] = '-';
+ while (j >= 0) buffer[len + j--] = ' ';
+ }
+
+ /*
+ len = 0;
+
+ __m256i highestbit = _mm256_set1_epi32(1 << 32);
+ __m256i zero = _mm256_set1_epi32(0);
+ __m256i lens = _mm256_set_epi32(0 * 12,
+ 1 * 12,
+ 2 * 12,
+ 3 * 12,
+ 4 * 12,
+ 5 * 12,
+ 6 * 12,
+ 7 * 12);
+ __m256i lenoffset = _mm256_set1_epi(8 * 12);
+
+ for (int i = 0; i < n; i += 8) {
+ // long x = xs[i] ^ (1 << 31);
+ __m256i xx = _mm256_load_si256(&xs[i]);
+ xx = _mm256_xor_si256(xx, highestbit);
+ // bool neg = false;
+ // if (x < 0) {
+ // neg = true;
+ // x = -x;
+ // }
+ __m256i negs = _mm256_cmpgt(zero, xx);
+ xx = _mm256_abs_epi64(xx);
+ // todo...
+ int j = 11;
+ buffer[len + j--] = '\n';
+ do {
+ buffer[len + j--] = (x % 10) + '0';
+ x /= 10;
+ } while (x > 0);
+ if (neg) buffer[len + j--] = '-';
+ while (j >= 0) buffer[len + j--] = ' ';
+
+ // len += 8 * 12
+ lens = _mm256_add_epi32(lens, lenoffset);
+ }
+ */
+ /* ssize_t c = 0; */
+ /* while (c < len) c += write(1, &buffer[c], len - c); */
+ write(1, buffer, len);
+}
diff --git a/kattis-kth-alginda-quicksort/src/main.rs b/kattis-kth-alginda-quicksort/src/main.rs
new file mode 100644
index 0000000..67646b3
--- /dev/null
+++ b/kattis-kth-alginda-quicksort/src/main.rs
@@ -0,0 +1,28 @@
+// https://kth.kattis.com/problems/kth.alginda.quicksort
+
+#![feature(test)]
+
+use std::fmt::Write;
+use std::io::{stdin, Read};
+
+mod radix_sort;
+
+use radix_sort::radix_sort;
+
+fn main() {
+ let mut buffer = String::new();
+ stdin().lock().read_to_string(&mut buffer).unwrap();
+ let xs: Vec<i32> = buffer
+ .split_ascii_whitespace()
+ .skip(1)
+ .map(|x| x.parse().unwrap())
+ .collect();
+
+ let xs = radix_sort(xs);
+
+ buffer.clear();
+ for x in xs {
+ writeln!(buffer, "{}", x).unwrap();
+ }
+ print!("{}", buffer);
+}
diff --git a/kattis-kth-alginda-quicksort/src/radix_sort.rs b/kattis-kth-alginda-quicksort/src/radix_sort.rs
new file mode 100644
index 0000000..e7d4e02
--- /dev/null
+++ b/kattis-kth-alginda-quicksort/src/radix_sort.rs
@@ -0,0 +1,141 @@
+use std::mem;
+
+pub trait RadixFilters: 'static {
+ const FILTERS: &'static [fn(&Self) -> u8];
+}
+
+impl RadixFilters for u32 {
+ const FILTERS: &'static [fn(&Self) -> u8] = &[
+ |x| ((x & 0x000000ff) >> (8 * 0)) as _,
+ |x| ((x & 0x0000ff00) >> (8 * 1)) as _,
+ |x| ((x & 0x00ff0000) >> (8 * 2)) as _,
+ |x| ((x & 0xff000000) >> (8 * 3)) as _,
+ ];
+}
+
+impl RadixFilters for i32 {
+ const FILTERS: &'static [fn(&Self) -> u8] = &[
+ |x| ((x & 0x000000ff) >> (8 * 0)) as _,
+ |x| ((x & 0x0000ff00) >> (8 * 1)) as _,
+ |x| ((x & 0x00ff0000) >> (8 * 2)) as _,
+ |x| (((x & 0xff000000u32 as i32) ^ (1 << 31)) >> (8 * 3)) as _,
+ ];
+}
+
+impl RadixFilters for u64 {
+ const FILTERS: &'static [fn(&Self) -> u8] = &[
+ |x| ((x & 0x00000000000000ff) >> (8 * 0)) as _,
+ |x| ((x & 0x000000000000ff00) >> (8 * 1)) as _,
+ |x| ((x & 0x0000000000ff0000) >> (8 * 2)) as _,
+ |x| ((x & 0x00000000ff000000) >> (8 * 3)) as _,
+ |x| ((x & 0x000000ff00000000) >> (8 * 4)) as _,
+ |x| ((x & 0x0000ff0000000000) >> (8 * 5)) as _,
+ |x| ((x & 0x00ff000000000000) >> (8 * 6)) as _,
+ |x| ((x & 0xff00000000000000) >> (8 * 7)) as _,
+ ];
+}
+
+pub fn radix_sort<T>(xs: Vec<T>) -> Vec<T>
+where
+ T: Default + Copy + Clone + RadixFilters,
+{
+ // The first thing that happens it that these two are swapped so thats why this seems backwards
+ let mut output = xs;
+ let mut input = vec![T::default(); output.len()];
+ for f in T::FILTERS {
+ mem::swap(&mut input, &mut output);
+
+ let mut counts = [0; 256];
+ for x in &input {
+ counts[f(x) as usize] += 1;
+ }
+ let mut sum = 0;
+ for c in &mut counts {
+ sum += *c;
+ *c = sum;
+ }
+ for x in input.iter_mut().rev() {
+ let fx = f(x) as usize;
+ counts[fx] -= 1;
+ output[counts[fx]] = *x;
+ }
+ }
+ output
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn basic_rand() {
+ let mut r = rand_pcg::Pcg32::new(0xcafef00dd15ea5e5, 0xa02bdbf7bb3c0a7);
+ let xs: Vec<u32> = (0..1_000_000).map(|_| r.next_u32()).collect();
+
+ let xs = radix_sort(xs);
+ for w in xs.as_slice().windows(2) {
+ assert!(w[0] <= w[1]);
+ }
+ }
+
+ #[test]
+ fn negatives() {
+ let mut r = rand_pcg::Pcg32::new(0xcafef00dd15ea5e5, 0xa02bdbf7bb3c0a7);
+ let xs: Vec<i32> = (0..1_000_000).map(|_| r.next_u32() as i32).collect();
+
+ let xs = radix_sort(xs);
+ for w in xs.as_slice().windows(2) {
+ assert!(w[0] <= w[1], "{} <= {}", w[0], w[1]);
+ }
+ }
+
+ extern crate test;
+ use rand::RngCore;
+ use test::{black_box, Bencher};
+
+ #[bench]
+ fn std_u32_x1e6(b: &mut Bencher) {
+ let mut r = rand_pcg::Pcg32::new(0xcafef00dd15ea5e5, 0xa02bdbf7bb3c0a7);
+ let xs: Vec<u32> = (0..1_000_000).map(|_| r.next_u32()).collect();
+
+ b.iter(|| {
+ let mut xs = black_box(xs.clone());
+ xs.sort();
+ black_box(xs);
+ });
+ }
+
+ #[bench]
+ fn radix_u32_x1e6(b: &mut Bencher) {
+ let mut r = rand_pcg::Pcg32::new(0xcafef00dd15ea5e5, 0xa02bdbf7bb3c0a7);
+ let xs: Vec<u32> = (0..1_000_000).map(|_| r.next_u32()).collect();
+
+ b.iter(|| {
+ let xs = black_box(xs.clone());
+ black_box(radix_sort(xs));
+ });
+ }
+
+ #[bench]
+ fn std_u64_x1e6(b: &mut Bencher) {
+ let mut r = rand_pcg::Pcg32::new(0xcafef00dd15ea5e5, 0xa02bdbf7bb3c0a7);
+ let xs: Vec<u64> = (0..1_000_000).map(|_| r.next_u64()).collect();
+
+ b.iter(|| {
+ let mut xs = black_box(xs.clone());
+ xs.sort();
+ black_box(xs);
+ });
+ }
+
+ #[bench]
+ fn radix_u64_x1e6(b: &mut Bencher) {
+ let mut r = rand_pcg::Pcg32::new(0xcafef00dd15ea5e5, 0xa02bdbf7bb3c0a7);
+ let xs: Vec<u64> = (0..1_000_000).map(|_| r.next_u64()).collect();
+
+ b.iter(|| {
+ let xs = black_box(xs.clone());
+ black_box(radix_sort(xs));
+ });
+ }
+}
diff --git a/kattis-kth-alginda-quicksort/test.fish b/kattis-kth-alginda-quicksort/test.fish
new file mode 100755
index 0000000..6aaf60c
--- /dev/null
+++ b/kattis-kth-alginda-quicksort/test.fish
@@ -0,0 +1,10 @@
+#!/bin/fish
+
+echo hej > out_c
+echo hej > out_r
+
+while diff out_c out_r
+ python gen.py -2147483648 2147483647 600000 > max
+ time ./radix < max > out_r
+ time ~/.cache/target/release/kattis-kth-alginda-quicksort < max > out_c
+end
diff --git a/kattis-kth-javap-windows/Cargo.lock b/kattis-kth-javap-windows/Cargo.lock
new file mode 100644
index 0000000..780a06b
--- /dev/null
+++ b/kattis-kth-javap-windows/Cargo.lock
@@ -0,0 +1,7 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "kattis-kth-javap-windows"
+version = "0.1.0"
diff --git a/kattis-kth-javap-windows/Cargo.toml b/kattis-kth-javap-windows/Cargo.toml
new file mode 100644
index 0000000..230d61e
--- /dev/null
+++ b/kattis-kth-javap-windows/Cargo.toml
@@ -0,0 +1,8 @@
+[package]
+name = "kattis-kth-javap-windows"
+version = "0.1.0"
+edition = "2021"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
diff --git a/kattis-kth-javap-windows/input b/kattis-kth-javap-windows/input
new file mode 100644
index 0000000..7a0afaa
--- /dev/null
+++ b/kattis-kth-javap-windows/input
@@ -0,0 +1,1001 @@
+1000
+1 1 8001 8001
+3 3 8003 8003
+5 5 8005 8005
+7 7 8007 8007
+9 9 8009 8009
+11 11 8011 8011
+13 13 8013 8013
+15 15 8015 8015
+17 17 8017 8017
+19 19 8019 8019
+21 21 8021 8021
+23 23 8023 8023
+25 25 8025 8025
+27 27 8027 8027
+29 29 8029 8029
+31 31 8031 8031
+33 33 8033 8033
+35 35 8035 8035
+37 37 8037 8037
+39 39 8039 8039
+41 41 8041 8041
+43 43 8043 8043
+45 45 8045 8045
+47 47 8047 8047
+49 49 8049 8049
+51 51 8051 8051
+53 53 8053 8053
+55 55 8055 8055
+57 57 8057 8057
+59 59 8059 8059
+61 61 8061 8061
+63 63 8063 8063
+65 65 8065 8065
+67 67 8067 8067
+69 69 8069 8069
+71 71 8071 8071
+73 73 8073 8073
+75 75 8075 8075
+77 77 8077 8077
+79 79 8079 8079
+81 81 8081 8081
+83 83 8083 8083
+85 85 8085 8085
+87 87 8087 8087
+89 89 8089 8089
+91 91 8091 8091
+93 93 8093 8093
+95 95 8095 8095
+97 97 8097 8097
+99 99 8099 8099
+101 101 8101 8101
+103 103 8103 8103
+105 105 8105 8105
+107 107 8107 8107
+109 109 8109 8109
+111 111 8111 8111
+113 113 8113 8113
+115 115 8115 8115
+117 117 8117 8117
+119 119 8119 8119
+121 121 8121 8121
+123 123 8123 8123
+125 125 8125 8125
+127 127 8127 8127
+129 129 8129 8129
+131 131 8131 8131
+133 133 8133 8133
+135 135 8135 8135
+137 137 8137 8137
+139 139 8139 8139
+141 141 8141 8141
+143 143 8143 8143
+145 145 8145 8145
+147 147 8147 8147
+149 149 8149 8149
+151 151 8151 8151
+153 153 8153 8153
+155 155 8155 8155
+157 157 8157 8157
+159 159 8159 8159
+161 161 8161 8161
+163 163 8163 8163
+165 165 8165 8165
+167 167 8167 8167
+169 169 8169 8169
+171 171 8171 8171
+173 173 8173 8173
+175 175 8175 8175
+177 177 8177 8177
+179 179 8179 8179
+181 181 8181 8181
+183 183 8183 8183
+185 185 8185 8185
+187 187 8187 8187
+189 189 8189 8189
+191 191 8191 8191
+193 193 8193 8193
+195 195 8195 8195
+197 197 8197 8197
+199 199 8199 8199
+201 201 8201 8201
+203 203 8203 8203
+205 205 8205 8205
+207 207 8207 8207
+209 209 8209 8209
+211 211 8211 8211
+213 213 8213 8213
+215 215 8215 8215
+217 217 8217 8217
+219 219 8219 8219
+221 221 8221 8221
+223 223 8223 8223
+225 225 8225 8225
+227 227 8227 8227
+229 229 8229 8229
+231 231 8231 8231
+233 233 8233 8233
+235 235 8235 8235
+237 237 8237 8237
+239 239 8239 8239
+241 241 8241 8241
+243 243 8243 8243
+245 245 8245 8245
+247 247 8247 8247
+249 249 8249 8249
+251 251 8251 8251
+253 253 8253 8253
+255 255 8255 8255
+257 257 8257 8257
+259 259 8259 8259
+261 261 8261 8261
+263 263 8263 8263
+265 265 8265 8265
+267 267 8267 8267
+269 269 8269 8269
+271 271 8271 8271
+273 273 8273 8273
+275 275 8275 8275
+277 277 8277 8277
+279 279 8279 8279
+281 281 8281 8281
+283 283 8283 8283
+285 285 8285 8285
+287 287 8287 8287
+289 289 8289 8289
+291 291 8291 8291
+293 293 8293 8293
+295 295 8295 8295
+297 297 8297 8297
+299 299 8299 8299
+301 301 8301 8301
+303 303 8303 8303
+305 305 8305 8305
+307 307 8307 8307
+309 309 8309 8309
+311 311 8311 8311
+313 313 8313 8313
+315 315 8315 8315
+317 317 8317 8317
+319 319 8319 8319
+321 321 8321 8321
+323 323 8323 8323
+325 325 8325 8325
+327 327 8327 8327
+329 329 8329 8329
+331 331 8331 8331
+333 333 8333 8333
+335 335 8335 8335
+337 337 8337 8337
+339 339 8339 8339
+341 341 8341 8341
+343 343 8343 8343
+345 345 8345 8345
+347 347 8347 8347
+349 349 8349 8349
+351 351 8351 8351
+353 353 8353 8353
+355 355 8355 8355
+357 357 8357 8357
+359 359 8359 8359
+361 361 8361 8361
+363 363 8363 8363
+365 365 8365 8365
+367 367 8367 8367
+369 369 8369 8369
+371 371 8371 8371
+373 373 8373 8373
+375 375 8375 8375
+377 377 8377 8377
+379 379 8379 8379
+381 381 8381 8381
+383 383 8383 8383
+385 385 8385 8385
+387 387 8387 8387
+389 389 8389 8389
+391 391 8391 8391
+393 393 8393 8393
+395 395 8395 8395
+397 397 8397 8397
+399 399 8399 8399
+401 401 8401 8401
+403 403 8403 8403
+405 405 8405 8405
+407 407 8407 8407
+409 409 8409 8409
+411 411 8411 8411
+413 413 8413 8413
+415 415 8415 8415
+417 417 8417 8417
+419 419 8419 8419
+421 421 8421 8421
+423 423 8423 8423
+425 425 8425 8425
+427 427 8427 8427
+429 429 8429 8429
+431 431 8431 8431
+433 433 8433 8433
+435 435 8435 8435
+437 437 8437 8437
+439 439 8439 8439
+441 441 8441 8441
+443 443 8443 8443
+445 445 8445 8445
+447 447 8447 8447
+449 449 8449 8449
+451 451 8451 8451
+453 453 8453 8453
+455 455 8455 8455
+457 457 8457 8457
+459 459 8459 8459
+461 461 8461 8461
+463 463 8463 8463
+465 465 8465 8465
+467 467 8467 8467
+469 469 8469 8469
+471 471 8471 8471
+473 473 8473 8473
+475 475 8475 8475
+477 477 8477 8477
+479 479 8479 8479
+481 481 8481 8481
+483 483 8483 8483
+485 485 8485 8485
+487 487 8487 8487
+489 489 8489 8489
+491 491 8491 8491
+493 493 8493 8493
+495 495 8495 8495
+497 497 8497 8497
+499 499 8499 8499
+501 501 8501 8501
+503 503 8503 8503
+505 505 8505 8505
+507 507 8507 8507
+509 509 8509 8509
+511 511 8511 8511
+513 513 8513 8513
+515 515 8515 8515
+517 517 8517 8517
+519 519 8519 8519
+521 521 8521 8521
+523 523 8523 8523
+525 525 8525 8525
+527 527 8527 8527
+529 529 8529 8529
+531 531 8531 8531
+533 533 8533 8533
+535 535 8535 8535
+537 537 8537 8537
+539 539 8539 8539
+541 541 8541 8541
+543 543 8543 8543
+545 545 8545 8545
+547 547 8547 8547
+549 549 8549 8549
+551 551 8551 8551
+553 553 8553 8553
+555 555 8555 8555
+557 557 8557 8557
+559 559 8559 8559
+561 561 8561 8561
+563 563 8563 8563
+565 565 8565 8565
+567 567 8567 8567
+569 569 8569 8569
+571 571 8571 8571
+573 573 8573 8573
+575 575 8575 8575
+577 577 8577 8577
+579 579 8579 8579
+581 581 8581 8581
+583 583 8583 8583
+585 585 8585 8585
+587 587 8587 8587
+589 589 8589 8589
+591 591 8591 8591
+593 593 8593 8593
+595 595 8595 8595
+597 597 8597 8597
+599 599 8599 8599
+601 601 8601 8601
+603 603 8603 8603
+605 605 8605 8605
+607 607 8607 8607
+609 609 8609 8609
+611 611 8611 8611
+613 613 8613 8613
+615 615 8615 8615
+617 617 8617 8617
+619 619 8619 8619
+621 621 8621 8621
+623 623 8623 8623
+625 625 8625 8625
+627 627 8627 8627
+629 629 8629 8629
+631 631 8631 8631
+633 633 8633 8633
+635 635 8635 8635
+637 637 8637 8637
+639 639 8639 8639
+641 641 8641 8641
+643 643 8643 8643
+645 645 8645 8645
+647 647 8647 8647
+649 649 8649 8649
+651 651 8651 8651
+653 653 8653 8653
+655 655 8655 8655
+657 657 8657 8657
+659 659 8659 8659
+661 661 8661 8661
+663 663 8663 8663
+665 665 8665 8665
+667 667 8667 8667
+669 669 8669 8669
+671 671 8671 8671
+673 673 8673 8673
+675 675 8675 8675
+677 677 8677 8677
+679 679 8679 8679
+681 681 8681 8681
+683 683 8683 8683
+685 685 8685 8685
+687 687 8687 8687
+689 689 8689 8689
+691 691 8691 8691
+693 693 8693 8693
+695 695 8695 8695
+697 697 8697 8697
+699 699 8699 8699
+701 701 8701 8701
+703 703 8703 8703
+705 705 8705 8705
+707 707 8707 8707
+709 709 8709 8709
+711 711 8711 8711
+713 713 8713 8713
+715 715 8715 8715
+717 717 8717 8717
+719 719 8719 8719
+721 721 8721 8721
+723 723 8723 8723
+725 725 8725 8725
+727 727 8727 8727
+729 729 8729 8729
+731 731 8731 8731
+733 733 8733 8733
+735 735 8735 8735
+737 737 8737 8737
+739 739 8739 8739
+741 741 8741 8741
+743 743 8743 8743
+745 745 8745 8745
+747 747 8747 8747
+749 749 8749 8749
+751 751 8751 8751
+753 753 8753 8753
+755 755 8755 8755
+757 757 8757 8757
+759 759 8759 8759
+761 761 8761 8761
+763 763 8763 8763
+765 765 8765 8765
+767 767 8767 8767
+769 769 8769 8769
+771 771 8771 8771
+773 773 8773 8773
+775 775 8775 8775
+777 777 8777 8777
+779 779 8779 8779
+781 781 8781 8781
+783 783 8783 8783
+785 785 8785 8785
+787 787 8787 8787
+789 789 8789 8789
+791 791 8791 8791
+793 793 8793 8793
+795 795 8795 8795
+797 797 8797 8797
+799 799 8799 8799
+801 801 8801 8801
+803 803 8803 8803
+805 805 8805 8805
+807 807 8807 8807
+809 809 8809 8809
+811 811 8811 8811
+813 813 8813 8813
+815 815 8815 8815
+817 817 8817 8817
+819 819 8819 8819
+821 821 8821 8821
+823 823 8823 8823
+825 825 8825 8825
+827 827 8827 8827
+829 829 8829 8829
+831 831 8831 8831
+833 833 8833 8833
+835 835 8835 8835
+837 837 8837 8837
+839 839 8839 8839
+841 841 8841 8841
+843 843 8843 8843
+845 845 8845 8845
+847 847 8847 8847
+849 849 8849 8849
+851 851 8851 8851
+853 853 8853 8853
+855 855 8855 8855
+857 857 8857 8857
+859 859 8859 8859
+861 861 8861 8861
+863 863 8863 8863
+865 865 8865 8865
+867 867 8867 8867
+869 869 8869 8869
+871 871 8871 8871
+873 873 8873 8873
+875 875 8875 8875
+877 877 8877 8877
+879 879 8879 8879
+881 881 8881 8881
+883 883 8883 8883
+885 885 8885 8885
+887 887 8887 8887
+889 889 8889 8889
+891 891 8891 8891
+893 893 8893 8893
+895 895 8895 8895
+897 897 8897 8897
+899 899 8899 8899
+901 901 8901 8901
+903 903 8903 8903
+905 905 8905 8905
+907 907 8907 8907
+909 909 8909 8909
+911 911 8911 8911
+913 913 8913 8913
+915 915 8915 8915
+917 917 8917 8917
+919 919 8919 8919
+921 921 8921 8921
+923 923 8923 8923
+925 925 8925 8925
+927 927 8927 8927
+929 929 8929 8929
+931 931 8931 8931
+933 933 8933 8933
+935 935 8935 8935
+937 937 8937 8937
+939 939 8939 8939
+941 941 8941 8941
+943 943 8943 8943
+945 945 8945 8945
+947 947 8947 8947
+949 949 8949 8949
+951 951 8951 8951
+953 953 8953 8953
+955 955 8955 8955
+957 957 8957 8957
+959 959 8959 8959
+961 961 8961 8961
+963 963 8963 8963
+965 965 8965 8965
+967 967 8967 8967
+969 969 8969 8969
+971 971 8971 8971
+973 973 8973 8973
+975 975 8975 8975
+977 977 8977 8977
+979 979 8979 8979
+981 981 8981 8981
+983 983 8983 8983
+985 985 8985 8985
+987 987 8987 8987
+989 989 8989 8989
+991 991 8991 8991
+993 993 8993 8993
+995 995 8995 8995
+997 997 8997 8997
+999 999 8999 8999
+1001 1001 9001 9001
+1003 1003 9003 9003
+1005 1005 9005 9005
+1007 1007 9007 9007
+1009 1009 9009 9009
+1011 1011 9011 9011
+1013 1013 9013 9013
+1015 1015 9015 9015
+1017 1017 9017 9017
+1019 1019 9019 9019
+1021 1021 9021 9021
+1023 1023 9023 9023
+1025 1025 9025 9025
+1027 1027 9027 9027
+1029 1029 9029 9029
+1031 1031 9031 9031
+1033 1033 9033 9033
+1035 1035 9035 9035
+1037 1037 9037 9037
+1039 1039 9039 9039
+1041 1041 9041 9041
+1043 1043 9043 9043
+1045 1045 9045 9045
+1047 1047 9047 9047
+1049 1049 9049 9049
+1051 1051 9051 9051
+1053 1053 9053 9053
+1055 1055 9055 9055
+1057 1057 9057 9057
+1059 1059 9059 9059
+1061 1061 9061 9061
+1063 1063 9063 9063
+1065 1065 9065 9065
+1067 1067 9067 9067
+1069 1069 9069 9069
+1071 1071 9071 9071
+1073 1073 9073 9073
+1075 1075 9075 9075
+1077 1077 9077 9077
+1079 1079 9079 9079
+1081 1081 9081 9081
+1083 1083 9083 9083
+1085 1085 9085 9085
+1087 1087 9087 9087
+1089 1089 9089 9089
+1091 1091 9091 9091
+1093 1093 9093 9093
+1095 1095 9095 9095
+1097 1097 9097 9097
+1099 1099 9099 9099
+1101 1101 9101 9101
+1103 1103 9103 9103
+1105 1105 9105 9105
+1107 1107 9107 9107
+1109 1109 9109 9109
+1111 1111 9111 9111
+1113 1113 9113 9113
+1115 1115 9115 9115
+1117 1117 9117 9117
+1119 1119 9119 9119
+1121 1121 9121 9121
+1123 1123 9123 9123
+1125 1125 9125 9125
+1127 1127 9127 9127
+1129 1129 9129 9129
+1131 1131 9131 9131
+1133 1133 9133 9133
+1135 1135 9135 9135
+1137 1137 9137 9137
+1139 1139 9139 9139
+1141 1141 9141 9141
+1143 1143 9143 9143
+1145 1145 9145 9145
+1147 1147 9147 9147
+1149 1149 9149 9149
+1151 1151 9151 9151
+1153 1153 9153 9153
+1155 1155 9155 9155
+1157 1157 9157 9157
+1159 1159 9159 9159
+1161 1161 9161 9161
+1163 1163 9163 9163
+1165 1165 9165 9165
+1167 1167 9167 9167
+1169 1169 9169 9169
+1171 1171 9171 9171
+1173 1173 9173 9173
+1175 1175 9175 9175
+1177 1177 9177 9177
+1179 1179 9179 9179
+1181 1181 9181 9181
+1183 1183 9183 9183
+1185 1185 9185 9185
+1187 1187 9187 9187
+1189 1189 9189 9189
+1191 1191 9191 9191
+1193 1193 9193 9193
+1195 1195 9195 9195
+1197 1197 9197 9197
+1199 1199 9199 9199
+1201 1201 9201 9201
+1203 1203 9203 9203
+1205 1205 9205 9205
+1207 1207 9207 9207
+1209 1209 9209 9209
+1211 1211 9211 9211
+1213 1213 9213 9213
+1215 1215 9215 9215
+1217 1217 9217 9217
+1219 1219 9219 9219
+1221 1221 9221 9221
+1223 1223 9223 9223
+1225 1225 9225 9225
+1227 1227 9227 9227
+1229 1229 9229 9229
+1231 1231 9231 9231
+1233 1233 9233 9233
+1235 1235 9235 9235
+1237 1237 9237 9237
+1239 1239 9239 9239
+1241 1241 9241 9241
+1243 1243 9243 9243
+1245 1245 9245 9245
+1247 1247 9247 9247
+1249 1249 9249 9249
+1251 1251 9251 9251
+1253 1253 9253 9253
+1255 1255 9255 9255
+1257 1257 9257 9257
+1259 1259 9259 9259
+1261 1261 9261 9261
+1263 1263 9263 9263
+1265 1265 9265 9265
+1267 1267 9267 9267
+1269 1269 9269 9269
+1271 1271 9271 9271
+1273 1273 9273 9273
+1275 1275 9275 9275
+1277 1277 9277 9277
+1279 1279 9279 9279
+1281 1281 9281 9281
+1283 1283 9283 9283
+1285 1285 9285 9285
+1287 1287 9287 9287
+1289 1289 9289 9289
+1291 1291 9291 9291
+1293 1293 9293 9293
+1295 1295 9295 9295
+1297 1297 9297 9297
+1299 1299 9299 9299
+1301 1301 9301 9301
+1303 1303 9303 9303
+1305 1305 9305 9305
+1307 1307 9307 9307
+1309 1309 9309 9309
+1311 1311 9311 9311
+1313 1313 9313 9313
+1315 1315 9315 9315
+1317 1317 9317 9317
+1319 1319 9319 9319
+1321 1321 9321 9321
+1323 1323 9323 9323
+1325 1325 9325 9325
+1327 1327 9327 9327
+1329 1329 9329 9329
+1331 1331 9331 9331
+1333 1333 9333 9333
+1335 1335 9335 9335
+1337 1337 9337 9337
+1339 1339 9339 9339
+1341 1341 9341 9341
+1343 1343 9343 9343
+1345 1345 9345 9345
+1347 1347 9347 9347
+1349 1349 9349 9349
+1351 1351 9351 9351
+1353 1353 9353 9353
+1355 1355 9355 9355
+1357 1357 9357 9357
+1359 1359 9359 9359
+1361 1361 9361 9361
+1363 1363 9363 9363
+1365 1365 9365 9365
+1367 1367 9367 9367
+1369 1369 9369 9369
+1371 1371 9371 9371
+1373 1373 9373 9373
+1375 1375 9375 9375
+1377 1377 9377 9377
+1379 1379 9379 9379
+1381 1381 9381 9381
+1383 1383 9383 9383
+1385 1385 9385 9385
+1387 1387 9387 9387
+1389 1389 9389 9389
+1391 1391 9391 9391
+1393 1393 9393 9393
+1395 1395 9395 9395
+1397 1397 9397 9397
+1399 1399 9399 9399
+1401 1401 9401 9401
+1403 1403 9403 9403
+1405 1405 9405 9405
+1407 1407 9407 9407
+1409 1409 9409 9409
+1411 1411 9411 9411
+1413 1413 9413 9413
+1415 1415 9415 9415
+1417 1417 9417 9417
+1419 1419 9419 9419
+1421 1421 9421 9421
+1423 1423 9423 9423
+1425 1425 9425 9425
+1427 1427 9427 9427
+1429 1429 9429 9429
+1431 1431 9431 9431
+1433 1433 9433 9433
+1435 1435 9435 9435
+1437 1437 9437 9437
+1439 1439 9439 9439
+1441 1441 9441 9441
+1443 1443 9443 9443
+1445 1445 9445 9445
+1447 1447 9447 9447
+1449 1449 9449 9449
+1451 1451 9451 9451
+1453 1453 9453 9453
+1455 1455 9455 9455
+1457 1457 9457 9457
+1459 1459 9459 9459
+1461 1461 9461 9461
+1463 1463 9463 9463
+1465 1465 9465 9465
+1467 1467 9467 9467
+1469 1469 9469 9469
+1471 1471 9471 9471
+1473 1473 9473 9473
+1475 1475 9475 9475
+1477 1477 9477 9477
+1479 1479 9479 9479
+1481 1481 9481 9481
+1483 1483 9483 9483
+1485 1485 9485 9485
+1487 1487 9487 9487
+1489 1489 9489 9489
+1491 1491 9491 9491
+1493 1493 9493 9493
+1495 1495 9495 9495
+1497 1497 9497 9497
+1499 1499 9499 9499
+1501 1501 9501 9501
+1503 1503 9503 9503
+1505 1505 9505 9505
+1507 1507 9507 9507
+1509 1509 9509 9509
+1511 1511 9511 9511
+1513 1513 9513 9513
+1515 1515 9515 9515
+1517 1517 9517 9517
+1519 1519 9519 9519
+1521 1521 9521 9521
+1523 1523 9523 9523
+1525 1525 9525 9525
+1527 1527 9527 9527
+1529 1529 9529 9529
+1531 1531 9531 9531
+1533 1533 9533 9533
+1535 1535 9535 9535
+1537 1537 9537 9537
+1539 1539 9539 9539
+1541 1541 9541 9541
+1543 1543 9543 9543
+1545 1545 9545 9545
+1547 1547 9547 9547
+1549 1549 9549 9549
+1551 1551 9551 9551
+1553 1553 9553 9553
+1555 1555 9555 9555
+1557 1557 9557 9557
+1559 1559 9559 9559
+1561 1561 9561 9561
+1563 1563 9563 9563
+1565 1565 9565 9565
+1567 1567 9567 9567
+1569 1569 9569 9569
+1571 1571 9571 9571
+1573 1573 9573 9573
+1575 1575 9575 9575
+1577 1577 9577 9577
+1579 1579 9579 9579
+1581 1581 9581 9581
+1583 1583 9583 9583
+1585 1585 9585 9585
+1587 1587 9587 9587
+1589 1589 9589 9589
+1591 1591 9591 9591
+1593 1593 9593 9593
+1595 1595 9595 9595
+1597 1597 9597 9597
+1599 1599 9599 9599
+1601 1601 9601 9601
+1603 1603 9603 9603
+1605 1605 9605 9605
+1607 1607 9607 9607
+1609 1609 9609 9609
+1611 1611 9611 9611
+1613 1613 9613 9613
+1615 1615 9615 9615
+1617 1617 9617 9617
+1619 1619 9619 9619
+1621 1621 9621 9621
+1623 1623 9623 9623
+1625 1625 9625 9625
+1627 1627 9627 9627
+1629 1629 9629 9629
+1631 1631 9631 9631
+1633 1633 9633 9633
+1635 1635 9635 9635
+1637 1637 9637 9637
+1639 1639 9639 9639
+1641 1641 9641 9641
+1643 1643 9643 9643
+1645 1645 9645 9645
+1647 1647 9647 9647
+1649 1649 9649 9649
+1651 1651 9651 9651
+1653 1653 9653 9653
+1655 1655 9655 9655
+1657 1657 9657 9657
+1659 1659 9659 9659
+1661 1661 9661 9661
+1663 1663 9663 9663
+1665 1665 9665 9665
+1667 1667 9667 9667
+1669 1669 9669 9669
+1671 1671 9671 9671
+1673 1673 9673 9673
+1675 1675 9675 9675
+1677 1677 9677 9677
+1679 1679 9679 9679
+1681 1681 9681 9681
+1683 1683 9683 9683
+1685 1685 9685 9685
+1687 1687 9687 9687
+1689 1689 9689 9689
+1691 1691 9691 9691
+1693 1693 9693 9693
+1695 1695 9695 9695
+1697 1697 9697 9697
+1699 1699 9699 9699
+1701 1701 9701 9701
+1703 1703 9703 9703
+1705 1705 9705 9705
+1707 1707 9707 9707
+1709 1709 9709 9709
+1711 1711 9711 9711
+1713 1713 9713 9713
+1715 1715 9715 9715
+1717 1717 9717 9717
+1719 1719 9719 9719
+1721 1721 9721 9721
+1723 1723 9723 9723
+1725 1725 9725 9725
+1727 1727 9727 9727
+1729 1729 9729 9729
+1731 1731 9731 9731
+1733 1733 9733 9733
+1735 1735 9735 9735
+1737 1737 9737 9737
+1739 1739 9739 9739
+1741 1741 9741 9741
+1743 1743 9743 9743
+1745 1745 9745 9745
+1747 1747 9747 9747
+1749 1749 9749 9749
+1751 1751 9751 9751
+1753 1753 9753 9753
+1755 1755 9755 9755
+1757 1757 9757 9757
+1759 1759 9759 9759
+1761 1761 9761 9761
+1763 1763 9763 9763
+1765 1765 9765 9765
+1767 1767 9767 9767
+1769 1769 9769 9769
+1771 1771 9771 9771
+1773 1773 9773 9773
+1775 1775 9775 9775
+1777 1777 9777 9777
+1779 1779 9779 9779
+1781 1781 9781 9781
+1783 1783 9783 9783
+1785 1785 9785 9785
+1787 1787 9787 9787
+1789 1789 9789 9789
+1791 1791 9791 9791
+1793 1793 9793 9793
+1795 1795 9795 9795
+1797 1797 9797 9797
+1799 1799 9799 9799
+1801 1801 9801 9801
+1803 1803 9803 9803
+1805 1805 9805 9805
+1807 1807 9807 9807
+1809 1809 9809 9809
+1811 1811 9811 9811
+1813 1813 9813 9813
+1815 1815 9815 9815
+1817 1817 9817 9817
+1819 1819 9819 9819
+1821 1821 9821 9821
+1823 1823 9823 9823
+1825 1825 9825 9825
+1827 1827 9827 9827
+1829 1829 9829 9829
+1831 1831 9831 9831
+1833 1833 9833 9833
+1835 1835 9835 9835
+1837 1837 9837 9837
+1839 1839 9839 9839
+1841 1841 9841 9841
+1843 1843 9843 9843
+1845 1845 9845 9845
+1847 1847 9847 9847
+1849 1849 9849 9849
+1851 1851 9851 9851
+1853 1853 9853 9853
+1855 1855 9855 9855
+1857 1857 9857 9857
+1859 1859 9859 9859
+1861 1861 9861 9861
+1863 1863 9863 9863
+1865 1865 9865 9865
+1867 1867 9867 9867
+1869 1869 9869 9869
+1871 1871 9871 9871
+1873 1873 9873 9873
+1875 1875 9875 9875
+1877 1877 9877 9877
+1879 1879 9879 9879
+1881 1881 9881 9881
+1883 1883 9883 9883
+1885 1885 9885 9885
+1887 1887 9887 9887
+1889 1889 9889 9889
+1891 1891 9891 9891
+1893 1893 9893 9893
+1895 1895 9895 9895
+1897 1897 9897 9897
+1899 1899 9899 9899
+1901 1901 9901 9901
+1903 1903 9903 9903
+1905 1905 9905 9905
+1907 1907 9907 9907
+1909 1909 9909 9909
+1911 1911 9911 9911
+1913 1913 9913 9913
+1915 1915 9915 9915
+1917 1917 9917 9917
+1919 1919 9919 9919
+1921 1921 9921 9921
+1923 1923 9923 9923
+1925 1925 9925 9925
+1927 1927 9927 9927
+1929 1929 9929 9929
+1931 1931 9931 9931
+1933 1933 9933 9933
+1935 1935 9935 9935
+1937 1937 9937 9937
+1939 1939 9939 9939
+1941 1941 9941 9941
+1943 1943 9943 9943
+1945 1945 9945 9945
+1947 1947 9947 9947
+1949 1949 9949 9949
+1951 1951 9951 9951
+1953 1953 9953 9953
+1955 1955 9955 9955
+1957 1957 9957 9957
+1959 1959 9959 9959
+1961 1961 9961 9961
+1963 1963 9963 9963
+1965 1965 9965 9965
+1967 1967 9967 9967
+1969 1969 9969 9969
+1971 1971 9971 9971
+1973 1973 9973 9973
+1975 1975 9975 9975
+1977 1977 9977 9977
+1979 1979 9979 9979
+1981 1981 9981 9981
+1983 1983 9983 9983
+1985 1985 9985 9985
+1987 1987 9987 9987
+1989 1989 9989 9989
+1991 1991 9991 9991
+1993 1993 9993 9993
+1995 1995 9995 9995
+1997 1997 9997 9997
+1999 1999 9999 9999
diff --git a/kattis-kth-javap-windows/src/main.rs b/kattis-kth-javap-windows/src/main.rs
new file mode 100644
index 0000000..f10ba56
--- /dev/null
+++ b/kattis-kth-javap-windows/src/main.rs
@@ -0,0 +1,119 @@
+// https://kth.kattis.com/problems/kth.javap.windows
+
+use std::{
+ io::{stdin, Read},
+ iter::repeat,
+};
+
+#[derive(Debug, Clone, Copy, PartialEq, Eq)]
+enum Tile {
+ Covered,
+ Empty,
+ Split(u32),
+}
+use Tile::*;
+
+trait Tiles {
+ fn fill(&mut self, i: u32, tile: Coord, coord: Coord);
+ fn count(&self, i: u32, tile: Coord) -> usize;
+}
+
+impl Tiles for Vec<Tile> {
+ fn fill(&mut self, i: u32, tile: Coord, coord: Coord) {
+ if self[i as usize] == Covered {
+ return;
+ }
+ if coord.x2 <= tile.x1 || coord.x1 >= tile.x2 || coord.y2 <= tile.y1 || coord.y1 >= tile.y2
+ {
+ return;
+ }
+ if coord.x1 <= tile.x1 && coord.x2 >= tile.x2 && coord.y1 <= tile.y1 && coord.y2 >= tile.y2
+ {
+ self[i as usize] = Covered;
+ return;
+ }
+ let c = match self[i as usize] {
+ Empty => {
+ let c = self.len() as u32;
+ self[i as usize] = Split(c);
+ self.extend(repeat(Empty).take(4));
+ c
+ }
+ Split(c) => c,
+ _ => unreachable!(),
+ };
+ for q in 0..4 {
+ self.fill(c + q, tile.quadrant(q), coord);
+ }
+ }
+
+ fn count(&self, i: u32, tile: Coord) -> usize {
+ match self[i as usize] {
+ Covered => (tile.x2 - tile.x1) as usize * (tile.y2 - tile.y1) as usize,
+ Empty => 0,
+ Split(c) => (0..4).map(|q| self.count(c + q, tile.quadrant(q))).sum(),
+ }
+ }
+}
+
+#[derive(Clone, Copy, PartialEq, Eq)]
+struct Coord {
+ x1: u16,
+ y1: u16,
+ x2: u16,
+ y2: u16,
+}
+
+impl Coord {
+ fn mid(&self) -> (u16, u16) {
+ (
+ self.x1 + (self.x2 - self.x1) / 2,
+ self.y1 + (self.y2 - self.y1) / 2,
+ )
+ }
+ fn quadrant(mut self, q: u32) -> Self {
+ let mid = self.mid();
+ let x = if q % 2 == 0 {
+ &mut self.x1
+ } else {
+ &mut self.x2
+ };
+ let y = if q < 2 { &mut self.y1 } else { &mut self.y2 };
+ *x = mid.0;
+ *y = mid.1;
+ self
+ }
+}
+
+fn main() {
+ let mut input = String::new();
+ stdin().lock().read_to_string(&mut input).unwrap();
+ let mut ints = input
+ .split(|c| c == ' ' || c == '\n')
+ .flat_map(|i| i.trim().parse::<u16>().ok());
+ let mut get = || ints.next().unwrap();
+
+ let mut tiles = Vec::with_capacity(33_000_000);
+ tiles.push(Empty);
+
+ let screen = Coord {
+ x1: 0,
+ y1: 0,
+ x2: 10001,
+ y2: 10001,
+ };
+
+ let n = get();
+ for _ in 0..n {
+ let coord = Coord {
+ x1: get(),
+ y1: get(),
+ x2: get(),
+ y2: get(),
+ };
+
+ tiles.fill(0, screen, coord);
+ }
+
+ println!("{}", tiles.count(0, screen));
+}
diff --git a/kattis-open-almostunionfind/Cargo.lock b/kattis-open-almostunionfind/Cargo.lock
new file mode 100644
index 0000000..f79cc3f
--- /dev/null
+++ b/kattis-open-almostunionfind/Cargo.lock
@@ -0,0 +1,7 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "kattis-open-almostunionfind"
+version = "0.1.0"
diff --git a/kattis-open-almostunionfind/Cargo.toml b/kattis-open-almostunionfind/Cargo.toml
new file mode 100644
index 0000000..e40a8b1
--- /dev/null
+++ b/kattis-open-almostunionfind/Cargo.toml
@@ -0,0 +1,8 @@
+[package]
+name = "kattis-open-almostunionfind"
+version = "0.1.0"
+edition = "2021"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
diff --git a/kattis-open-almostunionfind/bad.py b/kattis-open-almostunionfind/bad.py
new file mode 100755
index 0000000..1d4cbec
--- /dev/null
+++ b/kattis-open-almostunionfind/bad.py
@@ -0,0 +1,53 @@
+#!/usr/bin/python
+
+while True:
+ try:
+ line = input()
+ except EOFError:
+ break
+ n, m = map(int, line.split())
+
+ u = [[i + 1] for i in range(n)]
+
+ for _ in range(m):
+ line = input().split()
+ p = int(line[1])
+ if line[0] != '3':
+ q = int(line[2])
+
+ if line[0] == '1': # union
+ a, b = False, False
+ for s in u:
+ if p in s:
+ a = s
+ if q in s:
+ b = s
+ if a == False or b == False:
+ raise ValueError(f"could not find {p} or {q} in {u}")
+ if a != b:
+ for i in b:
+ a.append(i)
+ b.clear()
+ u.remove(b)
+ elif line[0] == '2': # move
+ a, b = False, False
+ for s in u:
+ if p in s:
+ a = s
+ if q in s:
+ b = s
+ if a == False or b == False:
+ raise ValueError(f"could not find {p} or {q} in {u}")
+ if a != b:
+ a.remove(p)
+ b.append(p)
+ if not a:
+ u.remove(a)
+ elif line[0] == '3':
+ for s in u:
+ if p in s:
+ print(len(s), sum(s))
+ break
+ else:
+ raise ValueError(f"could not find {p} in {u}")
+ # print(u)
diff --git a/kattis-open-almostunionfind/geninput.py b/kattis-open-almostunionfind/geninput.py
new file mode 100755
index 0000000..5eef1f3
--- /dev/null
+++ b/kattis-open-almostunionfind/geninput.py
@@ -0,0 +1,15 @@
+#!/usr/bin/python
+
+from random import randint as rand
+
+n, m = rand(10, 1000), rand(10, 1000)
+print(n, m)
+
+for _ in range(m):
+ t = rand(1, 3)
+ if t < 3:
+ p, q = rand(1, n), rand(1, n)
+ print(t, p, q)
+ else:
+ p = rand(1, n)
+ print(t, p)
diff --git a/kattis-open-almostunionfind/in2.txt b/kattis-open-almostunionfind/in2.txt
new file mode 100644
index 0000000..1bb97fe
--- /dev/null
+++ b/kattis-open-almostunionfind/in2.txt
@@ -0,0 +1,8 @@
+9 7
+1 6 1
+1 7 2
+1 5 2
+1 8 6
+1 5 8
+2 8 4
+3 5
diff --git a/kattis-open-almostunionfind/in3.txt b/kattis-open-almostunionfind/in3.txt
new file mode 100644
index 0000000..1a27497
--- /dev/null
+++ b/kattis-open-almostunionfind/in3.txt
@@ -0,0 +1,241 @@
+429 240
+3 245
+2 141 372
+1 300 23
+3 184
+1 91 179
+2 45 232
+1 203 425
+2 393 12
+1 399 339
+2 302 138
+2 204 132
+2 429 139
+3 233
+1 88 315
+1 59 318
+3 259
+2 173 166
+1 322 420
+1 72 386
+3 212
+3 417
+1 409 127
+3 118
+3 113
+2 89 208
+3 365
+2 79 406
+1 109 29
+1 385 59
+2 406 409
+1 29 297
+3 48
+1 211 297
+3 147
+2 24 161
+3 1
+3 130
+3 266
+2 338 92
+1 143 302
+2 317 367
+3 294
+2 401 220
+1 170 273
+3 25
+1 296 329
+1 255 214
+2 153 177
+2 228 55
+2 79 311
+2 374 51
+2 373 65
+2 386 35
+2 388 103
+1 429 395
+1 229 82
+1 62 416
+1 6 272
+3 81
+2 15 310
+1 414 375
+3 309
+1 122 259
+3 410
+3 6
+3 330
+2 201 390
+1 377 69
+3 310
+3 233
+2 157 246
+3 24
+2 168 108
+3 216
+2 282 5
+2 190 156
+3 427
+1 109 334
+3 37
+2 384 412
+1 324 74
+2 296 262
+3 412
+1 7 109
+2 31 317
+3 214
+1 55 164
+3 349
+3 202
+3 255
+1 27 278
+1 156 379
+2 429 328
+2 136 385
+1 199 188
+2 275 368
+3 164
+2 313 190
+2 324 182
+1 286 279
+3 311
+3 415
+2 330 146
+2 176 343
+2 281 20
+3 164
+3 134
+2 128 258
+1 258 335
+1 408 363
+1 413 110
+3 374
+1 31 28
+2 86 247
+3 416
+1 245 51
+3 27
+2 125 303
+1 111 227
+3 335
+3 305
+2 111 78
+2 411 77
+1 57 26
+3 425
+2 222 209
+3 251
+2 111 115
+3 328
+1 127 394
+1 89 387
+3 352
+3 346
+1 135 338
+3 407
+3 372
+2 51 41
+3 284
+2 153 411
+2 225 316
+1 180 257
+1 89 127
+3 150
+3 218
+2 242 249
+3 317
+1 371 83
+2 201 145
+3 336
+2 92 10
+1 199 18
+1 318 184
+2 333 306
+2 375 416
+2 198 245
+3 337
+3 331
+2 401 429
+1 239 260
+3 197
+1 89 421
+3 315
+2 219 91
+3 172
+1 56 273
+1 225 48
+1 89 238
+1 424 418
+1 162 296
+3 416
+2 376 265
+1 96 354
+2 55 326
+1 248 105
+1 425 247
+1 37 87
+2 166 254
+3 315
+3 80
+3 273
+1 191 139
+1 181 159
+2 135 158
+2 158 392
+2 179 84
+1 251 422
+1 152 218
+1 12 287
+2 47 330
+1 245 386
+2 199 423
+1 204 35
+2 6 227
+3 209
+3 98
+3 60
+3 79
+3 38
+3 417
+1 11 409
+1 23 151
+2 226 39
+3 173
+3 225
+2 92 376
+2 123 107
+1 331 60
+3 399
+2 96 249
+2 365 177
+1 410 325
+2 8 61
+2 5 199
+2 279 107
+2 303 329
+2 237 366
+2 91 335
+3 145
+3 52
+1 301 254
+3 395
+1 278 70
+1 233 341
+1 164 193
+3 365
+3 34
+3 50
+2 147 121
+3 278
+2 63 131
+2 328 87
+2 29 206
+1 320 238
+3 304
+2 183 414
+3 10
+2 178 8
+1 10 243
+3 20
+2 142 417
diff --git a/kattis-open-almostunionfind/input.txt b/kattis-open-almostunionfind/input.txt
new file mode 100644
index 0000000..315b418
--- /dev/null
+++ b/kattis-open-almostunionfind/input.txt
@@ -0,0 +1,41 @@
+17 40
+2 14 11
+2 3 13
+2 5 8
+2 13 15
+2 13 1
+2 4 6
+3 9
+2 2 7
+2 5 12
+2 14 1
+2 4 13
+3 6
+1 16 5
+3 12
+1 4 16
+1 15 3
+3 6
+3 3
+2 13 4
+3 16
+1 10 11
+3 6
+2 2 2
+3 4
+3 7
+3 3
+2 16 8
+2 7 2
+1 9 15
+3 14
+1 6 5
+2 17 3
+2 12 5
+3 17
+2 11 10
+3 2
+2 12 9
+1 17 2
+2 15 16
+1 3 15
diff --git a/kattis-open-almostunionfind/pyout.txt b/kattis-open-almostunionfind/pyout.txt
new file mode 100644
index 0000000..63fdad2
--- /dev/null
+++ b/kattis-open-almostunionfind/pyout.txt
@@ -0,0 +1,281 @@
+1 309
+1 500
+1 112
+1 142
+1 366
+1 575
+1 113
+1 126
+1 496
+1 349
+1 23
+1 103
+1 339
+1 30
+1 436
+1 311
+3 416
+1 184
+1 548
+1 561
+1 568
+1 45
+1 206
+1 329
+1 544
+1 478
+1 352
+1 555
+1 103
+2 1036
+1 541
+3 530
+4 1205
+2 723
+1 459
+1 453
+1 52
+1 74
+1 258
+1 11
+3 1435
+2 345
+1 411
+3 708
+1 100
+1 576
+1 277
+1 574
+2 650
+1 460
+1 316
+1 48
+1 164
+1 75
+2 638
+4 1205
+1 190
+1 496
+3 747
+1 466
+1 371
+1 558
+1 573
+2 927
+1 104
+2 563
+1 127
+1 311
+1 151
+2 932
+1 596
+1 187
+1 543
+2 93
+2 811
+1 154
+1 498
+6 2215
+1 248
+1 250
+1 548
+3 747
+1 47
+1 370
+2 992
+5 945
+1 292
+1 108
+1 327
+3 693
+2 992
+2 334
+2 334
+3 799
+2 784
+2 439
+5 1721
+1 231
+1 442
+1 377
+1 53
+2 658
+1 552
+4 1674
+3 958
+4 1674
+3 797
+4 1007
+1 22
+3 1231
+2 432
+3 1383
+1 475
+1 111
+2 1138
+2 686
+1 211
+3 918
+1 504
+2 177
+5 1941
+2 586
+1 507
+1 48
+1 332
+1 77
+17 5984
+1 364
+2 811
+2 500
+26 9440
+1 146
+2 500
+1 66
+1 537
+1 532
+1 74
+4 1540
+1 132
+1 405
+1 469
+3 385
+1 443
+4 1422
+3 1393
+1 11
+4 1422
+3 653
+4 892
+3 922
+2 737
+1 377
+1 232
+3 592
+1 128
+1 289
+1 452
+2 638
+2 986
+1 299
+2 439
+4 767
+1 120
+1 48
+2 214
+3 1393
+4 794
+2 500
+1 286
+2 932
+3 1311
+43 14918
+1 61
+2 584
+2 555
+1 63
+1 232
+2 742
+6 2007
+1 275
+1 75
+1 3
+4 1104
+2 1138
+1 73
+2 533
+4 1110
+1 299
+1 330
+17 4452
+6 1568
+4 1651
+5 802
+6 2007
+2 555
+1 354
+46 15564
+1 203
+11 3264
+1 249
+2 605
+1 338
+1 324
+7 2383
+3 1187
+1 510
+3 1018
+3 1176
+10 2671
+3 954
+2 439
+3 1187
+1 443
+57 18251
+59 18690
+1 578
+1 63
+2 492
+8 2710
+8 2710
+2 326
+2 326
+51 14428
+4 1479
+1 50
+65 21427
+1 228
+2 675
+1 362
+65 21556
+5 1683
+3 753
+2 477
+65 21556
+2 732
+5 1377
+51 14428
+51 14428
+1 528
+51 14225
+1 237
+2 932
+1 132
+7 1842
+5 1552
+64 21578
+1 458
+2 360
+3 555
+2 410
+51 14024
+1 407
+8 1910
+8 1910
+72 23820
+11 3914
+73 24655
+9 2532
+77 25911
+75 22332
+75 22332
+5 1377
+1 287
+1 200
+76 22868
+3 1031
+3 1041
+4 1244
+7 1468
+5 1525
+15 5005
+77 22896
+5 1466
+1 43
+3 781
+1 514
+7 1358
+2 1011
+1 374
+1 225
+7 1468
diff --git a/kattis-open-almostunionfind/rustout.txt b/kattis-open-almostunionfind/rustout.txt
new file mode 100644
index 0000000..63fdad2
--- /dev/null
+++ b/kattis-open-almostunionfind/rustout.txt
@@ -0,0 +1,281 @@
+1 309
+1 500
+1 112
+1 142
+1 366
+1 575
+1 113
+1 126
+1 496
+1 349
+1 23
+1 103
+1 339
+1 30
+1 436
+1 311
+3 416
+1 184
+1 548
+1 561
+1 568
+1 45
+1 206
+1 329
+1 544
+1 478
+1 352
+1 555
+1 103
+2 1036
+1 541
+3 530
+4 1205
+2 723
+1 459
+1 453
+1 52
+1 74
+1 258
+1 11
+3 1435
+2 345
+1 411
+3 708
+1 100
+1 576
+1 277
+1 574
+2 650
+1 460
+1 316
+1 48
+1 164
+1 75
+2 638
+4 1205
+1 190
+1 496
+3 747
+1 466
+1 371
+1 558
+1 573
+2 927
+1 104
+2 563
+1 127
+1 311
+1 151
+2 932
+1 596
+1 187
+1 543
+2 93
+2 811
+1 154
+1 498
+6 2215
+1 248
+1 250
+1 548
+3 747
+1 47
+1 370
+2 992
+5 945
+1 292
+1 108
+1 327
+3 693
+2 992
+2 334
+2 334
+3 799
+2 784
+2 439
+5 1721
+1 231
+1 442
+1 377
+1 53
+2 658
+1 552
+4 1674
+3 958
+4 1674
+3 797
+4 1007
+1 22
+3 1231
+2 432
+3 1383
+1 475
+1 111
+2 1138
+2 686
+1 211
+3 918
+1 504
+2 177
+5 1941
+2 586
+1 507
+1 48
+1 332
+1 77
+17 5984
+1 364
+2 811
+2 500
+26 9440
+1 146
+2 500
+1 66
+1 537
+1 532
+1 74
+4 1540
+1 132
+1 405
+1 469
+3 385
+1 443
+4 1422
+3 1393
+1 11
+4 1422
+3 653
+4 892
+3 922
+2 737
+1 377
+1 232
+3 592
+1 128
+1 289
+1 452
+2 638
+2 986
+1 299
+2 439
+4 767
+1 120
+1 48
+2 214
+3 1393
+4 794
+2 500
+1 286
+2 932
+3 1311
+43 14918
+1 61
+2 584
+2 555
+1 63
+1 232
+2 742
+6 2007
+1 275
+1 75
+1 3
+4 1104
+2 1138
+1 73
+2 533
+4 1110
+1 299
+1 330
+17 4452
+6 1568
+4 1651
+5 802
+6 2007
+2 555
+1 354
+46 15564
+1 203
+11 3264
+1 249
+2 605
+1 338
+1 324
+7 2383
+3 1187
+1 510
+3 1018
+3 1176
+10 2671
+3 954
+2 439
+3 1187
+1 443
+57 18251
+59 18690
+1 578
+1 63
+2 492
+8 2710
+8 2710
+2 326
+2 326
+51 14428
+4 1479
+1 50
+65 21427
+1 228
+2 675
+1 362
+65 21556
+5 1683
+3 753
+2 477
+65 21556
+2 732
+5 1377
+51 14428
+51 14428
+1 528
+51 14225
+1 237
+2 932
+1 132
+7 1842
+5 1552
+64 21578
+1 458
+2 360
+3 555
+2 410
+51 14024
+1 407
+8 1910
+8 1910
+72 23820
+11 3914
+73 24655
+9 2532
+77 25911
+75 22332
+75 22332
+5 1377
+1 287
+1 200
+76 22868
+3 1031
+3 1041
+4 1244
+7 1468
+5 1525
+15 5005
+77 22896
+5 1466
+1 43
+3 781
+1 514
+7 1358
+2 1011
+1 374
+1 225
+7 1468
diff --git a/kattis-open-almostunionfind/src/main.rs b/kattis-open-almostunionfind/src/main.rs
new file mode 100644
index 0000000..6563043
--- /dev/null
+++ b/kattis-open-almostunionfind/src/main.rs
@@ -0,0 +1,153 @@
+// https://open.kattis.com/problems/almostunionfind
+
+use std::{
+ io::{stdin, Read},
+ iter::once,
+};
+
+enum Node {
+ Root { count: u32, sum: u64 },
+ Child(usize),
+ Invalid,
+}
+
+impl Node {
+ fn count(&self) -> u32 {
+ match self {
+ &Root { count, .. } => count,
+ _ => unreachable!(),
+ }
+ }
+}
+
+use Node::*;
+
+fn root(uf: &mut [Node], mut node: usize) -> usize {
+ let mut root = node;
+ while let Child(parent) = uf[root] {
+ root = parent
+ }
+ while let Child(parent) = uf[node] {
+ uf[node] = Child(root);
+ node = parent;
+ }
+ root
+}
+
+fn join(uf: &mut [Node], a: usize, b: usize) {
+ let mut a = root(uf, a);
+ let mut b = root(uf, b);
+
+ if a == b {
+ return;
+ }
+
+ if uf[a].count() < uf[b].count() {
+ let tmp = a;
+ a = b;
+ b = tmp;
+ }
+
+ let (b_count, b_sum) = match uf[b] {
+ Root { count, sum } => (count, sum),
+ _ => unreachable!(),
+ };
+ match &mut uf[a] {
+ Root { count, sum } => {
+ *count += b_count;
+ *sum += b_sum;
+ }
+ _ => unreachable!(),
+ }
+ uf[b] = Child(a);
+}
+
+fn mov(
+ uf: &mut [Node],
+ free_index: &mut usize,
+ current_index_of: &mut [usize],
+ a: usize,
+ a_val: u64,
+ b: usize,
+) {
+ let a_root = root(uf, a);
+ let b_root = root(uf, b);
+ if a_root == b_root {
+ return;
+ }
+ match &mut uf[a_root] {
+ Root { count, sum } => {
+ *count -= 1;
+ *sum -= a_val;
+ }
+ _ => unreachable!(),
+ }
+ match &mut uf[b_root] {
+ Root { count, sum } => {
+ *count += 1;
+ *sum += a_val;
+ }
+ _ => unreachable!(),
+ }
+ uf[*free_index] = Child(b_root);
+ current_index_of[a_val as usize] = *free_index;
+ *free_index += 1;
+}
+
+fn main() {
+ let mut input = String::new();
+ stdin().lock().read_to_string(&mut input).unwrap();
+ let mut ints = input
+ .trim()
+ .split(|c| c == ' ' || c == '\n')
+ .map(|i| i.parse::<usize>().unwrap());
+ let mut get = || ints.next();
+
+ while let Some(n) = get() {
+ let m = get().unwrap();
+
+ let mut uf: Vec<Node> = (0..n + m)
+ .map(|i| {
+ if i < n {
+ Root {
+ count: 1,
+ sum: i as u64 + 1,
+ }
+ } else {
+ Invalid
+ }
+ })
+ .collect();
+ let mut free_index = n;
+ let mut current_index_of: Vec<usize> = (once(0).chain(0..n)).collect();
+
+ for _ in 0..m {
+ match get().unwrap() {
+ 1 => {
+ let (p, q) = (get().unwrap(), get().unwrap());
+ join(&mut uf, current_index_of[p], current_index_of[q]);
+ }
+ 2 => {
+ let (p, q) = (get().unwrap(), get().unwrap());
+ let (pi, qi) = (current_index_of[p], current_index_of[q]);
+ mov(
+ &mut uf,
+ &mut free_index,
+ &mut current_index_of,
+ pi,
+ p as u64,
+ qi,
+ );
+ }
+ _ => {
+ let p = get().unwrap();
+ let r = root(&mut uf, current_index_of[p]);
+ match uf[r] {
+ Root { count, sum } => println!("{} {}", count, sum),
+ _ => unreachable!(),
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/unsolved/kattis-kth-adk-spelling/Cargo.lock b/unsolved/kattis-kth-adk-spelling/Cargo.lock
new file mode 100644
index 0000000..8656833
--- /dev/null
+++ b/unsolved/kattis-kth-adk-spelling/Cargo.lock
@@ -0,0 +1,7 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "kattis-kth-adk-spelling"
+version = "0.1.0"
diff --git a/unsolved/kattis-kth-adk-spelling/Cargo.toml b/unsolved/kattis-kth-adk-spelling/Cargo.toml
new file mode 100644
index 0000000..45f6b19
--- /dev/null
+++ b/unsolved/kattis-kth-adk-spelling/Cargo.toml
@@ -0,0 +1,8 @@
+[package]
+name = "kattis-kth-adk-spelling"
+version = "0.1.0"
+edition = "2021"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
diff --git a/unsolved/kattis-kth-adk-spelling/input b/unsolved/kattis-kth-adk-spelling/input
new file mode 100644
index 0000000..1dc51a0
--- /dev/null
+++ b/unsolved/kattis-kth-adk-spelling/input
@@ -0,0 +1,1011 @@
+maska
+masken
+masker
+maskin
+maskot
+grukpcnjcmvgrrmvihrwemeuansixf
+tlpnrdzxcyfipoplgwtxgzpyewzhiy
+zwmgiewwmbiuiyioolsjusonzucrko
+jnuktfrqvscteoullquntmkkztfays
+cqnhznpjfjtklkjsccehbnxvpobxia
+ssibqwrdzklicdlgwjtuiafralweeb
+knrbjzpfxxlcskmvknwlkkyjsncbcc
+njbhwplahsnwvivfzhbzcpalsnxcbw
+ddzspejqrirlohfwummlohggjhundo
+dzoaxpkdfaldrydmfgnrjynrtpztic
+iynvbsfhvnpqdlnpxsvyaddvxrnrie
+uvgsxxeufirobzxouoverdhrfqbawt
+gdlraimoiyqctxfzouiyksmltrfoiy
+ckaopwkidmfokxswxgqrvmogjcvrnl
+bponvsuscstixugflnziasgzbbaqkg
+nfopncdjcucqbbbgyphwlnxlkbqkhj
+mhovrvsznieaxbdedojxtyxjbjiubg
+skxcaucdlgqlbnmmlwcbatgosnxiil
+ghibmunhdqilxfockklceydrelftwn
+ohsbgrtvtrjbvftauvirmdnzgyqftx
+gutkupdsrmmimsonuwstwnxiqrlppl
+ijfgsjqvwovhzfvxpikxccbfuhijgv
+jcxssrqarhvxxbjotqtainpytbiolm
+yfyjjrjbjpcvzmgreiluxmtagazzfu
+zarrnilizunqooxzvofyiavtlzppch
+etqljmidbysxguorfvhsyantpuorli
+kymgvjscjdjhtnaabsizomzdvihefg
+upczmnurwuoczvaofambqjniyfschs
+spzlyvrzsbqstvvzjaicwbnxqqbwln
+ypgjnbjdiipcrznykklapbcghgbqfa
+fssxxvpgfbhrknlulxvvmpgpsvpplh
+qpxqumspiirjvhnhbayxyaexjntnzt
+ixyhplbzufevcjapkahbfivttdrucw
+inumjqzpkabkmdsladnqznfhmfbyfh
+ulwcinaovzuwlyrvgjcdydpnizamob
+htwodfjlisezswsvqhqioriasxygqa
+cohrhlljrnqnunfwmtkyseptcwdukr
+dpvzqjcsnayeknoztfkxxjflvuspud
+wxdrncxdzhklfvyhbiuxkbzyklwxnz
+vvzygwgqwglekcolzessjamujajbkp
+hpminxowglqyoxwbhibswhfjnlesyv
+nispjgcvcrnzuipguillqnxstrrogn
+borehmjphgcchnqclhrwzogewowcdi
+lphsfibpmmpaekpmroxjjfqkmryzpx
+nrfzyoqbbmervxrvlupzenahojkyrb
+oghpofqlhpvexkkhaacyvlvaqpxaxp
+invktnldwylnqnbxmrlotyhhnrbemr
+ntdpfupjjpxyskehiostqrafeevjkx
+azeucpeckalbidwjhdvpaaryesabgl
+kdskcgslcqtcyntidgejbnujjfiyba
+ofapuiyiddfmeoxplssiphhpwvsxsv
+hvtyjcenjeyolwiiccpfoxygblnlll
+ghjhkpzjujltjetuwvorfzbjjmassb
+bmgezwkfljpstxzymjsctgvprzajhn
+scxxzjtcrslfkgjflavcxtvqppmoiu
+dhfoahpqcsfobwzkrwgupajrwhquty
+zvgzssigdehdtcaklrsmeukdmoxdub
+tshjbircxrzuhcybrcsdidrrsnktfo
+fhxakfrbtzsbygzgfboeyeymzrozgs
+bmwdnseopoeznilqlxawzhcdphrgxu
+okpxqdkaeoywfljbbxaviffdrxpsyz
+afbyvmhkyuvbscyiujkjwjatsazxsc
+kbfdysfbupralfserelzxwemadogoz
+ujzbvwsrjcqvixpxevehfwytwmpxel
+jfmzsjccfrjthqxnxyumkptbubtofo
+idclnaaryyxrvvfrkumssgpbdnsvpk
+zfsoatvfidcepkzttzywfurkizhlmb
+nqaeyoxkxviuwxixmgbvuvmspthwxi
+rabphxkqztixqkxubsydopbbggsdlg
+ztffawxlmuxxlbnargkbiwigyevkkx
+fqnkoxjyynonbuhtpxjxuhmpwxnnmf
+rzfkkubzggqvfpelnsdaqwtxddrtfi
+rqhdtrtjhjhhpatnvkgxxlkmoendxh
+osvwzebriinztppyrjqvdtslohegmv
+uurochgokjkyycocigcjliwavguxad
+whsrewlotiaovopcfpcmoakbfhrkjx
+cfhjqjuwmnwjagtuykcjunqiqxhpza
+xegkdbmdmfiyxvishihzaurkaqunpm
+kwqiamavbqrupfnzmjeufhdkgynuvd
+ucvnarzctbeckleeuwhqfawuyqdwfr
+wkvxwukxtsqcefgznusqeszvdnzcwt
+layhryzqsmsqewdoqvygqdlfgkmfvv
+iworbfxtaudvrqghcohjebsxfvvmmt
+vxvlqxlzyfhafywmmizntdscopvrli
+dfnzitxdnfnrreptrdlncpyuiqphdy
+hcmdvnwsdrxpigdbjtxskzmowimzam
+hxmcllzytyixugurwbvmdmxlwrlbpm
+hvjsitffvqypmnrztnlnszbtfhkoxd
+tkyfwfztbvzsivvqcxiuhphvhfkhfl
+kqaylepbevtmujilsqwpzzavjmzgoa
+uynenmjzwlrcvnanyfhywnewarublm
+llkpritdpwxnlhhipopwaontibjtxz
+vqqfzqhbznjvgxzhqqddmmokamkeup
+fjogjxxoposusazglwgriquwlwibwb
+qoskcgrixboczszzfvmedukonniwws
+gcxnxenxbjheqxcxlhmzajemoiuhtk
+fqqbhgallahpbnrdjnsbhytmmjnrxe
+iynikrqivlybchogaqxpguezhnkopf
+hyzphhczzemamlzjjgdemerfmgzplq
+udylkjthpsevdiyqbsrovuntkpgkhn
+nkrcshdkizqlxauvyuchxphedsmdls
+gnyuddawutuguarfaorjoutmngsygl
+efmbhocjkacyvuhvmkircsmbbmgjrw
+vtrighqfkchcyuvbmfhpsaflfqpddl
+zptfblhseccnbwystpgasqkfflefps
+bdndhehlcuobctvxkbmkhvycbphtpj
+ckruscvtdwdmpnvohielyhkhsezica
+ckgyckxuwmizdwnrxhundomopojqzc
+mlkptpwwxqwfzewbosyhdsowvlidzt
+eeaojauxgkyxoozplpuqcxdvstigtp
+zjzofjaddoyugerxgcvefnukkxvovi
+xmlddjxsiwfzbpzsgrjprqmcynzplf
+cibcqocliacdwigobruniuvuzocufg
+scyrqzzhubwjvguqfohledefyqkfit
+zefjlqdduzohqnxtjzcqppztlzogoz
+hwqpufupvvyczgpkaitugvswvnipab
+dhwiytvmpeohyxrhsfcelrmtsdrnuj
+pixuomfcqmmwcphrpuqrolcyhdcigd
+qyzpqqktnwxlpvejrkgbyvwfislyjm
+ahmkksapuiqwwogiylzbdfyvnbgxea
+krzdcurtwhvlsezrwcaijxblkvenzo
+wuqlehpaatqpmhuqumkvjekrxuqofi
+svohfizexpcqvcjbawdgkppwtqobds
+yqhcbuisrwhwpgfkwkaddwwydodvlw
+rhmivbhljkbvvuutedtllyjrcpkxca
+wypwtipwhxwsdgmbbjgllmozzaxslq
+qojorfjtnytdoloawbtxbzbjiogasi
+gmykwkfcijepbrglkcrvvqepachoce
+ykarecerabanuurkyjyacxmfawvwiv
+gevisimuescylsadmktcwdmknzhhpk
+uueadqgqdowyomjzwgrxjtojijudlj
+ebyihldfsmxjgjkzrnvjaxwzxdykon
+mivbvoisdgbywyybteybkmzbmrpoun
+yeuthchzixpwrxtudpcmqiwkozemel
+ttkfxgnourjkgtujwhoartwghvzznz
+kxaamcaznzkomiuoxiygkozkbgaesu
+anogjibphcxmeirdgkhgjopytxamxt
+boxjbufkepkzuhmtmmyxlktefwnmmv
+jgozxbkbvcrpaopepxjfttogtygquo
+lsvyomfrhbalnhjrppkeadiapfnxtc
+uadfzyenhhcmjwklermwpdxicvnhnn
+nhckcgfpbskvfymhdaisipahwuwxev
+fyexqtzmftidzxalecmbsalpzaflva
+cketzvnsvrynvezgdurlcjjbtdazql
+aodwvbpqmtvykycrkpfgneyifpdwdn
+feyzuuwjhtkxblwmypmovqwwpumcek
+ynklwpqejlmjdopfikrojitjvjfhor
+jkfpngvnsnuysyjqxrnbivpcoauufd
+jkubxkokeiccvzpusyfydzjaoybjxx
+nnbttykjwwassyfgevhpbzkpgffsod
+fxhfxbqbymijkeumvtnwiuohxsvdmy
+rhlkzjxdblqsbcitocqwtqzlsgeyti
+abywfiidkgzsiagxrtgfhqnwcptjkp
+igmhvyzcmtbsmecxejrqurkwzetbhq
+izjdxceebkvulgyyaocgsvwyxdxnga
+rfctbngrzyyqrghhlezcfztxspcwpy
+qcbwsxnwpgjijesmdjsdgsimzcegau
+knseenqcaaeotfvhbniislywtmdhut
+daorrkfzuowwxdwshahbmaokivakbo
+zwecheqakccwqaihehnoqpfnjkcxlh
+wwxgrvwizehixecvexqrnayaqthpbd
+rfnuipttusdheqccnhaansmgrjuqnp
+oegjhvuddysnkypkzuijsgnsajottk
+hjlehkelvibxadjqmdzgjzhujbdrmk
+grsogwineesbgwtmurattmrdiiexpj
+iysserulurednvblsiouhsgjfgwxfo
+bgpqgptmqmpgdqtqzlcvsfyjpjdzuc
+gatsdrbusofjtzkwzialfvonnvntpe
+jictptaurcsjcnzzkvmheuosxqrzya
+dhxsqfvdfcnrwmbmzmttfrexwriath
+bhienxjrsoirgwlmgwfumhehvaaruh
+yiyiufcftyduowexcjhupfffjxaoxb
+kuwsniykaranfnqfexmxgrwtrnpjaq
+jxxvkdlwbqkaapmefdpnqqcxwrfjcl
+sgtetxhtomtqvravkzhfyioelyrzug
+tradhtrurlhvdujplnpawkrhukstog
+mqnokfywylzktsltfrvbmuqmdinjwl
+qevmcyksdkwcwctyyjtqpobbhtguem
+vqojcksuddzwnckekmacjbtzijykvx
+eivpqkfzzrpknolfojfzfcobctoyer
+kegahqrxjtmstzlmnrfdnvxtrmsikp
+zoucwlknsamzgolwnrfvfvtgizpnts
+cnfwgdweblwtzxexnvhispmpunynfm
+rudjaykpwhicfcxckyvmngnsathvmc
+fyirbhrrlvcgynibtcuwtbznimbsoq
+pgaxutzrdbevnieraeqfhdrjyzmsel
+newtggireepzbtrfqqrhzszkpytzjb
+apykodzefqwvsdjkjleqvpkdyduemi
+dzitijsbbpwzpsgdjbxiwszcxbqvix
+lvdvokukphdmavjwkhgeqlcrgstxlh
+irgjesprdqhzogewxkfaprgukiigvt
+xlcgkhtzumisiloxuzrblunntcagas
+qvmwugjniingwylfkoixtnxktyplfz
+sugkevtthqhefukmedbobywysvznvp
+ublrwbtywbmzjlcybgonovmjuwkkeh
+vrehlmqtutmqntkrjomifapgndango
+iolvssyocnfxwzdkyrodegwmzowhxt
+bnrqxrsnentytcgvhrkqyrwgmwdvkf
+ojdmbjanfhwznadwildgpuygejngiv
+ezyfztzkfttpjvqlmogtrtxixcbdni
+biirkpmaavkqvjiwpjmuntovkspoqd
+zzcvwbrvaltcrkxgegsdkijbmmwunw
+yxlzhvjlxwwdrtkfyswitxsqliffbq
+oclaoqahhwvptbbsqnpqvukufwycfw
+dzcgurcrtcgsvnisrvkhnoybxrbjtb
+ktdglloganwfjaolzffvvnjhngkhzq
+chzoqczkucbatpwkiprhyktqivkoem
+dtlrxpimbgzpczoqpxnvvapuqxpfjq
+flmtcwpwchytqsvbvbgdlzrluvhspx
+njvfpnboizdzwwdserhsimvtchvvwk
+fuysaysvtqfhdelvfuspgphxajeiog
+tysvxxulcpmhrzpzvhrbqmbzfrtlby
+gxtfcqrkebdhcezrpfxsgvcydyzpja
+xdysxuyjhtffwiegnjhdufdflzqlft
+qhzlaxfvhyylmfpgbeevglmeuqidzf
+xfmdhhjekpqpngcjzkxdlxkqvzvant
+maibckammjluulgchejywngdlxzcqn
+eregreicyncdrhssjqcjwemnmopawp
+qeuptauwhtzkwtsinemdutbnfjbqdf
+dzinybfhsitaebkiqflmblgoyepugo
+fckbsmgbaanbbmebegwvfcnlkzxngj
+vpnheveylksxcwxyrvvbafamudqeet
+eszcmshteuznznxtvhaijxngatjcml
+euuzhdogfyyknzlmejzzytgaqcqcwa
+addtbhmqdqxmkivsoxyqsbdziatstz
+bkurdlbnjlijehegdtnpxrgtfhsfkg
+xlfmlvahedfyxbptasvjfbjiygadyh
+qalycshtuxmrsittuhpylphawxcjmn
+ljqctffievcztjzuboyzqubiqpwtww
+xjzgtgzsnrbxpmddphakhiwlmdzjvt
+uppofbzpmvdhusfgmjpobkmvwqtnbe
+ejlxmepseaxgsnesilfcfxqteswxds
+fnvsemovbhelgtemoozhbvgmapmznt
+keadmcssnkzyvqritcuvdlwsymdcwj
+imotkyslsjgblvrlowmrgejmppbezx
+tcanqqburpwgbtnrfbiuaanijosgbn
+qcffooupkdjsbwfgjtatoiajgccnny
+tfwaaanicmbqpvyfzzdgilxofnebax
+ugtrszurthndixoutxmiobliozrzrd
+wcmqesidzgwpmflcmauruvfnzkwroi
+cnewloaodwgnvtmoztfmejbjxznpst
+umxhuzmeqxpctzsweaplkowxequrpr
+agsvlylupmxpyxbeflkpwaugsdxlrk
+zkiepqjncvtjgxllonjhcbishrthfa
+lanecpgtpnitlxtljvsrpzhbwalqbj
+imwvezfngvnotgwptrjgvopihmqjhb
+prpfpjlsqfrxlclgraalxjqbfxvwez
+wihfegodhgpffajeqydnpdekhcqyqb
+jwsjyhnqspqssnozugoqfamnpdlrxe
+gxaesjmzztylvqpswmhujcbfoinuvy
+ziavhajoesnzjvrniebeyfrdhxhwjm
+hljcuaisfowhnwvmvgrcvoqeukyven
+ymaoyculuubvnzqyffyszbxcxrpqne
+xnpvudtobuwtlmjuwgyfmsyvzmpgtr
+mowcrlojmxafvjjmyzlvtlasqwkvli
+uifbhllvudtwsikvttgrcdmqhwjceu
+prqeotuhqcqcvvkkeauqkyesqqqxph
+gadmlshknwqjlmyrrfvxizlerugfss
+ncslnfozielfeaksmgymconyptrizy
+jkutotawyhdmwuekwtyzzythysnddl
+nllrhckpctcxdftilzhyikusqannuk
+ooilmqssiceejsclhpnhnocrirpybv
+akfnunrtmuflunouhpjybpcvnhastd
+tzdeecfkbtfurmrxfjznsqnxlaqjmm
+fiwnmgolyprnnafexmahurdqohxbwx
+qgcxhvbwnsgbbjpdgjsbnnwnjqfidj
+myvxesmmgmabrvnchiqyqmaaypucda
+zdcnyysfolynngvrhipxssbwiwxpkv
+qrnsqreceyuhwavilfmspxcjlsspxk
+fjnvvjhypmybambhxhfplqsousdpxf
+zptzrmklcdwoxsgbqrnclplgwyjjnf
+okaaxcyluroexbblbabrttkwxadjsz
+chfuozutxeaxampegzoqqyummgriss
+nydxnxfnffsoqugzkjsxoxftijwfmq
+iqxadbnkgmrqvvntudeqjowmyyrues
+jorntkhfadkjbbijyjcklvyxehqoay
+rocmeepdbkrantupvkorchzvzckkrg
+sgdsqvhrrixnrdnruekhvavlmpkdmj
+eypfyywtcakoyellnaqjievwegrgde
+fuwxddonimipjpbomeitivqbldtmsr
+xopgnmozckgajrzxnnvbbklcjcuylq
+vefdobhoatodmxgwolcbeyosypfwpf
+haookeomvwymqkxdtkhkrcofksxxte
+pzuwjhnwghxtsmhytngwklrqaqskni
+czhcquyylunzrimqfdcilyghzrkxpq
+ufkujghqpuealbwlwgjvwmaxfhagmg
+loeiysdnhogjmrgaskdlwekxxaaiih
+fymiarkymwucibthzmwxphxfwmuqpl
+jhxizwpyucminnvhvrqxguwffnixfy
+ucmbwcqefyqquclekekdcvpiiyfpuz
+mdovszhfkltjtgkdtmhslubqfedilp
+bstnbskqikldsalulmlvoyrfqsqukm
+xcsvxqhxcxhnssuuchwaxgwigdxukn
+vvqgcdedufzpwtbmrrgvgdsyytgdrr
+repagjuwtdgfooyclfzeufpcylakbs
+qyxctliohofgribthvxupjpqmpfepu
+lyrpcisqdloeukybxrelkrfaumcvkm
+ltwictnqcisngxsgbabrwvijjeppbr
+ioaqjngdrgiffjgpntzhcwwtveaugv
+blofmkpsqozreuajiixvcpjkkubnyz
+wgspweuregmvomynwkwiihlejprrle
+bhsygitmzihqgvkixiwugmfogtnuoz
+jsbahcwygppktvhfyzpypkpjbpoygv
+luwjemugryqinlzmssmthmjbjkczhp
+kkersyniewoxalkkzscrlfiafbvbwc
+tbommxrhaylongwogzakjmpkapxple
+vorqfowetzlwivlvjtbdvwsdvtxgvs
+awkoltecjmvxiokiijxujomjhebaos
+fdlkvomrtalolgeburqtkltpemgaiq
+ndgblypchrydouykalvoahlxvdaxgl
+vjvgfnpljpncfjpxxcsuljjqkuhcab
+kurxjkimokjuiwrpyaszekonnhdwrq
+ilcrdydukwrldcbhgldpefvoibohju
+gnmfgbmusqxhicquthtevoyjvohudl
+mfgsbbteiftpgaroofflqipwuhgidw
+zzqfgoherrnabxdxmhfhgurfinhtcl
+rltlurcnocwpcglrhckvtjjyipcnah
+aqlqmejuohzjqhtxjyygmjvjriturn
+eqgptlcskjuxytgtefmzattxohbynt
+taakywyikrnxzsewyfkbgzkbjryskw
+fsazfqmakhcgnfypadvfqlvkmnungt
+wcofckheqiywdxdtuhfvhjqlcdeoic
+xmhrslliwaviqhdnebsdpeewqvqrgm
+imohjhyskbejwevxconegyfspdusep
+fbxfcfkgxodaefbyjatkhsmgbvapcm
+atsavyloouhntkhxdwmtlpzooftvde
+jdfuogdrrxxmzqnttwewwfsguspvbp
+yzgzgcvwlggzcvlmqahukuuefpsgxf
+flfukngzrpzyesyhpmqgzayuacfepn
+fgjdangrhrtcyhhshplslhzqfoqrrb
+flvkaacjjiwrowrbtovpvzplqwdsph
+ppxdvtujvdgmhawpbfstvqrlgmgmfe
+qqppwzrjmufiqkokephgxrzilmayrh
+nbotjytnbalcmbtfpmtrquxctxgqjm
+jgnfiujtcfhzeyadfiubczjudzooqy
+xoszynelfbrdlgqunbpfzhlghkxlfo
+kovtoluluucofkbksmunjpcsigacbr
+ecchydkrzsqfrzrwcfpfeogdhhtiae
+qzyyuwyqdpacjdwqtojyrtpqueovqp
+xkzzdyqbbtzciwxnyganrgqrzwddnw
+zjtzkhuegglzuiykpqqlnfcguvpzma
+langzxxyatcllqkysbilynjgpnnyio
+xgezqoujockhengpwcwerrvuxgxpop
+pshvsrkogxhpxjjnebzbfcenkbmgzt
+jfllbgrzcqdanvdgiqfolxxkjlfdlv
+lfvyjabtjcrwohugtolbdehjhupdyf
+exhdesohlmwtbtlpnyycyojdwdybqo
+pjbtrpkavpcsgozwuucpyejjghjvzw
+rvaccnnifpomcovrbakbljqxuxsyam
+idqfrozyfqprfpfewfktqytnwbkxbw
+vattdxauhlgvstqweukribzrvvdwod
+pxoarfccudwekainpacqjavswhrbxv
+dwwvwrtjnebacixbohpwectzihhotq
+ooxjmhfutbzujoswuhuequcwtwhhrj
+tbcdukxxggczxoksyrrtyfacipkztt
+ctofucrnwomezyndkbswlwopopxudz
+hcghhezyjfxrvbqcytbrfrtaknudng
+jierjxezblrobwzxojghjthneriqhb
+zntwlypfhuwbppddpvwomwzqcsrfsp
+iguziwkmrouczryunentqjqnmvfyco
+nntwkmcnqeglsryhxzbbvorvgqhdkt
+nwhbumdgfttoqoyyexlbrxehrvduds
+zsnaopzpewbtbdyapszmwaapctogup
+qyngqwiyxowhurmnelujxoetesoyre
+hvdulzqtbpxnulhgzytyjlfoscuoji
+vlyhglfqskfowzpvsmxnvcrrenkjbg
+xbdochhfsaxhldfsublgvooiihlzqk
+grjorcwgnrshhcsakyfsnsxmgirioc
+rffhashannaezohvfhnbovhfsjxfmb
+xolesmrokipuxqqxjkpwemhelgpwop
+lkelgflfxnphevjemjlpeobizppyzc
+komfhyyxpjbzdyurilceocqrckdpzp
+caplaheolrylbhexymejifdfajdxtg
+tpufcjunybfkygmyotwhmuybeyqwcs
+copzicbdqtfjllxmdgesdxxeifufvd
+gybtgnfolxqtllhpbtmuszocznylik
+xbilngtohcoqunvjzqfdpbpjnnddty
+ixozbckxvqjavlsabmubcndvxujlhs
+sbrawrymqouvmrzuksmajyhxreeshn
+uuhiytyspzecylqakjvhatkybrstrs
+fqstphksgjliwxmzdccymnwveprgvc
+yxgfoiiczqgedtzrkwtjczhyummhya
+iwusjggpmaxvvtizqoqckfhzlshcto
+oiafdusolvyqvnspvljcfkqgnpgiil
+chcwxzctjltpfsmuyqlbbfixaaahee
+rptlqyelknsoaplvuzflzryifowwyi
+qybkowuiudkzyaezvfsflyyspftyjd
+cewsglnshaocopawjqshxjngoopwmo
+stxtbbmtzuneqzfjbzahimypustkvd
+gdghdtfiuozifdbielinakkgwguehn
+tvdkxjmkvcntiioohwyrohrzveesxy
+nzlzcmchqgjoiqkqstdlzywitqqsev
+pctqmsbcfyfmdirwufeuskigcpzmnr
+zvrcqwubmxzeasrlwmwsadblhzqvpq
+xhsmplwaevrpdmfjtbkabaaztdfdbq
+szrdzkiikwtbvlldlhqfxkekqeqmie
+filicwcaydfdpukelvttusptlxylsv
+htrigxxexnkokpgdlljbpxxyphghqz
+sggoagngzleimbeshvifaqbyyhtnxh
+elcxsafjnghhnbntnpipnfzokeyabh
+nlitevvrpagoryicueambzrjxtcsuc
+txxkymkamqdyffdoximorqgjmikgqg
+tjvobxjszstxaejoybdnlhjxnifsns
+egbgraovhfxliknskcqpxxllojkxyu
+evxxelezxtdyetjrhagabojazywxvt
+cnskgkstvnivqcrdthbbawkyykzvbt
+tdvuuqvwddstncinodknvbknbqidbl
+ajdcprovcfgfxdmvcdhocbdnajwpee
+seglzcmbpkcirjrkfargamelmtjvxs
+tsmhnjwechpklsbsxixospjpryunuf
+wbsfgedrcpuffnstjpcbvmlamlmhnu
+rxqqyusnvkzjawdosucirgffmzdans
+pkrfyxcsewmabgvdubtrjysswtysdw
+skgisbenvbajijjtzzcqqbbdrjkhwf
+xqhmypcpxigqwqrctohsfelvxwwkwm
+odiuipgbqddlswdgqbrshzjlmhnjvm
+eftncjbyuuixlwvevhqfrmdcuobkmq
+yvbkzcubjdjglxdtdsdfxrznskcefq
+qmsdmveugxetnxvxngufifpsxqcvie
+ftkdhodwmfbumucxddupsrfqwtophd
+onujqvfiisjjualisthbxumzzjewok
+tvmgrucgabgfguvsvlrkjlhueuphvh
+yukciumfkixviabicriodpxmqjtzha
+quaavolpjeljpdftcfcglfqhkhknjj
+pevjsxxlkxkjrhtxodwujuzlfhulvl
+omfntvbdkbwpjtzyoclpdzxfnvfshg
+guzraopozbablphjyxnhjqtcbmnaee
+sldakewwyqtxemvcbcacfnfknskrhp
+tfzlerbintscmsnykmyabnhnqkwbif
+uxbdyennjemyzulszzpnmzqgyzmhme
+cnrryxvzpqlsixraclhkbhpkdrzciw
+vshyqjzvwgzzitatkursssqjczbbgi
+ylidqffuzkxglrqmqhpomnkkdtvanp
+gbkmbygcandjybuquomaoncrdqoyxd
+wtsvaywhilpwrufbrnilwudslqmljp
+pdkfxtmlkmknakpnufrsofulaufgfb
+wluctbnrfokhxksrjifnrtpaskofnm
+wjbrwuincwamtoohpsagtoorpsogfy
+thshfieitkrrcmrlglofwvxpuavere
+oygvjaxwnbcuakyzcsxnqpnyftkbhg
+hzztmaeexsrwtasgvzfgomlwlsrhfi
+anezxawgkhhuksbqqqydxgzziqioso
+pmolvkxbmcnuzglnkdkhaupqdmmegp
+byhocnwitzowykuunltfgndijsggwo
+qqpitidqvsnsomhezhlssmquoatrpj
+yhknjvuunyxxkfvwpbvubjsqezvfyg
+wujnechamgrolcbljwnvhfilphnuww
+pngrjvunivmdwhtdqkbyfsankqnbsk
+lmrboqferxleavfemyxelsygxjhmuj
+twtuoidiozsrxyoywohvrqbbzierrp
+qgfnhgvejpnuuhtzhlroxieagzclfm
+nyexgjwdortvccnqppefewebttjykq
+mmgguvxowaqknszoisljhkwgfbscvf
+wgeprfywsvvjjtatjvwtdoxfxvboob
+fzkkqneewtnvsonklggobfbexsosnf
+ukvorltbtfrgmbgzvdnzphwqsgzlyz
+vfomvgaeedofkxjfueaazbtumrjafx
+fqigdprwpggpeuixqzvpkskinhdhho
+dvozyvvyklppnormbnvsxcwzkxmwvx
+iqdjocwiggxvzajrdowuglsdjftgna
+yymxqjipxyaonmmwlttfohhlbrwlwh
+tudbneszomvguaypphnwrmictakvtx
+chpdbherjiglfhpjbrzjoznbhxisog
+frnsalfzyaodqmhyrjibjklfxxyhaj
+ephacwweyipzuowedrbbarhuqwfftn
+disfjrhgnszrelqtajqnidpequrcih
+hgunqdswxbwmcdksosfbehhffszadi
+oankweufhgpmtjgdjdcamqxoargzqc
+ahlnnbdztpaidcmkifotlowracywnv
+axqusuprrbenxximromiennqvngpro
+edyvjlimzztinwftgvmqlkmtqyrodf
+qurubulfohgjxfxbruflbppkovfrep
+fepzsxvkcbbemtjcjcgjgglwruvavn
+pzyxyqnemwvnvxyodjkmzgqyjomlds
+lzotcugwicknwwwitgzqlekgfuqvec
+excgdxwxrvougpagklsmkjmjmaaiwr
+gzzuywwtgrgjaulyvofhtneplyscwa
+ibrvwvtbxhkwwguckqzdgkkcdkaazj
+caniydyypsklqtpggxuuhjfwlkvhcv
+zcmlmybseprjgjdcwndysxrkiqpqvj
+klycxcqqnntnnzzeqtwzxjthgrbkdk
+dbovfhkcjoouijxbnegiictsjsuvho
+rgsnmxiewjkbxbripsdusbvdurzdda
+aimtbmdlietcmjrvjyipwbmvxyqguz
+phyikurivsjcakgcalbsenzjhpkmmi
+sjbcwjkghjaudmukunsuzzkpylftly
+vofpdxisfseycoqyqprcuikcudghvs
+wlcbkclaswodjrkeklwhuaweqyldse
+cnnugdmbpytzkejroxetuzuwikxugx
+jiqubjbvsbxjudeplbwktqohfrsfjz
+lxmhatqhhppgcabagycubwyeogwasj
+muuobnqdrmnmsxrtkdmdgahazflbtw
+jncerqqcwcntrwtdpgyuqogfluiafg
+sjoslpltswyjnivzfeuovsdvcjjviu
+ykznvljeliuuqafaeixyslwvzdurri
+jqftskqbzxdtmptwwsguuxcmoclmzy
+oehwgqybnbvyojjfnjwexpssfyhueb
+wensmvesaqgqldrfbontudvixwkhdw
+eythwtefreuwqyfdgtrexbtsdswqkt
+xvggmsdvykxdlfxokhiuocjuqepyxp
+tabkjlmlxecaxncwfvqwthhfyyuqkn
+tvvuzjwlebkfytnyeqkfztqxuyrctq
+chjnwazaomnquvbouenwvtmrevrrlg
+onhjzwgleceardhmgmqgfwlsmoztlw
+thtssjxqdseqrapyscjdjwowiinjra
+gxhycfbbmaokecejpzzkruyxsakyrz
+ktaukyulsjptvbfrdozntkaowycrgh
+rmxnualbbqhvzvegcviwxuvmxeqjaj
+ksksvswjtcfqbtlquadefcwjaimdoi
+deiyaplzirtdyfkajteawxqwpvbosd
+ityxmokmttgadnewjtuxlagddepyfj
+pbkxpwyvfwugszqgkszlpyiuqcyhua
+voamjonvxpxwgusjjyscrnqkecpwsd
+smgkutjxgcgcccqjfcpejzihqjjdtk
+dyrvchxexgegtwiaieokovplffwpyu
+jggnilqezwwgtmirykdqucqyorkpoc
+okzrvkmwdorapqvsdgwwuvkgatkuzv
+xeyuovyohgbmmnicgmmqlniuifmzoj
+xgpmoesjcgbbmcqraexmbogcpjwaso
+pqjxzzipnxckwtxqhyxfmontsfzalv
+rujkvmvedpigltqhrzrqunozllzkfz
+akuefkcswmwegohgjlopxvtukbpipa
+ikqgysaxumtcaiphemsuzowzhrdwfv
+kdrkvlxausqzdystdffssfeuacybad
+caezkmydctndjqtfuewdgaectceibp
+yqxeqhgbqhojsyizlqoqjzlwjfjipc
+xlhvxvacrrqcptwmxpyrdilelctqbb
+eiumzccawdqzrndsnmwqnjgxqeijwj
+ystpndxwtsrvuflpnocwethotbefla
+lbaoeyygotcsjctoebwqobxtwoxpji
+pjpnbyjvqnmhxelqxxekmfamuroqzb
+szvgxfymkuwyprwaivgynxqvoipcfn
+gozbdcgzikwomlsnjuisrxtwxmhfmr
+dabzfstgigsocrkrqqaafmqzolrzsj
+senodkpfwjtrkbbljvlzdrptlgbykg
+ifanswcuvrykifhbgidgihzjhqubto
+jxthhcdcecvroeuppjaaoqmqszzrpz
+gcgdjqymkczlhajilodyzpdoknshfx
+pcxhcpyfdnwaeuebqbmfpxxqkkxasf
+qdgrmvrcqbkyhpilopymmjmnoejhmh
+qpdjmrxyjchjmecoxabropwixwxrbu
+mztkqympkcjfabxkyxwkwhgytpuuzv
+mbmyecfipwciaakpoblfutaqylxkwz
+iysdqraqbgediifgdpxtluiabsvexh
+pthzkxgmgcuxzyiegkmgdsvaljrvvh
+vyoterqhtrgxplmzfcemctswodgxri
+kzuorhfqhgmutfwgttxqdhxghtutmj
+mdaaaqjlhntyimxtdvsxvjlexkgkou
+wteqvkxvyvjacvydrmcdzkkcpacczr
+cfzmsnkaxgnlgvbexvinwgcafbtsiw
+qzedpqbqtjvkniszvyezlqhveqodco
+efwmeiewpglggcblnxqvyoudyujfyb
+cwhvgfnxripojhuzrbxqkxrrtcnkgu
+jftodffixqwhyjmyhmvladxbrelidx
+jxxerxruvzkteussaftihtgoiqamkb
+cymewduzklpjsnjalgdgkntyptkurp
+rbqhkacoqldiycipqckevnfifljzqc
+mquumnhkhsmrjoupiwlvrslayrebib
+licqdnjgjyvkbopgxcqpfliuldfftx
+hoebcskoerjzhtidogjvsxgsnbbgxe
+volmxirqrywrihogbgwyfgaociakmc
+mwyiytfszdefyabzysyqvgwcoalgrs
+wtdsobgpvcddtmitztthuariaxvguv
+nvpgvddctuwanffmezprphczhxstbi
+pcznaqsiauipegnukifaajrmxefpjb
+nslyzmqpnbchuqdsfyddyrvqtuecir
+mxkznrzgoydvrbcirhwaqgtvlutcmx
+yygbmwlpvjthdgefumntmjugljmcef
+lucinjhwnkbfihdynxxfthyxxidrhf
+jeafehnxpqwftsbljjhhositfwjwrm
+ltinslomhsrcixtxtwsgzkupfurfon
+bgewgjbnpdzqfnvztfebilmqvkggrm
+cytlbvygsbjcuogjlljosmrayikolz
+guyvbmvztxkwusfcwfdivkwnisyqtw
+nwqtkszkjyquqeajwliwlllqdiuviw
+ysutjsrwtxlgynaqzoopvbcsyzgxxe
+jphtvbhousgzyvkknuoaqvnygxeofs
+vdsioexyokmhnvhlcimpmqxiryidyx
+ybitynllrzblhlnmglibuipaudmzna
+evqjopjasuzeqwtnhoabqcawadskgx
+rmcauyfrxwvwhyphiuhuattibxrrny
+ntmoxxjlrqnjdfcflaaubvurcqgduu
+sxehtzrpzlkmwzzqbvinwumimkpsif
+nnvxnefxowmmeagcitikpoedoadvkk
+yicftpvxfusmiyextzsfmejyyebsrt
+pweftfehwxvbvlzkyxdnfczugospdk
+zuqzrvvzakotnkegiytkynhvazckel
+zwszlqirhreiecvgsshzhrlmknutfq
+ufxjaekcopyovyzucunhnwqrjnyomm
+xwewhebebghjhiafjaltazzhqvcoll
+pagcwfwmepoxgrjuhorhbikqirdgyc
+nlifwhfnkedfooemcpijpieexcuwwo
+mvsjzbhkskvelynsadkpfgwkfiyfxq
+khpglynbfoyhqcqobvuidplddomywj
+rmwatxahjsfabjwmbwmxotfxxodkrs
+tguhcujoigzacmqxixpvojnqlnftgq
+plavtcyahitkewiqiamvhumxjorgeg
+jyqbhorudydjmqdtmxugchgeensplh
+vtiposckizbujbwfolekerckpzqqru
+rufframfrbwzbigsrlnmgkztbyblin
+fxulkvutzhgtdxybjkzcbzlfnoppgz
+tgnoggausrmtnntaogorlvxaixwlse
+pnmjcjiijhzrvqkxvucnhbulzzmrcl
+yrbcykmxrsxohoaanveduokagpkwoi
+ataxjlrbolxevbsqwkpexhuhxtaxvg
+lxboyqnrfxrdvkznspeddhsphsasuw
+evudconcchsfpjsehyzzbgpfvjrwky
+sykddcfgoywlemqpmfhjxrqahmrwui
+yiangtywnuhkwkuhivzofbqlbwkobx
+kqlhpgsgndbpsjvqjelbjrlaxdarvv
+piedtbvumgrdypttwcshanlhwgwuoa
+xzzzfhinpqhwubbieuzxiqxrmrimzg
+gpmgsdzrlopjxwhuhfrlsrmunokcir
+dnbsphcvmtxxbzndppvkhscahxwzoa
+cesyzdahavxlodgekuhxiovsbxwcxt
+puiomahjmgxsllvdiamivqdjocplco
+asrcgkisodmwleehyboopazusjlxbi
+qzvnzvroivwffzgitauctusmybjhpv
+pspgjglvutbngdhfiksfymsyyusbyz
+lzounljwruviisatswdxgadekthhlo
+khsynukicbnftrzetcmkdaoyccqcuj
+lucgqnjbxbrqjiokcrozwrgunikqjg
+fjmaajplidxfcbzesbqkubispkkdcw
+lthzlkzjwjfdxjulbszsqcxjpjltjc
+vfffncmkovuyfkxzhjwkuxscfwpdgd
+aokxkapohojblnccxondwyiatqeume
+vjoptrqrbxrnipzyyggtlemsuepuzt
+wnxuwcnwpdhdkfinqyuhcqcogkinkt
+kpixaggiergtiuslcrjodndxtrmkxl
+bqmvjixvcuhchbhjcfkolmnxhkvcpg
+nhrcxhlhhallqeuucervhgbbrsorhw
+ilhgdvarzsovfrzocjrxpwulkyaybz
+xagmkevvngxxszgdamhxzvanxyndvj
+urumfqmtltcnlooqzxezwvvnbixavy
+qqhjrdwuykzxyuizhboehhlgnwkkdg
+nnyqbxwjlumbytmilznzhrbbkgrpts
+wanrkwoqomzozbrwypkeszgrmljeyn
+qxzivdpfqyofzykghbnyihwqwfatnf
+vafippfhowzslxsllfsggjuootlgzx
+zqzektaxtgmijonclejaflorcmaakb
+pfmkvulagrtbfmiaodovvnwkfzeaut
+iqqbyxobobqqazycaezfctstzmzibz
+licctyprhmmhcmzjwueevgtrcjipkn
+iojyqsslxorwuqtkkpdhpqkyjrxeqs
+ylwluwoynzrnnixztodsctmhdixsbj
+qlcgnlbvpyjnawkapcgenxygmuoqts
+bheupprlcnbpryzzgrprhtrtkflqtp
+rlcveotsdnybnqwiysyskqhaqqcocq
+mbzgdwjndgojrsvzzjpkwszbbbtkdi
+ucdnrbjefpaufwhfnalaleftwrqudb
+hdfdlvzayjeeujazihyxibojvuhdqg
+cmjjgqjzkckmkhhhhkxwhsdlwcjfmz
+pgcegwduxaxrtlrzajaudeizjgzifg
+axuhgmsjhtbrxotskohxfoinmfliyt
+pprnjswqgcgltleiicjjqfcjmdkefi
+bfhxinbbpiofbleleakwkcgjmcpwcb
+thbjevwcnuunclfojumtigbktajujm
+icwbdwekcdbvsywofeqxjalkywojzx
+gxjbwkhktwrlyhbtmcmafvbusvnyst
+vajdgjhelwhqderzhshjihrhmnswms
+twqwppzaannhfmrgxapjcyshkkhwca
+xpyzdajbcyyktrkyclydapdjnihsha
+daonhjccudhdsduleqnelrvybamnzs
+wrfdudlxnemnodixjejgmbkebxgamz
+zookopolmcxixgbceiommzyaejqbpu
+pkxkrqqzuuizdkvyncmgpdtwmirgzb
+togouswgeznwyyfyljganwnxobytji
+fclgoxdphqkskvxvfzoeipdmvgdmwk
+ayheiptrbidgbrmntehaikoxzuaeqp
+cfjutitzdcxzpnjwlmqhrwpdlbmchd
+osmmxbagsnsflkhcxzzcrtohfhkrhp
+bwszdpkwhzcbwdnnvtovmwpavooiil
+mnfsjsiaoohbgklmcvslqfpmkxamgl
+ywivdbchczkmpjmpqcefifolskcctp
+sjqvvvciwpdmaqwsenqwkhckboshzs
+umlazfrjmchahrxojpydrtwfulqrbk
+qdxqfevrsrippmrnbobjjvztxqmnuq
+lujxmqwnrgudjribduflqpllydnogm
+klkoyzvqfhgjaqwtijeufgsgpqrbmy
+imsxxxxvemrdeqoleamemvubfiqjme
+viurnemgzttgtoviykdbljslxjrald
+cfzddvlcajrvkrxlvrqzdnttumpjab
+wdoelvhksywhpoweoegmlivurlhdbr
+guucysgusmoiedgulgdhumtoecczap
+orzlchqlicovyebrdafxtsjisvdjvq
+cskelcotxsaprlsheqrkrbqjcnbrgj
+cvbpsoaidcczzlwiiptwkzrhpxlyjp
+mddszzpjqnvmftfukjhiaiwyccsfeh
+bejdnzhspofrpoovcdwatmfsiixwwp
+caehncumunubjdwwzrggnfbayacsbh
+gkxzncajbwyaccpmcwozvtivcwubgb
+phuwyeovjigqhokjoofmwnrseojuyh
+fvwwytaipmsseleculevxoennpltly
+qzmybduogmdskicnhnimfttxnfaiar
+ukdalrmxdickhczoijxgsqxaomjanr
+kzkjqlvmnwufbdlkjotgwjhdwrlpwf
+npikgzrvtdphxaobxizcueaermxpit
+ejbtcdmnktjdjxnjhdeyaymvobcdkt
+xldycodtrcwshowyvedrqhdjxaupqv
+aejunlawejdynvbbzsgnefzkjpghps
+jmliqpzxuxjlfifcmczxevitvgfuxt
+oeucrjnttuewfyiiqxfdrdkzujcnvg
+gweoltvjjrshobyjypneceqhdtpymj
+spbphnlcpoxxsduarjnrvhwujsbzjv
+tcxaloivrdutdrfieppibrspokbggg
+ndbpeyghyzejgxstkiivojkhnepeqy
+hyjenademzzbfagfcqyhrkxufozjmy
+xcjdovcrzifvzchwcgknvmyxqdoygp
+ruejiqdugxvgumiqvunxtnyyjnxuxt
+ruxdriaypwfpeuvksnfzzuxytbsgkp
+veijxbptqzrwohjjxusbtrngrlymig
+szaqxvziqgtlwcjmqbnltjmhavfhee
+elreivzhxyytqtexooaqaxyxwdasmv
+cygvmyihmhmqkeomwjdijiinlxuzyc
+rufasbdvydrrsooxdgbrhrhostsfya
+fsdaopdndmpxiazsvtmbpdcjaimjwx
+vvoepgzxwrxnxwpcdudmsgxkwmwebp
+dmtmexbeordglkccncfeqydxjgpwne
+zcjsiamyouoffmrxslbuqlbjlozxyk
+jkvsbrfnenxiaoljtkrblihcngsshq
+uuxoxawcgjqtnsoduwgenrwcexhzjq
+ooneympeocdmyjyoytlhuskudxnusl
+bgihiejuboiibxalzwrwskgtklubah
+jzqgenidewfaeybpgjkotrjletdtok
+yiifnmnqdyufjrflwgwevbrubofztd
+cqoernwxjffircfkjyjagjxvjnjndf
+wulmoezyqesiyrwnvectdvcyfcjygz
+hnufnzctwbojtpukhlbqnbnydkgdvg
+nebyxmqwvoohfimgizrrxezrfxwwje
+hwrsaiculxqyktoyoxyrhwmombwwxj
+snnzyydlzslxqsdhrchpeiospufegx
+nwgraxsyutfyaieubqujkosrgwkxuh
+vgttrfjfxctmehahdynnrpcwgmpjew
+vcwppfbhrdtzaetkcovmzhledyshrb
+shfnsgrskegdcaickbqopsfrcyadmx
+uuwsxomxptdegpyitqpywxksulrysp
+fjcjduevurhfpwexibnhxbaxhzbpgc
+yospdzcquliajpyqaqhxoszchkdksu
+cyygsfcbqdmuovoiupxjjmtaprkuza
+jkbfagjbesdpzipfivxnvimeaehtrs
+itkgciexhsmbwwivrmpwlliszormdv
+ofdiupmklmgymcdmvwejobvftcjldp
+mzuhiunftkkaugbcmkpbjzaemiheon
+xhmewxbgrqaacmnvpycrxlygnezytf
+eteprzaifpghmtxsvayzeaproxsofj
+nogjkydhvciyuvmdkmxpkbrmalmgzu
+abkxsbuoxpxltqhnzokhbhrifyhcsh
+zhwwkmurdtbgwumnadzvzgqgluygft
+xrneohlrakdeccysvdqskardfoupwn
+biogxsyfjkaupbmrvobqicjljnefef
+znoqepoynhhribtiwnvpdtntliisny
+hveesxrkvgourefnyaxkhsktsqrkfo
+dnowdzymiohptbbqvysqbyjnfsbzcc
+rchqngpmvfinzxrhackpfgjpvagkew
+zsuoagcninhoioknswunycxnexmpjm
+qpmsvohkbusiygwzlhxxkyklmzgzeq
+xyatjramuwfzafxlwojmukvuhnnkht
+tnrxtydrgfplchvklzowlpsjhmnapx
+dwfkdjbcmgrhvncycsnrbutqqisbun
+bftkqugirhnvxjnlceqjqimneoojdy
+ohwkveptpptbtflegopmakqmlcivxs
+qxycxcsamqgmpvdcvjoxrscjunnoux
+xlsqrlwnmsyydbubatptvacwnuqytu
+sbgqxefxdmpavxlzgppkeuddkilrhq
+vwclnlvkllweatlpvfetussjggzanx
+rzxsidsthiqhdxndmnpyykehtqkcbu
+otysqzgkpnudjoetdhwedhhpjyyeki
+rpwosfxhrehixskywwasfvpmoonrtr
+xnycnihphbfnqyogpqdidhbiohnrge
+etknociyppfdrsyatywjegusxzsehy
+ygkagojsxzwwmazunetuflejarugws
+nbbdulrlkuhzvrgxtcfkcltsvdpsek
+zzbrusuueocenznwarnwrjoduzooey
+dbxavguzxtxwsdixgsrrehccpjliqm
+vsrczeplaniwaxkejdwwbermegmgvq
+azwwdwfueijsjhjopnsercnpnzleml
+ndpsyazykbatnydptiiyzklmagsqbd
+wugtgntokjuntfiofysrtwuojqvohq
+vgszwbehifulrhodiziwuucvhlzeuf
+btdofewvlanjnobwigfrabemqkspzv
+nhxhdgeoaxrusdwmlfrzvokijclazk
+rccqvxvmcgrbepatugeijsxddazsro
+iecdwteqklfufhgilsrkzgraqhwpex
+gdnytpzxmdmlacsrwtgkkqphhgrkje
+nqluvjtmcmimezzlgdanrvgefjjvie
+pyoqohfxcyzxrnreaayhacxfugqzoa
+gavihswctxumnwtyjyfigfdgfqbmzq
+obobjlclmcnbuzpfhpulstjhugnaem
+ihvvteeqyfukuywwamtxlmmdovbeju
+wgjedwpqwoibutrxsgfswfhzovbswe
+eedxycbqkmmcsullmadlunkplkefaf
+hdonvdcgqsfiffrtlgbkgtatqpealc
+psndkkstmkljnxfbqrpnboasdccccq
+dfknjqgoyvnsyarbbvlojgeiqypwbe
+kmpiiunvbwynbifkngggpguafjocrg
+lhjrzhvowzhregiahdyzgferzxuiyi
+uvekpofvgmnghkwafuzjdghdcuxlga
+pdbakidudeukrfysqjkikpprhkhkhw
+kediigmsuxzkjxlwhulbdahlyrlxvw
+jgxstponphxwfpylzfbamttduflwlb
+ydqprfmrtqznbfaaonzcuifokskhzs
+qnsdwylaxwldlgaefounoqqbnwqotq
+hmyksydfsnfwvndxqefvimnaiwhadv
+dhnljozbehpwqcapechuzrhkplgwtv
+uygjmjdofhmuutetixiyydhahkevvn
+zevbefjcirsjxurxbghygjuqmpjdcz
+thvlxleljvlhmhyzgwumpsdvwfocsr
+uygahmfmzstkhxuvzvpfmbextvhyeo
+pqndngpuumwwhsldbfnrebwzkisaua
+cqfatezjlvtutibcynsntabzgegoqg
+hdogdphibsqflnzyzfbnfmccwbecqb
+vcqgtvhqfbrjwdvncmiwwuuwjcphdc
+xuygpmpxtzcugixongrsvkphxyzeid
+qgmfnqoddyjhzpdwlvqjvcyhpaocyf
+llfrvrgkotmlyrzwphvgnmonjhurvk
+eujnnypjuwgbpddbuclrvriiwbixsx
+wuyxudjhqdblubbxmkddugxvllcipg
+fptbbwqldkbgxewbdykviofcmelyin
+oarpqnnewousqytqvxowqfcxxztuth
+hplcyyysquqzkdhaitcbmtcelnfakt
+qxarrruukasqrfnijxqmmjoihfbsez
+bhwbeyhqnnaffzlczofsolumwudyjg
+kgjkdynwlsiqrgrxorvvqaanrcnbbm
+tsdcguiwlzmgjaamutudoaqmpszsgu
+davzsxtvjlegvlwaielxaukgypgryh
+jlvragmsafjuccniahpqikhxnejvms
+jbktdsfhqxmljzizuffsezjyxecopn
+ngkxwefuatmlbrqbgqulghhnhgrmei
+xeihhskeoksgtqgtpnqbldzoyakadb
+btbeqjrvajqrsaapxwgtoizlmvcojk
+apegeopxynzjvqkbvkkpmaqtonccdf
+pbwgrmuxiaxeonuuwwnimcruhsmbgq
+aixddcliqrevhrlmrufbxdeuxqrflj
+cpgugsmerzorjanlbtwbccwyimyxmh
+rtybuknmedwjzmaoyxdbnqqtobqzkp
+tcfxvoakxcunehxcreiosmmypfattf
+cknzotusfxyuhartnizgrxfnoqcbdw
+mtplzcjqqyoiswygbnwmfkpjumzusk
+ssaspolxynjmsbkheebpbdmdukvvzf
+ohxswzgqdhehplipocjysdfqyrwvyx
+yhnbetmcxtwhboaenvfdpapkrvsvnp
+kdtqkaqsjlecsztekkvgiojugnjfjf
+iqvqellwzkbgsyfryfqnvrroasxvdi
+upkrwgvdkmkvkifquvgtunysjsmbgh
+uydfximrkeadexsndfnhhsbqhsfwtl
+xjmchpbwyymonrdgvmegrmpzfnbfnw
+rvohlbghmkgxqfnohbthbjluufdocj
+caiimotdphdddvnveifebziwplyygp
+khchueosszzpdupbgwadkuivyurxvc
+fuipdytrreeoxujkbwghdthlehouiu
+iyapmvexlbcoetcimcbnwsjavlkzkx
+xalzrqadjpatqcpzsairqgmdgjmuop
+ydcanowdiznbbtthbngtqigqeormnk
+susnnrhuxobzwvmkyzdqpqdxtnrpvw
+qigwfukmkqxgvkvtxmnpmxvlxxifui
+wqcglxawahqndyharkqirphncdwkvc
+dvywevmbkpsjgzhyhlsuldfsssddug
+swqpsnbbgtwlyidjhzmqkmwvwrecax
+vbqyibbyevybroayasznofspvuqmat
+dnmyjnsmhcuvptzwyorwkvplbhrxzj
+sjkamyavvirkpyefjvugmvpilcfhwu
+aiqojrouaynepxfyyyplviacxvfwax
+yzvfuqaanzehhpdffdinammzhchyey
+atczwvwdxkkkfdyaiczzvbcigmzlwx
+risxbubqczpgdmpbwfonuuhjrzskls
+lwkhwhdhyyqvbuuisdtcjhfktlshex
+choryegqxcnacjktfpvizjjyhpezxx
+jdrhywrsocrnqcnxfpbcdhzafhcdka
+rojrrlrptwopfpydxbvjnraygxlfes
+ffrejcqwsuzzhvmvnclhgumtjxsllz
+vmatqjtuhysrpuepdvandorwaimmbr
+ilfwqhahtfqhcfwtvgjebgbrzxsdvk
+wcxjnirlmkcmfdtdxtzgroriraofzo
+kfycqkfozromxsfhcjncpedhgnirtk
+ubakxgbwrhkutumwrihodzyjvatvxj
+uekeeasiozurneuyxszreykfducdop
+yltxeolclgpkrfkngwdysblqccsjie
+zbykectvmzceqklyzehebdyvvyexao
+wvivjweizlqcjebcehvkhruhoyyxug
+tistsvqpkhqtkhhcadeanzdiqjcisv
+bqinkiwmmmbdsnzveglghuyhtlbwky
+tkobmqudeyycwcncvsszkmiskepmab
+hwgvvzlheknqmvjvoawnmldgcbcmhs
+xklbzxqderhzlnwvdlreptdhsfwysk
+aiwszweydoyiitxsweucepemwhqfil
+cogzldmvpebcunsqoprrqmthgfymxz
+baxohhiewwplyxlgxjvhirvvwigugg
+rvohlzdxiqkiteenphfdsjwygvlsjo
+juvzvphlyqjnvbbaclaxdjtuihhdlm
+wnrwgzerpusnmfurdriteqksbfgvrg
+azdwlopsrusbodjuycfdrbmchkdwaq
+uaptgwqmgskruyhoxrrcaznugvkpht
+lpzwimkadnibuggldnuaqpdqlgehgl
+agelgkvmtasqkhlqxchwbtjjkhrpuv
+lbejdjrfnddjklmpkrgtnnzccvwadz
+lcqqezdlgjvwinljcgwgkfpxbiwjuz
+mgiteqvqbnjqzunaleiisylypyaygy
+qwfoiekzcqnptzflgalqtxaihpbcpf
+ecbkpwfhqsdlwrhlacxjydssswragy
+uascefcldjssbggtsoxdnbgxcqoukp
+bnrjopwcckahsgezghjqwdvelxhevw
+ziqzqzuuwlniwqgqnhutpoyqwvduge
+fptegytacsfvdkkfubcqpngaumhlpl
+lebpfjyvejiiobtesaldffhdcqodfm
+pqsvksqpwrfrxiomyvjkucprxcpgvs
+lfnboiepeqvvntcxqeyuiribkfbxhh
+cwaiokffapyopljrwsqaqqjynkfbhd
+fvvnuvxnnsoskfkqpzoujzetrnijea
+hrotwbgpygnmxjyfpfzyowypdtkamt
+hlitbgrubuvmstsnpeiodmkkdwvrfu
+twczigciqwgdipfdpeobpkyyfyfpox
+oarsklpgzyyvqydyvgayhvdqnqeweb
+lpviokvocrdizetqovxefwvoyljycq
+mzouuluczntdnozwmunxyvsxoejzah
+gogtmzhicwpeowtbbhwxgrtxetyqed
+lzbbaoyfphvdvktecrptgpkirqlfzv
+nnrzlelylqcuoszmkuoopknkcmgsmc
+xyujjgshurlcaakolsikryrpkpomoj
+txyvhhpvdvhpcqbbrcsfxqwrhdaoek
+tzbachzgpkyuhijjepfbsmzaksagta
+tqxwgixfafdultfxkobjumtqvksidd
+zbgjchhasolgaoblxujrcnxavpasph
+syvtvagqgqibbaopiwktljswhvjkxg
+soxlfrtrxwjhmetccpbnyuyondvovs
+pzcemmjyobejsgemfbcrtdxdzbpizi
+wswgxjtgvaarkjpdnhuyeqapqxklbt
+qpmypooskenckfqkuvvdowthsqjsgg
+kyzvudabvnbmgfnnmucsofyoaghqky
+qkfdttaeunqvzbdgxtcqfonkogliga
+hcdfkaojbjofzjfrcolazcxdsblaqb
+tpbxnvbcouwrvsotgzxymtqhrlqvqk
+lkioyxkbfjihqrtysnoeqebhslfqew
+nddzzvehwhdwkdrruwlhfrtypgqdcy
+iywfakcitihioetljxmhazbqomnhwp
+xmqxepyjhrvpkiaunxunsrkxysvhup
+unrepacehbehwzkasktoiulvmyfkyo
+qofyhgwbdjygyvhpmylsvoaaikdlrt
+vbwvfzmzgyhepdpudoifufaipkihvd
+wegidlgdkhynwwgrwmcsqpwhknrbgz
+jvxuvzeugeysqmmllghyvvdzmcxodh
+eqndinoeevarriictdzraqcsfyequk
+terssxstmtulyprpgetahigtplgwjg
+zjblgggksnlgmtaccylkabrbqavvfl
+fzolittkyevhsmatgcryktoiqoosvy
+fikexkrmdktpklfnmttshfxauzweyn
+czcmegztddyvciwjidznrvwxnozntq
+bhtemcuhtbsjqxfqabektwupdbvnpq
+ukuoqcbixeayjjaculcolkaantnwit
+kvihpmiwosvdbdftnavecbklzuskxc
+bvbwjkyqzoxkqagaiuxvleippmsreh
+ieudxnrqqjzrpcxugebrjocyaxlhpo
+fvigzxunsqisslhyymmsdbmxzxwqpi
+zubrsvzktdhinsnhbtklqbpbrfritg
+htxfpnlmcpgceombmocsvqxelcioog
+ngobuwwbckqavraxknmalwadipmqba
+fznagfhyqdtvbidzxplvnkfrziacka
+rifymnxsowlspgamhgmiyewmejkqzo
+xqpsnituqnfsmzgfvhyjvwxjmzuscj
+mgbehuzofcotcwlqltpmttzcpmmmfe
+yewcvbcsqdatanumfxguqdzkfruxfo
+frkohmxhklyanixxvmbphehkmducug
+ksopkdskbxjvfixuxdqyrhwetbopvf
+jayxveqtjpxhwgzpdmojcwdankmrqy
+dazznoyjbffjdzqjajmzqvvqqtgsgy
+jcfbcymatsnjswnxwzhcadahcbmoxy
+ffayublkquhejzxbinzgkudruhhuye
+kugwudidlbvskrknkynefmdhtjrrlc
+bsnhzebfebibybroxtouppitppkfgz
+dctfqvymdykfnjsuduivrpslitfuyw
+eehefxwiplcyqzqkibxsqaqjzcwdsi
+svskakxmdfonmatydrixviyzdxfunf
+yubkrdsnhgfqjmhondmlnjriciiwyz
+fzustudopcvmpfkmzocwtnygncjoih
+pzygvemiukfgewmttkdlwldxkckpqi
+acjnykynrjgtdiiwdwrntlxwpfgrzh
+bprrymegehwkqtdxbusedtnjzfwjjc
+qzqjesnnpzvyehsohozgwbfqgjxprp
+vmnovugmnzzmswlmpejwlneabvkswc
+yfzuqmiljekjiexocfnwknxfhuvpoc
+vkzzglgwjwdlhcteenzqsbrbkemymd
+fyzpmnpcyepdmsbxnlytqaemhjoxqq
+nxsxjwgiiekbgvtzibetpabpckljyd
+xboilgfvfgjsrlsitqpxjbryeazxhf
+ipoymfeedvsgqrhtpgixfiegdxkmxh
+kaueqgeocmsookclxywxqfirtqnrsb
+ykmanxaduyzjxkqtderfijzgqozzcd
+yrosuxwugikyotwadtdghkntucrifo
+zarwneffxjbfbranersglaiyohllcx
+dpznzjrnyvplldkqfstwgbctsxmmal
+zsraokgzwifbycctzzblbvlzymtlrt
+vmfzkxubdsjtzkcqjxbvfimrefbxxt
+ujypozbyopdnefbzyadvnqyatzrulr
+jizpgypdmssxvpbqnsertosbpqzozy
+eafawayewmuaodrtlwslyabdbzbdyi
+gntsapgduiuejhhiwwccgunrxdrnvp
+xhiwjkxnymbwlqtxaktnnjfvohefmf
+duriuxugoezofxvrqwpirzajrkhoag
+lphntunahghzcjqjkgqyfshtvuggsb
+avhziuqonlhyfcpaznpafzastxivih
+yvtdjckurquyfznqojrnsnkhppcuis
+#
+massa
+ma
+aske
+mskt
+m
diff --git a/unsolved/kattis-kth-adk-spelling/src/main.rs b/unsolved/kattis-kth-adk-spelling/src/main.rs
new file mode 100644
index 0000000..020b630
--- /dev/null
+++ b/unsolved/kattis-kth-adk-spelling/src/main.rs
@@ -0,0 +1,127 @@
+use std::{
+ collections::HashSet,
+ io::{stdin, Read},
+ mem,
+};
+
+fn to_str(v: &[u8]) -> String {
+ let mut res = String::with_capacity(v.len() * 3 / 2);
+ for &c in v {
+ res.push(match c {
+ b'a'..=b'z' => c as char,
+ b'1' => 'Ã¥',
+ b'2' => 'ä',
+ b'3' => 'ö',
+ _ => unreachable!(c),
+ });
+ }
+ res
+}
+
+fn main() {
+ let mut input = String::new();
+ let _ = stdin().lock().read_to_string(&mut input);
+
+ let lines: Vec<Vec<u8>> = input
+ .lines()
+ .map(|l| {
+ l.chars()
+ .map(|c| match c {
+ 'a'..='z' => c as u32 as u8,
+ 'Ã¥' => b'1',
+ 'ä' => b'2',
+ 'ö' => b'3',
+ '#' => b'#',
+ _ => unreachable!(),
+ })
+ .collect()
+ })
+ .collect();
+ let (wordlist, words) = {
+ let mut s = lines.splitn(2, |l| l == &[b'#']);
+ (s.next().unwrap(), s.next().unwrap())
+ };
+
+ let mut wordset = HashSet::new();
+ let mut chars = vec![HashSet::<u8>::new(); 42];
+ for w in wordlist {
+ wordset.insert(w);
+ for (i, &c) in w.iter().enumerate() {
+ chars[i].insert(c);
+ }
+ }
+ let longest = wordlist.iter().fold(0, |acc, w| acc.max(w.len()));
+ let shortest = wordlist.iter().fold(69, |acc, w| acc.min(w.len()));
+
+ for start in words {
+ let mut curr = vec![start.clone()];
+ let mut next: Vec<Vec<u8>> = vec![];
+ let mut visited = HashSet::new();
+
+ let mut found = vec![];
+ let mut depth = 0;
+ loop {
+ for mut w in curr.drain(..) {
+ if visited.contains(&w) {
+ continue;
+ }
+ visited.insert(w.clone());
+ if wordset.contains(&w) {
+ found.push(w);
+ continue;
+ }
+ if !found.is_empty() {
+ continue;
+ }
+ for i in 0..w.len() {
+ let orig_c = w[i];
+ for &c in b"qwfpbkluy2arstgmneio1zxcdvjh3" {
+ if !chars[i].contains(&c) {
+ continue;
+ }
+ w[i] = c;
+ next.push(w.clone());
+ }
+ w[i] = orig_c;
+ if w.len() < longest {
+ for &c in b"qwfpbkluy2arstgmneio1zxcdvjh3" {
+ if !chars[i].contains(&c) {
+ continue;
+ }
+ let mut cpy = w[..i].to_owned();
+ cpy.push(c);
+ cpy.append(&mut w[i..].to_owned());
+ next.push(cpy);
+ }
+ }
+ if w.len() > shortest {
+ let mut cpy = w[..i].to_owned();
+ cpy.append(&mut w[i + 1..].to_owned());
+ next.push(cpy);
+ }
+ }
+ if w.len() < longest {
+ for &c in b"qwfpbkluy2arstgmneio1zxcdvjh3" {
+ if !chars[w.len()].contains(&c) {
+ continue;
+ }
+ let mut cpy = w.clone();
+ cpy.push(c);
+ next.push(cpy);
+ }
+ }
+ }
+ if !found.is_empty() {
+ break;
+ }
+ mem::swap(&mut curr, &mut next);
+ depth += 1;
+ }
+ found.sort();
+ print!("{} ({})", to_str(&start), depth);
+ for w in found {
+ print!(" {}", to_str(&w));
+ }
+ println!();
+ }
+}
diff --git a/unsolved/kattis-kth-adk-spelling/wl b/unsolved/kattis-kth-adk-spelling/wl
new file mode 100644
index 0000000..bc1b0e1
--- /dev/null
+++ b/unsolved/kattis-kth-adk-spelling/wl
@@ -0,0 +1,500000 @@
+grukpcnjcmvgrrmvihrwemeuansixf
+tlpnrdzxcyfipoplgwtxgzpyewzhiy
+zwmgiewwmbiuiyioolsjusonzucrko
+jnuktfrqvscteoullquntmkkztfays
+cqnhznpjfjtklkjsccehbnxvpobxia
+ssibqwrdzklicdlgwjtuiafralweeb
+knrbjzpfxxlcskmvknwlkkyjsncbcc
+njbhwplahsnwvivfzhbzcpalsnxcbw
+ddzspejqrirlohfwummlohggjhundo
+dzoaxpkdfaldrydmfgnrjynrtpztic
+iynvbsfhvnpqdlnpxsvyaddvxrnrie
+uvgsxxeufirobzxouoverdhrfqbawt
+gdlraimoiyqctxfzouiyksmltrfoiy
+ckaopwkidmfokxswxgqrvmogjcvrnl
+bponvsuscstixugflnziasgzbbaqkg
+nfopncdjcucqbbbgyphwlnxlkbqkhj
+mhovrvsznieaxbdedojxtyxjbjiubg
+skxcaucdlgqlbnmmlwcbatgosnxiil
+ghibmunhdqilxfockklceydrelftwn
+ohsbgrtvtrjbvftauvirmdnzgyqftx
+gutkupdsrmmimsonuwstwnxiqrlppl
+ijfgsjqvwovhzfvxpikxccbfuhijgv
+jcxssrqarhvxxbjotqtainpytbiolm
+yfyjjrjbjpcvzmgreiluxmtagazzfu
+zarrnilizunqooxzvofyiavtlzppch
+etqljmidbysxguorfvhsyantpuorli
+kymgvjscjdjhtnaabsizomzdvihefg
+upczmnurwuoczvaofambqjniyfschs
+spzlyvrzsbqstvvzjaicwbnxqqbwln
+ypgjnbjdiipcrznykklapbcghgbqfa
+fssxxvpgfbhrknlulxvvmpgpsvpplh
+qpxqumspiirjvhnhbayxyaexjntnzt
+ixyhplbzufevcjapkahbfivttdrucw
+inumjqzpkabkmdsladnqznfhmfbyfh
+ulwcinaovzuwlyrvgjcdydpnizamob
+htwodfjlisezswsvqhqioriasxygqa
+cohrhlljrnqnunfwmtkyseptcwdukr
+dpvzqjcsnayeknoztfkxxjflvuspud
+wxdrncxdzhklfvyhbiuxkbzyklwxnz
+vvzygwgqwglekcolzessjamujajbkp
+hpminxowglqyoxwbhibswhfjnlesyv
+nispjgcvcrnzuipguillqnxstrrogn
+borehmjphgcchnqclhrwzogewowcdi
+lphsfibpmmpaekpmroxjjfqkmryzpx
+nrfzyoqbbmervxrvlupzenahojkyrb
+oghpofqlhpvexkkhaacyvlvaqpxaxp
+invktnldwylnqnbxmrlotyhhnrbemr
+ntdpfupjjpxyskehiostqrafeevjkx
+azeucpeckalbidwjhdvpaaryesabgl
+kdskcgslcqtcyntidgejbnujjfiyba
+ofapuiyiddfmeoxplssiphhpwvsxsv
+hvtyjcenjeyolwiiccpfoxygblnlll
+ghjhkpzjujltjetuwvorfzbjjmassb
+bmgezwkfljpstxzymjsctgvprzajhn
+scxxzjtcrslfkgjflavcxtvqppmoiu
+dhfoahpqcsfobwzkrwgupajrwhquty
+zvgzssigdehdtcaklrsmeukdmoxdub
+tshjbircxrzuhcybrcsdidrrsnktfo
+fhxakfrbtzsbygzgfboeyeymzrozgs
+bmwdnseopoeznilqlxawzhcdphrgxu
+okpxqdkaeoywfljbbxaviffdrxpsyz
+afbyvmhkyuvbscyiujkjwjatsazxsc
+kbfdysfbupralfserelzxwemadogoz
+ujzbvwsrjcqvixpxevehfwytwmpxel
+jfmzsjccfrjthqxnxyumkptbubtofo
+idclnaaryyxrvvfrkumssgpbdnsvpk
+zfsoatvfidcepkzttzywfurkizhlmb
+nqaeyoxkxviuwxixmgbvuvmspthwxi
+rabphxkqztixqkxubsydopbbggsdlg
+ztffawxlmuxxlbnargkbiwigyevkkx
+fqnkoxjyynonbuhtpxjxuhmpwxnnmf
+rzfkkubzggqvfpelnsdaqwtxddrtfi
+rqhdtrtjhjhhpatnvkgxxlkmoendxh
+osvwzebriinztppyrjqvdtslohegmv
+uurochgokjkyycocigcjliwavguxad
+whsrewlotiaovopcfpcmoakbfhrkjx
+cfhjqjuwmnwjagtuykcjunqiqxhpza
+xegkdbmdmfiyxvishihzaurkaqunpm
+kwqiamavbqrupfnzmjeufhdkgynuvd
+ucvnarzctbeckleeuwhqfawuyqdwfr
+wkvxwukxtsqcefgznusqeszvdnzcwt
+layhryzqsmsqewdoqvygqdlfgkmfvv
+iworbfxtaudvrqghcohjebsxfvvmmt
+vxvlqxlzyfhafywmmizntdscopvrli
+dfnzitxdnfnrreptrdlncpyuiqphdy
+hcmdvnwsdrxpigdbjtxskzmowimzam
+hxmcllzytyixugurwbvmdmxlwrlbpm
+hvjsitffvqypmnrztnlnszbtfhkoxd
+tkyfwfztbvzsivvqcxiuhphvhfkhfl
+kqaylepbevtmujilsqwpzzavjmzgoa
+uynenmjzwlrcvnanyfhywnewarublm
+llkpritdpwxnlhhipopwaontibjtxz
+vqqfzqhbznjvgxzhqqddmmokamkeup
+fjogjxxoposusazglwgriquwlwibwb
+qoskcgrixboczszzfvmedukonniwws
+gcxnxenxbjheqxcxlhmzajemoiuhtk
+fqqbhgallahpbnrdjnsbhytmmjnrxe
+iynikrqivlybchogaqxpguezhnkopf
+hyzphhczzemamlzjjgdemerfmgzplq
+udylkjthpsevdiyqbsrovuntkpgkhn
+nkrcshdkizqlxauvyuchxphedsmdls
+gnyuddawutuguarfaorjoutmngsygl
+efmbhocjkacyvuhvmkircsmbbmgjrw
+vtrighqfkchcyuvbmfhpsaflfqpddl
+zptfblhseccnbwystpgasqkfflefps
+bdndhehlcuobctvxkbmkhvycbphtpj
+ckruscvtdwdmpnvohielyhkhsezica
+ckgyckxuwmizdwnrxhundomopojqzc
+mlkptpwwxqwfzewbosyhdsowvlidzt
+eeaojauxgkyxoozplpuqcxdvstigtp
+zjzofjaddoyugerxgcvefnukkxvovi
+xmlddjxsiwfzbpzsgrjprqmcynzplf
+cibcqocliacdwigobruniuvuzocufg
+scyrqzzhubwjvguqfohledefyqkfit
+zefjlqdduzohqnxtjzcqppztlzogoz
+hwqpufupvvyczgpkaitugvswvnipab
+dhwiytvmpeohyxrhsfcelrmtsdrnuj
+pixuomfcqmmwcphrpuqrolcyhdcigd
+qyzpqqktnwxlpvejrkgbyvwfislyjm
+ahmkksapuiqwwogiylzbdfyvnbgxea
+krzdcurtwhvlsezrwcaijxblkvenzo
+wuqlehpaatqpmhuqumkvjekrxuqofi
+svohfizexpcqvcjbawdgkppwtqobds
+yqhcbuisrwhwpgfkwkaddwwydodvlw
+rhmivbhljkbvvuutedtllyjrcpkxca
+wypwtipwhxwsdgmbbjgllmozzaxslq
+qojorfjtnytdoloawbtxbzbjiogasi
+gmykwkfcijepbrglkcrvvqepachoce
+ykarecerabanuurkyjyacxmfawvwiv
+gevisimuescylsadmktcwdmknzhhpk
+uueadqgqdowyomjzwgrxjtojijudlj
+ebyihldfsmxjgjkzrnvjaxwzxdykon
+mivbvoisdgbywyybteybkmzbmrpoun
+yeuthchzixpwrxtudpcmqiwkozemel
+ttkfxgnourjkgtujwhoartwghvzznz
+kxaamcaznzkomiuoxiygkozkbgaesu
+anogjibphcxmeirdgkhgjopytxamxt
+boxjbufkepkzuhmtmmyxlktefwnmmv
+jgozxbkbvcrpaopepxjfttogtygquo
+lsvyomfrhbalnhjrppkeadiapfnxtc
+uadfzyenhhcmjwklermwpdxicvnhnn
+nhckcgfpbskvfymhdaisipahwuwxev
+fyexqtzmftidzxalecmbsalpzaflva
+cketzvnsvrynvezgdurlcjjbtdazql
+aodwvbpqmtvykycrkpfgneyifpdwdn
+feyzuuwjhtkxblwmypmovqwwpumcek
+ynklwpqejlmjdopfikrojitjvjfhor
+jkfpngvnsnuysyjqxrnbivpcoauufd
+jkubxkokeiccvzpusyfydzjaoybjxx
+nnbttykjwwassyfgevhpbzkpgffsod
+fxhfxbqbymijkeumvtnwiuohxsvdmy
+rhlkzjxdblqsbcitocqwtqzlsgeyti
+abywfiidkgzsiagxrtgfhqnwcptjkp
+igmhvyzcmtbsmecxejrqurkwzetbhq
+izjdxceebkvulgyyaocgsvwyxdxnga
+rfctbngrzyyqrghhlezcfztxspcwpy
+qcbwsxnwpgjijesmdjsdgsimzcegau
+knseenqcaaeotfvhbniislywtmdhut
+daorrkfzuowwxdwshahbmaokivakbo
+zwecheqakccwqaihehnoqpfnjkcxlh
+wwxgrvwizehixecvexqrnayaqthpbd
+rfnuipttusdheqccnhaansmgrjuqnp
+oegjhvuddysnkypkzuijsgnsajottk
+hjlehkelvibxadjqmdzgjzhujbdrmk
+grsogwineesbgwtmurattmrdiiexpj
+iysserulurednvblsiouhsgjfgwxfo
+bgpqgptmqmpgdqtqzlcvsfyjpjdzuc
+gatsdrbusofjtzkwzialfvonnvntpe
+jictptaurcsjcnzzkvmheuosxqrzya
+dhxsqfvdfcnrwmbmzmttfrexwriath
+bhienxjrsoirgwlmgwfumhehvaaruh
+yiyiufcftyduowexcjhupfffjxaoxb
+kuwsniykaranfnqfexmxgrwtrnpjaq
+jxxvkdlwbqkaapmefdpnqqcxwrfjcl
+sgtetxhtomtqvravkzhfyioelyrzug
+tradhtrurlhvdujplnpawkrhukstog
+mqnokfywylzktsltfrvbmuqmdinjwl
+qevmcyksdkwcwctyyjtqpobbhtguem
+vqojcksuddzwnckekmacjbtzijykvx
+eivpqkfzzrpknolfojfzfcobctoyer
+kegahqrxjtmstzlmnrfdnvxtrmsikp
+zoucwlknsamzgolwnrfvfvtgizpnts
+cnfwgdweblwtzxexnvhispmpunynfm
+rudjaykpwhicfcxckyvmngnsathvmc
+fyirbhrrlvcgynibtcuwtbznimbsoq
+pgaxutzrdbevnieraeqfhdrjyzmsel
+newtggireepzbtrfqqrhzszkpytzjb
+apykodzefqwvsdjkjleqvpkdyduemi
+dzitijsbbpwzpsgdjbxiwszcxbqvix
+lvdvokukphdmavjwkhgeqlcrgstxlh
+irgjesprdqhzogewxkfaprgukiigvt
+xlcgkhtzumisiloxuzrblunntcagas
+qvmwugjniingwylfkoixtnxktyplfz
+sugkevtthqhefukmedbobywysvznvp
+ublrwbtywbmzjlcybgonovmjuwkkeh
+vrehlmqtutmqntkrjomifapgndango
+iolvssyocnfxwzdkyrodegwmzowhxt
+bnrqxrsnentytcgvhrkqyrwgmwdvkf
+ojdmbjanfhwznadwildgpuygejngiv
+ezyfztzkfttpjvqlmogtrtxixcbdni
+biirkpmaavkqvjiwpjmuntovkspoqd
+zzcvwbrvaltcrkxgegsdkijbmmwunw
+yxlzhvjlxwwdrtkfyswitxsqliffbq
+oclaoqahhwvptbbsqnpqvukufwycfw
+dzcgurcrtcgsvnisrvkhnoybxrbjtb
+ktdglloganwfjaolzffvvnjhngkhzq
+chzoqczkucbatpwkiprhyktqivkoem
+dtlrxpimbgzpczoqpxnvvapuqxpfjq
+flmtcwpwchytqsvbvbgdlzrluvhspx
+njvfpnboizdzwwdserhsimvtchvvwk
+fuysaysvtqfhdelvfuspgphxajeiog
+tysvxxulcpmhrzpzvhrbqmbzfrtlby
+gxtfcqrkebdhcezrpfxsgvcydyzpja
+xdysxuyjhtffwiegnjhdufdflzqlft
+qhzlaxfvhyylmfpgbeevglmeuqidzf
+xfmdhhjekpqpngcjzkxdlxkqvzvant
+maibckammjluulgchejywngdlxzcqn
+eregreicyncdrhssjqcjwemnmopawp
+qeuptauwhtzkwtsinemdutbnfjbqdf
+dzinybfhsitaebkiqflmblgoyepugo
+fckbsmgbaanbbmebegwvfcnlkzxngj
+vpnheveylksxcwxyrvvbafamudqeet
+eszcmshteuznznxtvhaijxngatjcml
+euuzhdogfyyknzlmejzzytgaqcqcwa
+addtbhmqdqxmkivsoxyqsbdziatstz
+bkurdlbnjlijehegdtnpxrgtfhsfkg
+xlfmlvahedfyxbptasvjfbjiygadyh
+qalycshtuxmrsittuhpylphawxcjmn
+ljqctffievcztjzuboyzqubiqpwtww
+xjzgtgzsnrbxpmddphakhiwlmdzjvt
+uppofbzpmvdhusfgmjpobkmvwqtnbe
+ejlxmepseaxgsnesilfcfxqteswxds
+fnvsemovbhelgtemoozhbvgmapmznt
+keadmcssnkzyvqritcuvdlwsymdcwj
+imotkyslsjgblvrlowmrgejmppbezx
+tcanqqburpwgbtnrfbiuaanijosgbn
+qcffooupkdjsbwfgjtatoiajgccnny
+tfwaaanicmbqpvyfzzdgilxofnebax
+ugtrszurthndixoutxmiobliozrzrd
+wcmqesidzgwpmflcmauruvfnzkwroi
+cnewloaodwgnvtmoztfmejbjxznpst
+umxhuzmeqxpctzsweaplkowxequrpr
+agsvlylupmxpyxbeflkpwaugsdxlrk
+zkiepqjncvtjgxllonjhcbishrthfa
+lanecpgtpnitlxtljvsrpzhbwalqbj
+imwvezfngvnotgwptrjgvopihmqjhb
+prpfpjlsqfrxlclgraalxjqbfxvwez
+wihfegodhgpffajeqydnpdekhcqyqb
+jwsjyhnqspqssnozugoqfamnpdlrxe
+gxaesjmzztylvqpswmhujcbfoinuvy
+ziavhajoesnzjvrniebeyfrdhxhwjm
+hljcuaisfowhnwvmvgrcvoqeukyven
+ymaoyculuubvnzqyffyszbxcxrpqne
+xnpvudtobuwtlmjuwgyfmsyvzmpgtr
+mowcrlojmxafvjjmyzlvtlasqwkvli
+uifbhllvudtwsikvttgrcdmqhwjceu
+prqeotuhqcqcvvkkeauqkyesqqqxph
+gadmlshknwqjlmyrrfvxizlerugfss
+ncslnfozielfeaksmgymconyptrizy
+jkutotawyhdmwuekwtyzzythysnddl
+nllrhckpctcxdftilzhyikusqannuk
+ooilmqssiceejsclhpnhnocrirpybv
+akfnunrtmuflunouhpjybpcvnhastd
+tzdeecfkbtfurmrxfjznsqnxlaqjmm
+fiwnmgolyprnnafexmahurdqohxbwx
+qgcxhvbwnsgbbjpdgjsbnnwnjqfidj
+myvxesmmgmabrvnchiqyqmaaypucda
+zdcnyysfolynngvrhipxssbwiwxpkv
+qrnsqreceyuhwavilfmspxcjlsspxk
+fjnvvjhypmybambhxhfplqsousdpxf
+zptzrmklcdwoxsgbqrnclplgwyjjnf
+okaaxcyluroexbblbabrttkwxadjsz
+chfuozutxeaxampegzoqqyummgriss
+nydxnxfnffsoqugzkjsxoxftijwfmq
+iqxadbnkgmrqvvntudeqjowmyyrues
+jorntkhfadkjbbijyjcklvyxehqoay
+rocmeepdbkrantupvkorchzvzckkrg
+sgdsqvhrrixnrdnruekhvavlmpkdmj
+eypfyywtcakoyellnaqjievwegrgde
+fuwxddonimipjpbomeitivqbldtmsr
+xopgnmozckgajrzxnnvbbklcjcuylq
+vefdobhoatodmxgwolcbeyosypfwpf
+haookeomvwymqkxdtkhkrcofksxxte
+pzuwjhnwghxtsmhytngwklrqaqskni
+czhcquyylunzrimqfdcilyghzrkxpq
+ufkujghqpuealbwlwgjvwmaxfhagmg
+loeiysdnhogjmrgaskdlwekxxaaiih
+fymiarkymwucibthzmwxphxfwmuqpl
+jhxizwpyucminnvhvrqxguwffnixfy
+ucmbwcqefyqquclekekdcvpiiyfpuz
+mdovszhfkltjtgkdtmhslubqfedilp
+bstnbskqikldsalulmlvoyrfqsqukm
+xcsvxqhxcxhnssuuchwaxgwigdxukn
+vvqgcdedufzpwtbmrrgvgdsyytgdrr
+repagjuwtdgfooyclfzeufpcylakbs
+qyxctliohofgribthvxupjpqmpfepu
+lyrpcisqdloeukybxrelkrfaumcvkm
+ltwictnqcisngxsgbabrwvijjeppbr
+ioaqjngdrgiffjgpntzhcwwtveaugv
+blofmkpsqozreuajiixvcpjkkubnyz
+wgspweuregmvomynwkwiihlejprrle
+bhsygitmzihqgvkixiwugmfogtnuoz
+jsbahcwygppktvhfyzpypkpjbpoygv
+luwjemugryqinlzmssmthmjbjkczhp
+kkersyniewoxalkkzscrlfiafbvbwc
+tbommxrhaylongwogzakjmpkapxple
+vorqfowetzlwivlvjtbdvwsdvtxgvs
+awkoltecjmvxiokiijxujomjhebaos
+fdlkvomrtalolgeburqtkltpemgaiq
+ndgblypchrydouykalvoahlxvdaxgl
+vjvgfnpljpncfjpxxcsuljjqkuhcab
+kurxjkimokjuiwrpyaszekonnhdwrq
+ilcrdydukwrldcbhgldpefvoibohju
+gnmfgbmusqxhicquthtevoyjvohudl
+mfgsbbteiftpgaroofflqipwuhgidw
+zzqfgoherrnabxdxmhfhgurfinhtcl
+rltlurcnocwpcglrhckvtjjyipcnah
+aqlqmejuohzjqhtxjyygmjvjriturn
+eqgptlcskjuxytgtefmzattxohbynt
+taakywyikrnxzsewyfkbgzkbjryskw
+fsazfqmakhcgnfypadvfqlvkmnungt
+wcofckheqiywdxdtuhfvhjqlcdeoic
+xmhrslliwaviqhdnebsdpeewqvqrgm
+imohjhyskbejwevxconegyfspdusep
+fbxfcfkgxodaefbyjatkhsmgbvapcm
+atsavyloouhntkhxdwmtlpzooftvde
+jdfuogdrrxxmzqnttwewwfsguspvbp
+yzgzgcvwlggzcvlmqahukuuefpsgxf
+flfukngzrpzyesyhpmqgzayuacfepn
+fgjdangrhrtcyhhshplslhzqfoqrrb
+flvkaacjjiwrowrbtovpvzplqwdsph
+ppxdvtujvdgmhawpbfstvqrlgmgmfe
+qqppwzrjmufiqkokephgxrzilmayrh
+nbotjytnbalcmbtfpmtrquxctxgqjm
+jgnfiujtcfhzeyadfiubczjudzooqy
+xoszynelfbrdlgqunbpfzhlghkxlfo
+kovtoluluucofkbksmunjpcsigacbr
+ecchydkrzsqfrzrwcfpfeogdhhtiae
+qzyyuwyqdpacjdwqtojyrtpqueovqp
+xkzzdyqbbtzciwxnyganrgqrzwddnw
+zjtzkhuegglzuiykpqqlnfcguvpzma
+langzxxyatcllqkysbilynjgpnnyio
+xgezqoujockhengpwcwerrvuxgxpop
+pshvsrkogxhpxjjnebzbfcenkbmgzt
+jfllbgrzcqdanvdgiqfolxxkjlfdlv
+lfvyjabtjcrwohugtolbdehjhupdyf
+exhdesohlmwtbtlpnyycyojdwdybqo
+pjbtrpkavpcsgozwuucpyejjghjvzw
+rvaccnnifpomcovrbakbljqxuxsyam
+idqfrozyfqprfpfewfktqytnwbkxbw
+vattdxauhlgvstqweukribzrvvdwod
+pxoarfccudwekainpacqjavswhrbxv
+dwwvwrtjnebacixbohpwectzihhotq
+ooxjmhfutbzujoswuhuequcwtwhhrj
+tbcdukxxggczxoksyrrtyfacipkztt
+ctofucrnwomezyndkbswlwopopxudz
+hcghhezyjfxrvbqcytbrfrtaknudng
+jierjxezblrobwzxojghjthneriqhb
+zntwlypfhuwbppddpvwomwzqcsrfsp
+iguziwkmrouczryunentqjqnmvfyco
+nntwkmcnqeglsryhxzbbvorvgqhdkt
+nwhbumdgfttoqoyyexlbrxehrvduds
+zsnaopzpewbtbdyapszmwaapctogup
+qyngqwiyxowhurmnelujxoetesoyre
+hvdulzqtbpxnulhgzytyjlfoscuoji
+vlyhglfqskfowzpvsmxnvcrrenkjbg
+xbdochhfsaxhldfsublgvooiihlzqk
+grjorcwgnrshhcsakyfsnsxmgirioc
+rffhashannaezohvfhnbovhfsjxfmb
+xolesmrokipuxqqxjkpwemhelgpwop
+lkelgflfxnphevjemjlpeobizppyzc
+komfhyyxpjbzdyurilceocqrckdpzp
+caplaheolrylbhexymejifdfajdxtg
+tpufcjunybfkygmyotwhmuybeyqwcs
+copzicbdqtfjllxmdgesdxxeifufvd
+gybtgnfolxqtllhpbtmuszocznylik
+xbilngtohcoqunvjzqfdpbpjnnddty
+ixozbckxvqjavlsabmubcndvxujlhs
+sbrawrymqouvmrzuksmajyhxreeshn
+uuhiytyspzecylqakjvhatkybrstrs
+fqstphksgjliwxmzdccymnwveprgvc
+yxgfoiiczqgedtzrkwtjczhyummhya
+iwusjggpmaxvvtizqoqckfhzlshcto
+oiafdusolvyqvnspvljcfkqgnpgiil
+chcwxzctjltpfsmuyqlbbfixaaahee
+rptlqyelknsoaplvuzflzryifowwyi
+qybkowuiudkzyaezvfsflyyspftyjd
+cewsglnshaocopawjqshxjngoopwmo
+stxtbbmtzuneqzfjbzahimypustkvd
+gdghdtfiuozifdbielinakkgwguehn
+tvdkxjmkvcntiioohwyrohrzveesxy
+nzlzcmchqgjoiqkqstdlzywitqqsev
+pctqmsbcfyfmdirwufeuskigcpzmnr
+zvrcqwubmxzeasrlwmwsadblhzqvpq
+xhsmplwaevrpdmfjtbkabaaztdfdbq
+szrdzkiikwtbvlldlhqfxkekqeqmie
+filicwcaydfdpukelvttusptlxylsv
+htrigxxexnkokpgdlljbpxxyphghqz
+sggoagngzleimbeshvifaqbyyhtnxh
+elcxsafjnghhnbntnpipnfzokeyabh
+nlitevvrpagoryicueambzrjxtcsuc
+txxkymkamqdyffdoximorqgjmikgqg
+tjvobxjszstxaejoybdnlhjxnifsns
+egbgraovhfxliknskcqpxxllojkxyu
+evxxelezxtdyetjrhagabojazywxvt
+cnskgkstvnivqcrdthbbawkyykzvbt
+tdvuuqvwddstncinodknvbknbqidbl
+ajdcprovcfgfxdmvcdhocbdnajwpee
+seglzcmbpkcirjrkfargamelmtjvxs
+tsmhnjwechpklsbsxixospjpryunuf
+wbsfgedrcpuffnstjpcbvmlamlmhnu
+rxqqyusnvkzjawdosucirgffmzdans
+pkrfyxcsewmabgvdubtrjysswtysdw
+skgisbenvbajijjtzzcqqbbdrjkhwf
+xqhmypcpxigqwqrctohsfelvxwwkwm
+odiuipgbqddlswdgqbrshzjlmhnjvm
+eftncjbyuuixlwvevhqfrmdcuobkmq
+yvbkzcubjdjglxdtdsdfxrznskcefq
+qmsdmveugxetnxvxngufifpsxqcvie
+ftkdhodwmfbumucxddupsrfqwtophd
+onujqvfiisjjualisthbxumzzjewok
+tvmgrucgabgfguvsvlrkjlhueuphvh
+yukciumfkixviabicriodpxmqjtzha
+quaavolpjeljpdftcfcglfqhkhknjj
+pevjsxxlkxkjrhtxodwujuzlfhulvl
+omfntvbdkbwpjtzyoclpdzxfnvfshg
+guzraopozbablphjyxnhjqtcbmnaee
+sldakewwyqtxemvcbcacfnfknskrhp
+tfzlerbintscmsnykmyabnhnqkwbif
+uxbdyennjemyzulszzpnmzqgyzmhme
+cnrryxvzpqlsixraclhkbhpkdrzciw
+vshyqjzvwgzzitatkursssqjczbbgi
+ylidqffuzkxglrqmqhpomnkkdtvanp
+gbkmbygcandjybuquomaoncrdqoyxd
+wtsvaywhilpwrufbrnilwudslqmljp
+pdkfxtmlkmknakpnufrsofulaufgfb
+wluctbnrfokhxksrjifnrtpaskofnm
+wjbrwuincwamtoohpsagtoorpsogfy
+thshfieitkrrcmrlglofwvxpuavere
+oygvjaxwnbcuakyzcsxnqpnyftkbhg
+hzztmaeexsrwtasgvzfgomlwlsrhfi
+anezxawgkhhuksbqqqydxgzziqioso
+pmolvkxbmcnuzglnkdkhaupqdmmegp
+byhocnwitzowykuunltfgndijsggwo
+qqpitidqvsnsomhezhlssmquoatrpj
+yhknjvuunyxxkfvwpbvubjsqezvfyg
+wujnechamgrolcbljwnvhfilphnuww
+pngrjvunivmdwhtdqkbyfsankqnbsk
+lmrboqferxleavfemyxelsygxjhmuj
+twtuoidiozsrxyoywohvrqbbzierrp
+qgfnhgvejpnuuhtzhlroxieagzclfm
+nyexgjwdortvccnqppefewebttjykq
+mmgguvxowaqknszoisljhkwgfbscvf
+wgeprfywsvvjjtatjvwtdoxfxvboob
+fzkkqneewtnvsonklggobfbexsosnf
+ukvorltbtfrgmbgzvdnzphwqsgzlyz
+vfomvgaeedofkxjfueaazbtumrjafx
+fqigdprwpggpeuixqzvpkskinhdhho
+dvozyvvyklppnormbnvsxcwzkxmwvx
+iqdjocwiggxvzajrdowuglsdjftgna
+yymxqjipxyaonmmwlttfohhlbrwlwh
+tudbneszomvguaypphnwrmictakvtx
+chpdbherjiglfhpjbrzjoznbhxisog
+frnsalfzyaodqmhyrjibjklfxxyhaj
+ephacwweyipzuowedrbbarhuqwfftn
+disfjrhgnszrelqtajqnidpequrcih
+hgunqdswxbwmcdksosfbehhffszadi
+oankweufhgpmtjgdjdcamqxoargzqc
+ahlnnbdztpaidcmkifotlowracywnv
+axqusuprrbenxximromiennqvngpro
+edyvjlimzztinwftgvmqlkmtqyrodf
+qurubulfohgjxfxbruflbppkovfrep
+fepzsxvkcbbemtjcjcgjgglwruvavn
+pzyxyqnemwvnvxyodjkmzgqyjomlds
+lzotcugwicknwwwitgzqlekgfuqvec
+excgdxwxrvougpagklsmkjmjmaaiwr
+gzzuywwtgrgjaulyvofhtneplyscwa
+ibrvwvtbxhkwwguckqzdgkkcdkaazj
+caniydyypsklqtpggxuuhjfwlkvhcv
+zcmlmybseprjgjdcwndysxrkiqpqvj
+klycxcqqnntnnzzeqtwzxjthgrbkdk
+dbovfhkcjoouijxbnegiictsjsuvho
+rgsnmxiewjkbxbripsdusbvdurzdda
+aimtbmdlietcmjrvjyipwbmvxyqguz
+phyikurivsjcakgcalbsenzjhpkmmi
+sjbcwjkghjaudmukunsuzzkpylftly
+vofpdxisfseycoqyqprcuikcudghvs
+wlcbkclaswodjrkeklwhuaweqyldse
+cnnugdmbpytzkejroxetuzuwikxugx
+jiqubjbvsbxjudeplbwktqohfrsfjz
+lxmhatqhhppgcabagycubwyeogwasj
+muuobnqdrmnmsxrtkdmdgahazflbtw
+jncerqqcwcntrwtdpgyuqogfluiafg
+sjoslpltswyjnivzfeuovsdvcjjviu
+ykznvljeliuuqafaeixyslwvzdurri
+jqftskqbzxdtmptwwsguuxcmoclmzy
+oehwgqybnbvyojjfnjwexpssfyhueb
+wensmvesaqgqldrfbontudvixwkhdw
+eythwtefreuwqyfdgtrexbtsdswqkt
+xvggmsdvykxdlfxokhiuocjuqepyxp
+tabkjlmlxecaxncwfvqwthhfyyuqkn
+tvvuzjwlebkfytnyeqkfztqxuyrctq
+chjnwazaomnquvbouenwvtmrevrrlg
+onhjzwgleceardhmgmqgfwlsmoztlw
+thtssjxqdseqrapyscjdjwowiinjra
+gxhycfbbmaokecejpzzkruyxsakyrz
+ktaukyulsjptvbfrdozntkaowycrgh
+rmxnualbbqhvzvegcviwxuvmxeqjaj
+ksksvswjtcfqbtlquadefcwjaimdoi
+deiyaplzirtdyfkajteawxqwpvbosd
+ityxmokmttgadnewjtuxlagddepyfj
+pbkxpwyvfwugszqgkszlpyiuqcyhua
+voamjonvxpxwgusjjyscrnqkecpwsd
+smgkutjxgcgcccqjfcpejzihqjjdtk
+dyrvchxexgegtwiaieokovplffwpyu
+jggnilqezwwgtmirykdqucqyorkpoc
+okzrvkmwdorapqvsdgwwuvkgatkuzv
+xeyuovyohgbmmnicgmmqlniuifmzoj
+xgpmoesjcgbbmcqraexmbogcpjwaso
+pqjxzzipnxckwtxqhyxfmontsfzalv
+rujkvmvedpigltqhrzrqunozllzkfz
+akuefkcswmwegohgjlopxvtukbpipa
+ikqgysaxumtcaiphemsuzowzhrdwfv
+kdrkvlxausqzdystdffssfeuacybad
+caezkmydctndjqtfuewdgaectceibp
+yqxeqhgbqhojsyizlqoqjzlwjfjipc
+xlhvxvacrrqcptwmxpyrdilelctqbb
+eiumzccawdqzrndsnmwqnjgxqeijwj
+ystpndxwtsrvuflpnocwethotbefla
+lbaoeyygotcsjctoebwqobxtwoxpji
+pjpnbyjvqnmhxelqxxekmfamuroqzb
+szvgxfymkuwyprwaivgynxqvoipcfn
+gozbdcgzikwomlsnjuisrxtwxmhfmr
+dabzfstgigsocrkrqqaafmqzolrzsj
+senodkpfwjtrkbbljvlzdrptlgbykg
+ifanswcuvrykifhbgidgihzjhqubto
+jxthhcdcecvroeuppjaaoqmqszzrpz
+gcgdjqymkczlhajilodyzpdoknshfx
+pcxhcpyfdnwaeuebqbmfpxxqkkxasf
+qdgrmvrcqbkyhpilopymmjmnoejhmh
+qpdjmrxyjchjmecoxabropwixwxrbu
+mztkqympkcjfabxkyxwkwhgytpuuzv
+mbmyecfipwciaakpoblfutaqylxkwz
+iysdqraqbgediifgdpxtluiabsvexh
+pthzkxgmgcuxzyiegkmgdsvaljrvvh
+vyoterqhtrgxplmzfcemctswodgxri
+kzuorhfqhgmutfwgttxqdhxghtutmj
+mdaaaqjlhntyimxtdvsxvjlexkgkou
+wteqvkxvyvjacvydrmcdzkkcpacczr
+cfzmsnkaxgnlgvbexvinwgcafbtsiw
+qzedpqbqtjvkniszvyezlqhveqodco
+efwmeiewpglggcblnxqvyoudyujfyb
+cwhvgfnxripojhuzrbxqkxrrtcnkgu
+jftodffixqwhyjmyhmvladxbrelidx
+jxxerxruvzkteussaftihtgoiqamkb
+cymewduzklpjsnjalgdgkntyptkurp
+rbqhkacoqldiycipqckevnfifljzqc
+mquumnhkhsmrjoupiwlvrslayrebib
+licqdnjgjyvkbopgxcqpfliuldfftx
+hoebcskoerjzhtidogjvsxgsnbbgxe
+volmxirqrywrihogbgwyfgaociakmc
+mwyiytfszdefyabzysyqvgwcoalgrs
+wtdsobgpvcddtmitztthuariaxvguv
+nvpgvddctuwanffmezprphczhxstbi
+pcznaqsiauipegnukifaajrmxefpjb
+nslyzmqpnbchuqdsfyddyrvqtuecir
+mxkznrzgoydvrbcirhwaqgtvlutcmx
+yygbmwlpvjthdgefumntmjugljmcef
+lucinjhwnkbfihdynxxfthyxxidrhf
+jeafehnxpqwftsbljjhhositfwjwrm
+ltinslomhsrcixtxtwsgzkupfurfon
+bgewgjbnpdzqfnvztfebilmqvkggrm
+cytlbvygsbjcuogjlljosmrayikolz
+guyvbmvztxkwusfcwfdivkwnisyqtw
+nwqtkszkjyquqeajwliwlllqdiuviw
+ysutjsrwtxlgynaqzoopvbcsyzgxxe
+jphtvbhousgzyvkknuoaqvnygxeofs
+vdsioexyokmhnvhlcimpmqxiryidyx
+ybitynllrzblhlnmglibuipaudmzna
+evqjopjasuzeqwtnhoabqcawadskgx
+rmcauyfrxwvwhyphiuhuattibxrrny
+ntmoxxjlrqnjdfcflaaubvurcqgduu
+sxehtzrpzlkmwzzqbvinwumimkpsif
+nnvxnefxowmmeagcitikpoedoadvkk
+yicftpvxfusmiyextzsfmejyyebsrt
+pweftfehwxvbvlzkyxdnfczugospdk
+zuqzrvvzakotnkegiytkynhvazckel
+zwszlqirhreiecvgsshzhrlmknutfq
+ufxjaekcopyovyzucunhnwqrjnyomm
+xwewhebebghjhiafjaltazzhqvcoll
+pagcwfwmepoxgrjuhorhbikqirdgyc
+nlifwhfnkedfooemcpijpieexcuwwo
+mvsjzbhkskvelynsadkpfgwkfiyfxq
+khpglynbfoyhqcqobvuidplddomywj
+rmwatxahjsfabjwmbwmxotfxxodkrs
+tguhcujoigzacmqxixpvojnqlnftgq
+plavtcyahitkewiqiamvhumxjorgeg
+jyqbhorudydjmqdtmxugchgeensplh
+vtiposckizbujbwfolekerckpzqqru
+rufframfrbwzbigsrlnmgkztbyblin
+fxulkvutzhgtdxybjkzcbzlfnoppgz
+tgnoggausrmtnntaogorlvxaixwlse
+pnmjcjiijhzrvqkxvucnhbulzzmrcl
+yrbcykmxrsxohoaanveduokagpkwoi
+ataxjlrbolxevbsqwkpexhuhxtaxvg
+lxboyqnrfxrdvkznspeddhsphsasuw
+evudconcchsfpjsehyzzbgpfvjrwky
+sykddcfgoywlemqpmfhjxrqahmrwui
+yiangtywnuhkwkuhivzofbqlbwkobx
+kqlhpgsgndbpsjvqjelbjrlaxdarvv
+piedtbvumgrdypttwcshanlhwgwuoa
+xzzzfhinpqhwubbieuzxiqxrmrimzg
+gpmgsdzrlopjxwhuhfrlsrmunokcir
+dnbsphcvmtxxbzndppvkhscahxwzoa
+cesyzdahavxlodgekuhxiovsbxwcxt
+puiomahjmgxsllvdiamivqdjocplco
+asrcgkisodmwleehyboopazusjlxbi
+qzvnzvroivwffzgitauctusmybjhpv
+pspgjglvutbngdhfiksfymsyyusbyz
+lzounljwruviisatswdxgadekthhlo
+khsynukicbnftrzetcmkdaoyccqcuj
+lucgqnjbxbrqjiokcrozwrgunikqjg
+fjmaajplidxfcbzesbqkubispkkdcw
+lthzlkzjwjfdxjulbszsqcxjpjltjc
+vfffncmkovuyfkxzhjwkuxscfwpdgd
+aokxkapohojblnccxondwyiatqeume
+vjoptrqrbxrnipzyyggtlemsuepuzt
+wnxuwcnwpdhdkfinqyuhcqcogkinkt
+kpixaggiergtiuslcrjodndxtrmkxl
+bqmvjixvcuhchbhjcfkolmnxhkvcpg
+nhrcxhlhhallqeuucervhgbbrsorhw
+ilhgdvarzsovfrzocjrxpwulkyaybz
+xagmkevvngxxszgdamhxzvanxyndvj
+urumfqmtltcnlooqzxezwvvnbixavy
+qqhjrdwuykzxyuizhboehhlgnwkkdg
+nnyqbxwjlumbytmilznzhrbbkgrpts
+wanrkwoqomzozbrwypkeszgrmljeyn
+qxzivdpfqyofzykghbnyihwqwfatnf
+vafippfhowzslxsllfsggjuootlgzx
+zqzektaxtgmijonclejaflorcmaakb
+pfmkvulagrtbfmiaodovvnwkfzeaut
+iqqbyxobobqqazycaezfctstzmzibz
+licctyprhmmhcmzjwueevgtrcjipkn
+iojyqsslxorwuqtkkpdhpqkyjrxeqs
+ylwluwoynzrnnixztodsctmhdixsbj
+qlcgnlbvpyjnawkapcgenxygmuoqts
+bheupprlcnbpryzzgrprhtrtkflqtp
+rlcveotsdnybnqwiysyskqhaqqcocq
+mbzgdwjndgojrsvzzjpkwszbbbtkdi
+ucdnrbjefpaufwhfnalaleftwrqudb
+hdfdlvzayjeeujazihyxibojvuhdqg
+cmjjgqjzkckmkhhhhkxwhsdlwcjfmz
+pgcegwduxaxrtlrzajaudeizjgzifg
+axuhgmsjhtbrxotskohxfoinmfliyt
+pprnjswqgcgltleiicjjqfcjmdkefi
+bfhxinbbpiofbleleakwkcgjmcpwcb
+thbjevwcnuunclfojumtigbktajujm
+icwbdwekcdbvsywofeqxjalkywojzx
+gxjbwkhktwrlyhbtmcmafvbusvnyst
+vajdgjhelwhqderzhshjihrhmnswms
+twqwppzaannhfmrgxapjcyshkkhwca
+xpyzdajbcyyktrkyclydapdjnihsha
+daonhjccudhdsduleqnelrvybamnzs
+wrfdudlxnemnodixjejgmbkebxgamz
+zookopolmcxixgbceiommzyaejqbpu
+pkxkrqqzuuizdkvyncmgpdtwmirgzb
+togouswgeznwyyfyljganwnxobytji
+fclgoxdphqkskvxvfzoeipdmvgdmwk
+ayheiptrbidgbrmntehaikoxzuaeqp
+cfjutitzdcxzpnjwlmqhrwpdlbmchd
+osmmxbagsnsflkhcxzzcrtohfhkrhp
+bwszdpkwhzcbwdnnvtovmwpavooiil
+mnfsjsiaoohbgklmcvslqfpmkxamgl
+ywivdbchczkmpjmpqcefifolskcctp
+sjqvvvciwpdmaqwsenqwkhckboshzs
+umlazfrjmchahrxojpydrtwfulqrbk
+qdxqfevrsrippmrnbobjjvztxqmnuq
+lujxmqwnrgudjribduflqpllydnogm
+klkoyzvqfhgjaqwtijeufgsgpqrbmy
+imsxxxxvemrdeqoleamemvubfiqjme
+viurnemgzttgtoviykdbljslxjrald
+cfzddvlcajrvkrxlvrqzdnttumpjab
+wdoelvhksywhpoweoegmlivurlhdbr
+guucysgusmoiedgulgdhumtoecczap
+orzlchqlicovyebrdafxtsjisvdjvq
+cskelcotxsaprlsheqrkrbqjcnbrgj
+cvbpsoaidcczzlwiiptwkzrhpxlyjp
+mddszzpjqnvmftfukjhiaiwyccsfeh
+bejdnzhspofrpoovcdwatmfsiixwwp
+caehncumunubjdwwzrggnfbayacsbh
+gkxzncajbwyaccpmcwozvtivcwubgb
+phuwyeovjigqhokjoofmwnrseojuyh
+fvwwytaipmsseleculevxoennpltly
+qzmybduogmdskicnhnimfttxnfaiar
+ukdalrmxdickhczoijxgsqxaomjanr
+kzkjqlvmnwufbdlkjotgwjhdwrlpwf
+npikgzrvtdphxaobxizcueaermxpit
+ejbtcdmnktjdjxnjhdeyaymvobcdkt
+xldycodtrcwshowyvedrqhdjxaupqv
+aejunlawejdynvbbzsgnefzkjpghps
+jmliqpzxuxjlfifcmczxevitvgfuxt
+oeucrjnttuewfyiiqxfdrdkzujcnvg
+gweoltvjjrshobyjypneceqhdtpymj
+spbphnlcpoxxsduarjnrvhwujsbzjv
+tcxaloivrdutdrfieppibrspokbggg
+ndbpeyghyzejgxstkiivojkhnepeqy
+hyjenademzzbfagfcqyhrkxufozjmy
+xcjdovcrzifvzchwcgknvmyxqdoygp
+ruejiqdugxvgumiqvunxtnyyjnxuxt
+ruxdriaypwfpeuvksnfzzuxytbsgkp
+veijxbptqzrwohjjxusbtrngrlymig
+szaqxvziqgtlwcjmqbnltjmhavfhee
+elreivzhxyytqtexooaqaxyxwdasmv
+cygvmyihmhmqkeomwjdijiinlxuzyc
+rufasbdvydrrsooxdgbrhrhostsfya
+fsdaopdndmpxiazsvtmbpdcjaimjwx
+vvoepgzxwrxnxwpcdudmsgxkwmwebp
+dmtmexbeordglkccncfeqydxjgpwne
+zcjsiamyouoffmrxslbuqlbjlozxyk
+jkvsbrfnenxiaoljtkrblihcngsshq
+uuxoxawcgjqtnsoduwgenrwcexhzjq
+ooneympeocdmyjyoytlhuskudxnusl
+bgihiejuboiibxalzwrwskgtklubah
+jzqgenidewfaeybpgjkotrjletdtok
+yiifnmnqdyufjrflwgwevbrubofztd
+cqoernwxjffircfkjyjagjxvjnjndf
+wulmoezyqesiyrwnvectdvcyfcjygz
+hnufnzctwbojtpukhlbqnbnydkgdvg
+nebyxmqwvoohfimgizrrxezrfxwwje
+hwrsaiculxqyktoyoxyrhwmombwwxj
+snnzyydlzslxqsdhrchpeiospufegx
+nwgraxsyutfyaieubqujkosrgwkxuh
+vgttrfjfxctmehahdynnrpcwgmpjew
+vcwppfbhrdtzaetkcovmzhledyshrb
+shfnsgrskegdcaickbqopsfrcyadmx
+uuwsxomxptdegpyitqpywxksulrysp
+fjcjduevurhfpwexibnhxbaxhzbpgc
+yospdzcquliajpyqaqhxoszchkdksu
+cyygsfcbqdmuovoiupxjjmtaprkuza
+jkbfagjbesdpzipfivxnvimeaehtrs
+itkgciexhsmbwwivrmpwlliszormdv
+ofdiupmklmgymcdmvwejobvftcjldp
+mzuhiunftkkaugbcmkpbjzaemiheon
+xhmewxbgrqaacmnvpycrxlygnezytf
+eteprzaifpghmtxsvayzeaproxsofj
+nogjkydhvciyuvmdkmxpkbrmalmgzu
+abkxsbuoxpxltqhnzokhbhrifyhcsh
+zhwwkmurdtbgwumnadzvzgqgluygft
+xrneohlrakdeccysvdqskardfoupwn
+biogxsyfjkaupbmrvobqicjljnefef
+znoqepoynhhribtiwnvpdtntliisny
+hveesxrkvgourefnyaxkhsktsqrkfo
+dnowdzymiohptbbqvysqbyjnfsbzcc
+rchqngpmvfinzxrhackpfgjpvagkew
+zsuoagcninhoioknswunycxnexmpjm
+qpmsvohkbusiygwzlhxxkyklmzgzeq
+xyatjramuwfzafxlwojmukvuhnnkht
+tnrxtydrgfplchvklzowlpsjhmnapx
+dwfkdjbcmgrhvncycsnrbutqqisbun
+bftkqugirhnvxjnlceqjqimneoojdy
+ohwkveptpptbtflegopmakqmlcivxs
+qxycxcsamqgmpvdcvjoxrscjunnoux
+xlsqrlwnmsyydbubatptvacwnuqytu
+sbgqxefxdmpavxlzgppkeuddkilrhq
+vwclnlvkllweatlpvfetussjggzanx
+rzxsidsthiqhdxndmnpyykehtqkcbu
+otysqzgkpnudjoetdhwedhhpjyyeki
+rpwosfxhrehixskywwasfvpmoonrtr
+xnycnihphbfnqyogpqdidhbiohnrge
+etknociyppfdrsyatywjegusxzsehy
+ygkagojsxzwwmazunetuflejarugws
+nbbdulrlkuhzvrgxtcfkcltsvdpsek
+zzbrusuueocenznwarnwrjoduzooey
+dbxavguzxtxwsdixgsrrehccpjliqm
+vsrczeplaniwaxkejdwwbermegmgvq
+azwwdwfueijsjhjopnsercnpnzleml
+ndpsyazykbatnydptiiyzklmagsqbd
+wugtgntokjuntfiofysrtwuojqvohq
+vgszwbehifulrhodiziwuucvhlzeuf
+btdofewvlanjnobwigfrabemqkspzv
+nhxhdgeoaxrusdwmlfrzvokijclazk
+rccqvxvmcgrbepatugeijsxddazsro
+iecdwteqklfufhgilsrkzgraqhwpex
+gdnytpzxmdmlacsrwtgkkqphhgrkje
+nqluvjtmcmimezzlgdanrvgefjjvie
+pyoqohfxcyzxrnreaayhacxfugqzoa
+gavihswctxumnwtyjyfigfdgfqbmzq
+obobjlclmcnbuzpfhpulstjhugnaem
+ihvvteeqyfukuywwamtxlmmdovbeju
+wgjedwpqwoibutrxsgfswfhzovbswe
+eedxycbqkmmcsullmadlunkplkefaf
+hdonvdcgqsfiffrtlgbkgtatqpealc
+psndkkstmkljnxfbqrpnboasdccccq
+dfknjqgoyvnsyarbbvlojgeiqypwbe
+kmpiiunvbwynbifkngggpguafjocrg
+lhjrzhvowzhregiahdyzgferzxuiyi
+uvekpofvgmnghkwafuzjdghdcuxlga
+pdbakidudeukrfysqjkikpprhkhkhw
+kediigmsuxzkjxlwhulbdahlyrlxvw
+jgxstponphxwfpylzfbamttduflwlb
+ydqprfmrtqznbfaaonzcuifokskhzs
+qnsdwylaxwldlgaefounoqqbnwqotq
+hmyksydfsnfwvndxqefvimnaiwhadv
+dhnljozbehpwqcapechuzrhkplgwtv
+uygjmjdofhmuutetixiyydhahkevvn
+zevbefjcirsjxurxbghygjuqmpjdcz
+thvlxleljvlhmhyzgwumpsdvwfocsr
+uygahmfmzstkhxuvzvpfmbextvhyeo
+pqndngpuumwwhsldbfnrebwzkisaua
+cqfatezjlvtutibcynsntabzgegoqg
+hdogdphibsqflnzyzfbnfmccwbecqb
+vcqgtvhqfbrjwdvncmiwwuuwjcphdc
+xuygpmpxtzcugixongrsvkphxyzeid
+qgmfnqoddyjhzpdwlvqjvcyhpaocyf
+llfrvrgkotmlyrzwphvgnmonjhurvk
+eujnnypjuwgbpddbuclrvriiwbixsx
+wuyxudjhqdblubbxmkddugxvllcipg
+fptbbwqldkbgxewbdykviofcmelyin
+oarpqnnewousqytqvxowqfcxxztuth
+hplcyyysquqzkdhaitcbmtcelnfakt
+qxarrruukasqrfnijxqmmjoihfbsez
+bhwbeyhqnnaffzlczofsolumwudyjg
+kgjkdynwlsiqrgrxorvvqaanrcnbbm
+tsdcguiwlzmgjaamutudoaqmpszsgu
+davzsxtvjlegvlwaielxaukgypgryh
+jlvragmsafjuccniahpqikhxnejvms
+jbktdsfhqxmljzizuffsezjyxecopn
+ngkxwefuatmlbrqbgqulghhnhgrmei
+xeihhskeoksgtqgtpnqbldzoyakadb
+btbeqjrvajqrsaapxwgtoizlmvcojk
+apegeopxynzjvqkbvkkpmaqtonccdf
+pbwgrmuxiaxeonuuwwnimcruhsmbgq
+aixddcliqrevhrlmrufbxdeuxqrflj
+cpgugsmerzorjanlbtwbccwyimyxmh
+rtybuknmedwjzmaoyxdbnqqtobqzkp
+tcfxvoakxcunehxcreiosmmypfattf
+cknzotusfxyuhartnizgrxfnoqcbdw
+mtplzcjqqyoiswygbnwmfkpjumzusk
+ssaspolxynjmsbkheebpbdmdukvvzf
+ohxswzgqdhehplipocjysdfqyrwvyx
+yhnbetmcxtwhboaenvfdpapkrvsvnp
+kdtqkaqsjlecsztekkvgiojugnjfjf
+iqvqellwzkbgsyfryfqnvrroasxvdi
+upkrwgvdkmkvkifquvgtunysjsmbgh
+uydfximrkeadexsndfnhhsbqhsfwtl
+xjmchpbwyymonrdgvmegrmpzfnbfnw
+rvohlbghmkgxqfnohbthbjluufdocj
+caiimotdphdddvnveifebziwplyygp
+khchueosszzpdupbgwadkuivyurxvc
+fuipdytrreeoxujkbwghdthlehouiu
+iyapmvexlbcoetcimcbnwsjavlkzkx
+xalzrqadjpatqcpzsairqgmdgjmuop
+ydcanowdiznbbtthbngtqigqeormnk
+susnnrhuxobzwvmkyzdqpqdxtnrpvw
+qigwfukmkqxgvkvtxmnpmxvlxxifui
+wqcglxawahqndyharkqirphncdwkvc
+dvywevmbkpsjgzhyhlsuldfsssddug
+swqpsnbbgtwlyidjhzmqkmwvwrecax
+vbqyibbyevybroayasznofspvuqmat
+dnmyjnsmhcuvptzwyorwkvplbhrxzj
+sjkamyavvirkpyefjvugmvpilcfhwu
+aiqojrouaynepxfyyyplviacxvfwax
+yzvfuqaanzehhpdffdinammzhchyey
+atczwvwdxkkkfdyaiczzvbcigmzlwx
+risxbubqczpgdmpbwfonuuhjrzskls
+lwkhwhdhyyqvbuuisdtcjhfktlshex
+choryegqxcnacjktfpvizjjyhpezxx
+jdrhywrsocrnqcnxfpbcdhzafhcdka
+rojrrlrptwopfpydxbvjnraygxlfes
+ffrejcqwsuzzhvmvnclhgumtjxsllz
+vmatqjtuhysrpuepdvandorwaimmbr
+ilfwqhahtfqhcfwtvgjebgbrzxsdvk
+wcxjnirlmkcmfdtdxtzgroriraofzo
+kfycqkfozromxsfhcjncpedhgnirtk
+ubakxgbwrhkutumwrihodzyjvatvxj
+uekeeasiozurneuyxszreykfducdop
+yltxeolclgpkrfkngwdysblqccsjie
+zbykectvmzceqklyzehebdyvvyexao
+wvivjweizlqcjebcehvkhruhoyyxug
+tistsvqpkhqtkhhcadeanzdiqjcisv
+bqinkiwmmmbdsnzveglghuyhtlbwky
+tkobmqudeyycwcncvsszkmiskepmab
+hwgvvzlheknqmvjvoawnmldgcbcmhs
+xklbzxqderhzlnwvdlreptdhsfwysk
+aiwszweydoyiitxsweucepemwhqfil
+cogzldmvpebcunsqoprrqmthgfymxz
+baxohhiewwplyxlgxjvhirvvwigugg
+rvohlzdxiqkiteenphfdsjwygvlsjo
+juvzvphlyqjnvbbaclaxdjtuihhdlm
+wnrwgzerpusnmfurdriteqksbfgvrg
+azdwlopsrusbodjuycfdrbmchkdwaq
+uaptgwqmgskruyhoxrrcaznugvkpht
+lpzwimkadnibuggldnuaqpdqlgehgl
+agelgkvmtasqkhlqxchwbtjjkhrpuv
+lbejdjrfnddjklmpkrgtnnzccvwadz
+lcqqezdlgjvwinljcgwgkfpxbiwjuz
+mgiteqvqbnjqzunaleiisylypyaygy
+qwfoiekzcqnptzflgalqtxaihpbcpf
+ecbkpwfhqsdlwrhlacxjydssswragy
+uascefcldjssbggtsoxdnbgxcqoukp
+bnrjopwcckahsgezghjqwdvelxhevw
+ziqzqzuuwlniwqgqnhutpoyqwvduge
+fptegytacsfvdkkfubcqpngaumhlpl
+lebpfjyvejiiobtesaldffhdcqodfm
+pqsvksqpwrfrxiomyvjkucprxcpgvs
+lfnboiepeqvvntcxqeyuiribkfbxhh
+cwaiokffapyopljrwsqaqqjynkfbhd
+fvvnuvxnnsoskfkqpzoujzetrnijea
+hrotwbgpygnmxjyfpfzyowypdtkamt
+hlitbgrubuvmstsnpeiodmkkdwvrfu
+twczigciqwgdipfdpeobpkyyfyfpox
+oarsklpgzyyvqydyvgayhvdqnqeweb
+lpviokvocrdizetqovxefwvoyljycq
+mzouuluczntdnozwmunxyvsxoejzah
+gogtmzhicwpeowtbbhwxgrtxetyqed
+lzbbaoyfphvdvktecrptgpkirqlfzv
+nnrzlelylqcuoszmkuoopknkcmgsmc
+xyujjgshurlcaakolsikryrpkpomoj
+txyvhhpvdvhpcqbbrcsfxqwrhdaoek
+tzbachzgpkyuhijjepfbsmzaksagta
+tqxwgixfafdultfxkobjumtqvksidd
+zbgjchhasolgaoblxujrcnxavpasph
+syvtvagqgqibbaopiwktljswhvjkxg
+soxlfrtrxwjhmetccpbnyuyondvovs
+pzcemmjyobejsgemfbcrtdxdzbpizi
+wswgxjtgvaarkjpdnhuyeqapqxklbt
+qpmypooskenckfqkuvvdowthsqjsgg
+kyzvudabvnbmgfnnmucsofyoaghqky
+qkfdttaeunqvzbdgxtcqfonkogliga
+hcdfkaojbjofzjfrcolazcxdsblaqb
+tpbxnvbcouwrvsotgzxymtqhrlqvqk
+lkioyxkbfjihqrtysnoeqebhslfqew
+nddzzvehwhdwkdrruwlhfrtypgqdcy
+iywfakcitihioetljxmhazbqomnhwp
+xmqxepyjhrvpkiaunxunsrkxysvhup
+unrepacehbehwzkasktoiulvmyfkyo
+qofyhgwbdjygyvhpmylsvoaaikdlrt
+vbwvfzmzgyhepdpudoifufaipkihvd
+wegidlgdkhynwwgrwmcsqpwhknrbgz
+jvxuvzeugeysqmmllghyvvdzmcxodh
+eqndinoeevarriictdzraqcsfyequk
+terssxstmtulyprpgetahigtplgwjg
+zjblgggksnlgmtaccylkabrbqavvfl
+fzolittkyevhsmatgcryktoiqoosvy
+fikexkrmdktpklfnmttshfxauzweyn
+czcmegztddyvciwjidznrvwxnozntq
+bhtemcuhtbsjqxfqabektwupdbvnpq
+ukuoqcbixeayjjaculcolkaantnwit
+kvihpmiwosvdbdftnavecbklzuskxc
+bvbwjkyqzoxkqagaiuxvleippmsreh
+ieudxnrqqjzrpcxugebrjocyaxlhpo
+fvigzxunsqisslhyymmsdbmxzxwqpi
+zubrsvzktdhinsnhbtklqbpbrfritg
+htxfpnlmcpgceombmocsvqxelcioog
+ngobuwwbckqavraxknmalwadipmqba
+fznagfhyqdtvbidzxplvnkfrziacka
+rifymnxsowlspgamhgmiyewmejkqzo
+xqpsnituqnfsmzgfvhyjvwxjmzuscj
+mgbehuzofcotcwlqltpmttzcpmmmfe
+yewcvbcsqdatanumfxguqdzkfruxfo
+frkohmxhklyanixxvmbphehkmducug
+ksopkdskbxjvfixuxdqyrhwetbopvf
+jayxveqtjpxhwgzpdmojcwdankmrqy
+dazznoyjbffjdzqjajmzqvvqqtgsgy
+jcfbcymatsnjswnxwzhcadahcbmoxy
+ffayublkquhejzxbinzgkudruhhuye
+kugwudidlbvskrknkynefmdhtjrrlc
+bsnhzebfebibybroxtouppitppkfgz
+dctfqvymdykfnjsuduivrpslitfuyw
+eehefxwiplcyqzqkibxsqaqjzcwdsi
+svskakxmdfonmatydrixviyzdxfunf
+yubkrdsnhgfqjmhondmlnjriciiwyz
+fzustudopcvmpfkmzocwtnygncjoih
+pzygvemiukfgewmttkdlwldxkckpqi
+acjnykynrjgtdiiwdwrntlxwpfgrzh
+bprrymegehwkqtdxbusedtnjzfwjjc
+qzqjesnnpzvyehsohozgwbfqgjxprp
+vmnovugmnzzmswlmpejwlneabvkswc
+yfzuqmiljekjiexocfnwknxfhuvpoc
+vkzzglgwjwdlhcteenzqsbrbkemymd
+fyzpmnpcyepdmsbxnlytqaemhjoxqq
+nxsxjwgiiekbgvtzibetpabpckljyd
+xboilgfvfgjsrlsitqpxjbryeazxhf
+ipoymfeedvsgqrhtpgixfiegdxkmxh
+kaueqgeocmsookclxywxqfirtqnrsb
+ykmanxaduyzjxkqtderfijzgqozzcd
+yrosuxwugikyotwadtdghkntucrifo
+zarwneffxjbfbranersglaiyohllcx
+dpznzjrnyvplldkqfstwgbctsxmmal
+zsraokgzwifbycctzzblbvlzymtlrt
+vmfzkxubdsjtzkcqjxbvfimrefbxxt
+ujypozbyopdnefbzyadvnqyatzrulr
+jizpgypdmssxvpbqnsertosbpqzozy
+eafawayewmuaodrtlwslyabdbzbdyi
+gntsapgduiuejhhiwwccgunrxdrnvp
+xhiwjkxnymbwlqtxaktnnjfvohefmf
+duriuxugoezofxvrqwpirzajrkhoag
+lphntunahghzcjqjkgqyfshtvuggsb
+avhziuqonlhyfcpaznpafzastxivih
+yvtdjckurquyfznqojrnsnkhppcuis
+jhavtlqfpxwecszralzysxozqjxxcw
+ocglizdmpmixhufhpjyjufpxongtqm
+nthlqexufvkiikgyaucruxduvfzxbc
+lyngrewjapogqoegnvyiilcupwngqw
+nnlzmpfranonpcxvyllmpnrdagsgxl
+nifjfngwainfpthrzackpfpgoawvhd
+vpmbktqqplfbplbkolmjfpwqyjjxpx
+yhguzyjuhmtmlorruurlfhgkebrimb
+nghgkpnpuerfuzpkwhhauktbyhfige
+nrmxvzkuqjneneunemzimmvonudrfd
+tadntjlbarnqaauwfquqifoljhdsuy
+mufmpukhymjqhqjhxinurztuhmiqma
+rmvvpgriiwxznypgwnsdhtcahqyxvc
+cywftxtgyrtpafmphfzwyxnxoyrrcd
+coeqwfpfaospgouufhvvqgtjureyhc
+lgajtkzmdrryuqhljmwhstmrgzonxc
+qdfbwbtwfhlwdfzkyoiyjdntdotspc
+vxsdvcswwvmocjyjtlvtcxbydggknp
+bhtjxllkbvkjnvnptqwofzxfpfrbfy
+xvourixtflifrccpjvzncjfstylajt
+rpddlzkmmzfhfdtpsvkykhzpsyhpxe
+oimkpcjtmkdajpmjnjrlotmjyayjdc
+ooqhjglixlirpljvzhqkawphkucpnb
+lxmlopddimglsltocuyolmonhamqpc
+aunsdfseoxhemldhclupxbxhitefso
+yxgsmegrgsjrvyrluwrmzduopiufqa
+ekqgxhlmnjbdcllurmrrpeknxeufmf
+hlhjvyqklumxexmfaqflmbzhexohcf
+ievvvrjhomytzsoklzlxbiqclenyck
+gotymhriiczhawuifioxzstkyucatu
+yfqbnxoybvhqqovvgmsgusrirdleky
+gvnyrfikuhkxotbajkgbphdggkgmjh
+icypwplfadclpkxgpucwmpnkedfzsh
+xykbabxgtobktvslbonemhidcommry
+ueflvskruqdrlmrcnglxckxjximuhe
+iuryjxmnyhxwcxeupvidjgofjhdezt
+znzzznngronfcsawwnufcvdzcglhyu
+yeujoiokeqedqzfwfsrmfyzmjjcngo
+xhxzfesocdckolwgfswafibgcmneww
+oytpalhqmlxgzqtxkdwglygqlzvbdi
+aqrrtmytwzxctlzniznppfjbuqtaxg
+gnqeazackorlpmmlzbodqblpsyytda
+lobklieyrehmezjuwqrykomwgzxpok
+ydrzgrqymapawtukcpggolhlltoxni
+dssyvmunwqyvwjvkrakouyhzhrpagm
+djfeojwvyzjyjcvtgjcjzxztgybcmo
+jqdhubscqjrtavjzvlifmegckptzdv
+fsyoqxzbgahwjikiezuqhpncephact
+xaqndtqezkaggmjtmknydymjknjdqt
+jtfegzhgiggrzaadcjdbdsngerojiy
+xdnasmlhuvoueioykbqvfhfpbnvbvy
+rczdmzmnnnlfjdofnnhkgwqiaxwbdm
+znmvfupltzzoojaovpigjyhsasfwdp
+nwbrnjaoaklypochkaryhqcztkbrac
+tpwahrnsozagmylzrmpziifhsunyaf
+oaoccfmqckvxcstkxuaadnwpumqvve
+uuateoorbckxkicbwlgxricawrkmst
+efgqojmhfqeughfnscbewkksanuzdp
+xetmgjjdvlpcssefbnfljbvvevaeko
+vgzkudbipmftylqdpfyqcbkyolslra
+gvmafqsylnshfkbldavqgpsyiatldi
+gaxfcbvyftkihnsvvzmpjjixiyjbzg
+hbeyvvazjqnjdgnzefrnsdovfwjmgv
+hwwbqpupviasanpfqcwytdfnithoix
+vhlmmqnoowslxlgdqgtvnihsufdwjt
+nrktglwznhikrengcqpboxqmtktxds
+eqclwskullfqajwceqltkneiffwqzf
+liiuwtjcqnvmbuuaocebtsxbjycihl
+vuoakuwlqzoscegkcjdpavowyqmtgl
+jlduxuntlnfhkxpcqsbyyjxbusmpor
+rjedytnhqokwwqbaebasqijjdvpzbw
+fhenrxnlpvbihbxxllezftblnyakuy
+ljxfvhbbcbrgaftcnbzfbisrwhxoot
+kdmlrzevahqmvetlketbniqnixfvix
+vluztzacikzduyeihrijoepuoiwxfe
+enlljianklsngzqmbbmxirbixdvijp
+vhowaeztepjrptpxsyfekzvisqllmb
+vvitatgttiwmqrbhfskydnikmuxwqm
+ilhfsximcqxcosvseefkagdgddrojd
+sbwtsuazbayxukvngjazkdygkmiuny
+uwymsmesamhvshtuxhjrbiovtfuvhl
+akbvjmtoggfihdpydumfwaarokwets
+jdrprwnnuabmslvsxjnmqlzzerhuvt
+onwexjpguafpkltbzecevhxtqftrmd
+xavtowfbnuvphnquwppqplflnvsfig
+hwwzpvmmprhtzxeoslbxcayjomxpkc
+lmbvrhoqryadojtiezjhfxwqpazkkm
+jlviapnernhoqntoudteftuyqaqgsy
+yidwotvlipecdwriryqleollmfjttd
+jkfiqelhrckecemyogouygbaxvsdde
+ksgdzvvdyujdokgzrtdiehhzjtkuib
+lywzxahqbjtxrgwmzgndkdvwetdxzl
+fuzizgezbohjfpvkfwdzjgjeiszzlm
+spmkkbjmspzewgoxkoheapksujpdxg
+hnlbcgyhfwrxsvlhyaecohsxygneik
+rlyochopcgmljiuqecicvihphhqbvh
+khjgukhixoiqbzlqnaqengvvectzhh
+xcigqxhkaskbsrulydhgygofmelfit
+aqczzuvpefrnisizndtgcbuxxlyccl
+ohjcwylpulylfuixxdasmwrdsdcppv
+vtpkuglrwnbgprttepticmuafksiod
+qcsypxtkhrtkdcgnmwtczicnupfwcx
+ycvgwvzvtmrlfsumtccfzzxjmpkckf
+abukxagmxqrlbpbwnuciepyplrlkco
+qywmzvqeoadanaiklqwyuhxkkjtrzv
+qwbedjiagqlyvvrsuuphaxxzigqdbx
+xxgqascxvoosvmvxpqhbgfjdibpduv
+pngqflkyunepfhhxqmqrocmdshhogr
+asbrzvclluwjjaalzsquzcebmekppd
+jvgmfhczrmyiqnonsxsheskhvxbwop
+tubnjgjbxotwxmiexsmiwgqtrldxlq
+plhezixoghjlkjvoqdqdaqrvwvgfte
+osafmpbvtadcfbljxqejutvnyrqngn
+dsgdqdlhiprgbevfcyoijjeanjfghs
+xtexxqylhwsurxrvcbkxtvseruhcmf
+vkorpdiuisabjtsawaphwuwnqzptxp
+osrubfdylgwcadrscoazyervpwgwjg
+ztnubeaizozhrkbfgovqjboilpagvh
+szqbxlxoocymmlbwrhkbrmdposnlzx
+onqakvttdtqavxlplmsduxrcfbwocd
+bpipsvdupgkakiwfomsxtaagmtnddn
+unawjxesnovmlgamprskqbkiimlyoh
+erwevtyudbmdthstnfkkmcoiaavyim
+aasaiomygwvfrznelsuipfjkslrjca
+fiewlrnbfpncnohyojblkemufuyfnj
+axdatwcvszmfvnkckufvvhsjwuonqp
+sgysgovoasefqudxcntfkvlzgbvunv
+alvcndjmoyypvkvkzfhnvlvnuggygc
+fttklgatehmuothzosacpjvdpfbwzg
+igudystqufcrnghrcwyhwfboypvfiq
+prrrgornkqnmrvierpsrxhplamdxab
+kbhkndkhyzylkeuyuqyzqepredaprt
+agagslkkivlmodbdxbyiuzrtmixdgj
+zjmnezqpogfkguhypqweytfplmtjip
+ztiiypppfcjxtkueytlyfcfalyjcqv
+mqowfqmqtlylpjaaanqcmevxmobjcj
+lvhrkkvgnfpbeglnoxvqniiwbfgwkh
+acnfqjpkquqgesrqzezaoxnadlsqmx
+dwirbeluitfpilelbrnhsbthvywbtw
+eznpidamnwjthaazzjihfwpevzccrz
+btmpyohubxzjemcidrzdmeunrledvq
+vdjuxajlezjqclrvzkrminbvztnavz
+gkrgpimoiwhpmayymyvhfttujvbcih
+gzgyzltfikbrrbvadvstnipbbeypnm
+irtficklmxrmwdhohbltxkpzokvrwc
+xeuzqzuiwsibzvniztttjmunxbiotc
+zfwrfkqcvpdrsmnlsupzgtqmifqjcd
+npewhwcdhwpyqahqffanlvfrndxayx
+hzwrsscfajghtdzbgnfpweaenbfpee
+jwexcgltsnmfxyssuthfikexnouhek
+peqkheeqocdpueavwaondliwrtqmkz
+hfjuifqgmgngankztorgrvnxzxqtxn
+dioyavlhgjbwfuocrjvvdfflwmwhzi
+lndhzkzywzpxhursyrjetwwpnxtsyn
+moacwsnshtummyegnuncprfqbalcyx
+oxwxdhzwtlpqncrbjmxpmtpygliieh
+senmfcujjcfspoynyjxbrucykkkzwk
+znalucysukxgwqqqttifrtiybofnpu
+tnxkdmqpjfwpukrtwrvixlaocshozw
+vlungdjsaypwiotzawtanmepzxvkeu
+xmvzxvntgndbkgdrywajlorxvtrutz
+tylpbfoxoenxtqkmsnuugiiqwweqgm
+dswzstmgyxfrtsgtufmxygdmfjqkri
+qfhkjgofaiskxibvarqngpopeiofcb
+tkfqthnfjnvlrxaixqikojffhvsuvq
+hhorqbbolmywsyygwfoosbaddrpmsl
+kmxllftfsawblrcteonxtdpqqstypj
+xujupetrrwlvtihnhcnvnmutjdvqoo
+kaqvpdptxboxeiiakusjmkcfpqwaiz
+jfabuukbehwofnldwylbyvmsaljjvp
+tyzgyrkuczyhbkoslncbeulqwhwycn
+oqdswlemunpkuagkomtgabbnaczono
+lnhanmznnddzdxmtgifexrrclunkqw
+mikyajxjqscwswjuoihofdmrydcgby
+fluijbhujpfnhorxbabqtetixuafxh
+tyzlmtbzeungcesdeaucqieqdqieju
+ccajjixdwkahnwqehdzqhleigvyenz
+zcrzfjbyjqqnnyndwuotghnpyztkvy
+cyplkksxqqfduqgahqlmlcsjtetmmx
+ukjbkjtfklkpbshfiuuubpzkxmlaxc
+nwaaitgcafvdagmdbtuwikoncqumjq
+eurggztfchinxigzjcamwpgixmznmi
+dcrvdjwaymyhjdpognobpnjbgzsvch
+uuzaopbjqofloxoncjbonceidtywtl
+onmporlpyneykvhmunkjmvbeburvrv
+prwnbdmjuxtjkfxbinlavumowljtty
+fgwqfskoyofsayllwkhmmnictmmnwd
+lozxbocnvellqwrccptsrgctwweeza
+giufqanzfizzdldfdzhbksibziqfuv
+mzztfenftmsnquvqpqfoojvuyefbmy
+hvbkmoxkjozysglfbvhpotoknbrqax
+lwmmsakzsssyeliubwmtzgtpuspmql
+qysjjytpozrxekarzkqvctccwowidh
+vfsldphdnljkqidswujkqjlcknfmpz
+hzjrnkyhgyxceklxtqfkgsnwxssrrf
+riemvntjhipwuaixeiuocfglwahiuw
+fvucuxyyabuikmgrlcjeepsdvzfyvs
+ycjrjeynugkliaendjgopajfguimie
+ytygomnlfhnpayumjwogxzhdqpliwa