From 028be47d41bc4396c39f7121925cfd51b805c54e Mon Sep 17 00:00:00 2001 From: Daniel Bulant Date: Sat, 2 Dec 2023 10:46:52 +0100 Subject: [PATCH] first commit --- 2021/.gitignore | 1 + 2021/25/Cargo.lock | 7 + 2021/25/Cargo.toml | 8 + 2021/25/input | 137 + 2021/25/src/main.rs | 120 + 2021/25/testinput | 9 + 2022/.gitignore | 1 + 2022/.vscode/settings.json | 4 + 2022/1/README.md | 36 + 2022/1/input | 2243 +++++++++++++++ 2022/1/part1.ts | 24 + 2022/1/part2.ts | 22 + 2022/2/input.txt | 2500 +++++++++++++++++ 2022/2/part1.ts | 39 + 2022/2/part2.ts | 75 + 2022/2/testinput.txt | 3 + 2022/3/input | 300 ++ 2022/3/part1.ts | 17 + 2022/3/part2.ts | 17 + 2022/3/testinput | 6 + 2022/4/input | 1000 +++++++ 2022/4/part1.ts | 18 + 2022/4/part2.ts | 18 + 2022/4/testinput | 6 + 2022/5/input | 512 ++++ 2022/5/part1.ts | 39 + 2022/5/part2.ts | 39 + 2022/5/testinput | 9 + 2022/6/input | 1 + 2022/6/part1.ts | 9 + 2022/6/part2.ts | 9 + 2022/6/testinput | 1 + 2022/7/input | 1045 +++++++ 2022/7/part1.ts | 69 + 2022/7/part2.ts | 74 + 2022/7/rust/.idea/.gitignore | 8 + 2022/7/rust/.idea/misc.xml | 6 + 2022/7/rust/.idea/modules.xml | 8 + 2022/7/rust/.idea/rust.iml | 11 + 2022/7/rust/.idea/vcs.xml | 6 + 2022/7/rust/Cargo.lock | 7 + 2022/7/rust/Cargo.toml | 8 + 2022/7/rust/input | 1045 +++++++ 2022/7/rust/src/main.rs | 107 + 2022/7/rust/testinput | 23 + 2022/7/testinput | 23 + 2022/8/input | 99 + 2022/8/part1.ts | 40 + 2022/8/part2.ts | 43 + 2022/8/testinput | 5 + 2022/README.md | 7 + 2023/1/Cargo.lock | 7 + 2023/1/Cargo.toml | 8 + 2023/1/README.md | 26 + 2023/1/input1 | 4 + 2023/1/input2 | 1000 +++++++ 2023/1/input3 | 7 + 2023/1/part1.py | 4 + 2023/1/part2.py | 6 + 2023/1/src/main.rs | 73 + 2023/1/target/.rustc_info.json | 1 + 2023/1/target/CACHEDIR.TAG | 3 + 2023/1/target/debug/.cargo-lock | 0 .../first-1b5225e4dcac8745/bin-first | 1 + .../first-1b5225e4dcac8745/bin-first.json | 1 + .../first-1b5225e4dcac8745/dep-bin-first | Bin 0 -> 24 bytes .../first-1b5225e4dcac8745/invoked.timestamp | 1 + .../first-1b5225e4dcac8745/output-bin-first | 2 + .../first-5644decaa7aef8c9/dep-test-bin-first | Bin 0 -> 24 bytes .../first-5644decaa7aef8c9/invoked.timestamp | 1 + .../output-test-bin-first | 2 + .../first-5644decaa7aef8c9/test-bin-first | 1 + .../test-bin-first.json | 1 + .../first-c1729aca58c1b71a/bin-first | 1 + .../first-c1729aca58c1b71a/bin-first.json | 1 + .../first-c1729aca58c1b71a/dep-bin-first | Bin 0 -> 24 bytes .../first-c1729aca58c1b71a/invoked.timestamp | 1 + .../first-c1729aca58c1b71a/output-bin-first | 4 + .../first-e53bd6844cb209ab/dep-test-bin-first | Bin 0 -> 24 bytes .../first-e53bd6844cb209ab/invoked.timestamp | 1 + .../output-test-bin-first | 2 + .../first-e53bd6844cb209ab/test-bin-first | 1 + .../test-bin-first.json | 1 + .../target/debug/deps/first-1b5225e4dcac8745 | Bin 0 -> 5087192 bytes .../debug/deps/first-1b5225e4dcac8745.d | 5 + .../debug/deps/first-5644decaa7aef8c9.d | 5 + ...a7aef8c9.long-type-7079413460925348245.txt | 1 + .../debug/deps/first-c1729aca58c1b71a.d | 5 + ...8c1b71a.long-type-15978156886238021590.txt | 1 + .../target/debug/deps/first-e53bd6844cb209ab | Bin 0 -> 7983000 bytes .../debug/deps/first-e53bd6844cb209ab.d | 5 + .../deps/libfirst-5644decaa7aef8c9.rmeta | 0 .../deps/libfirst-c1729aca58c1b71a.rmeta | 0 2023/1/target/debug/first | Bin 0 -> 5087192 bytes 2023/1/target/debug/first.d | 1 + .../dep-graph.bin | Bin 0 -> 356702 bytes .../query-cache.bin | Bin 0 -> 46095 bytes .../work-products.bin | Bin 0 -> 37 bytes .../s-gr3y62es94-1e3odzr.lock | 0 .../129u38f76zxhnjfz.o | Bin 0 -> 4728 bytes .../135lr8djlukz0zc2.o | Bin 0 -> 14544 bytes .../14whpjoclwngwzs1.o | Bin 0 -> 45920 bytes .../1h1mxm8bp5wb2u2x.o | Bin 0 -> 16560 bytes .../1l7u060wrmvc9n7w.o | Bin 0 -> 8520 bytes .../1oiktokvy60o99o1.o | Bin 0 -> 7768 bytes .../1syjlk4zoeyscns2.o | Bin 0 -> 3912 bytes .../1xu58zj4jvw0v591.o | Bin 0 -> 63208 bytes .../242u5wiqls9sq6o5.o | Bin 0 -> 9800 bytes .../2mv7z43m0xhsb32p.o | Bin 0 -> 3824 bytes .../2okgjgh6rh1w4k2i.o | Bin 0 -> 12496 bytes .../2qbz5jzj7cz09aam.o | Bin 0 -> 11264 bytes .../2sil92bs69dc5uzn.o | Bin 0 -> 36056 bytes .../2tfxtceehss9e3wm.o | Bin 0 -> 4768 bytes .../35sc8qiqyygdzmdc.o | Bin 0 -> 8288 bytes .../367ga8g2ffxq3upe.o | Bin 0 -> 17824 bytes .../3d75c3me8zowt0z7.o | Bin 0 -> 40784 bytes .../3gea66auah6sl2pe.o | Bin 0 -> 28240 bytes .../3gytugsyyldsvv4.o | Bin 0 -> 8560 bytes .../416riqlz9f8rukh8.o | Bin 0 -> 8192 bytes .../44snt284vfdxdgp1.o | Bin 0 -> 25672 bytes .../47gfpe1nth8p54i4.o | Bin 0 -> 92896 bytes .../4acs4djuoro1tjja.o | Bin 0 -> 6856 bytes .../4bgva7pxgcao6oor.o | Bin 0 -> 48752 bytes .../4bn6efu76q5xp75f.o | Bin 0 -> 69032 bytes .../4ea6fwcfa9mrxr3c.o | Bin 0 -> 6200 bytes .../4eakk2aa3dh4p2g0.o | Bin 0 -> 12128 bytes .../4g1cx4ya9cds9mzu.o | Bin 0 -> 4456 bytes .../4k8ei1tuogtaytxo.o | Bin 0 -> 40008 bytes .../4p4jincrxhlvahdi.o | Bin 0 -> 4688 bytes .../4sckjq8lg56og2jx.o | Bin 0 -> 11936 bytes .../4sh5sdivvfnepyaf.o | Bin 0 -> 15664 bytes .../4ui3wuhiw92paz6m.o | Bin 0 -> 18920 bytes .../53jiczjb1jm6yb0v.o | Bin 0 -> 20592 bytes .../5c2rqihlpmxcn44g.o | Bin 0 -> 5328 bytes .../dep-graph.bin | Bin 0 -> 927184 bytes .../f3pe4tyhzknzooq.o | Bin 0 -> 11792 bytes .../ko7xcc7xcrz3mti.o | Bin 0 -> 4592 bytes .../mfacl6s3465xh54.o | Bin 0 -> 15456 bytes .../mlgumejfi1gbhjo.o | Bin 0 -> 11088 bytes .../nbab762un8w5c43.o | Bin 0 -> 17880 bytes .../o7anj9vpvjqeqf7.o | Bin 0 -> 24160 bytes .../os4gv9krxutmw9u.o | Bin 0 -> 20736 bytes .../oywim8w9vcmyl72.o | Bin 0 -> 11272 bytes .../query-cache.bin | Bin 0 -> 211092 bytes .../v11ci2wipyy1wqv.o | Bin 0 -> 25888 bytes .../work-products.bin | Bin 0 -> 2625 bytes .../z0f1cc4zodjgt3h.o | Bin 0 -> 6728 bytes .../s-gr3o5nicf9-j7a45j.lock | 0 .../dep-graph.bin | Bin 0 -> 263374 bytes .../query-cache.bin | Bin 0 -> 27491 bytes .../work-products.bin | Bin 0 -> 37 bytes .../s-gr3y62es94-g6b4od.lock | 0 .../19kt34aqg7rc6x0a.o | Bin 0 -> 7216 bytes .../1af4hi94j2ksfx9r.o | Bin 0 -> 11936 bytes .../1bsh9fadg5ogwsmb.o | Bin 0 -> 22840 bytes .../1i93uttbxqbbcx87.o | Bin 0 -> 25896 bytes .../1iirvjsgpyrc8zcz.o | Bin 0 -> 48112 bytes .../1jwybqsjfkpnon6t.o | Bin 0 -> 11608 bytes .../1l1v0s6zyjipn2xa.o | Bin 0 -> 25672 bytes .../1nveoldq8817gegx.o | Bin 0 -> 126536 bytes .../1nvx0s61zr88re41.o | Bin 0 -> 36056 bytes .../1ob2obnxoxffap4a.o | Bin 0 -> 14824 bytes .../1ucrbevrl06btyc8.o | Bin 0 -> 11088 bytes .../1un8i7kxqo2imflv.o | Bin 0 -> 9800 bytes .../207nnkh1k7uwaop6.o | Bin 0 -> 11936 bytes .../25bl0zhvxpm6j1jd.o | Bin 0 -> 17904 bytes .../272wmchrfme9e62o.o | Bin 0 -> 29480 bytes .../286x94n0yglljb0z.o | Bin 0 -> 12512 bytes .../2iz1ls5v7sp771kb.o | Bin 0 -> 43272 bytes .../2sk4u53qgigh9ist.o | Bin 0 -> 10608 bytes .../2uyvn1sz67c46gz3.o | Bin 0 -> 11264 bytes .../2ycu5qscn91v9zwk.o | Bin 0 -> 4688 bytes .../2z9pkza0pw3yp9hm.o | Bin 0 -> 8384 bytes .../3570o3pynn8tclo7.o | Bin 0 -> 15424 bytes .../3berucg519q4h1cu.o | Bin 0 -> 6856 bytes .../3c8dnfrhdez44lp.o | Bin 0 -> 17880 bytes .../3d7d4rfd4vozc9zl.o | Bin 0 -> 6200 bytes .../3e7nzo512tewbmc0.o | Bin 0 -> 127728 bytes .../3g5dcgexh17vfg8e.o | Bin 0 -> 90944 bytes .../3hkldihz1abzqkz5.o | Bin 0 -> 9616 bytes .../3ie8w7xq2efxsl66.o | Bin 0 -> 10016 bytes .../3iubcwz6l0oehirz.o | Bin 0 -> 3912 bytes .../3jrbbwcfqui9jmfx.o | Bin 0 -> 72328 bytes .../3o43rkqcke0f17j2.o | Bin 0 -> 21696 bytes .../3s48wvzr603uwgc8.o | Bin 0 -> 45920 bytes .../45lxpl2dvhli3jm.o | Bin 0 -> 81952 bytes .../45sb9g78r4de0ds5.o | Bin 0 -> 16560 bytes .../49lxhgxagkri2v35.o | Bin 0 -> 11872 bytes .../4elu27h3jvh6m3t.o | Bin 0 -> 4928 bytes .../4hl1baxkf7mpgrnf.o | Bin 0 -> 14264 bytes .../4hzu1ic01rtmtqqi.o | Bin 0 -> 18088 bytes .../4m5cgpkcedxrr2sc.o | Bin 0 -> 4768 bytes .../4tpseh9lnar62lf9.o | Bin 0 -> 8568 bytes .../4trvxw16aacuqw1h.o | Bin 0 -> 8288 bytes .../51cug1ztjwgd7hqw.o | Bin 0 -> 8520 bytes .../53qqnt1upt7dsrpc.o | Bin 0 -> 3824 bytes .../5aeg489d537joc7b.o | Bin 0 -> 119536 bytes .../5dngs5yomaz7v1jo.o | Bin 0 -> 11440 bytes .../5gmddq7y4dmce17e.o | Bin 0 -> 17824 bytes .../8clqj5qgsm8dpo0.o | Bin 0 -> 10448 bytes .../b9gyvqlw8kqpagq.o | Bin 0 -> 6728 bytes .../dep-graph.bin | Bin 0 -> 1404564 bytes .../execjfsug7891r7.o | Bin 0 -> 12496 bytes .../ix9zg6awbeuowty.o | Bin 0 -> 4728 bytes .../jnq7k8ickpjnaty.o | Bin 0 -> 24008 bytes .../kb5e43w15cazik1.o | Bin 0 -> 7760 bytes .../kndhcv609ytka87.o | Bin 0 -> 9992 bytes .../pooev51iegdqb6p.o | Bin 0 -> 40008 bytes .../query-cache.bin | Bin 0 -> 404289 bytes .../tvu2rwuk5rzs1v2.o | Bin 0 -> 20592 bytes .../work-products.bin | Bin 0 -> 3373 bytes .../wtrmnchd5u1pkj0.o | Bin 0 -> 4592 bytes .../y5qn3mj2e89d2v5.o | Bin 0 -> 11792 bytes .../s-gr3y63er2s-pebosi.lock | 0 2023/2/.vscode/settings.json | 7 + 2023/2/README.md | 51 + 2023/2/input1 | 5 + 2023/2/input2 | 100 + 2023/2/part1.py | 13 + 2023/2/part2.py | 16 + 220 files changed, 11240 insertions(+) create mode 100644 2021/.gitignore create mode 100644 2021/25/Cargo.lock create mode 100644 2021/25/Cargo.toml create mode 100644 2021/25/input create mode 100644 2021/25/src/main.rs create mode 100644 2021/25/testinput create mode 100644 2022/.gitignore create mode 100644 2022/.vscode/settings.json create mode 100644 2022/1/README.md create mode 100644 2022/1/input create mode 100644 2022/1/part1.ts create mode 100644 2022/1/part2.ts create mode 100644 2022/2/input.txt create mode 100644 2022/2/part1.ts create mode 100644 2022/2/part2.ts create mode 100644 2022/2/testinput.txt create mode 100644 2022/3/input create mode 100644 2022/3/part1.ts create mode 100644 2022/3/part2.ts create mode 100644 2022/3/testinput create mode 100644 2022/4/input create mode 100644 2022/4/part1.ts create mode 100644 2022/4/part2.ts create mode 100644 2022/4/testinput create mode 100644 2022/5/input create mode 100644 2022/5/part1.ts create mode 100644 2022/5/part2.ts create mode 100644 2022/5/testinput create mode 100644 2022/6/input create mode 100644 2022/6/part1.ts create mode 100644 2022/6/part2.ts create mode 100644 2022/6/testinput create mode 100644 2022/7/input create mode 100644 2022/7/part1.ts create mode 100644 2022/7/part2.ts create mode 100644 2022/7/rust/.idea/.gitignore create mode 100644 2022/7/rust/.idea/misc.xml create mode 100644 2022/7/rust/.idea/modules.xml create mode 100644 2022/7/rust/.idea/rust.iml create mode 100644 2022/7/rust/.idea/vcs.xml create mode 100644 2022/7/rust/Cargo.lock create mode 100644 2022/7/rust/Cargo.toml create mode 100644 2022/7/rust/input create mode 100644 2022/7/rust/src/main.rs create mode 100644 2022/7/rust/testinput create mode 100644 2022/7/testinput create mode 100644 2022/8/input create mode 100644 2022/8/part1.ts create mode 100644 2022/8/part2.ts create mode 100644 2022/8/testinput create mode 100644 2022/README.md create mode 100644 2023/1/Cargo.lock create mode 100644 2023/1/Cargo.toml create mode 100644 2023/1/README.md create mode 100644 2023/1/input1 create mode 100644 2023/1/input2 create mode 100644 2023/1/input3 create mode 100644 2023/1/part1.py create mode 100644 2023/1/part2.py create mode 100644 2023/1/src/main.rs create mode 100644 2023/1/target/.rustc_info.json create mode 100644 2023/1/target/CACHEDIR.TAG create mode 100644 2023/1/target/debug/.cargo-lock create mode 100644 2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/bin-first create mode 100644 2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/bin-first.json create mode 100644 2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/dep-bin-first create mode 100644 2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/invoked.timestamp create mode 100644 2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/output-bin-first create mode 100644 2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/dep-test-bin-first create mode 100644 2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/invoked.timestamp create mode 100644 2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/output-test-bin-first create mode 100644 2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/test-bin-first create mode 100644 2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/test-bin-first.json create mode 100644 2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/bin-first create mode 100644 2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/bin-first.json create mode 100644 2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/dep-bin-first create mode 100644 2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/invoked.timestamp create mode 100644 2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/output-bin-first create mode 100644 2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/dep-test-bin-first create mode 100644 2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/invoked.timestamp create mode 100644 2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/output-test-bin-first create mode 100644 2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/test-bin-first create mode 100644 2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/test-bin-first.json create mode 100755 2023/1/target/debug/deps/first-1b5225e4dcac8745 create mode 100644 2023/1/target/debug/deps/first-1b5225e4dcac8745.d create mode 100644 2023/1/target/debug/deps/first-5644decaa7aef8c9.d create mode 100644 2023/1/target/debug/deps/first-5644decaa7aef8c9.long-type-7079413460925348245.txt create mode 100644 2023/1/target/debug/deps/first-c1729aca58c1b71a.d create mode 100644 2023/1/target/debug/deps/first-c1729aca58c1b71a.long-type-15978156886238021590.txt create mode 100755 2023/1/target/debug/deps/first-e53bd6844cb209ab create mode 100644 2023/1/target/debug/deps/first-e53bd6844cb209ab.d create mode 100644 2023/1/target/debug/deps/libfirst-5644decaa7aef8c9.rmeta create mode 100644 2023/1/target/debug/deps/libfirst-c1729aca58c1b71a.rmeta create mode 100755 2023/1/target/debug/first create mode 100644 2023/1/target/debug/first.d create mode 100644 2023/1/target/debug/incremental/first-1tpbhrug0loy2/s-gr3y62es94-1e3odzr-24yrrijl8b02g8bv2ov8cgw0z/dep-graph.bin create mode 100644 2023/1/target/debug/incremental/first-1tpbhrug0loy2/s-gr3y62es94-1e3odzr-24yrrijl8b02g8bv2ov8cgw0z/query-cache.bin create mode 100644 2023/1/target/debug/incremental/first-1tpbhrug0loy2/s-gr3y62es94-1e3odzr-24yrrijl8b02g8bv2ov8cgw0z/work-products.bin create mode 100644 2023/1/target/debug/incremental/first-1tpbhrug0loy2/s-gr3y62es94-1e3odzr.lock create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/129u38f76zxhnjfz.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/135lr8djlukz0zc2.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/14whpjoclwngwzs1.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/1h1mxm8bp5wb2u2x.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/1l7u060wrmvc9n7w.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/1oiktokvy60o99o1.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/1syjlk4zoeyscns2.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/1xu58zj4jvw0v591.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/242u5wiqls9sq6o5.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/2mv7z43m0xhsb32p.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/2okgjgh6rh1w4k2i.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/2qbz5jzj7cz09aam.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/2sil92bs69dc5uzn.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/2tfxtceehss9e3wm.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/35sc8qiqyygdzmdc.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/367ga8g2ffxq3upe.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/3d75c3me8zowt0z7.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/3gea66auah6sl2pe.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/3gytugsyyldsvv4.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/416riqlz9f8rukh8.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/44snt284vfdxdgp1.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/47gfpe1nth8p54i4.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4acs4djuoro1tjja.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4bgva7pxgcao6oor.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4bn6efu76q5xp75f.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4ea6fwcfa9mrxr3c.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4eakk2aa3dh4p2g0.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4g1cx4ya9cds9mzu.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4k8ei1tuogtaytxo.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4p4jincrxhlvahdi.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4sckjq8lg56og2jx.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4sh5sdivvfnepyaf.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4ui3wuhiw92paz6m.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/53jiczjb1jm6yb0v.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/5c2rqihlpmxcn44g.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/dep-graph.bin create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/f3pe4tyhzknzooq.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/ko7xcc7xcrz3mti.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/mfacl6s3465xh54.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/mlgumejfi1gbhjo.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/nbab762un8w5c43.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/o7anj9vpvjqeqf7.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/os4gv9krxutmw9u.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/oywim8w9vcmyl72.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/query-cache.bin create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/v11ci2wipyy1wqv.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/work-products.bin create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/z0f1cc4zodjgt3h.o create mode 100644 2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j.lock create mode 100644 2023/1/target/debug/incremental/first-25nqeubmwa2es/s-gr3y62es94-g6b4od-4yygx8fim84rtd6jt1ghuhq4m/dep-graph.bin create mode 100644 2023/1/target/debug/incremental/first-25nqeubmwa2es/s-gr3y62es94-g6b4od-4yygx8fim84rtd6jt1ghuhq4m/query-cache.bin create mode 100644 2023/1/target/debug/incremental/first-25nqeubmwa2es/s-gr3y62es94-g6b4od-4yygx8fim84rtd6jt1ghuhq4m/work-products.bin create mode 100644 2023/1/target/debug/incremental/first-25nqeubmwa2es/s-gr3y62es94-g6b4od.lock create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/19kt34aqg7rc6x0a.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1af4hi94j2ksfx9r.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1bsh9fadg5ogwsmb.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1i93uttbxqbbcx87.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1iirvjsgpyrc8zcz.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1jwybqsjfkpnon6t.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1l1v0s6zyjipn2xa.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1nveoldq8817gegx.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1nvx0s61zr88re41.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1ob2obnxoxffap4a.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1ucrbevrl06btyc8.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1un8i7kxqo2imflv.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/207nnkh1k7uwaop6.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/25bl0zhvxpm6j1jd.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/272wmchrfme9e62o.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/286x94n0yglljb0z.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/2iz1ls5v7sp771kb.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/2sk4u53qgigh9ist.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/2uyvn1sz67c46gz3.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/2ycu5qscn91v9zwk.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/2z9pkza0pw3yp9hm.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3570o3pynn8tclo7.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3berucg519q4h1cu.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3c8dnfrhdez44lp.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3d7d4rfd4vozc9zl.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3e7nzo512tewbmc0.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3g5dcgexh17vfg8e.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3hkldihz1abzqkz5.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3ie8w7xq2efxsl66.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3iubcwz6l0oehirz.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3jrbbwcfqui9jmfx.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3o43rkqcke0f17j2.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3s48wvzr603uwgc8.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/45lxpl2dvhli3jm.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/45sb9g78r4de0ds5.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/49lxhgxagkri2v35.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/4elu27h3jvh6m3t.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/4hl1baxkf7mpgrnf.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/4hzu1ic01rtmtqqi.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/4m5cgpkcedxrr2sc.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/4tpseh9lnar62lf9.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/4trvxw16aacuqw1h.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/51cug1ztjwgd7hqw.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/53qqnt1upt7dsrpc.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/5aeg489d537joc7b.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/5dngs5yomaz7v1jo.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/5gmddq7y4dmce17e.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/8clqj5qgsm8dpo0.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/b9gyvqlw8kqpagq.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/dep-graph.bin create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/execjfsug7891r7.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/ix9zg6awbeuowty.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/jnq7k8ickpjnaty.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/kb5e43w15cazik1.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/kndhcv609ytka87.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/pooev51iegdqb6p.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/query-cache.bin create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/tvu2rwuk5rzs1v2.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/work-products.bin create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/wtrmnchd5u1pkj0.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/y5qn3mj2e89d2v5.o create mode 100644 2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi.lock create mode 100644 2023/2/.vscode/settings.json create mode 100644 2023/2/README.md create mode 100644 2023/2/input1 create mode 100644 2023/2/input2 create mode 100644 2023/2/part1.py create mode 100644 2023/2/part2.py diff --git a/2021/.gitignore b/2021/.gitignore new file mode 100644 index 0000000..1de5659 --- /dev/null +++ b/2021/.gitignore @@ -0,0 +1 @@ +target \ No newline at end of file diff --git a/2021/25/Cargo.lock b/2021/25/Cargo.lock new file mode 100644 index 0000000..9ae2c51 --- /dev/null +++ b/2021/25/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "twofive" +version = "0.1.0" diff --git a/2021/25/Cargo.toml b/2021/25/Cargo.toml new file mode 100644 index 0000000..060e256 --- /dev/null +++ b/2021/25/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "twofive" +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/2021/25/input b/2021/25/input new file mode 100644 index 0000000..a5c0ad5 --- /dev/null +++ b/2021/25/input @@ -0,0 +1,137 @@ +>.v>.v...v..v>>.>.>...vvv>>.v.>.v>>vv..>......v>.......v.>>..vvvv.>..>>.>.>vv...vv>..........>..v...>v...v.vv..>v>.v.v>>v.>vv.v.>.vvv.>v.>. +v.v>>..>v>>.>>v...>>v>v>..>v.>.......v.>..v>>..>>.>.>....>.>>vvv..>...>>>...>v>...>>.vvv...vv..v.v..v.>..v>v...>..>.v.>.>>v>v>vv.v........v +....>.>vv>.v>>.>>>v.v>vv>>..v..v>..>..v......>....v.>vv>....v>>.vvvv.>.>..>.vvv...vvv.v>...>>......v>>.v.>v>.>v>..v...>>.>.vvvv.v.v.vv.v.>> +...>..v.v.....>vv..vv.vv.....>.v.>v.v.>>..>v.vv.v.>>v.>.>..>>>>.>vvvv>.v.v..>..vvv.......v.>.>v>vv>>.v.vvv..>>>>>v>.....>v...v>.vvv.>v...v. +..>.vv.v.v>v.v..v.v...v>v>v.>.v.v>v>.>>..>>v.>..>.>.......v>v..>...>.>.v..>v..v>vv>..>>>....vv.v....>.>..v.v..vv.>.>.v>>v..>>......vv.>.>v> +.>.>.>.>>>>v..>.>.v>vvv.>v>..>v>vv.>v>.v...vv.>...>.v>.>>v.>v.>>.v>.>..v..>v>>...>.>.v>..>.v>>vvv.v.v>v>.>..vv....>.vv..>>v.v..vv..v.>.v>.. +>..>.>v>>v>>>>....v....>vv......v>.v.vvvvv.>..>v...>>v....>>v>>>>>.>>.......v..v>...>.>.v.v.vv....>>>v.>..v.>vv>...>v.>v>v.v..>.vv.>..>..>. +v.v>>>.vv..v.v.>v>v>>>......v>.v.>v..>..>>>.v..v>.>..v...v.vv.....v.v>>.v..>..>.....v>....>>v.vv>.......>.>v....>>......v>.>.>.v.>.>>..v... +>.v>..>>>..>..vv.vv>.>.>.>>vv.>v>>v.v>..>...v.>..>..........v..v.vv.>..>..>.v..v...vv..v>>>.>v....>..>>....>>>..v.>....>..v..>...>>.v.>>.>v +>.>..v.vvv..vvv>.v..>v>>v>>.>.>..vv..vv>>v....>.v.>vv>...>..v....v..v..v..>v>.....>>vv.v.v>.>>...v.>..>vv....>.v.v.>>...>..>>.>>>>>>>.v>>v. +v.v>>..vv>.v.v........>.v.v....>.v.vvv.>v>..>....vv.v.vv>.>v>v....vv.>v.v..>v.v>>...>>vv..>.v.>v.>v....v...v>vv>.>.v..>.v.....vvv>>..>...>. +.v>v.v>..>v....v.>v>...vv>v..vv.v.>>...v....v>>.v>v>>>.vv>>.vvv..v...v>....v..>..>vv>>v..v.v.>>>>>.vv..vv...>..vvvvv.v.v>v>>..>v.v.v>..>>v. +..v.vv>..v.v.>>..>v>.....>>.>v..>.>v.v.>vv>>>vv.>.v.>v>vv>>v...v>vv>>.>v>v..>.v>v>>..v>..v..v>v.vv.v>>.>v>>..>>vv.v>..v>v>>.v.v..>.>.v..vv. +>>.vv>....>v.>v.>..>....v.>..v>>..>....vv..>.v>.>>..>.v....v.>v>v....v.>>.v..vv.vv.>..vv>.vv.vv>v.v>v.>..v..>.v>v...v...vvv>....vv>..v>.>.. +.v.v>>>v.....v...v..v...v.>.v...>>.vv.>>..v>..>v.v..v..v.v>.>>...>>....>..v>.>v.v.v..v.>>vv..v.>...>>vvv>v.vv.v.v..v.>.v.v>...>>......v..>> +v.>..vvv.v>>v.v>>...v..vv.v.>.>v..v..>v.>v.>>v..v..>..v..>..>v>v.....v.v>.>v.v.>>>.vv.v.>>..>..v..>v>>....v.vv>>v>>v>v.>v..>>>v>..v.vvv.>.. +...>..>>.v....v>>..>.>v...v>>>..>....vv.v.>>...>...vv.vvv.v...>..v..>..v>.v>v.vvv>>v.>.vv...vvv>.>vv.>.v.vv...>.vv.>>>>>......>v>v..v...... +>...>...v.vv.>v.>>>v>>..v.v.v>>..>>>..>v.>>.>v.v.>v.>.......>.>>>...v..>>..>..>.>>.v.v>>vv.v>.v.....>>...>....>>......v>......>v>.>...>>.v. +...v>v>..>...v>v.>>>vvv.v..v.vv>.v>..v>.v.v..vv.>v>.v.vv.>...>v..>...v...>v.v..v....>v>>..v...>..>...>...>>.v.v>.>..>.vvvv..>>>v.vv.>v.v>v. +.>...>>....v...>>v>v>v.v......v.vv...>.vv.v.>..vv>.v..>..>.....vvv.v..v.>...vv.>>>vvvv.>v>vvv...v>.v.>v.>.v>>.v.v>vv.>..vv>.v>v>>>v.v...>v> +..v..>v>.v..v..v>v.>v.v.>v>...>>v..v......v.>>>>.v.>.v.>v>v..>>>vv..>...>.....vvvv..>..>.>>>...>>>v>v..>...v.>....>.>...>.>v...>..........> +>.....v.>..>.>>......>vv..v>...v...>>..>.v>>v....v>>...v>......v..v...>...>.>v.>.vv.>....>...v..>>>..>.>...v...vv.v..vv..>...>....>.......> +v.>...>v....>..>>v.vv>.>>>..>vv..v..>>....vv...v..v.v..v>..>>>.>.v.>.v.v>..vv..>>.v.......v>.v.vv..>>v>>.....vv.>>..v>.>>v>...>vv>v>>v..>>v +v>.v>.vv>>.>..v..>....v...v...vv>......v.v>v.>...v.vv>..>v.v>v>.v.>>..>>.>.vv>v.v.>.....>.v.>..v>.....vv.>>..vvv..vv.v..v>...>..>..>vv.>..v +v>.....>v>>.>vv.vv.>>v..vv.>vv>v.vvv..v.v.>...v..>>v>.>vvvv.v...v.>.vvvv.>.v.v...v.>....>vv>..v..v..>....v.>.....vv.>.v.>.>.vv>vv..vv>v>>>. +>vv..vv.>>.vv....v>>vv.v....v>>v.>>.>...vvvv..>.>v..v.v.v.......v.....>>>v..>.v>v>>v.>....vv>>.>v....vvvv.>>...>.v.v>...>>..vv>....v..>>v.. +....>...v>vvvv...v...>v.v...v.v...v>v>...vv....>>..vv.>....>>.vv.>.v>.>>v..vv>.v.>.>.>>.>.....v...v...v..v...>.vv.v....>.>v>.>.vv>>.vv.>>.. +.vv>.>...v>...>v>.vv>.....>.....v.>.>.>.>.vv...>v.>.v>.vv.v.>....v..v.>.v>.>v>v...v>.v..v.v....>.v.....vv..>vv.vv.>..>>...>.>..>.....>..v.. +v..v..>.vvv>.v.>vv.....>v.v...v.>.v.v>v.vvv.....v.>.....vv>...>>...v>>.>>..vvv>..v>>..>.>v>.v>v..v.>...>>v>v>.v.v..v..>v..>>.>..>.....v...> +v.v.v..>>>....>.>>>v>>.v...>...v.>.vv>>..v.>..>>>...v..>v>..>>.>..v....>vvv...v>v>>>..>..>v>.>>>..vvvvvv.>vv.v...>.>v..v.>v....v.>..>.v.... +>>>>..v>v.....>.....>.v..v...>>....>...v..v...v>v.v>>....v...v>.vv>..>vvv.v..>vv.v...>......>v>>v..>...>....>........vvv>>.vv..>>.v..>>v.v> +>v...>v>>>...v>.......v>v.vv...v.vv..>v.>.>vv>>vv...>vvv>...>.v>.>..>..>...vv.>>..v..>.v..v.v>v>>..>...v>v.>.>v....vvv...>v>...v.v..>..v.>v +>.v.v..>..v.>.>.v.>..v..v.vv........>>vvv>.>v.v..>v.>..v.>..v>>....v..vvv>v..v>>>v>>...>.>>v>vv>....>v...>.>.vvv..>..v.vv.>....>..v..>.>>v. +>...>v..v.......v..v..>v...vv.vv....v>vvv>...>>.....>>vv.v.v...>.>.vv>>>.>..>>>..>..>.>v.......>vvvv.>.>vv.v>..>v.>.v..>.v...v>v>.>.v>...>> +vvv.>>.>v>....v>.>.>>v.vv...v.>>>>.vv>v>.>vv..v.>...v>>.v>..v.>v>..vv.>>vv.....v.>v>.>....v>....>vv.v.>v....v.v>>.>.v..v..v>.>>..>.....vv.v +>>v.>>>...vv.vvv>>.>v>>v.>....v.>.>>v>..>.vvv..>v>.>.>>.vv..v.v>>v.>.v>v>>.v>.......>v>.>>>.....v...>...v>..>..v>vv..vv.>.v..>vv>..>vvv.v.. +>v...>v..v.v>>.....>....v>v..v>v.>..>.....>>..v>.>v.>.>.v>.>.v....>v...>.v.v.>vv.v.v.v..v>..v>v>..vv.v>...vv.v.vvvv>.>...>v...........>.... +.vv.>v.v.>>>>v..v.vvv>...v..>>.>v.>>v>>>.>v>.>.v.>...>..v>>>.....>v.v..v>.v..>.>.v>..v.v...v.>....v..vv.>>..>.vv>.v..v..>...>.>..>>vvv.v>>v +.v.v>v.v.v.vvvv..>...v.vv.>vv..v>vv>>>..v>.v.vvvv..v>.>....>...>vvv>>>.v.>v>v.vv..vvv.v.v>.v.......>...>vv>v..>...>>...>.>v>>v..v.>....vvv> +v>.v........vv>.v.....>.v...>.>..v>.........>.>.v>>....>>.>>..>..v.vv>>v...v..>v.v...v.v.vv.vv.....v>.v>>v.v>v>>>....>v>>>>v>v..v.>vv.vv.>. +>vvv....>...vv.>>..v>>>.>>v....>...>.>vv..v>v.v.>>.v>.vv.>v>>.>v>....v.vv.v...v>.v.v>..>...>.>v>...v.....>v.>.v>....>.>.>.v.v>v.......vvvv. +v..vvv...>>.v....vv.>.vv.v..v.vvv.>>>>..>>..>.....>v...vv.>.v.>vv...v>..>v...v....v>vv.>.>v..........>v...v>v..v>v..>.....v>.v>..>v......v> +vv.>.>vv>v..>v>.vv...>.vv..>.v.>>>.>....v>v>>>>..v>....>vv..vv.>.v>.v.>...>.v.v>v>v>v.>..>v......v.vv>..>.>..>..>.v>vvvv.>...vv.>.>vvvv>>>> +>..v...>v.vv.>>vv>>.>.>....v>...>v...>....>..v.....v.v.>>>>.>.>.>>.>.>..vv.>>vv..>...>>>.v....v.>>.vv..v>.>>>.>v..vv..>>>.>vv>>.....>vv.>.. +>.>>..vv>.>v.>>v...>..v>...>..>.>v>>v.v.....>.>..>.>v.v>.....vv>v>v..>v......>v..vv...>>>>>..v...>....>....>v.v>..>v.>.>.>.v.vvv..>>.v>v.>. +>....v>>v>...>v.vv>>v..>>..v....>vv.v.v>.......>v.v.v.>>.v>vv>>..v..>...>.>......>>..>>.>....vv.>.v>>....v.>...vv.v>.>.vv.......vvvv......v +.>..vv.....v....>>...v>.v.>>.vv..>.v...v.>>v>>>>vvvv....v....v.vv..v.vvv>>..>...>v.....>....>....v>v...>..>>..>..v.v.v...>>>.v.vv.v...v.... +..v.vv>.v>.v....>.v..>>>>v>.>vv>.....>v..>....v.>.v...>.v>>.>..v>v>...v>....>>.v..v...v.....>v.>...vv>>.>..v>.vv>v>v>...>>..vv.>..>.v.>.>.. +..>vv>.vv.v>v>v>.vv..>>>>..>>..>v>v>vv>.>.v>v.>>vv.>..>.vv.....>..>>.v.>..>.v.>.....v.v.vv.vvv..vv....>....v>.v...v>.>>v..v...vv.>...>.>.>. +.>>>....>vvv......v>...>v.>vv.v.>>vv>.....v.v.....v.>.>.>..>>.>vvv..vv>.>>...v>..v>.>vv>>......>>.v>..vv..v..>v>v>.>.>.>>..v..v....vv.>.v.v +.>.v..>.....v>v>>.>.>.>>>v>v..>....v....>>vvv.>>...vv>>v.v..v.>.>.>v.>..>>>v...>vv>.v>.vvvv..>.>.vv>.v..>.v..>..vv..>>>..v>>.>..>.vv>v.>v.. +..>v>>.v.>.v>>v>v..v.vvv.v..>>>v.vv.....v.v.>.vv>.>vv.v>.vvv..v.>.v.>v.vv..v>.>.v.vv>>...vv.>v.>.>.vv.>v.vvv....vv.....>...v>..v.>v.>v..vv. +>.vv>.v>...v.vvv...vv.v>.vv>.v>vv>>v>>>>....>..v..v...v>v.>..v..vvvv>>v..v>v.v..>.>v...>...>v>>v.v.v>.....>v.v..>..vv>...>>.>...v.v..v..... +..>vvv.v>.>>v...v.>>v.>vv..v...v.>.v>.>v.v...>>...>.>>.v....v>v....>.>.vv>>.v>v.v.v.v..v....v.>vv>...>..v>>....>v..v.>v.>>.>.>.>.v.vv..v.>v +..>.......vv>v...>.>.>........v..>.>..v..v..v.>>.>>.v..v.>.>.>.v..>...>v.>v..>..>.v>>.v.v..>..vv.v>.>..v.>v>...>..vvv.v.v.vv.vv>>.v>>..>... +v..>v....v.v>.>.>v..>v...>>.>.v>>>>v.v>>vvvvvvv.v.>vv.v...>v>.>..vv..v..v....v......>>v..v..>v...>.vvv.>...>v....>.v.v..>..>...v.>...v.vv>v +>....v>.vv.....>>v.>>>>>.>.v..>.>v......>>>.>>...vvv......>.>>....v.>v.>..v>>>vv.>..>v>>....>.vv.>...v...v.v..>vv.>..v...v>.>v>.>>.>>.....> +>.vv.v>.....v..>v...>..v....>>...v>......>>v>vv>...v.v....v>v.vv.v.v>...v...>....v....vv..v.>...>.>.>>>......vv...>v>vv.v...>v.v>..>..v...> +vv>.v.....v>.vv>>..>..>.>....>>.>.>v...>>vvv...v..>>.v..v..>>v.v..v>>.>.v..vvvv.>vv>>.>....v.>..v>...v>v..>>v.vv>.>..vvv...>>.v...v..>..v.. +>>v....>>.....vvv...v>v.....v...>>>>...v>...>>>>v...v.v.v.>...>vv.........v..v>>v.v>v>.>>>>>.>vv...>..v.vv.v>..>.>.v.....>>v..>v>v.>v.>v>.v +..>......v.....>vvv>....>>v>v....v>.>v.>v..>vv.vvv...vv..v.v.v.>...v.v>v.>>>....vv..>v...v.....vvv..v>.vv>v...v>.v.vvvv....>.>v.>v.>vv>vv.. +>v...v.>....>.>.v...>>v>..>..>..vv..>.>>vv.v>.>>..>.v.....>>.>>v.v.>vv>v>.....vv.>>v..v>...v>v...>...>.v>..>>v>.>>vv>v>.>.v.vv.>>>.>v.v..>> +>.v>>.v.v>v>.>>..v>>.v>.v>v.v>....vv.vv..v..>...v.v>>..>vvvvv>.>.v..>>>..v..>>..v...v...>v.>.v.vv>.v>..>..>>.>.>.v.v..>v>.v.v>>v.vvv...>.v. +....>.>...>vv.vv..v...v.>>>...>vvv>>.>.v.....vv>vv.>v.........v>v..v..vv.>..v>v.>v....v.>..>.....v..v>>>.....>.>>>vvv...vv>.v..v..vv>.>..vv +v..vvv.>.>>....>v..v..v..v>>...v...v.>.v.>>.v..vv..>vvv..v....v...>.>>vvv>..>v.v.vv.vv.>.>.>vv..v>>>v.v.>......>.......v.v.v>.>v.....v.>v.. +v.vv.v.>>.>v.>vv>..>.v.>>v>.>v>.>.>v>.>.v>>.v..>........v.v..v..>>.v..>...v.v.>v>...>v.>.vv..>>.>v....v.>..v..v...vv..>>v..v>>vvv..v.v...>> +>v..v>>v.>.>v..>v>..v...>...>v.v.>>..>v>.v>.>..v......v...v>>.>..v..v..v.>>....>>>>....>>....>.v>v.v>.v..>.>v>.>.v.v...v>...vv>>>..vvv>.v.> +...>...vvv>>..>>.>vvv.....vv..v.v>.v..>>.v>>>vv>>v>>..v.>..>v>>v.>v.>.v>>vv>vvvv>.vv.>>.v....>..vv>....>>.>v>..v.>..v>......vv.v>v>.v>..>.. +.v>..v>>..v.vv.v..v>.>.v..v.v..vv.......>.>...>.>..>v.vvv...v..vvvvv.>>.v....v.>v.vvv>v>.>.>..v.vvv..>..>>v..>....>....>v.>...v...vv..>v>v. +vv.v>...v>>.....>v>v...vv>.>.>>.vv..v...v.>.>..>.v.v>>.>..>v...>.v..>.v>.v...>...>.>vv..>vv....>.>.>.>>.>.>>>>.v..>.vv...>>v..>vvv..>.>v>.. +>..>v>.>v.>vv.>vv.v.v>.>.v..v..>v>>.>..>..>.v>.v.v.v>>..>....>>.>>>v.v....v.>>>...>v>v.>.>.v.vv.>>.vv>..>.v........>v>v.>..>.>.>>v.>..>.v>v +..v>>>>v.>vvv>...v..>.......>.v.>vv>v....>.>>>..vv.>..>>v>>v>.v>...v.>...v.v>v.....>v>.vv.>>>v>..vv.....vvv..v.>.>.v..>.>.v.>..v>......>.>. +>.v..>.>..v>vv.v..vv..vvv>>vvvv..>v>v>v>v...v.v>>>>v.>>v.>v..>vv..v...>v.>v..>vvv.vvv..v...vv...>.>>v.v.....v..v.>.vvvv>v..>v.>.v.......v.. +v.v.v.v.v>.>.>v.>.v>>vv.v.v>.>.v>>..v>>>....vv.>...>...v.vv>.>...v..vvvvvv.v..v.>.v>v>v..vvv........>..>>...>..vv>v.......v>>v..v....v>.v.v +v..>>.>..>...>.v>vv...>......v>.>..>v....>v....vv..v.>>.>.>>.......>v..v.>>.v.v>..>.v..>v..>.>.vv>.vvvv>.v>.v>v.>>v.v>v>vvv...v....v>v>.>>. +.>>.>v.v>..>.>v........v>.v.v.v>.........>v>.>>v..>vvvv.>v.>>..v...>.vv>..>....>.vv.vvv.>>>..>>.v>v.v>.>.v>....vv...>v>>.....v.>..v.>.>>>v. +>v>>.v>.v>v...v..v..v>>...>.>>>..>..>...vv.>v>>>.v....>>.......v..v...>.v..v..v.>vvv.......>vv>v.....v..>>v..>.>vv>>..v>.v..>..>.v..v.vv>.> +v...v>v.v.>>.vv.>>...>...vv>....v.v>..>>..>>>...>>.>..v>v.>v..>..>.v....>.>..>.....>.vvv.v..>...v..v>v..>.v....v>.vv>v.v>.v.>.....v....>..> +v....v>.v..v>v>.v>vv.>.>v>.......>......v>.v.>..v.>...>...v...v.v.>...v>>v>.v.>v.>>...v>v.v.v>...v>v.vv.>v..>>>.>v>.>v.v.v...>.vv..>..>.vv. +v....>.v>..v>.v>.>..>..>.>vvv>>.v...v..>vv..>......vv.v..>>...>>.>>..>v...vv..>.v>.>v>v.>.>>...>.v.v.>..v>>>..>.vvvv>..v.>...v.>.>..v>.v... +>.vv>.v.>v....vv>.>>.v>>v....v.>v..v..>>>..vv..>.>>>.>>.>v.>>.v>>..>.>>...>.....>.>v..>.......v..vv..>>v.>>...vv>>.v.v>....v.v>>.>>..v>v.v. +>v...>>.....v.vv..v>.vv..>.....>....v.v>..>>...>..v..>>.v>>.v>v.v.vv.v>....v....>>.v>....>>vv......>>.v>..>.vv.>..v.v>.v>.vv.>...>>.....>vv +v>v...>.>.>....v.vvv.>vv>.>.>..>>v....>v.......v...>v.v.v...>v>.>.....>v....>.v..v.v.....>.vvvv.v.vv>.v>>...>...>..v>>>>...v>>.v..>v..v>... +..>>v>>vv..>.>>.>...v>>>vvv>v..vv.>...vv..vvvvvv.>>..>v..>.>>>.v.v.vv..v.v.>.......v>.vv...v>.v......vv>v.>v.v>.>>>v...>>vv>.>.>....v..>v>> +..>v.v..v>..v.>vv>vv..>.v.>v....>....v..v>>v>.>.vv....>v..v>..v..v>.v>.>>>>>.....>>.....>>>v.>>.v>..>>vv..>>>v.v.vv..>>..vv...>>.>>...>v... +..>v....v.>v.v.v>.>>v.v>...>>v.v>...v.v...>vv.>>..>>......v.>>vv...>.>....>v>.v...v....>.>.vvv.>>>v..>>vv.vv..>v.....>>....v>>v>.....>....> +v........>v..>.>vv....v.v>>.v>.>>v>.vv..>...>..>v.vvvv.v.>....>.v>>.>v>>>.v.>.>.....v.v>v.v>v.v.>v>..>v>>v..vv>>>..v..v>>.>v...v>...v..>>v. +.>..>>.v.>v......>.vv>v>.v.>.v.v..>>..vv...v..v.>>.v>.v>.....v.>..>.v.>v>.>..>v.v...vvv..v..>.>.v>vv>.v>....v>.>v..v>v>>>.vv.....v...>v>>v. +.....v>..v>>>v.v..>>vv.v..v>.>...v..>.v.>>>v.>.v>.v>v>.>>..v.....v..v>vv.>>...v.v.v.vvv>>>>..>vv..v>....>...>>.>....v>.>>..>>....vv>.vvvv.v +.vvv..>.v>vv>>>.>.v>..>>.>..>.vv.>....>.v..v>vv...vvv..vvvv.>.v.v.>>vv>..>>........>>..v...>.vv...>v>.v.>v.v.>..>.v>>>>.....>.....v>.>..>.> +.vv.>>vv.v...v.v...>v>>>>v..v...>>......vv.vv...>v..vvv.vv.v...v.v>....>v.v.v.>....>...v..>v...>v>....v...>....>.>>.>..>>v>.v>v....>..vv.v. +v>.v.>v...vv.>.v.>.....>.v.vv.>>.>....>..v.v.v..v>v.v>vv.>>.>v>.>....v.>.>.>v..>.vv..vv....>.v.>..>vv.vv>>v>...>v>>>v>...>v.>v>.v>.v>.v>v.. +..>>>.vv.v..>.>..>....>...>>>.>..>>>v..>..v...v>v>.>.vv....v.v......v.>.>>>.v.v..vv.v..>.>..>>.>>...>.>>..v.vv..v>.>vv..v>.>vv.>..>.>..>... +..>.>...vvv.v.v..>.v.>>v.>v>>....>..>.>.v>>vv>.>>.v...>...vv>>>vv.v...>.vv..v..vv>..>v..>.>.>.>.>v>>.>..vvv>.>v....>v....v>>>............v. +v.vv.>..>vv...v.......>......>>>v.v>.....>.v>>.v.>..........>>.v.>.>..v>.v.v...>..v>.>>>>v>..v>v.>.>...>.>....vvv.....vv.v..>.......v>v>.>> +.>.vvv.>.>vvv...>>.>v.v...vv.v.v>...v..v>>v.v..v.>>vvv...v>>>.v...>..>v..v>>v.>v.>.v.v..v>v.>...vvv..>v......vv>>>>.>>.....v.>>>v.vv.>..v.> +.vv...>>>..vv..vvv....v>v.v>v>v.vv.>>vv.>vvv>..>...vvv...v.>.>...>...>........v.v>.v>>...v>...>>.>v.>...>.vvv>...v>..v...v.>v>>..>>..v.>v>. +.....>>.v....v..v>vv.>..v...>vvv>..>....v>..>.>..>v.>v....v>v...v...v..>...>>v.>>.vv..v..>.v..>.v.v>v>vv.>.>vvvv...>.v.v.v....>>v..vv.>>.>. +....v>.v>v>.>.>.v>.>...v>...v>>>...>>.>v>.....>>.>..vv..v..>>..>.>v.........>v....v..v.v>...>....>v.>v>>....v..v..>>v.>....>....>v.>..>.vv> +.>>.v.>.v.v.v...>vvv>..v.v>v..>v..>v...>....vvvv.v>>v.>>v...>..v.vvv..>..>>v..v...>v>>vv.>>..vv..v..v>...v...v....v...v....>vv>>.vvvv>.v... +..vv..vvvv.vv...>.v>>.>v>>>>>.v.>..>.>.v.vv>>.>>....vvv>.>>.v.>.v.vv>v>v.>....>v.......>.>.>.vv..v.v>v.v...>..v.>..v>...v>v>>>......v>..>v. +>.>>.v.v.>v>v.v>.>vv..>>.vv.>>vv>....>.v.....v.>v..>>>.>.>..v>.>v...v...v.>..>.v>v>..vv>..v.....v.>.v>.>>....v...>.v.....v>vv.....>>>v.v>.v +.v>.....v...>.>...v>v.v..v.>v.v.>>v>.vvv>.>.v.vv.>v>v>v>v>>.vv..>>v.vv>.v>>.>vv..v>..vv.vvv.vvvv>.>.v.>.>.>vv>.>...v>.v>v...vv>v..v>v..>... +...>..v.......>v.v.v>v.....vvv...v..>>vvv>.>...>..>.v.v.>>.v.v.>.v..vvv..vv>v>v..>..v.>..>v.>.>...v>.vv.>>.>v.>..v>v>....>.>.vv..v>....vv.. +.vvvv.v.>.v..>.v.>v.v>>..vv...>>v.>>.>.>.>v.v.v.v>v....v..>v....>>.>v>v.....>.>..vv....>.vv...vvvv.vv.vv...vvv.>.v>v.>.v>..v.v>vv.>..>..... +>..v.v..>.>>.v>..>...>.>>.>>.>..>.>....>v.v>.>.v.....v>.v>.vv.v>...vv.>.vvv>>v>.>.v..>.>.v>v>.>..v..>.>......>>.......vv.>..>.v>vvvv..>vv.> +v....v.vv...>.v.v..>>.>....v>>........vv.>.>>...>.>...v..>.v>..>..>>v>....v.v..>..>v.vv.>.>>.v.>>.>vv>>.>v>.v>>>.v....>....>...v>>..v..v.v. +v.v.v...>>v...>>>.v.vv.vv.vv>>>.v.>...>>v.......>v.>vvv.>>.vv.......vv...v>..v>.>>.v..v>...>.v..vv.v>..>v...v.vv>.>>.v..>.v.>.>..>>.vv>...> +v..>vv.>v>.>v.>.>>>vvv>..v.>>>v>.>v....v.>v>.vvv>..v>....v..>>..v..vv.>...v.>.v......v.>.>.....vvv..>vv>.>...>.vv>....>>..v>..v.v..>>v..>v. +.....v.>>vv.v>>.>vv>.>..>...v>>..v>....>.v.>.>...v>..vv>v>..>..>.>......vv>.>.vv>.....v>...vv..>..>v.v.>.>.vv>.vv.vv>.vv.v>>>..>....>.>.>v. +.>v..v.vv..v.v.>v..>.v>>v>v.vvv>>...vvv.....vv..>.v>...>>>.v....v>>.>v>.v.vv>....>>>>..v.>.>.v.....v>>v..v....>..v....v>...>>v.>v>v...v.v.. +.>v.....v..>.v..>...v..v.>vv.vv.>.>v.>...>...v>...v.v.>..>v..>..>v.v..>.v.v>v.>.v..v......>...v.vvv.v>>v.>.v.vv..>>v..v>>.v.>>.v.v>>>....vv +...vv.>v.>..v>>..v.>.>vv.vv...>.....>v>.....v..v..v.v.>>..vv.>v.>..v........v.v..>>v.>v.v..>...>v.v..vv>v.v.v>..v>.....v.v.>.v....>>>v>>..v +...>v.v.>...vv>.v.v.....v..v....>>..v.>v>vv>>.......>v..v.vv..>.>>>vv>v>>>.v....vvvvv.v..v>.v.>v>v>>..v..vv..v.vv>>v..>.>..>....>..>.>>.v>. +>>..>>...>..v>vv.>>>...vvvv....vv.v>.vv.>.v.vv>>..vv..>..>>>..>>..vv>>.>vv>>.>.>..>vv.>.>v..>>.>.v>....vv>v>..vvv.vv.>v.>v>>....vv.vvv...v> +..>>v>..>>.v>vv>....>..>>.v>vvv.vv..>.v>v..v.>>.vvv>.>.>v...>v.vvv.>.v.>v>v.>..>.v>>.>.>v..v..>v>>v>.v.>.>.v.>...vv...v.......vv.....>.v.>. +>..vv>>v...v>v.>vv>.v....v.vvv.>......>v.v>.vv>..>>>v....>>>.>...v>>>....>...v..>..v>vv..v>v...>vv>.v..v..v>.>.>.>..vv>>v..v>....>>..vv..>. +.>.>v>vvv.v..v.>v.>...v>.>v..>vv.>..v.>v>.v...v>.>>vv..........v>.v.vvv.>>>..v>vv.>>>v>..v....v..>..v.>>..>.>.v>v.v>.v>.v...v.>>.v....vv... +....>>.v..>.......>.v.v>>>vv>>..>v>v...>.v..v>.vv.v>>vvv....>vv>v>..vvv.>>>.v..>>.v.>.....>vv>>....v>vv>v..>.>...>.>>v......>..>v..v....vv. +.vv..>.>..>..v>...>v.vv.>..>v.>..v>v..vv>>>..vv..>vvv.....>...vv>.........v..>..v..>>.>>v.v...>>v>v>..v>>.v>.v..>v.vv>vvv>>>..v>.vv..>>.v.> +.>vv.v.v..>.>...>..>v>..>...v.>...>vvv.>....v...>..vv...v>...>vv>v.v..>v..>v.>...v.v>v.>.v>v>>>v>..vv..v.>>v>.v>..v...>v>>..>.v.v.>>..>.v.v +...v>..v.v..v>vv.....>..>..>>......v.v.>v.....>v.v...vv.v.>v>>>.....vv.>>v>>......v..v>v..vv>>v....v..>..>v>>>.v..>.>...v...vv>vv>v...>.v>. +v.>>v.vvv.vv.vv.>.>.v.v>v.v>..v>v.>>>..>v>.v....>v....>>.>>..v.vv...v.v....>.>..>........vv.v.>..>>.v.v>...v>v...vv.v>>.>v>>.>>vv>.v..>v>vv +v.>v.>v>.vvv.>v..>..>>>...v.>.v...v.>>.>..>>.v.>v..>.vv.>....>>vv>....>..>>vv>>....>v>.v..>.v>.>...v..v..>v>>>..v...>...>.>v>.>v.>.>.>.>.vv +vvv.>>v>>v>.>..v>v>..v>v.>>v.v...v..v.>vv...vv.>.v>>>vv>.v.>v..v>>.>>vv..v....>.>v.>>v.>.>....>>.>.v.vv>.vvv..v...>..vv..v......>vv.>>>v>.. +.>.>.vvv....>v>>.>.v.vv.v>>.>>...>v>..v.>v.>>>>v.v>v.>v...>>>>>...v....>..>v.>>>.......>...>v.>vv.>.v.vv..>>......v.>..>...>.>v.>v>..v.vv>. +..v>..>vv.>v>>..v.>.v....v>.v>>v.v...>vv....v..>.>....>.>v.v.v.v>..>.>.>.v.>>.v..v.>>v.vv>>>v>.v..v...v.v>vv>>vvvv>.>...>v.v.v..>>>.v>>.v.v +.>...v>v>>..v.>>.>v.vv>.vvv>.v....v>..v.>.vv..>.>>.>.>v>...v.>v>..vv>.vvvv>.>....>..vv>.v.v..>v..v>...>...vvv.v>>>>>>..>.>.>...>..vv.>.v..v +v...>..>.>vv..>.>v..v.>>.v>>>.v>>...>.....vvv.v.>v..>..v..v...vvv.vv>..v>.>.vv>v...vv>>>v...v.>v....v.v..>..>vv.>v>vv.vv>>>..>v.>vvv.>v.>.. +>v...v...>>.v.>.>>.v>>.vvv>>v>vv..>>..v>>.>..>.>v>>>v...v..>.>v..>....vv..>>.>>......>v>>>..v..v..>>>.>....>......v..>>v>>.>>...vv.v.>vv>v. +>.....v.....>v>.>.....>v.v.>.v>vv..>.>>....vv>..>v..v>.v...>.v.>v>v.>vvv..v>>v..>..v>>.>...>.>>.>..>.vv>>.vv..>>v>>.>.v.v.v.>vvv>v>>v>vv.v> +v.>..>v.v>v.......>v......v...v>.vv..v>...>.>.....v.>..>.>....>...v.v>v.v.....>....vvv>..>v.v.>vvv.v.v.v>>>..>v>.>.v>..v.v>.>vv.>.>.v.vvv.v +v...>.vv>.v..>.v>.....>>vv>.v..>>>v.>>..>.....>v...>>..v.>.vv.>..>..>v.>>>>>vvv....vv.>v..v>..>.v>..v.>...>v..v.>..>v.>.vv.>vv....>>v.vvv>. +>..>>...>.>.vv>..>v>..v..v>.v.>.>vv.>v>.>>..vv.>..vv.v>vv>v>.vv..>>>..>v...>.>v>v>>>.........>>>...vv.>.....v.vv>.>.vv>.....v.v..>...v.vv.. +v..>>..vv..v..>...>>.>>>..>..>.>v..>..>.>.vv.>>...>.>.>v>.>..>>.vv.>..>.vvv>>....>>>>....>v.>>>>.>>..v.v.>vv..>..v..>.vv>v....>vvvvv>v....> +v...v.>v>.v...>>v.>.v>>.v.v...v.>..>..>>>...v.......v>>>>>.>.v.v..>...v.>v>v.v....v....vv>vv.>.>v>vv...v..vv.v.>>v..>.v.v.v...vv..v.>v>.>v. +.>v>.vv.v.>.>.>>v.>>...v.vvv.v>...>>.>>.>.v...v....>..vvv.>....v.vv.>..v...>>..>...vv.>.>v>v..>>>.v.....>.....vv.v..>.>>>v.vv>vv.>......>.> diff --git a/2021/25/src/main.rs b/2021/25/src/main.rs new file mode 100644 index 0000000..be24a57 --- /dev/null +++ b/2021/25/src/main.rs @@ -0,0 +1,120 @@ +use std::fmt::{Formatter, Display}; + + +#[derive(Debug, PartialEq, Clone)] +enum Place { + Empty, + East, + South +} + +impl Display for Place { + fn fmt(&self, f: &mut Formatter) -> std::fmt::Result { + match self { + Place::Empty => write!(f, "."), + Place::East => write!(f, ">"), + Place::South => write!(f, "v") + } + } +} + +impl Place { + fn from_char(c: char) -> Place { + match c { + '.' => Place::Empty, + '>' => Place::East, + 'v' => Place::South, + _ => panic!("Unknown char: {}", c) + } + } +} + +struct Board(Vec>); + +impl Board { + fn push(&mut self, row: Vec) { + self.0.push(row); + } + + fn tick(&mut self) -> bool { + let mut moved = false; + let mut new_board = self.0.clone(); + for (y, row) in self.0.iter().enumerate() { + for (x, place) in row.iter().enumerate() { + match place { + Place::Empty => (), + Place::East => { + if x + 1 < row.len() && self.0[y][x + 1] == Place::Empty { + new_board[y][x + 1] = Place::East; + new_board[y][x] = Place::Empty; + moved = true; + } else if x + 1 == row.len() && self.0[y][0] == Place::Empty { + new_board[y][0] = Place::East; + new_board[y][x] = Place::Empty; + moved = true; + } + }, + Place::South => () + } + } + } + self.0 = new_board; + new_board = self.0.clone(); + for (y, row) in self.0.iter().enumerate() { + for (x, place) in row.iter().enumerate() { + match place { + Place::Empty => (), + Place::East => (), + Place::South => { + if y + 1 < self.0.len() && self.0[y + 1][x] == Place::Empty { + new_board[y + 1][x] = Place::South; + new_board[y][x] = Place::Empty; + moved = true; + } else if y + 1 == self.0.len() && self.0[0][x] == Place::Empty { + new_board[0][x] = Place::South; + new_board[y][x] = Place::Empty; + moved = true; + } + } + } + } + } + self.0 = new_board; + moved + } +} + +impl Display for Board { + fn fmt(&self, f: &mut Formatter) -> std::fmt::Result { + for row in &self.0 { + for place in row { + write!(f, "{}", place)?; + } + writeln!(f)?; + } + Ok(()) + } +} + +fn main() { + let input = std::fs::read_to_string("input").unwrap(); + let mut places = Board(Vec::new()); + let lines = input.lines(); + for line in lines { + let mut row = Vec::new(); + for c in line.chars() { + row.push(Place::from_char(c)); + } + places.push(row); + } + println!("{}", places); + println!(""); + let mut sum = 0; + while places.tick() { + println!("{}", places); + println!(""); + sum += 1; + println!("{sum}\n"); + } + println!("\n{}", sum + 1); +} \ No newline at end of file diff --git a/2021/25/testinput b/2021/25/testinput new file mode 100644 index 0000000..73a37cc --- /dev/null +++ b/2021/25/testinput @@ -0,0 +1,9 @@ +v...>>.vv> +.vv>>.vv.. +>>.>v>...v +>>v>>.>.v. +v>v.vv.v.. +>.>>..v... +.vv..>.>v. +v.v..>>v.v +....v..v.> \ No newline at end of file diff --git a/2022/.gitignore b/2022/.gitignore new file mode 100644 index 0000000..795c63d --- /dev/null +++ b/2022/.gitignore @@ -0,0 +1 @@ +*/rust/target \ No newline at end of file diff --git a/2022/.vscode/settings.json b/2022/.vscode/settings.json new file mode 100644 index 0000000..8675ad5 --- /dev/null +++ b/2022/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "deno.enable": true, + "deno.unstable": true +} \ No newline at end of file diff --git a/2022/1/README.md b/2022/1/README.md new file mode 100644 index 0000000..2c9f3f1 --- /dev/null +++ b/2022/1/README.md @@ -0,0 +1,36 @@ +# Day 1: Calorie Counting + +The jungle must be too overgrown and difficult to navigate in vehicles or access from the air; the Elves' expedition traditionally goes on foot. As your boats approach land, the Elves begin taking inventory of their supplies. One important consideration is food - in particular, the number of Calories each Elf is carrying (your puzzle input). + +The Elves take turns writing down the number of Calories contained by the various meals, snacks, rations, etc. that they've brought with them, one item per line. Each Elf separates their own inventory from the previous Elf's inventory (if any) by a blank line. + +For example, suppose the Elves finish writing their items' Calories and end up with the following list: + +``` +1000 +2000 +3000 + +4000 + +5000 +6000 + +7000 +8000 +9000 + +10000 +``` + +This list represents the Calories of the food carried by five Elves: + +- The first Elf is carrying food with `1000`, `2000`, and `3000` Calories, a total of `6000` Calories. +- The second Elf is carrying one food item with `4000` Calories. +- The third Elf is carrying food with `5000` and `6000` Calories, a total of 11000 Calories. +- The fourth Elf is carrying food with `7000`, `8000`, and `9000` Calories, a total of `24000` Calories. +- The fifth Elf is carrying one food item with `10000` Calories. + +In case the Elves get hungry and need extra snacks, they need to know which Elf to ask: they'd like to know how many Calories are being carried by the Elf carrying the **most** Calories. In the example above, this is `24000` (carried by the fourth Elf). + +Find the Elf carrying the most Calories. **How many total Calories is that Elf carrying?** diff --git a/2022/1/input b/2022/1/input new file mode 100644 index 0000000..43f433f --- /dev/null +++ b/2022/1/input @@ -0,0 +1,2243 @@ +3427 +3273 +5615 +5943 +3125 +4245 +4194 +3243 +4283 +1790 +5355 +4239 +5541 + +3850 +5294 +5393 +2490 +3231 +2743 +2016 +2418 +2304 +5673 +3035 +5292 +2112 +2630 +2305 + +2325 +2002 +3402 +4756 +1662 +1133 +5273 +6397 +2977 +4011 +3594 +4441 +3907 +1503 + +7598 +6971 +6979 +3873 +1394 +8399 +1321 +2304 +2570 +6679 + +15324 +3365 +23808 + +5489 +3526 +3125 +8371 +1928 +8191 +7267 +10728 + +5243 +2203 +7331 +8049 +4951 +3743 +2255 +4112 +3077 +2441 +4678 + +12353 +2251 +12157 +13656 +10655 +7525 + +3383 +4183 +3293 +5473 +4898 +1441 +3786 +4002 +2179 +2439 +5530 +3966 +6273 +3150 + +3320 +2694 +2229 +1394 +4568 +3160 +4986 +2487 +3412 +1030 +3717 +1460 +1140 +1314 +5816 + +15303 +36095 + +14345 +5208 +2253 +19532 + +5082 +6544 +3563 +6050 +3750 +1155 +2090 +3661 +3600 +5528 +6506 +1795 +4901 + +1156 +1867 +2025 +5434 +1546 +6052 +4412 +7203 +4622 +7098 +4727 + +4423 +1829 +4761 +4779 +3234 +4869 +3567 +6928 +4181 +5390 +5938 + +3100 +6087 +9235 +10228 +2082 +5472 +11382 + +8389 +15131 +12057 +5034 +9419 + +2192 +1695 +3233 +2245 +4328 +6275 +1811 +4345 +2760 +3205 +1138 +2795 +3876 +1041 + +1302 +3509 +6074 +1793 +5808 +5364 +3802 +2048 +6042 +4913 +5983 +1189 +3134 +3763 +2573 + +1003 +8411 +2571 +2555 +7555 +8096 +1441 +5600 +5104 +6311 + +5345 +3329 +5616 +3250 +4321 +2068 +1978 +3719 +4512 +5099 +4694 +1566 +2621 +1613 + +11021 +6101 +9858 +3142 +9907 +1578 +8582 + +3182 +7695 +4419 +4036 +5846 +3899 +6104 +4495 +7382 +3471 + +6844 +3290 +10505 +7855 +1494 +5963 + +3609 +4755 +4063 +1480 +3201 +4576 +1627 +1255 +3699 +3929 +5533 +4807 +5890 +2270 + +3789 +7045 +8784 +8006 +4583 +7726 +3993 +1472 +1578 +2046 + +2474 +5953 +2050 +4758 +5265 +5075 +4338 +1340 +1301 +5996 +1225 +1794 +4778 +1354 +3819 + +9619 +10877 +8094 +8845 +11275 + +1986 +2142 +7561 +5350 +7605 +6766 +4713 +1016 +5697 +3179 +1696 + +3428 +5575 +5301 +4356 +5065 +2010 +1382 +3466 +3233 +1188 +1999 +3228 +6153 +4496 + +1354 +5681 +11066 +1211 +8399 +12040 +11181 + +3408 +1237 +2163 +5645 +4712 +1349 +4124 +2357 +5443 +4887 +5582 +3037 +3764 +3472 +5861 + +16746 +19715 + +18742 +18810 +6457 +8003 + +3720 +2473 +3156 +3758 +2095 +1872 +1767 +3754 +5011 +3188 +2691 +3555 +4826 +2148 +2012 + +8200 +5372 +6960 +5423 +2383 +2252 +6375 +3558 +1643 + +4653 +3017 +1840 +4479 +6043 +4533 +5374 +5708 +5026 +2557 +2984 +2175 +3797 +1367 +2809 + +1439 +2943 +2091 +6539 +5602 +8757 +2165 +2013 +8140 +4465 + +1216 +3681 +6650 +3628 +5812 +1127 +3023 +4629 +6060 +3294 +4414 +6013 +3311 + +5454 +10288 +4812 +7823 +10332 +2413 +1891 + +46279 + +9578 +8113 +19699 +10360 + +1604 +6410 +6017 +7080 +6023 +3892 +5152 +5250 +2799 +3333 +3451 +3430 + +9888 +6658 +4837 +9174 +9517 +1927 +4135 +4802 + +10514 +1492 +1142 +10574 +7578 +6753 +4250 +7526 + +4997 +6345 +5735 +2312 +5652 +6281 +1808 +5840 +6222 +4264 +6164 +3923 +2953 +4549 + +1751 +7956 +7499 +4659 +3770 +3266 +3921 +2854 + +1750 +6872 +3010 +7148 +1621 +3709 +3454 +5347 +7743 +1274 + +4212 +7252 +9341 +1973 +11385 +5895 +2077 + +6658 +1338 +4893 +2578 +9604 +2595 +3414 +1080 +6270 + +24007 +4451 + +12972 +11908 +9381 +1048 +7389 +8138 + +2266 +2599 +4165 +4784 +4626 +4361 +3710 +2182 +3845 +4487 +2023 +2986 +1893 +5845 +5497 + +6805 +5697 +1281 +6524 +2711 +2519 +2117 +4087 +5690 +4330 +1135 +4761 + +5844 +3385 +1138 +1569 +1517 +1556 +9548 +5483 +3219 + +4644 +2601 +5562 +3819 +1254 +5815 +5846 +5382 +3150 +4171 +5534 +6094 +4472 +2061 +4076 + +2878 +1410 +9640 +5071 +3324 +8293 +9940 +3408 + +17130 +10210 +10359 +4906 + +2544 +5660 +6090 +3828 +7403 +2801 +8923 +5277 +8099 + +3795 +1966 +4800 +3767 +4208 +3259 +8457 +4220 +8519 + +1605 +10471 + +5185 +4592 +4389 +3287 +2304 +1856 +4737 +2879 +6366 +6552 +3801 +4487 +3732 + +6012 +5767 +6959 +8554 +8079 +8259 +4657 +5856 + +14046 +3590 +12095 + +2973 +3878 +3645 +4276 +2320 +2886 +5517 +6727 +5742 +1098 +3216 +2442 +3818 + +1273 +4150 +3080 +3346 +2788 +1989 +3112 +4219 +3596 +3513 +4205 +6202 +4782 +2784 + +5051 +2764 +3741 +6410 +1016 +7444 +2184 +3062 +5225 +1274 +6015 +1728 + +2377 +8151 +5516 +5535 +4053 +5950 +10235 + +7837 +2220 +5837 +12251 +16188 + +4297 +16215 + +1978 +1710 +1777 +4212 +6858 +3883 +6775 +2192 +1175 +5995 +1271 +2740 +2628 + +4320 +4494 +5177 +1999 +5490 +1489 +4324 +5227 +1450 +5883 +2319 +4774 +4458 +2351 + +3448 +6913 +8451 +6462 +5866 +11217 +2186 + +4201 +4589 +7100 +4364 +7012 +2153 +7302 +5890 +1686 +6211 +3490 + +15256 +11330 +2576 +16295 +12696 + +3284 +8133 +4210 +9105 +7168 +6026 + +11776 +6637 + +4573 +6043 +1000 +6736 +4118 +5208 +2927 +7477 +5529 +4854 +3522 + +5080 +8530 +6703 +6196 +9315 +5603 +7705 +4264 +4226 + +2260 +9738 +5010 +1686 +1937 +8207 + +25668 +27349 + +2869 +4713 +4882 +2679 +7961 +3163 +5782 +6503 +4208 +2063 + +6247 +4463 +2240 +7150 +2727 +7441 +3721 +7962 +2128 +4317 +1091 + +4963 +1111 +5113 +3820 +3030 +2167 +2925 +1805 +1441 +6450 +1386 +2862 +1594 + +7176 +12022 +1849 +4085 +4515 +10053 +11249 + +18317 +1781 +18494 + +4370 +19502 +2229 +19624 + +3242 +16141 +5070 +19552 + +4082 +7003 +9394 +4500 +9162 +1991 +3555 +4769 + +3386 +5867 +8192 +6543 +1930 +10974 +1136 + +1004 +7929 +9658 +7020 +7231 +9331 +1749 +2973 +6859 + +6997 +1865 +4744 +5725 +8391 +8664 +1142 + +19299 +3449 +16386 +13658 + +1825 +1988 +5454 +6369 +7466 +4535 +5033 +2624 +4671 +1715 +1130 +2785 + +6349 +3298 +15373 +3765 +8607 + +1467 +1151 +5692 +5349 +5878 +2378 +1060 +3500 +3794 +5979 +2498 +5792 +1346 +3951 +3002 + +6298 +7169 +2292 +5334 +3964 +1367 +4002 +5096 +2232 +2396 +2399 +3622 + +4478 +13270 +6750 +14796 +2444 + +28084 +22563 + +10371 +10158 +8358 +8893 +2048 +10170 +1975 +5860 + +2826 +5313 +6768 +5757 +5251 +7693 +2295 +3278 +4889 +6677 +2869 + +4648 +4125 +5271 +2075 +5706 +6365 +2815 +6123 +3621 +2536 +5841 +2819 +3421 + +19400 +15923 +4719 +19889 + +15442 +24965 +20121 + +12765 +6225 +9594 +3324 +10745 + +9550 + +3573 +6393 +7665 +8995 +4214 +7717 +1278 + +8653 +5104 +3346 +4537 +1870 +8001 +2938 +4618 +6738 +2912 + +3315 +1537 +10677 +9986 +6898 +9306 +7037 +1489 + +6055 +5329 +1855 +2859 +6953 +2772 +5646 +4659 +1638 +4294 +2050 +5063 + +66765 + +3712 +3030 +8171 +2898 +8367 +10670 +4897 + +5012 +5099 +4827 +3947 +6708 +1704 +3714 +2225 +4425 +2528 +2396 +1261 + +5626 +2971 +12919 +16816 + +4547 +12905 +11292 +18931 + +3530 +9875 +4672 +3897 +8547 +3293 +4835 + +43142 + +24258 +9997 +21496 + +1208 +5598 +1340 +3351 +3856 +4368 +2935 +5296 +3972 +3060 +2599 +1795 +5210 +5403 +3473 + +4457 +3498 +3815 +1380 +2356 +3167 +5418 +5314 +1344 +1837 +4187 +2184 +5629 +4746 +1087 + +21757 +8610 +4689 + +11777 +5837 + +12118 +5293 +13465 +8537 +7762 +3782 + +6183 +15013 +7399 +14944 +6213 + +43907 + +8307 +5251 +3694 +4573 +2578 +3687 +3885 +1965 +6973 +6266 + +27104 + +1946 +3232 +2101 +9268 +9634 +4100 +1878 +9129 +4192 + +9175 +11691 +4274 +8684 +8889 +4557 +7587 + +4279 +8296 +4685 +2930 +8289 +6175 +4472 +2901 +2936 +7176 + +11323 +9385 +11725 +9793 +8426 +6393 +6004 + +3672 +4161 +3337 +1929 +3171 +2371 +3786 +7876 +4149 +4925 +4705 + +28965 +32051 + +2398 +1799 +5037 +4165 +2010 +1355 +1575 +5139 +6084 +4016 +5215 +6103 +3298 +4534 +4615 + +6660 +7961 +8168 +3330 +6912 +6116 +7870 +9037 +1571 + +6421 +3027 +5685 +3979 +2831 +5353 +2478 +1044 +6811 +7667 +2964 + +3919 +10974 +2860 +4617 +10693 + +5548 +5360 +1319 +5437 +1422 +3565 +4957 +4813 +1684 +3627 +3082 +3486 +6118 +1841 +4263 + +1874 +4344 +6124 +11147 + +6594 +6216 +7338 +3533 +6738 +3045 +1244 +6486 +3200 +2511 + +1139 +21415 +25857 + +16318 +1430 +3369 +9263 +9929 + +5928 +15789 +11887 +12028 +8417 + +6149 +1642 +2773 +4464 +2136 +3018 +3822 +3430 +1317 +7242 +3908 +4536 + +1425 +5550 +4635 +2039 +1290 +2618 +3862 +2107 +4921 +2991 +2703 +1932 +2568 +2266 +5553 + +5660 +8736 +4457 +5190 +1149 +9538 +8720 +6090 +3093 + +13268 +25486 +19311 + +2275 +5258 +6428 +2407 +3893 +1339 +6016 +5075 +3342 +1951 +3939 +5464 +2310 +2111 + +9213 +4141 +13988 + +20253 +20757 +12387 + +6720 +9453 +11786 +5246 +8519 +1807 +4846 + +11442 +6565 +3556 +4281 +13793 + +11152 +7384 +3135 +7831 +9622 +2549 + +1687 +3983 +4666 +5010 +7569 +8614 +3537 +5490 +5002 +5659 + +5692 +2560 +6875 +3031 +3324 +5731 +6464 +9583 +3505 + +1814 +1393 +3673 +5469 +6392 +1052 +2787 +5115 +2666 +2590 +6565 +1842 +2506 + +5592 +3509 +5060 +4589 +2619 +3283 +4145 +1590 +6079 +1312 +5693 +5182 +5071 +5476 +2187 + +5848 +11351 +8303 +11454 +7250 +9222 +9673 + +1348 +4372 +5362 +4031 +3730 +4094 +5193 +1949 +3386 +1840 +1414 +2665 +5000 +1427 +2756 + +5415 +4977 +4836 +5095 +4250 +4958 +5446 +1788 +3187 +2285 +5023 +4540 +6505 +6193 + +9926 +5929 +10070 +9154 +15694 + +5424 +2275 +2556 +7747 +8450 +2304 +8512 +5397 +3831 + +5193 +2733 +5044 +6255 +9617 +7568 +2363 +7297 +8281 + +3912 +8171 +5412 +6963 +2854 +5319 +5093 +3672 +7422 +8003 + +1986 +3826 +3202 +3431 +1361 +1949 +2237 +6455 +7354 +2587 +6648 +5011 + +26126 +35104 + +2811 +3929 +2049 +6213 +6242 +6074 +5336 +1684 +2556 +4831 +2963 +3482 +4728 +3548 + +5652 +5134 +5168 +3953 +7858 +2654 +6512 +2084 +4173 +5224 +3278 + +3599 +5356 +1114 +4191 +4473 +5066 +5490 +3564 +5826 +1516 +4392 +5289 +1281 +4404 +2274 + +58222 + +2493 +5894 +3528 +6543 +6011 +5090 +3001 +3783 +5710 +3351 +3936 + +4894 +2255 +1579 +3849 +1090 +4218 +4196 +3818 +3701 +6652 +6393 +5254 +3891 + +1041 +6701 +8442 +4691 +1054 +9791 + +63207 + +4085 +3685 +3858 +6123 +2192 +7228 +2276 +4588 +2134 +5990 + +1857 +18111 +17100 +12276 + +2353 +5464 +5442 +5230 +4412 +3189 +5513 +5813 +2459 +4570 +3493 +1753 +2059 +5804 +2150 + +9941 +13582 +3983 +5035 +7121 +8255 + +6637 +2409 +5469 +2433 +6675 +5290 +4965 +2161 +4358 +2845 +3302 + +3888 +1312 +7084 +4568 +14787 + +16704 +17915 +12348 +10556 + +3055 +2579 +3744 +3287 +5974 +4817 +2966 +5913 +3291 +2043 +4534 +1323 +5913 +2638 +4941 + +6305 +4244 +10277 +6254 +13667 +4572 + +1538 +13957 +13223 + +5856 +1394 +1329 +1395 +5874 +1899 +1884 +6484 +2784 +4268 +1631 +1822 +2463 +3880 + +14105 +14883 +18198 + +3032 +3784 +5643 +3773 +5888 +1178 +3793 +5230 +4118 +2181 +4977 +5507 +2111 +2718 + +2275 +5842 +1675 +6194 +5207 +1151 +3795 +1214 +1684 +2885 +4067 +3938 +4495 +4713 + +8752 +7608 +9819 +10438 +8672 +9792 +3246 +10448 + +1844 +14438 +13886 +14646 +2801 + +4032 +2553 +2327 +2321 +5334 +4677 +5466 +5474 +5194 +2828 +6113 +2979 +4755 +5295 + +3164 +4556 +7645 +2198 +2053 +1154 +1976 +1231 +4290 +4049 +5697 + +3635 +1307 +2316 +5508 +6603 +5483 +6365 +4073 +1325 +4043 +1807 +1871 +2056 + +6233 +5552 +8415 +2110 +8085 +9293 +6374 +6406 +5730 + +5077 +6068 +9548 +6279 +1000 +3764 +3649 +4720 +3278 + +5222 +1356 +4185 +2401 +1947 +4042 +5903 +4500 +3817 +6871 +4859 +5715 +4061 + +15888 +8533 +18355 + +65924 + +9638 +2232 +5209 + +14127 +21496 +6679 + +4269 +5055 +5129 +3308 +6977 +5175 +8822 +2381 + +57210 + +5510 +1878 +3933 +4081 +5101 +3974 +2211 +2310 +4652 +3113 +3414 +3844 +1637 +3225 +5057 + +12780 +11976 +6407 +3161 +11266 +7404 + +5178 +3541 +3449 +2443 +3099 +5232 +5838 +1724 +5830 +1147 +2092 +5034 +1235 +2502 +5532 + +12966 +12188 +2554 +13972 + +6587 +3279 +1462 +1804 +1398 +1172 +7309 +7422 +6432 +1024 +3065 +4228 + +2694 +7331 +14584 +9982 + +7038 +6957 +4701 +7704 +2598 +5320 +5967 +6921 +1647 + +3296 +2784 +5532 +5546 +5876 +5368 +1054 +5058 +4827 +1357 +6359 +6830 + +4292 +3508 +2337 +4779 +6114 +4836 +5981 +3416 +6699 +3472 +5791 +3957 +6943 + +3478 +4225 +3052 +4254 +3454 +4037 +1586 +5076 +2839 +1992 +4261 +3288 +1343 +2341 +1551 + +17502 +4858 +18898 +5672 + +8686 +2583 +1331 +3358 +6292 +2778 +5709 +1961 +6840 +4022 + +2762 +7622 +7131 +7486 +11995 +10403 +7014 + +3729 +7653 +2913 +4205 +5248 +6521 +5522 +2238 +6185 +6906 +6982 + +13279 +15590 +6519 +5881 +10256 + +11856 +7565 +1021 +2750 +4574 + +6775 +1059 +1006 +4734 +8301 +10502 +4313 + +1474 +3139 +3822 +5821 +3711 +3319 +5126 +3229 +2014 +3850 +2412 +2025 +5909 +1183 +1785 + +2726 +6526 +6606 +6153 +7205 +1503 +5204 +6244 +5856 +3962 +2148 +4222 + +4715 +1689 +4771 +2137 +3780 +1441 +5840 +1161 +5664 +4784 +2380 +1710 +1514 +1631 +1383 + +17682 +10199 + +11639 +6724 +3935 +2520 +2078 +1975 +8774 + +2252 +1541 +5525 +3020 +5282 +4457 +5951 +6672 +7622 +4374 +6671 + +5651 +2720 +1633 +2704 +5113 +1968 +2943 +1763 +4803 +3768 +2712 +1141 +6006 +4546 +4336 + +9165 +8307 +1687 +4532 +4194 +4442 +6385 +5555 + +3820 +4280 +1133 +3789 +5471 +1788 +1694 +5654 +4802 +4218 +2428 +2933 +2219 +3567 +1743 + +2881 +4847 +1363 +5396 +1564 +5633 +4521 +3209 +2555 +5482 +2613 +4118 +5167 +3873 +2554 + +7668 +5845 +11661 +6560 +2189 +5230 +1923 + +29880 +25227 + +4503 +2215 +4600 +8892 +3104 +1325 +2103 +8983 +4061 + +4784 +9543 +16484 +18339 + +1331 +1544 +1291 +3863 +1005 +2002 +2907 +3014 +5819 +1397 +5856 +2182 +6055 +4812 +4226 + +5402 +3893 +4333 +4381 +5053 +3248 +1537 +3147 +2459 +3383 +2214 +5900 +5862 +2002 +1870 diff --git a/2022/1/part1.ts b/2022/1/part1.ts new file mode 100644 index 0000000..3bb17a0 --- /dev/null +++ b/2022/1/part1.ts @@ -0,0 +1,24 @@ + +const text = await Deno.readTextFile("./input"); +const lines = text.split("\n"); + +let acc = 0; +let max = 0; +for(const line of lines) { + if(line === "") { + if(acc > max) { + max = acc; + } + console.log(acc); + acc = 0; + continue; + } + acc += parseInt(line); + if(isNaN(acc)) { + console.log("'" + line + "'"); + break; + } +} + +console.log(); +console.log("max", max); \ No newline at end of file diff --git a/2022/1/part2.ts b/2022/1/part2.ts new file mode 100644 index 0000000..cfaed9f --- /dev/null +++ b/2022/1/part2.ts @@ -0,0 +1,22 @@ + +const text = await Deno.readTextFile("./input"); +const lines = text.split("\n"); + +let values: number[] = []; +let acc = 0; +for(const line of lines) { + if(line === "") { + values.push(acc); + acc = 0; + continue; + } + acc += parseInt(line); + if(isNaN(acc)) { + console.log("'" + line + "'"); + break; + } +} + +values.sort((a, b) => b - a); +console.log(values.slice(0, 3)); +console.log(values.slice(0, 3).reduce((a,b) => a+b,0)); \ No newline at end of file diff --git a/2022/2/input.txt b/2022/2/input.txt new file mode 100644 index 0000000..d1a0334 --- /dev/null +++ b/2022/2/input.txt @@ -0,0 +1,2500 @@ +B X +B Z +B Z +A Y +B X +A Y +C Y +A Y +C X +B X +A Y +B Z +A Y +A X +B X +A Y +A Y +B Y +A Y +A Y +A Y +B Y +C Y +A Y +A Y +C X +B Z +B Z +C Z +B Z +A Y +A Y +B Z +A Y +B X +A Y +A Y +A Y +C Z +A Y +C Y +B X +A Y +A Y +A Y +B X +A X +B Y +B Z +A Y +A Y +A Y +B Z +A Y +A Y +B Y +B X +C Y +B Z +C Z +A Y +C X +B Z +A Z +C X +A Y +A Y +A Z +B Z +A Y +A Y +B Y +B Z +A Y +A Y +C X +B X +A Y +B Z +A Y +B Y +B Y +A Y +B Y +B Z +B X +B Y +B X +B Z +B Z +A Y +A Y +A Z +A X +A Y +B Z +A Y +B X +A X +A Y +B X +A X +A Z +B Z +A Y +A Y +A Y +B Z +A Y +B X +A Y +A Y +B Z +B Y +A X +C Y +C Y +A Y +B X +B X +B Z +B Z +B Y +B Y +B Z +B Z +B X +B Z +B Z +B Z +A Y +A Y +B Z +B Z +B X +A Y +C Z +B Z +B X +B Z +A X +A Y +B X +B X +A Y +B X +B Z +B Z +A Z +B Y +A Y +B X +A Y +C Y +B Y +A Y +A Y +B Y +B X +A Y +B X +B Z +A Y +B Z +B X +B X +A Y +A Y +B Z +A Z +B Z +C Z +B Z +C X +A Y +A Y +A Y +A Y +A Y +A Z +B Z +B Y +C Y +A X +C Y +A Y +A X +B Z +A Y +C Z +A Y +A Y +A Z +C Y +C Y +A Y +A Y +A Y +B Z +B Z +B X +B X +B Y +A Y +A X +B Z +B X +B Z +A Y +B Z +A X +B Z +A Y +A Y +B Z +A X +B Y +A Y +A Y +A Y +B X +A Y +C Z +B Y +B X +A Y +B Z +A Y +A Y +A Y +B Z +A Z +C Y +A Y +A Y +B Z +A Y +A Y +A Y +B Z +A Z +A Y +A Y +A Y +A Y +A Y +A Y +B X +A Y +B X +A Y +C Z +B Z +A Y +A Y +B Z +A Y +A Y +B Z +A Y +A Y +A Y +B Z +A Z +A Y +A Y +C Y +A Y +A Y +A Y +B Z +A Y +A Z +B Z +C Y +B Y +B Z +B Z +C X +A Y +A X +B Y +A Y +B Z +A X +B Y +C Y +B Z +A Y +A Y +B X +A Y +B Z +B Z +B X +B Z +A Y +A Y +A Y +A Y +A Y +A Y +B Y +A Y +A Y +A Y +A Y +A Y +B Z +A Y +A Y +A Y +A Y +A Y +B Y +B Y +A Y +A Z +A Y +A Y +A Y +B X +B Z +A X +A Z +A Y +B X +A Z +A Y +B X +A X +B X +A Y +A Y +B X +B X +A Y +B X +A Y +A Y +B Y +B Z +A Y +A Y +B Z +C X +B X +B Z +B Z +A Y +A X +A Y +A Y +C Y +A Y +B Z +C Y +C Y +A Y +A Y +B X +A Y +A Y +A Y +A Y +A X +A Y +B Y +B Z +A Y +B Z +B X +C Y +B Z +B X +B Z +A Y +A Y +A Z +A Y +C Y +B Z +A Y +A Y +B Y +B Z +B Z +A X +A Y +B Z +A Y +B X +A Y +A Y +B Z +B X +B Z +A Y +A Y +B Y +B Z +B X +A Y +B X +A Y +A Y +A Y +A Y +A Y +B Z +A Y +B Y +A Z +B X +B Z +B X +A Y +B X +A Y +B Y +B Y +A Y +C Z +C Y +A Y +B Z +B X +A Y +A Y +A Y +A Y +B Y +B Z +B Z +A Y +A Y +A Y +A Y +B X +A Y +B Y +B Z +A Y +B Z +B Z +B Z +A Y +B Z +B Z +B X +B Z +A Y +B Z +A Y +B X +B Z +A Y +A Y +A Y +C Y +B Z +C Z +A Y +B Z +C Y +A Y +A Y +A Y +B Z +A Y +A Y +B X +B X +A X +A Y +A Y +B X +B X +A X +A Y +A Y +A X +B X +B Y +A Y +A Y +B X +B Z +B X +A Y +B X +B Y +A Y +B Y +B X +A Z +A Y +A Y +B X +A X +A Z +B X +A Y +A X +B X +A Y +A Y +A Y +A Y +A Y +B Y +A Y +B X +B Y +B Z +B Y +A Y +A Y +A Y +A Y +B Y +A Y +A X +B Y +A Y +B Z +A Y +A Z +A Y +A Y +A Y +C Z +A Y +A Y +B X +B X +C Z +A Y +B Z +A X +B X +A Y +B Z +A Y +B Z +A Y +A Y +B Z +A X +A X +B X +B Y +B Z +B Z +C Z +A Y +A X +A Y +C X +A Y +B X +B X +B Z +A Y +A Z +A Y +C Z +B Z +B Y +B Z +C Y +C X +A Y +B X +B Z +A Y +B X +B Y +A Y +A Y +A Y +A Y +B Z +C Y +B Y +C X +A Y +A Y +B Z +C Y +B Z +A Y +A X +A Y +A Y +A Y +A Y +B X +C Y +A Y +A Y +B X +A Y +B X +B Y +C Z +A Y +A Y +A Y +A Y +B Z +B X +C Y +B X +A Y +A Z +C Y +A X +A Y +B Z +B Z +A Y +A Y +C Y +A Y +B X +C Z +B Z +A X +A Y +A Y +B Z +B Z +A Y +B X +B X +B X +A Y +B X +B Z +A Y +A Y +A Y +A Y +C Y +A Y +C Z +A X +B Z +B X +A Y +B X +A Y +B Y +A Y +A Z +A Y +A Y +B Z +B Y +B X +B Z +A Y +A Y +A Y +A Y +A Y +A Y +A Y +A Y +C Z +B Z +B X +A Y +A Z +B Y +A Y +A Y +B Y +A Y +B Y +B X +A Y +A Z +A Y +A Y +A Y +A Y +A Z +A Y +B Z +A Y +A Y +B Z +B Z +A Y +C Z +B X +A Y +C Y +B X +A Y +B X +B Z +B Z +A Y +A Y +A Y +A X +B X +B X +A Y +B Y +B Y +A Y +A X +A Y +B Z +C Y +A Y +C Z +B Z +C Y +B X +A Z +A Y +A Y +A Y +A Y +C X +B X +B X +A Z +B Y +A Y +A Y +B X +A Y +A Y +A X +B X +C Z +B X +C Y +A X +B X +C Y +C X +A Y +A Y +B Y +C Y +A Y +B X +B Z +A X +A Y +B X +B Z +B Z +B X +B Z +B Y +A Y +A Y +A Y +A Y +A Y +A Z +B Y +A X +B X +C Y +A Y +B Y +A Y +B X +A Y +A Y +A Y +A Y +A Y +A Y +B Z +B Z +A Y +A Y +A Y +C Z +A Y +A Y +A Z +B Z +C Y +B Z +A Y +B Z +A X +A Y +B X +B Z +A Y +A Y +A Y +A Y +B X +B Y +C Z +A Y +A Y +A Y +C Z +A X +B Z +B X +C Y +B X +B X +A Y +C Y +B X +A Z +A Y +B X +A Y +A Y +B Z +A Y +A Y +A Y +B Y +A Y +A Y +A Y +A Y +B X +C Y +A Y +A Y +A Y +A Y +A Y +B Z +B X +B Z +A Y +B X +A Y +B X +C Y +A Y +A Y +A Y +C Y +A Z +A Y +A Y +B Y +B Z +B Z +A Y +B X +A Y +B X +C Y +A Y +B X +B X +B X +A Y +B Y +A Y +A Y +B X +B X +A Y +A Y +C Y +A Y +B Z +A Y +A Y +B Z +A Y +C Y +B X +A Y +A Y +A Y +B X +B X +B X +A Y +B Z +B Z +B X +B Z +A Y +B X +B Z +A Y +A Y +C Z +B X +B X +C Z +C Y +A Y +C Z +A Y +A X +B Z +A Y +A Y +A Y +B Z +B Z +B Z +A Y +A Y +B Z +C Y +A Y +A X +B Z +A Y +A Y +B Z +B Z +C Y +C Z +A Y +A X +B Z +C Z +B Y +B X +B X +B X +B Y +B X +A Y +B X +B Z +B Z +A Y +B Z +A Y +A Y +A Y +B X +A Y +A Y +B X +A Y +A Y +A Y +A Y +A Z +B X +A Y +B Z +A Y +A Y +B Z +A Y +A Y +A Y +A X +A Z +A Y +B Y +C Y +A Y +A Y +A Y +C Y +A Y +B X +A Y +B Z +B X +B Z +A Y +B Z +A Z +B X +A Y +A Z +B X +B X +B Z +A Y +A Y +B Z +A Z +A Y +C Y +A Y +A Y +B Z +B Z +B X +C Y +B X +A Y +B X +B Y +B Y +C Z +A Y +A Y +B Z +B X +A Y +A X +A Y +A Z +A Y +B Y +A X +A Y +B Y +A Y +B X +A Y +A Y +A Y +A Y +B Z +A Y +A Y +A Y +B X +A Y +B Y +A Y +A Y +B X +B Y +B X +B Z +A X +A Y +B X +B Z +A Y +B Y +B Y +A X +C Y +B Z +B X +A Y +B Z +A X +B Y +B X +A Y +C Y +B Z +B X +A Y +B Z +C Z +A Y +A Y +A Y +A Y +B X +B X +A X +A Y +A Y +A Y +A X +C Y +C X +B Z +A Y +A Y +B X +A Y +A Y +C Y +B X +A X +B X +C X +A Z +A Y +C Z +A Y +A Y +B Z +B Z +C Y +A Y +A Y +B X +B X +A Y +C X +A X +A Y +A Y +A Y +B Y +A Y +A Y +B X +A Y +B Z +C X +A Y +B X +A Y +A X +A Y +A X +B X +A Y +A Y +A Y +B Y +B Z +B Z +B X +B Z +A Y +B Z +A Y +B Z +C Z +A Z +A Z +B X +A X +B Z +B Z +A X +B X +C X +C X +A X +A Y +A X +B Z +C Y +B X +B Z +B X +A Y +A Y +A Y +B X +B Z +B Z +B Z +A Y +A Y +B Y +B Z +A Y +A Y +C Y +A Y +A X +A Y +A Y +A Y +B Z +B Z +A Y +B X +A Y +A Y +A Y +A Y +A X +A Y +B Z +A Y +A Y +B Z +A Y +A Y +A Y +B X +A Y +C Y +B X +A Y +A X +A Y +B Z +B Z +B Z +B Z +B Z +A Z +B Z +A Z +C Y +B X +B Y +A X +B X +B X +A Y +A Y +A Y +A Y +B Y +A Y +A Y +A X +A Y +B Y +B X +C Y +B X +C X +A Y +B Z +A Y +A Y +B Z +A Y +A Y +B X +A Y +C Y +A Y +A Y +A Y +C Z +A X +B Y +A Y +C Y +A Y +B Z +A Y +B Z +B X +A Y +A Y +C Y +A Y +B Y +B Z +A Y +B X +A Y +A Y +C Y +C X +A Y +B Z +A Y +B X +B Z +B X +B X +A Y +A Z +B X +A Z +A Y +C Y +B Y +B X +A Y +A Y +A Y +B X +B Z +B Y +B X +A Y +A Y +A Y +A Y +A X +A Y +B X +A Y +B Z +B Z +B X +A Y +A Y +C X +B Z +B Z +B Y +A Z +B Y +B Y +C Z +A X +B X +B X +A Y +A Y +B X +A Y +B Z +B X +B X +C X +B Z +A Y +A Y +B X +B Z +A Y +B Y +A Y +B X +B X +B X +B Y +A Y +B Z +A Y +B Y +B Z +B X +B X +A Y +A Y +A Y +C Y +B X +B Z +A Z +A Y +A Z +A Y +A Y +B Z +A Y +B Z +C Z +B X +A Y +B Z +A Y +A X +B Y +A X +C Y +B Z +B Z +A Y +A X +B Z +C Z +B Z +A Y +A Y +A Y +A Y +A Y +B Z +A Y +A Y +B Z +A Y +A Y +A Y +A Y +B X +B Z +A Y +A Y +C Y +B Z +A Y +C Y +C Z +B Z +A Y +A Y +C Z +B Z +B Y +B X +A Y +A Y +B Z +A Y +C X +B Z +B X +B Z +B X +B Z +B Z +B Z +A Y +A Y +A Y +C Y +A Y +A Y +B Z +B X +B X +A Y +A Y +A X +A Y +A Y +A X +B X +B Y +B Z +A Y +A X +C Z +A Y +C Y +B X +A X +B Z +A Y +B Z +B Z +B X +A Y +A Y +C Z +A Y +A X +A Y +A Y +C Z +A Y +B X +A Z +B Z +B X +A Y +A X +A Y +A Z +B X +B Z +A Y +B Y +A Y +A Y +A Y +A Y +A Y +A Y +B X +C Y +A X +B Z +B X +B X +A Y +A Y +B X +A Y +C Y +A Y +A Y +B X +A Y +C X +A Y +B Z +B X +A Y +A X +C X +A Y +A Y +B Y +A Y +B Z +C Z +B X +B Y +C X +A Y +B X +A Y +B X +B Z +B Y +A Y +A Y +A Y +A Y +A Y +A Y +A Y +B X +A Y +A Y +B Z +B Z +A Y +C Y +B X +A Y +A Y +A Y +B X +A Y +B Z +A Y +B X +B Y +B X +B Y +B X +B Z +A X +B Z +C Z +B Y +A Y +A X +A Z +B Z +B Z +B Z +A Y +A Y +A Y +A Y +A Y +B Z +A Y +A Y +B Y +A Y +A Y +C Z +B Y +C Y +A Y +B Z +A Y +B Z +A Y +B X +A Z +B Z +A Y +A Y +A Y +A Y +A Y +A Y +A Y +A Y +A Y +B Z +B X +A Y +B Z +A Y +A Z +A Y +B Y +A Y +B X +B X +B Z +A Y +A Y +A Y +B Z +B Y +A Y +B X +C Z +A X +B Z +B X +A Y +A Y +A Z +B X +A X +A Y +C Y +C Y +A Y +A Y +A Y +A Y +B Z +B X +B X +A Y +B X +A Y +B X +A Y +A X +B X +B Z +A Y +B X +B X +B Z +B Y +A Y +B Z +A Y +A Y +A Y +A Y +B Y +B Y +B X +B Y +B X +B X +A Y +C X +A X +B X +A Y +B Z +A Y +A Y +B Z +B X +A Y +B Z +B X +B Z +A Y +A Y +A Y +A Y +B Y +B Z +A X +B Z +B X +A Y +A Y +C Z +A Y +B X +B Z +A Y +A Y +C X +A Y +C Y +A Z +A Y +B Y +B X +A Y +B Z +A Y +A Y +A Y +A Y +A X +B Z +B X +B Z +A Y +A Y +B X +A Y +C Z +B X +B X +A Y +A Y +B X +B Y +A Y +A Y +A Y +B Z +A X +A Y +A Y +A Y +A Y +B X +B Z +C Y +B Z +B X +A Y +B Z +A Y +B Z +A Y +C X +A Y +A Y +C Y +A Y +A Y +A Y +A Y +A Y +B X +B Y +A X +A Y +B Z +C Y +A Y +A Y +B X +A X +A X +B X +A Y +A Y +A Y +A X +C Y +B X +A Y +A Y +A Y +A Y +A Y +A Y +B Z +A Y +B Z +C Y +A Y +A Y +A Y +A Y +B Z +B Z +A X +A Y +A X +A X +A Y +A Y +B Z +B X +A Y +A Y +B X +B Y +C Z +A X +A X +A Y +B X +A Y +B X +B Z +A Y +B X +A Y +A Y +B Z +B X +B X +B X +A Y +A Y +B Z +B Z +A Y +B Y +A Y +A Y +A Y +A Y +B X +A X +B Y +B X +A Y +C X +B Z +B X +A Y +B X +B X +B X +B Y +B Y +A Y +A Z +B Z +C Y +A Y +A Y +A Z +A X +A Y +C Y +A Y +B Z +A Y +C Y +C Y +B Z +A Y +B Z +B Z +A Y +B Z +A Y +C Y +B Z +B X +B X +A Y +A Y +C Y +A Y +A Y +A Y +A X +A Y +A Y +A Y +C Z +B X +B Y +B X +A Y +A Y +C Y +A Y +A Y +A Y +B Z +B Y +A X +B Z +A Y +A Y +C Y +A Y +A Y +C Y +B X +B X +A Y +C Z +A Y +A Y +A Y +C Y +B Y +B Z +B Y +C X +A Y +B Y +C Y +B Z +A Y +B X +B X +A Y +A Y +A Y +B Y +B Y +A Y +A Y +B X +A Y +B Y +A Y +A Y +B Z +B Z +A Z +B X +B Z +B X +A Y +A Y +B Z +B Z +C Y +A Y +B Z +B Y +A Y +B X +B Z +B Z +A X +B X +A Y +A Z +B Z +A Y +B X +A Y +A Y +A Y +B X +B X +B Z +A Y +A Y +A X +C X +A Y +A X +B Z +B Z +A Y +C Y +B Z +B Z +B Y +B Z +A X +A Y +A Y +B Z +B X +A Y +C Z +A X +A Y +B Z +B X +C Y +A Y +A Y +B Y +B X +A Z +B X +A Y +A Y +B Z +C Z +B Z +B Z +A Y +A Y +A Y +B X +A Y +A X +C X +A Y +A Y +B Z +A Y +B Y +B X +A Z +A Y +A Y +A Y +C Y +B X +B Y +A Y +B Y +C Z +B X +B Z +B Z +B X +A Y +B Z +B X +A Y +A X +B Y +A Y +A Z +B X +B Z +A Y +C Z +B X +B Z +A Y +A X +A Y +B Z +B Z +A X +C Y +B X +C Z +B Y +A X +B X +C Y +A Y +B Y +B Z +A Y +A Y +A Y +A Y +B Y +B Z +B X +B X +A Y +A Z +B X +A Y +A Y +A Y +A X +B Z +C Z +C Y +B X +A Y +A Y +A Y +C X +B Z +B Z +A Y +A X +B X +A Y +B X +A X +B X +B Z +B X +B X +A Y +A Y +B X +A Y +A Y +A Y +B Z +B Y +B Z +A Y +A Y +A Y +B Z +A Y +A Y +A Y +C Y +B Y +B Z +A Y +B X +B Z +B Y +B X +A Y +A Y +A Y +A Y +C Z +A Y +A X +A Y +A Y +A Y +A Y +B Z +B Z +B Z +C Y +A Y +A Y +A Y +A Z +A Y +C Y +A Y +A Y +B Z +A Y +A Y +A Y +B X +A Y +B Y +A Y +A Y +B Z +B X +A Y +A Y +B Y +B X +A Y +B X +A Y +A Y +A Y +A Z +A Y +B X +B Y +B X +C Y +B Z +A X +A Y +A Y +A Y +B Z +B X +B X +B Z +B Y +A Y +A Z +A Y +C Z +B X +A Y +B Z +B Z +B Y +B X +A Y +C X +A Y +A Y +A Y +A Y +B Z +B Z +A Y +A Y +A Y +B Z +A Y +A Y +A Y +A Y +A Y +A Y +A Y +B X +A Y +C Y +B Z +B Z +A Y +A Y +A Y +B Y +A X +B Z +A X +B Z +B Y +A Y +B Z +B X +B X +A Y +A Y +A Y +B Z +A Y +A Y +B X +B X +A Y +B X +A Y +B X +A Y +B Z +A Y +B X +A Z +B Z +A Y +C Y +A Y +A Y +C Y +A Y +A Y +A X +A Y +C Y +A Y +A Y +B X +A Y +A Y +B X +C Y +A Y +B X +C Z +B Z +B Y +A Y +B Z +B Y +A X +A X +A Y +A Y +A Y +B X +B Z +C Y +B X +B Z +A Y +A Y +A Y +A Y +B X +B Y +C Y +A Y +A Y +A Y +B Z +B Y +A Y +B X +B Z +A Y +A Y +A Y +A Y +B Y +A X +A X +B Z +B Y +C Y +B Z +B Z +A Y +A Y +B Z +A Y +B Z +C X +A Y +A Y +B Y +A Y +B Z +A Y +B Z +B Z +A Y +A Y +C Z +C Y +A Y +A Y +C Y +A Y +C Y +A Y +B Z +A Y +B X +A X +B Z +A Y +A Y +A Y +B Z +A Z +C Y +A Y +A Y +A Y +B X +B X +A Y +A Y +A X +A Y +B Y +B X +B X +A Y +A Y +C Y +A Z +A Y +B X +B X +B Z +A Y +A Y +B Y +C Y +B X +A Y +A Y +A Y +A Y +A X +B X +A Y +A Y +B Z +A X +C Y +B X +A Y +B Z +A Y +A Y +C Y +A Y +A X +A Y +A Y +B Z +A Y +C Z +A Y +B X +B X +B Y +B Z +A Y +A Y +A Y +B Z +A Y +B Z +A Y +A X +A Z +A Y +C Z +B X +A Y +B Z +B Y +A Y +B X +B Z +B Z +B Z +A Y +A X +B Y +B X +A Y +A Y +A Y +B X +A Y +A Y +B Z +A Y +C Y +B X +A Y +A Y +C Z +B Z +A Y +B Z +B Z +B Z +A Y +B Z +B Y +A Y +A Y +C Y +A Y +B Y +A Y +B X +A Y +C Z +A Y +B X +A X +A Y +A Y +B Z +A Y +B X +B Z +B X +A Y +A Y +A Y +A Y +B Z +A Y +B Z +A Y +A Y +C Y +A Y +C Y +B X +B X +A Y +A X +B Z +B X +A Y +A Y +A Y +A Y +B Y +C Y +A X +B X +A Y +C Y +B Y +A Y +B Y +B Z +A Y +B Z +B X +A Y +B X +A Y +C Y +A Y +B X +B Z +A Y +A Y +A Y +A X +A Y +A Z +C Z +A Y +B Z +A Y +B X +B X +A Y +C Y +C Y +A Y +A Y +B Y +A Y +C Z +B Z +C Y +B X +A Y +B Z +A Y +B X +C Y +B X +A Y +A Y +B X +B Z +A Y +B Z +C Y +B X +A Y +B Z +A Y +B Z +B Z +B Z +A Y +A Y +A Y \ No newline at end of file diff --git a/2022/2/part1.ts b/2022/2/part1.ts new file mode 100644 index 0000000..ae3e19b --- /dev/null +++ b/2022/2/part1.ts @@ -0,0 +1,39 @@ +const input = await Deno.readTextFile('./input.txt'); + +const values = { + A: 1, + B: 2, + C: 3, + X: 1, + Y: 2, + Z: 3 +}; +const userMap = { + A: "R", + B: "P", + C: "S", + X: "R", + Y: "P", + Z: "S" +}; + +let score = 0; +for(const line of input.split("\n")) { + const opponent = line[0] as (keyof typeof values); + const player = line[2] as (keyof typeof values); + const ov = values[opponent]; + const pv = values[player]; + + score += values[player]; + + // simple rock paper scissors + if(ov === pv) { + score += 3; + } else if(pv - 1 === ov) { + score += 6; + } else if(pv + 2 === ov) { + score += 6; + } +} + +console.log(score); \ No newline at end of file diff --git a/2022/2/part2.ts b/2022/2/part2.ts new file mode 100644 index 0000000..e0c9d4a --- /dev/null +++ b/2022/2/part2.ts @@ -0,0 +1,75 @@ +const input = await Deno.readTextFile('./input.txt'); + +const playerValues = { + A: 1, + B: 2, + C: 3, +}; +const userMap = { + A: "R", + B: "P", + C: "S", + + X: "Lose", + Y: "Draw", + Z: "Win" +}; + +const resultValues = { + X: 0, + Y: 3, + Z: 6 +} + +function mapFromValue(value: number) { + return userMap[Object.entries(playerValues).find(([_, val]) => val === value)![0] as keyof typeof playerValues]; +} +function mapResultFromValue(value: number) { + return userMap[Object.entries(resultValues).find(([_, val]) => val === value)![0] as keyof typeof resultValues]; +} + +function log(...args: any[]) { + console.log(args.join("\t")); +} + +function logResult(pv: number, ov: number, rv: number, score: number) { + log(mapResultFromValue(rv), pv + " " + mapFromValue(pv), ov + " " + mapFromValue(ov), rv, rv+pv, score); +} + +log("state", "pv", "ov", "result", "score", "totalScore"); + +let score = 0; +for(const line of input.split("\n")) { + const opponent = line[0] as (keyof typeof playerValues); + const result = line[2] as (keyof typeof resultValues); + const ov = playerValues[opponent]; + + score += resultValues[result]; + + // simple rock paper scissors + if(result === "Y") { + // need to draw + score += playerValues[opponent]; + logResult(ov, ov, resultValues[result], score); + } else if(result === "X") { + // need to win + if(ov === 1) { + score += 3; + logResult(ov, 3, resultValues[result], score); + } else { + score += ov - 1; + logResult(ov, ov - 1, resultValues[result], score); + } + } else { + // need to lose + if(ov === 3) { + score += 1; + logResult(ov, 1, resultValues[result], score); + } else { + score += ov + 1; + logResult(ov, ov + 1, resultValues[result], score); + } + } +} + +console.log(score); \ No newline at end of file diff --git a/2022/2/testinput.txt b/2022/2/testinput.txt new file mode 100644 index 0000000..25097e8 --- /dev/null +++ b/2022/2/testinput.txt @@ -0,0 +1,3 @@ +A Y +B X +C Z \ No newline at end of file diff --git a/2022/3/input b/2022/3/input new file mode 100644 index 0000000..1496b62 --- /dev/null +++ b/2022/3/input @@ -0,0 +1,300 @@ +MVWpzTTrTFNNLtssjV +hRJncnJCnhPCnBSbCQRhhQRPFHmsbHLzbLNHsjNNFmGGGsGF +lSBQJBBBBcnccnQvBnPQznfrgwlrTZfDwTfWqrrpgMpw +sRPgrzSgrSbfTrgspBPsDWWTmdnvdZWZwTmwvdmd +tVGpCGqCGjlHcNGVNHZDmnZMWdWMWCdZDvnZ +HqpQptLlclLGtlpcjHNhQqfRhrSBrrbfbrSRrsPfBSgg +JpjLbQbFPBjDBBJLWltglfBfhhlcctht +vNFmsdFsnmzGtWvgzhzc +rqwRCCqmCTqHCnqRNTNFsJVMQSjLRbbVVbjQVLbLSV +mLNNCNDwBwDnmCwnJwLRvdlqZclRccsgvcZndc +QWMtVWbpVlgHHcgMHs +VsTVWhThsVQWzjtQPpVWjWbpwJNCJDCzSNNCCCSfmfBCSGLL +NbSfHnwDvwwfHwwQsHbWPgrsZsZjRPLRgLWhWP +lmMlTGFzVmzqjGLLZWWGhrCh +qFclMprqmrvbcnwDQtNQ +tWQZFvvtWQWbqQQggZZLvpLrpzDrmGDmmDHPzPzHrfnHTG +NMlhlTMccTCVBlRNHzJnzDDmnJmnGGBf +NMMSSSSSlNVMdjdNSNNhFwTbvbLqjbtLwWQwZqgg +jPwcJwRmmhJpbhNJVgDbrHzzzQzzBQHg +tdZqlCnnnlvZCqlnlCSqZdFCHGDBgzsDzssBtHGLQtrHsssL +TZZFSdrdlZMFZRMwMPmNcwNmwm +nsdhzmDBGQWQPvJPjbbW +gCgBqCNpMHTwgwqMPRJJTtWjbFRJFJvP +ZlCwBrwgmzhGzDrd +sTBHfcnBTnqHRvqPgFFbLtrQTPLjjm +GWzpwSJSpbwbNNGJPQrrtrrrrgzLtjzm +NNSlCCdplWwplCwSndnssdZfqVbHvfqc +rrfHgqnlllRrDgrCbQfszMPtmzPQzFsFMQ +JJLGVGjcwVcPQNNNtRPmLM +WThVJJWJBdGwBpBTqDrSRCCggShqbSCb +TbCqzqzmbCffzDbHRddLbdRFRS +ZmvZJPjPwwWNZJGtWSDRRDFWSLhhhMVVWL +ZwplGwmptNjZnjvnGGPjJlZppTrTsCczfggBgfgfggCsBrqr +gMBBbfBbBMfnMsvRvWJhDsQW +ZZqHLzczjjsLzlpjqTprNJvhQpRvtRJJQrtQtJ +llZlzZZzPZZqsTZscHczfnSwSPSwwgSBwwSnPwnf +chMtcPPgQtthqgvczhMTcCSBLBlGpsFnBnnsGvLplSFG +bhRmJWDRmHSmFGBnGBps +jdDZWbrDdDbbdbDrRRWwRjZRVqztCzqtcThcTQtgqVMMVzjq +flNmNHgcZwTzRLzMLRPlzz +nntqBJtFbbCbBVCnBtFjJjhVhLzLvRLvgRRvPvpMpvpp +CgJWjJQDjgBtnGNGfcssNfcwNW +MrMpMrGBznjPMGCmCrrjdwndfJLQNfdLQNdNggdL +sJVcZqvhZtVqhDFFsDJslcdwgwvwQwwQNbbTbwfLLTgL +RDDRcsSsstJstVDDqctszzmRmGjpjBRHPmmGHGrj +tdplZtlrBGwTlLQQ +sfsPPvNhWLQBhGQG +zPVfzVbbMcscvVfzzNgcJHnJZgtrrndJqjJqndrL +nglLjRCCHLLCnNCLHQnFNQmmVMbVmwMwlMwMMMWwBTsT +cqtfcqZpzhSvvBfWwbvrbT +PPqpDSqcSJPdPhtPtqZcpPtGjFRFFFNLJFGRgjFbGRNbHn +gjtRSLMqLdSgLMCltTSDQcQQqhDcfcfrWDhWrr +GwFZCwNzFJsPmFFmZmPPNhvDDfDWWmpvQWWfVDQppW +swNGZbPBGwnCgBBlBljl +BsrDsnQGwFFQQtfNTBNSffBgBt +VJlhWVLlRppLQZTCbtZTttgJ +ppLqqRhQdRPhqPVhdPjhljqHFnGnzFrjFFDznHFHrmwwnH +CJMmmJLmlshCCdmzjHjPWztgdnjttt +GwZvGwrgTcFpzHWjnT +GbqrvrRwbrbGbwwZBbgfhmJMmsDJhNRfLChhCh +CfgfjCLCgfgFgBhBsccswQwtsQHvBBtc +SbSMGbnmDMGJWmRmDmvzwtcscWtQzsrPsvHc +DbJdNpJSnMSJmpSSNVqgqgTTFVQTFqdZLq +MBMCmlllPSSlmmPPjCMpPgggJcnZgntJsDvHsDZt +hrNzhrRNbrhbGRbfpVLRGNqqngvnttngJctgDZJGcZvHvZnc +LTTzVqppSmwdTmQW +mmlBQmLbsbmRnFnwlqqprF +dZScZSZSdHcNMDcJwLqRfppzpzfTpHfF +JLWJLJJJdMmGtgCWjQjt +PPMzpVDblwGVMMzDLLjrcrjdzjdTzLjd +RRcCJRcNQRBqtCFBRJJsZWBWrjLWLHZZWndBLWjh +qQQtttNqsqqtJRgqQfcpcgDcbggplGbfMp +QmmSTQPmLSmjpczMJtwPzg +BHHHdwdvDpllvctjZv +HdrDHNfrrBDGGBhBNfHNsLFqmbRQSwqmGTLnTbSF +gcMmgRQPqqPPsgjFSvctCHvHllSSHcvd +JTWfZwhTwzbWwTFTrZnTrDDlDSVtVHLVShtvSHvlHL +bWbWBfzTfwrWJNbTrnzfTwJFpmMQgqsFRsQGqRMggPmPBG +GqCWpGGLpmpWjbSDGjGGmwCzZlvMBTrCvsrlwwswCl +FPFHFVdJgQHJZnslrgvsTrwMlNgw +hQVchcdcZZpZqcDG +JbBRgBsRffgPPFQttQvQQMvG +dmNZgmZVtGTNtNGC +ZqqndLZnccqRbsrgpggsBc +DDvMVmTjwFWPBBTzBF +cqnggcbNNCqbQQqbZbpfQpqgRWlFhLRBhRzRPLFJhlJBfPLh +dpscpcncbbqcpMVSvSrPDMsrjr +hGCGZmVRRcMVsGMtmZWssmFLzbFblnnzfmqbfnzNNb +wjrSPBJdSjjDrggpSJpdrSnlFNlzLTnqNLqqpbqqfMln +dMwPBHPPJHDdvrBBhshWCGcsQRcHRZGV +vdHwhqdtLdVnHBZbFBFzbBPS +TmNCLNDpWfCNmpCgTWNTDMMZlzSggBMzlZlMBlBbZZ +NQfWcscDNQrhqvGLrdhVjh +lZLqzzqvgrCRcQcCLD +HSVVwNTJzwVNTDQrRrrdrBwdhd +TpNTzsfSTVsSpHVppzFpgvvlqZWZPMvMjPPGGsgP +BCMLshLdLDDCgwFRwHHqqRqRWd +QnSqQlGSfpQzTQJNTPNwNPFRFcccHc +mfJJmztnQpGpvnSzGrsqgrhrBBhqjBrthL +BSlmzmlvdNnlQlQQJnJHRVFVFVVqMtqRMfSfCw +WBPsDPBBjfssFHMRRq +DLWpGhbPjbhZrhZDnBQgdNZmQNgmvdzg +WWvgBFgHWChBzgBFbjbtPtnPrsHlsRMrwRrMRR +SGfNpfdGfVpVSGGppSDdwRwclMlfPMwccsntPqPw +TVdpQDSpQZJpVpDQQFBbthvmWzmgvhbjzJ +VVCCbzqdbzhFHvbdhZFPmhCPSNRNGSrPJfTNRSGJfGwPST +LngtBnlcnDvLcTTRfTTwRtGNTG +DpnBjMpLlLDQWDgvpLvbqzmbjzVjVHqbFFqbFq +SbzMbNQQSDdmvqqzdSlWFpwZnvpFWWllpFww +CjLPTPjjLCPtBCLJjBLPLBTFsFFgfwwpZgplpgFnWWRl +nPncrBHGnmrbdmdmNN +FnlblGlTTbNVLVtRvQQvgqRQBCvgNr +DPMDMpMHmnzjPqDhQWvvQvhghq +zMMcddznsjFTldVGlFGT +cLSNGLhmRRVmlVCq +HvzbQBzBMQMpQDpCSlSVZRSCqV +QwWznWnTbQSMMJQHnvwbWjrhNhLFgsGNNrFLNnFNhd +dBrWNQWWcTNqqnNN +bPlmgRgRghlCVlbhwZccCZjZqvmqvmTTvGqmJTvqnGTGvLLJ +DCDZhjllcpDMrSQS +ddtNNTFTwRzGRGCwqnBMjlqMHMfqnB +hDpPsQLLSprhnHVhqhVfHM +QWLWDQZpgpWbQgfspGGRdcGcCcCcztTGZC +GGHFdGwFlswcFtnvTfjMjBFfNBjNBZ +JWmSJLPSRprWWPWVMMVQpZfBvvfQtj +RzPSPDbDDhbhPDLRhCgGHHccsqGCqqtHzG +dbSdptWddDMNtdFvttFclqMTZJlJTlMZqJTJTqjC +BzfwRzrwPzfzLNGmZZCZBTGBqqlH +hVNVQPNQQQVLPwhRrQwgWWvFdDsFWSbdWgdFSFDb +hhSnmhtZSFSqZBJSSqqmJJRHPPLgHtPcGGGcWGtvvHwgvG +fCMpfTQjTrzrzCQMsQdHGHvPGPwLppPRvWPLLc +MdTzCsCMzNzDCTjlmNhRmRnZBllRVh +RrFglccgBVVvFNvCvWlgmDbbDfQDtCdjjDbDwmZD +STnMqSLHJhHHnqLqtnBndbBdfQQZDtZD +GHJPTBsTSsMMSpSBHJFNlWzcvFlzsVzvzgsv +lplNdrVrVrWMMVcJfcDDzbqCCpDL +SSSgvBRSjggPgzvTTRHTvFnfJLbcLsCDLnCLDCcJBsJq +GmHjjRwvHSjHTRjrlZrNMzVMhVrmVW +gdtFtgStSbHCbHMPZrFLPLrVlrVZrP +hQnjMGfDqTvzvpBjVVjPRLRRjJ +QmsQmhvvMtssHtWw +RNjTGSCLJCGdRqMRFvMrfzMvzz +ZpcWcVDpWBmWQMZZpZDpwBcznrshtntvfvhfFtzmvnzvhf +WHHHcVWgQVCbCllbgMLN +ZjjdJHSdSzvcZFMhhhDqDHtthw +rNTlNqVWTmRPlshsDPDlph +WbTNGNmQBRQbRNQgNGmCLdvvjzcCSBqLcLnScL +bZwpSpBvSHCBqNzpdFffqQft +nWRnGRnVnljmlDnzdPfQfdcQPWWfNq +dmRDGMMlDmnVjgMlhBSwCbCgwHbBHhvv +NwqLgLBLgnwNNBGpgsQsddhhpQQg +JcztcZnzVtZvnVcJMTvTJtWtppsQHGdQhhHHQsPhWdPS +fJTJnMmvZvMvRDqFblNBNNjlBf +drZVzZzzNWWzwwTWTZrjWcLCqnRqNnLNLqCqnsPPRL +JhlBgvHBBLnwMBqDwC +GmGFSHmhJSGJwgFJmwJhJhgQVWVdbSWZQzZTrWtZzjzjTz +wPGRPpnzgwwGgLddFBFrnrnJdc +jCsVclQWmCTrJJddrdFs +lWjlCqfmlWccpGPPSgcf +hCThCzTdPcPhzqTzMfVfHrhMMmhVHgVM +lJSJNqwJsZBSsSBFsMprDmFmFDfDDHgHDf +JNGQsSSNGsbZZZSBwZLPtdLjttnqPCbtPbjC +vnlWNpbrNrpShhQDLRLB +MzCjPgffVTVgCJSRQhBdRdJS +VPHcfcBfTzVMTttMzMfgzMfHvrllWvlnvNvlmGwWNwwNmw +BwwsqPJqwBssLlFqLRCDzWwzDGRGGWfSRG +vTtmmthvpphpnNgNvvpvRrDCddDQrCQCzCDrCfnf +pppccNpTVVlqssHHVzBH +HWHphZWVWvMZNvpMtfJZgssffsjJgBlslJ +RLmrFFnGFrFFrrFCRwCrLNPwqfjSJjqJSJBbsqjbbsblfq +LnFLPPGLrGNRQPmndLzPmPmpcDcMHhcMhVHvczcpHHchcV +zwqqvNDVggwqVfNQRlszFBsCCJFtFlFPsz +MSrrGTZPGSSMSjPbTmtlHBBFrFHFsHlsJsct +MnmMPMSZZGSZWmSjnWgfqdgVQDvnqvRDggDV +SQCSBShsQnSsSJswsNpVppPPMVpGpnDVgg +WWjHvmtWZrwvtzzjTTRPrRRrMVNVVGgVGpGR +lTvWjWLfWwbJCQqBSlbB +cjPChhswrNVtMZJjVM +pfvTFvTzLBFndGTlJmVJZmNlCMGtCJ +nfvFTfpbBFdSFpTLswsWDbchwHCWHrbw +lNdNPLJJLHHHlpPJcvtVcsBBrrBvBqrVrC +wDTbwTQRZTMWsVWtmWhhTr +nzRMbSZtMQDnpzzJHLHNflHP +HrwwmwcRbmwcbrrTbwwcrTJWLlPshllhLccqLhnnlljhZhjZ +GMFMSNSpCBSFSdGpNFpBznLlzzhzshlGhhqPhGGL +nFFSCCSSfttBdddDQNDBQpSSrbrmWJwrHfJHWJrbVwWHrgVr +SdddNNCmpNNDhMswhsmbhvHM +frtzqqqFjgrWfgfqtthsnvRHZRRvFlhnvRZb +rtrgqzzrbWtqLGLLtBWzfGcTNCCVGpSNDppTJJVddNpPSG +WWJvJvBgpHSHScQRQSVQLzqL +ddZTlZGZVfQhZRLLMqsR +rPfwrGGrFjjNTGNCCVBggDJHmNDvbmmpmNJJ +bbGrJPRVPtfsVfFlMjBV +WQzhQQQNZQCWNnQDhzWdNjFZggmlHjjmMmMFjFHpMs +CzQCSWDTWhNhzWhTGJwtRRqTblwcclvP +HLDvZgZldDTnLLsswMpVLn +FNVQzQSPznCMmpBwCF +SqfJPfttqffjJPVlhvhZZtvdVDRZ +jVsLvHvvdrSjpJFsGzmnmltnml +nTNTRCTBTmmmFPMJ +CQnCggWQDgBrrSqHjDDfSS +ZpNlrZNcmctZbcZlmcmZhhpPvPHvwBMHJPMTMHBTFJvJ +zmdCnGzGRnLDjQnzPvMFVHMVMLTVwMJv +GGjqssqgzCnCzQsshcffmrbNrrNZtW +DNpTwhpLlWMDWNMhbJjGttJFHgDcjtjG +wqQrdCdqbFtCtJtJ +vffdrwfPrsmqVBBWRVlRRlTSTWSTlR +ZqTCTQQTFvsDSsBDvWBd +hfBLzRLtHHLDDWRRWWDNbd +pHhhnPzLfJcJhzHLzZjcmwCTqTQgwBqqwg +WJHgqgFqrVrqgqCHwsJHHVFZzppZFGGfTtpcfbdpzzpd +RvNMQlMBhwMdMfcpbM +LLRQNBDSSNSwmDDBQRBRBCHsgrgHLVnJVqLsJsnCPJ +BFhGsDsDsBtsPGtQDrrMdbdrffrffbJbRt +cVVqScVSWWvVWgVZjnrHJgLfdrLrnrLLLQ +WmvqNZzzzZSvVzqvcccSzSmqFGCDTGBPQGDhwCDhNDCwPBQp +RqTlHHTTrQqHlTqsrVDqHbrZFZwhpBhphZBFhZpDpLLLfB +nSzGCGdvzdGNPBQQBfhLZfFwFN +WPPPCJMtJSQMJQCCWMJslRrrRgrMRbRqVqqTRR +BMtfLsLZfTPmCtGWZrZqJNJqvpZdWr +bRwgHhhRhbbSRbjSglcgwHHJWPcJdPrnNWrnqnWVVqpdnq +bgjlSgDljHhjgwMPCLPFDMFPGGBC +zJWjczcWjSWghZgzgSSSZflTqwlfqTTbnQwhdTnMdl +NrGVCmNpHFPsrJFbFQMJbJdQTn +JvrtpHHmrCGJCJmNvNpVCsHVgzWgWDDcjjgjDRStWWDLSgzz +HzdFsBBVsfnTfsPmPtDcZqtMhDDz +wrjjRQLlwwwrJQLQbCrbwlJDSlcSDtPZmPSDclWDtcDqWh +RwgprLbNLrLbCCpRCrJLRLFfsGTNNZHBZnnBvvfffnvd +MlqqlWZclnPtZtDSSvwQQjgQpNQSRM +rLJTsBrsJBhshTNNwSQBWNvNgNSg +JbbbChCHsJzHzbWdGHThlFnnPqlPlGPPGncPtFlD +WcMVvwNNvjRcwTQwVcpNRcspPCFtbPztbCTFmtPtCJtbCzmz +grrgDhrnDLnLrdfdLZlLZhmCqzlCbtJlSSStFmttqsJJ +GHHDdgnLDDhrrrgZrZgLNVVVVcRNvcwjWvpWGcRs +qhGhPSJtGhGtJtvNjnJjnvmNQQmj +sRBFlbZsrdBRRGbVGBDwDMDQwQwMNDjjjVNV +CzCflffbBszdBCbdbrtLcfhhgHLGgPccLSPh +zShhHFzgJWFVFFHFHhRPNjwqPLPtLbtrbwVjjr +ssnvTmvCDfpCZTnsfCqwNLNPwbJqNJPwrjZw +vDvpmcnmnBDnsnJTJmQWMHMWzScFggRFRFSW +nnVHHPLrnpssLnrpLRnHtHrjJcCdzCjcDzMzdqwRdjdDcJ +WWTGQQzSGWlTmBbDJJjwMJjcvvlDjw +TGTWBTWmTbgzghZhgzBgpVNrZPPfntfNrVLNNnZP +TqhQnqqLnnqddttNqQWdtqQmppSSFFClRmzmFZFLSmSlFF +BcHjGclVPPBrVrcjrGGDrMgcmmRJbRCFzpZmSDRpRZJJmRzz +ccGjMgvPvsHMgvBHWlhQdqwtllwNdThs +WjddwRGgHRRdMbrwHRwWjHDtDZplslnJnZrsDvCprJPJ +QSLLFqQBffCFststlFnn +CSSmSqzmVVjWMdMjVWgT +lTfQRhVpRzjThpRQTTTlvHrvBvHnPMHgHqHJvn +cGDctCwCdDCGSFcJsFJsFBvgnMBrHvvrqngHgmgssg +SCbSDSFScNpfbRVVJf +RrwmdwMVjMjMTghDWNTJDpWfWG +SbPvNbvbSsPbSvZsPJtJWhHpGGGgJWgJ +lSFvsLNcqzqLrwnFQMnVdmnn +FgCJFTWntWTFtPLmJmmQJmCMMpljWZBwlGMljjjlwvwBvZ +SDSbVbdScSDzbLZMBrjlZpVrZp +ccsSDhSDffzbLNscfcfDcgqhPgTntqmnQmCgtgQCTJ +VnCnrHnPPrCwHmVWtqfMQQqzCqffCZ +DDbDcJJJbpJDGppFpqGZRWfGfddzMWtfWM +tTTglDcgFjwNPHPPwHlH +bMGbqqgPqqVVMGnbVqSMmRfPcJmCTPDDLJDTCmDm +FFjjZvFRsFCctmtvtJWD +wwFhHjQjwQhZrFjQbngglGbRMnSzgbRH +GPTTJSgTPrPPmcTPpdJsGGGjqbRvqlztqlRqMzGjRv +LwnfWLNwwHHQwHnjbbMMjWttqtMmMj +mhwfBDhnQTpJBcBJps +HQQHwMfwlltzMlVljQhVjjHPPPFGPFcCGprPTPPfDrDcGf +pRLdvRvJgqLRBSJCcvFnCDTPTcTGnT +LBLSJbRSLSqbSdBdgJRRqRbwjHHblQttlwtwhzpjMlwhpw +NWLNSNSDtgSgghgdcwccmwGntwclnT +FRCQzJRsvfVVjvzFJfQnffwCcmdwmHmmHmTwmCmdGBcq +sjfJvjfzPRPzvPPVFMssvSLhSSWrMZnSDNrDDhSLZZ +FvLpSLtCfPCWhRSZZMZJSW +jbbjwbHjQmHjHsQrQFMnwTnJznwRzhJRnNTM +gVrjqGqjgrgsFGLDtDBLLfLB +cgTvRWWLVScRWflNJJDfVJmVlG +nPPnnmqjmZHCHBHFdfwNsDhzzfJznhsfhw +bddmQqQjpdFCQWtLQMMSvMMQRS +wjnmPwCgjPnRlwnmvmvvPnTwbSSLLvsLDWdbbWzvsLzWbzbz +NqrGqFHqJlfhhJGbszdWQzzLNtQDzz +FfHFpphrJqJrpGBffcTnBjCnVTMjMRCnVljT +SrfSJGJpSgMprMHdhBGhsdsshdGsmm +nRTRPvQllQlblwvCjTwLTnvBqdhmHDPVsmDmdqshDVhNsP +lbRFHvRwlnlLbnbjLbLjLCzggSpWfMFzSZpzZFJJWpJr +vNLlFldlvPtHFPHQRt +jcpRsScDgshzjqzfVStntBTPMTnmWttntMpp +fSssgVjDsbqSVbCJClLRJLCZRZZb +wnHmCJccDDcrNnrNMRDtTzpTlMpTzpBp +PjSPPGjWjLzTjjMtzzMj +hWvLLFWvHvczVcVn +jgtngnnhMthcnLjMgCZvChDsmdNCvNNZDN +bWqFPbFbLzRFfZBNDNNPZsNd +RbJzGpzVLLLWHHQgTMwcTptQ +sJBhsMWQnhhrFBsFhlQQMfrDCDpLlVCddjTdDDpqDLTLdj +tZHHSRmNHcgmNzpDPJtttqjLqdpL +HbNbZmcHQJbsFWvs +VgPNWGbgSjGjfhRRFfzThtmtzF +qLCQJBqqcPPmLHhHFz +CcJvplQswNgZlNPSbS \ No newline at end of file diff --git a/2022/3/part1.ts b/2022/3/part1.ts new file mode 100644 index 0000000..13a6337 --- /dev/null +++ b/2022/3/part1.ts @@ -0,0 +1,17 @@ + +const input = Deno.readTextFileSync("input"); + +const priority = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""); + +let sum = 0; +for(const line of input.split("\n")) { + const firstHalf = line.slice(0, line.length / 2); + const secondHalf = line.slice(line.length / 2); + console.log(firstHalf, secondHalf, firstHalf.length, secondHalf.length); + + const sharedLetter = firstHalf.split("").find((letter) => secondHalf.includes(letter)); + sum += priority.indexOf(sharedLetter!) + 1; + console.log(sharedLetter, priority.indexOf(sharedLetter!) + 1); +} + +console.log(sum) \ No newline at end of file diff --git a/2022/3/part2.ts b/2022/3/part2.ts new file mode 100644 index 0000000..59003be --- /dev/null +++ b/2022/3/part2.ts @@ -0,0 +1,17 @@ + +const input = Deno.readTextFileSync("input"); + +const priority = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""); + +let sum = 0; +const lines = input.split("\n"); +for(let i = 0; i < lines.length; i += 3) { + const first = lines[i]; + const second = lines[i + 1]; + const third = lines[i + 2]; + + const sharedLetter = first.split("").find((letter) => second.includes(letter) && third.includes(letter)); + sum += priority.indexOf(sharedLetter!) + 1; +} + +console.log(sum) \ No newline at end of file diff --git a/2022/3/testinput b/2022/3/testinput new file mode 100644 index 0000000..9919ffa --- /dev/null +++ b/2022/3/testinput @@ -0,0 +1,6 @@ +vJrwpWtwJgWrhcsFMMfFFhFp +jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL +PmmdzqPrVvPwwTWBwg +wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn +ttgJtRGJQctTZtZT +CrZsJsPPZsGzwwsLwLmpwMDw \ No newline at end of file diff --git a/2022/4/input b/2022/4/input new file mode 100644 index 0000000..f0f5469 --- /dev/null +++ b/2022/4/input @@ -0,0 +1,1000 @@ +4-90,1-4 +80-94,80-81 +1-97,96-99 +20-87,20-88 +84-84,83-88 +9-75,10-75 +7-25,24-48 +10-99,11-98 +4-98,1-1 +20-42,1-42 +5-31,6-31 +9-14,15-84 +87-98,22-81 +44-69,45-68 +2-2,2-83 +16-76,69-75 +43-71,43-91 +30-95,29-29 +1-1,3-87 +22-90,22-80 +86-90,91-98 +11-20,10-20 +59-67,60-79 +20-75,20-95 +26-57,27-56 +7-71,6-72 +10-78,1-6 +59-67,31-68 +91-95,7-81 +15-60,14-14 +5-54,6-53 +88-97,91-96 +46-70,45-69 +65-79,64-86 +74-74,25-73 +1-95,95-98 +8-70,70-71 +1-2,1-1 +35-43,38-60 +11-81,12-12 +1-1,1-90 +5-10,4-23 +87-97,52-96 +4-98,5-98 +1-3,7-90 +91-93,10-92 +46-46,46-89 +10-99,10-97 +34-50,51-51 +26-72,42-73 +9-69,9-10 +78-85,22-79 +65-72,64-78 +52-93,51-52 +4-22,5-22 +33-34,11-55 +46-91,47-90 +78-96,12-96 +16-98,15-98 +28-78,6-77 +7-15,7-16 +35-95,13-43 +99-99,73-92 +34-70,38-69 +4-74,92-96 +86-90,52-90 +15-45,15-44 +11-53,54-86 +21-78,16-21 +30-35,32-34 +49-72,71-78 +77-94,35-63 +6-47,17-36 +7-96,6-94 +50-51,50-65 +15-75,14-76 +19-88,12-87 +13-64,4-63 +53-64,52-65 +69-79,79-86 +13-34,13-14 +48-57,48-85 +66-80,2-79 +11-82,3-6 +29-91,29-84 +7-16,16-36 +45-86,44-87 +86-86,21-86 +21-87,22-86 +6-79,12-79 +3-64,98-98 +44-69,45-68 +19-94,95-95 +5-92,5-84 +83-85,84-85 +16-88,16-89 +86-91,29-86 +27-85,86-86 +48-60,48-69 +1-3,3-82 +25-25,40-46 +52-77,51-76 +35-38,36-38 +75-75,5-76 +62-77,63-69 +21-83,22-91 +12-12,12-93 +30-82,31-41 +17-62,18-63 +5-97,3-5 +49-96,50-96 +46-48,46-50 +22-22,14-21 +5-98,4-98 +91-92,16-92 +1-97,98-99 +85-97,73-96 +45-62,11-50 +3-14,13-73 +8-75,9-76 +32-58,33-53 +3-68,65-68 +6-10,6-7 +2-2,2-26 +6-96,5-95 +12-90,53-90 +48-86,49-59 +4-89,4-95 +44-44,45-54 +43-65,42-89 +95-95,5-79 +51-53,37-52 +31-99,30-97 +3-83,2-78 +32-73,32-33 +68-83,68-79 +4-17,16-53 +25-64,24-26 +8-92,8-93 +3-77,3-78 +53-77,29-77 +77-99,76-97 +46-88,49-83 +52-63,53-64 +25-78,14-84 +5-39,4-39 +48-84,49-83 +14-78,52-83 +27-87,35-95 +11-48,6-48 +3-99,1-34 +20-25,28-67 +33-61,34-83 +11-21,20-32 +30-39,10-39 +22-25,29-51 +18-88,32-89 +12-87,12-13 +49-76,29-32 +17-52,77-92 +72-79,65-79 +4-53,2-2 +61-91,62-91 +6-69,70-70 +2-96,96-99 +20-68,19-68 +60-98,59-59 +31-34,30-34 +2-22,19-21 +3-80,79-80 +72-72,71-71 +1-92,1-1 +67-86,48-94 +42-43,43-80 +3-89,89-90 +5-68,3-69 +7-7,6-65 +78-86,78-81 +54-85,85-85 +9-64,10-10 +39-96,38-38 +60-62,18-61 +20-47,47-81 +2-97,98-99 +18-83,83-83 +12-93,12-13 +4-4,3-74 +77-96,11-62 +2-81,2-80 +53-59,52-59 +55-94,54-90 +29-30,29-42 +52-69,64-69 +9-90,3-10 +16-39,15-61 +74-76,38-75 +12-14,22-43 +12-90,11-11 +5-94,6-93 +6-18,17-23 +8-8,8-18 +27-42,26-41 +8-77,7-7 +46-47,47-47 +1-57,21-29 +11-87,2-2 +45-45,46-46 +64-65,64-87 +36-36,37-74 +34-56,38-56 +66-77,67-98 +1-86,2-21 +11-30,12-29 +98-99,31-97 +5-5,10-71 +18-83,11-19 +8-38,3-8 +2-79,48-78 +10-14,9-24 +16-91,16-96 +3-3,4-99 +25-35,29-84 +49-70,50-74 +48-68,49-49 +61-61,57-61 +40-79,50-78 +56-83,27-84 +82-92,54-82 +50-59,59-69 +52-84,52-83 +17-66,15-65 +2-91,3-3 +13-47,12-88 +62-80,61-70 +11-71,4-8 +35-88,36-88 +9-55,5-10 +31-53,30-91 +22-36,35-97 +5-64,4-65 +61-61,4-62 +10-78,16-73 +6-81,5-82 +10-42,9-75 +17-36,16-96 +51-83,85-85 +35-68,67-68 +46-61,19-60 +12-55,10-56 +3-90,9-91 +63-97,98-99 +32-93,33-52 +66-71,67-67 +22-82,82-83 +6-91,7-92 +76-97,98-99 +33-86,53-85 +37-83,37-82 +5-86,64-87 +29-52,40-51 +60-76,76-77 +20-40,56-58 +14-88,3-89 +15-15,16-88 +96-99,6-97 +55-76,54-76 +22-88,28-81 +21-21,21-36 +2-92,1-93 +13-36,12-35 +50-81,18-51 +46-48,1-47 +17-82,82-84 +7-9,12-88 +16-94,16-58 +18-52,17-96 +6-82,7-82 +14-94,48-93 +12-76,9-13 +20-98,21-96 +69-95,16-92 +2-3,2-93 +28-38,27-39 +11-65,11-64 +43-44,43-63 +1-1,4-98 +3-3,3-9 +63-89,21-63 +6-48,5-48 +13-51,13-50 +90-96,53-95 +9-44,30-44 +61-74,61-62 +47-87,48-83 +26-26,25-96 +58-95,57-95 +24-81,80-81 +9-95,3-94 +13-31,14-32 +14-89,89-89 +19-29,18-28 +7-41,4-7 +63-73,63-64 +3-11,10-95 +36-41,26-47 +19-79,18-80 +46-86,30-45 +84-91,84-87 +1-76,1-88 +43-80,1-3 +3-8,47-77 +54-54,21-55 +3-83,82-83 +54-72,15-55 +10-49,62-71 +7-98,10-93 +89-92,8-93 +67-68,24-67 +43-80,44-84 +35-51,88-99 +4-99,3-98 +16-63,8-64 +80-99,81-99 +14-95,13-96 +13-84,12-13 +19-80,18-81 +2-91,3-86 +59-59,1-58 +23-90,10-21 +99-99,3-96 +7-7,3-8 +66-95,24-95 +27-86,26-86 +45-96,48-95 +33-56,29-34 +43-43,44-91 +2-96,3-97 +16-16,15-77 +61-61,61-71 +17-73,73-74 +64-86,63-86 +21-23,42-46 +29-30,19-30 +12-96,2-97 +25-25,25-73 +15-21,14-20 +82-90,15-69 +5-29,6-29 +2-95,82-96 +19-56,6-55 +24-56,24-52 +5-6,5-94 +40-97,40-40 +79-99,55-80 +9-98,97-99 +16-98,9-99 +70-71,24-70 +13-34,14-33 +40-41,40-51 +6-98,7-97 +16-77,55-58 +16-24,9-19 +41-70,42-70 +6-98,99-99 +77-77,40-76 +34-77,34-87 +74-92,29-74 +5-33,4-96 +14-83,1-82 +5-40,5-30 +72-72,11-71 +45-45,44-58 +10-10,9-72 +5-42,1-43 +11-99,10-99 +6-6,6-96 +39-59,38-60 +92-94,41-93 +1-17,3-94 +20-49,20-50 +3-26,28-54 +40-60,10-59 +24-95,55-96 +4-97,5-98 +3-93,1-93 +3-99,4-95 +60-98,17-57 +12-12,13-78 +3-34,2-99 +6-6,5-63 +3-85,4-65 +4-77,4-77 +56-56,11-55 +27-99,37-98 +7-7,7-59 +22-89,28-85 +6-39,7-96 +15-21,11-16 +51-72,13-71 +7-41,7-41 +18-28,10-27 +38-78,25-38 +32-84,32-83 +48-92,48-69 +83-84,84-84 +52-94,52-89 +33-33,31-33 +34-78,34-35 +6-97,14-96 +18-62,17-70 +12-51,13-56 +68-68,24-67 +6-19,19-63 +19-88,15-88 +44-62,45-63 +5-82,6-82 +4-89,96-99 +20-35,35-85 +39-52,38-51 +44-98,28-99 +76-78,6-76 +86-93,37-88 +63-82,12-83 +69-78,61-79 +97-98,6-98 +28-73,28-28 +11-73,10-73 +3-4,6-80 +71-75,72-75 +74-75,10-74 +5-99,4-18 +24-32,9-25 +1-8,7-80 +17-53,52-93 +13-95,12-94 +28-87,28-54 +78-89,90-93 +24-54,54-54 +11-62,10-62 +66-82,65-82 +31-94,30-94 +5-96,6-98 +90-91,27-81 +63-64,63-89 +5-63,5-5 +91-92,3-41 +65-66,60-65 +48-99,48-49 +9-96,8-9 +6-48,6-47 +4-87,3-86 +10-99,11-98 +4-79,4-4 +19-71,65-72 +3-90,3-3 +16-97,17-98 +61-98,99-99 +7-24,6-66 +76-82,77-82 +47-89,46-94 +4-91,6-70 +28-29,30-53 +54-58,55-74 +33-71,72-99 +26-26,26-43 +97-99,12-94 +30-82,99-99 +94-94,42-94 +4-98,5-98 +41-82,40-83 +1-92,97-99 +40-43,31-39 +60-96,59-68 +90-90,90-95 +22-24,22-97 +13-98,98-99 +56-86,85-85 +89-92,93-93 +80-80,4-81 +67-98,66-87 +5-97,6-97 +20-67,68-68 +6-18,4-6 +31-71,32-32 +14-25,13-39 +90-90,9-91 +4-80,51-79 +59-88,15-99 +27-76,28-28 +7-47,48-48 +15-94,16-89 +15-50,16-50 +31-56,2-32 +14-62,15-61 +9-99,9-97 +82-92,11-82 +3-33,3-32 +9-79,51-78 +63-80,36-63 +57-60,57-82 +51-53,52-89 +11-20,44-98 +41-79,36-41 +61-79,74-79 +20-55,54-70 +49-51,17-50 +15-20,15-19 +46-75,47-74 +38-65,34-39 +86-89,37-85 +4-85,3-3 +8-76,2-76 +62-73,45-73 +29-31,29-53 +76-78,25-77 +11-98,11-11 +17-93,18-94 +4-12,5-12 +15-75,18-76 +1-14,1-3 +35-98,34-99 +2-34,34-67 +18-23,18-68 +68-70,39-69 +64-86,85-87 +22-94,5-64 +12-95,13-95 +88-88,68-87 +15-82,30-50 +11-26,25-27 +12-12,11-53 +15-47,48-48 +56-63,62-83 +36-98,35-98 +29-46,30-47 +64-64,50-64 +4-67,9-67 +71-95,67-94 +58-66,57-63 +55-71,56-70 +7-10,7-11 +17-91,90-90 +81-81,41-81 +1-24,1-5 +69-98,98-98 +15-85,14-85 +75-95,33-51 +13-67,17-66 +22-46,23-63 +3-94,3-4 +11-81,81-83 +79-92,80-80 +5-79,5-80 +67-75,66-96 +51-75,76-76 +12-74,13-73 +4-11,10-65 +17-61,8-11 +63-63,9-64 +38-38,23-38 +15-89,19-80 +95-96,74-95 +79-81,63-80 +89-89,39-88 +7-41,8-41 +16-23,22-96 +7-50,8-98 +30-75,31-74 +30-30,30-89 +52-53,52-78 +15-16,21-40 +3-37,13-38 +18-61,19-32 +78-79,1-78 +40-65,66-98 +2-72,67-71 +7-9,8-88 +26-61,25-25 +49-91,49-92 +2-24,2-94 +10-43,10-44 +73-80,6-79 +65-66,66-66 +24-31,31-32 +4-23,40-58 +4-86,1-1 +1-93,1-1 +7-8,7-83 +53-53,35-52 +7-7,6-71 +8-77,76-77 +11-33,11-42 +66-66,67-67 +35-53,34-52 +23-23,23-68 +9-20,10-15 +16-74,15-83 +20-82,58-81 +19-84,82-84 +50-77,50-77 +5-7,7-71 +18-93,52-92 +77-93,89-99 +43-43,42-43 +4-64,1-83 +8-74,74-75 +29-62,29-94 +8-50,1-9 +9-99,8-61 +5-98,4-98 +17-79,79-80 +53-84,54-85 +36-78,37-79 +45-74,46-73 +43-64,44-65 +39-45,38-72 +13-32,12-96 +5-5,5-84 +66-96,67-81 +84-84,24-83 +27-66,65-67 +12-46,64-72 +34-94,95-95 +10-89,10-11 +4-72,3-71 +13-38,12-16 +15-92,92-93 +16-16,17-74 +89-89,88-88 +5-65,6-65 +63-87,64-86 +19-86,18-86 +72-72,51-73 +64-95,65-65 +15-92,15-16 +48-86,49-86 +96-98,2-97 +99-99,2-97 +52-61,51-51 +80-92,13-93 +95-97,89-96 +49-54,54-59 +63-99,62-89 +4-88,3-88 +8-56,8-56 +10-31,30-32 +44-44,26-43 +81-93,40-91 +34-60,60-61 +22-80,12-23 +46-84,78-85 +22-83,22-71 +16-98,19-94 +34-47,39-46 +1-12,73-81 +12-98,12-48 +13-91,21-59 +26-65,26-66 +33-33,33-55 +6-99,7-98 +12-12,12-67 +11-68,1-95 +82-94,6-83 +62-70,61-94 +9-9,10-76 +23-93,93-93 +65-87,64-87 +86-88,19-87 +91-92,3-96 +8-93,93-94 +4-29,4-18 +10-23,22-35 +7-18,18-56 +23-82,7-11 +60-75,39-49 +9-78,19-77 +42-86,41-41 +24-24,39-99 +92-92,4-91 +3-12,4-14 +17-65,29-66 +44-91,92-93 +3-96,2-97 +5-92,4-93 +74-76,36-75 +8-65,6-9 +11-84,78-85 +50-50,30-57 +5-77,1-2 +31-94,93-95 +40-71,41-70 +90-92,4-91 +9-66,80-87 +30-57,57-86 +26-34,27-34 +38-84,37-85 +65-74,65-66 +60-84,3-85 +4-63,3-93 +61-93,62-62 +18-24,18-19 +7-12,11-13 +60-70,60-61 +4-57,4-63 +21-30,29-62 +49-89,48-90 +9-97,96-98 +1-97,3-94 +4-93,4-94 +3-96,7-81 +2-2,2-86 +4-8,1-8 +28-33,53-82 +20-91,19-91 +1-88,20-76 +8-70,3-16 +13-63,63-71 +4-71,71-72 +14-88,89-89 +8-87,5-9 +6-63,47-62 +61-99,61-99 +22-26,21-84 +47-86,47-51 +9-15,4-14 +2-67,3-66 +22-94,23-94 +21-86,20-86 +24-68,24-64 +38-38,38-56 +43-99,33-44 +85-86,53-85 +69-69,12-69 +11-12,30-98 +28-58,25-28 +27-94,28-98 +7-94,99-99 +35-91,17-92 +92-92,19-91 +12-94,40-93 +18-82,18-19 +3-96,2-97 +43-71,44-70 +39-82,40-83 +6-52,24-52 +19-51,20-52 +26-53,48-54 +15-99,14-16 +5-12,11-97 +12-86,86-87 +27-27,26-94 +14-15,18-87 +20-46,37-90 +12-61,12-13 +25-25,19-25 +93-97,13-92 +1-10,10-11 +25-34,25-30 +53-59,54-59 +25-92,66-93 +6-6,5-40 +2-31,1-32 +5-5,6-76 +19-99,9-98 +12-92,11-91 +3-33,58-90 +19-64,33-63 +10-54,10-55 +8-8,9-90 +16-90,15-90 +82-94,82-83 +12-77,27-64 +14-37,15-36 +63-83,74-84 +7-98,7-93 +7-87,23-88 +9-95,4-9 +42-46,80-89 +7-92,8-91 +7-14,7-20 +43-91,42-42 +53-81,1-82 +8-80,6-20 +19-59,5-58 +29-90,13-29 +29-90,28-30 +89-95,18-96 +76-76,21-75 +28-97,27-97 +28-91,27-91 +5-89,12-85 +62-63,20-62 +33-90,33-98 +12-53,11-54 +31-66,67-67 +60-90,61-91 +8-8,10-83 +50-82,36-83 +54-95,55-96 +42-80,43-81 +40-40,40-75 +10-69,9-27 +43-47,26-34 +44-75,12-76 +35-36,35-97 +6-25,5-25 +4-65,2-5 +70-71,50-70 +9-95,4-9 +38-75,38-39 +72-94,8-71 +30-97,30-31 +8-87,8-40 +19-59,18-59 +3-96,1-96 +4-69,3-99 +4-7,7-98 +16-94,93-94 +8-86,9-87 +23-97,23-98 +5-89,6-6 +15-32,15-15 +8-79,2-8 +6-22,7-22 +89-91,24-90 +57-85,7-86 +54-79,53-54 +96-97,7-97 +45-45,9-44 +28-98,46-97 +40-65,66-66 +12-26,13-26 +10-10,10-76 +29-59,28-59 +17-39,16-72 +69-70,70-81 +60-61,60-64 +18-56,18-95 +21-21,21-80 +15-36,15-95 +1-98,1-1 +61-65,60-66 +80-91,80-99 +42-81,65-82 +44-87,43-90 +12-90,11-90 +5-94,6-94 +81-81,44-80 +2-37,21-47 +26-81,30-81 +29-81,97-97 +7-79,3-78 +43-74,42-73 +3-77,3-74 +2-74,1-2 +46-68,14-46 +1-58,3-78 +46-70,13-52 +92-96,32-92 +32-81,31-80 +17-97,17-98 +40-75,75-76 +22-22,22-73 +13-96,13-95 +47-70,46-70 +21-56,22-22 +7-87,3-96 +12-48,13-48 +23-84,3-24 +20-98,20-99 +8-79,6-95 +6-62,2-98 +21-28,3-28 +67-69,59-68 +16-86,14-14 +25-77,25-26 +9-34,9-35 +8-13,14-14 +8-24,8-91 +8-76,6-75 +9-78,9-10 +19-82,7-19 +83-84,62-83 +16-86,17-86 +32-32,14-31 +24-73,23-99 +5-16,5-15 +7-99,8-98 +12-94,13-91 +37-38,37-92 +3-87,3-4 +10-96,10-93 +2-77,1-76 +61-87,37-70 +2-24,80-86 +3-97,3-17 +5-74,46-58 +76-78,40-77 +7-94,7-87 +15-31,31-32 +10-96,70-98 +4-51,52-90 +48-52,52-75 +19-46,18-47 +82-97,25-96 +15-54,8-15 +90-90,89-94 +16-91,16-65 +3-97,3-99 +6-90,6-91 +75-76,1-75 +9-9,8-86 +34-34,34-36 +94-94,42-93 +7-37,6-36 +5-5,5-67 +59-84,3-90 +26-26,25-99 +44-97,96-97 +41-77,42-57 +33-79,34-80 +68-70,68-68 +68-81,67-80 +4-93,4-5 +25-42,3-26 +44-77,45-95 +38-97,96-98 +33-34,32-34 +90-93,89-89 +21-60,60-85 +44-91,20-95 +26-68,25-63 +17-18,17-73 +6-93,6-7 +26-31,27-32 +10-97,10-98 +33-84,33-92 +93-98,2-93 +39-92,39-91 +9-73,8-65 +10-89,9-62 +50-89,50-51 +35-98,99-99 +50-96,24-87 +99-99,25-96 +37-78,4-79 +2-10,10-11 +13-71,11-14 +51-76,7-76 +38-52,42-51 +10-91,3-11 +7-78,3-79 +5-7,3-3 +28-50,17-50 +39-62,4-15 +6-97,5-98 +63-91,23-99 +12-93,11-19 +52-93,73-99 +12-95,12-12 +13-28,27-84 +83-85,12-84 +26-99,26-27 +58-62,57-88 +27-43,44-44 +43-96,20-44 +34-61,59-60 +44-75,43-75 +1-99,5-93 +17-99,18-98 +84-90,85-89 +5-49,1-5 +26-74,43-74 +65-93,65-90 +18-84,11-19 +15-15,14-83 +19-97,19-96 +2-95,4-95 +84-84,85-85 +7-53,53-56 +2-2,3-60 +24-48,48-72 +1-1,1-97 +15-29,16-20 +1-20,19-50 +6-88,1-7 +14-47,13-13 +4-44,4-42 +7-98,7-12 +30-69,3-30 +73-82,81-83 +1-96,1-86 +4-4,3-48 +94-96,5-86 +29-73,29-30 +21-22,22-80 +97-98,29-98 +42-75,76-84 +86-92,85-93 +14-70,13-69 \ No newline at end of file diff --git a/2022/4/part1.ts b/2022/4/part1.ts new file mode 100644 index 0000000..0592200 --- /dev/null +++ b/2022/4/part1.ts @@ -0,0 +1,18 @@ + +const input = Deno.readTextFileSync("input"); + +let sum = 0; +for(const line of input.split("\n")) { + const [first1, first2, second1, second2] = line.split(/[^\d]/).map(t => parseInt(t)); + console.log(".".repeat(first1) + "X".repeat(first2 - first1 + 1) + ".".repeat(100-first2) + " " + first1 + "-" + first2); + console.log(".".repeat(second1) + "X".repeat(second2 - second1 + 1) + ".".repeat(100-second2) + " " + second1 + "-" + second2); + if(first1 <= second1 && first2 >= second2 || first1 >= second1 && first2 <= second2) { + sum++; + console.log(`${first1}-${first2},${second1}-${second2} yes`); + } else { + console.log(`${first1}-${first2},${second1}-${second2} no`); + } + console.log(); +} + +console.log(sum); \ No newline at end of file diff --git a/2022/4/part2.ts b/2022/4/part2.ts new file mode 100644 index 0000000..e66d639 --- /dev/null +++ b/2022/4/part2.ts @@ -0,0 +1,18 @@ + +const input = Deno.readTextFileSync("input"); + +let sum = 0; +for(const line of input.split("\n")) { + const [first1, first2, second1, second2] = line.split(/[^\d]/).map(t => parseInt(t)); + console.log(".".repeat(first1) + "X".repeat(first2 - first1 + 1) + ".".repeat(100-first2) + " " + first1 + "-" + first2); + console.log(".".repeat(second1) + "X".repeat(second2 - second1 + 1) + ".".repeat(100-second2) + " " + second1 + "-" + second2); + if(first1 >= second1 && first1 <= second2 || first2 >= second1 && first2 <= second2 || second1 >= first1 && second1 <= first2 || second2 >= first1 && second2 <= first2) { + sum++; + console.log(`${first1}-${first2},${second1}-${second2} yes`); + } else { + console.log(`${first1}-${first2},${second1}-${second2} no`); + } + console.log(); +} + +console.log(sum); \ No newline at end of file diff --git a/2022/4/testinput b/2022/4/testinput new file mode 100644 index 0000000..99a66c5 --- /dev/null +++ b/2022/4/testinput @@ -0,0 +1,6 @@ +2-4,6-8 +2-3,4-5 +5-7,7-9 +2-8,3-7 +6-6,4-6 +2-6,4-8 \ No newline at end of file diff --git a/2022/5/input b/2022/5/input new file mode 100644 index 0000000..f8e58cb --- /dev/null +++ b/2022/5/input @@ -0,0 +1,512 @@ + [F] [Q] [Q] +[B] [Q] [V] [D] [S] +[S] [P] [T] [R] [M] [D] +[J] [V] [W] [M] [F] [J] [J] +[Z] [G] [S] [W] [N] [D] [R] [T] +[V] [M] [B] [G] [S] [C] [T] [V] [S] +[D] [S] [L] [J] [L] [G] [G] [F] [R] +[G] [Z] [C] [H] [C] [R] [H] [P] [D] + 1 2 3 4 5 6 7 8 9 + +move 3 from 5 to 2 +move 3 from 8 to 4 +move 7 from 7 to 3 +move 14 from 3 to 9 +move 8 from 4 to 1 +move 1 from 7 to 5 +move 2 from 6 to 4 +move 4 from 5 to 7 +move 1 from 3 to 6 +move 3 from 4 to 3 +move 1 from 4 to 1 +move 5 from 1 to 9 +move 1 from 4 to 6 +move 4 from 7 to 4 +move 15 from 9 to 2 +move 7 from 1 to 6 +move 3 from 3 to 5 +move 1 from 4 to 9 +move 2 from 5 to 3 +move 2 from 4 to 9 +move 4 from 1 to 6 +move 1 from 3 to 1 +move 1 from 3 to 2 +move 4 from 6 to 3 +move 24 from 2 to 8 +move 4 from 9 to 8 +move 1 from 1 to 3 +move 2 from 5 to 4 +move 1 from 2 to 4 +move 19 from 8 to 1 +move 5 from 3 to 9 +move 8 from 1 to 3 +move 3 from 4 to 1 +move 6 from 9 to 5 +move 2 from 3 to 4 +move 1 from 8 to 5 +move 2 from 4 to 6 +move 11 from 6 to 1 +move 8 from 8 to 7 +move 1 from 6 to 5 +move 13 from 1 to 3 +move 1 from 1 to 7 +move 2 from 7 to 8 +move 5 from 7 to 1 +move 2 from 8 to 4 +move 3 from 5 to 3 +move 11 from 3 to 1 +move 2 from 5 to 3 +move 2 from 5 to 3 +move 2 from 7 to 1 +move 7 from 3 to 1 +move 1 from 4 to 5 +move 1 from 6 to 4 +move 3 from 4 to 7 +move 3 from 7 to 1 +move 6 from 3 to 5 +move 1 from 5 to 9 +move 4 from 5 to 4 +move 2 from 3 to 4 +move 8 from 9 to 2 +move 5 from 4 to 6 +move 1 from 6 to 5 +move 1 from 4 to 9 +move 39 from 1 to 7 +move 7 from 2 to 6 +move 1 from 9 to 3 +move 1 from 2 to 7 +move 1 from 3 to 1 +move 5 from 7 to 3 +move 4 from 5 to 1 +move 19 from 7 to 9 +move 1 from 9 to 8 +move 1 from 9 to 7 +move 5 from 9 to 3 +move 6 from 6 to 7 +move 1 from 8 to 3 +move 4 from 1 to 4 +move 23 from 7 to 6 +move 1 from 1 to 6 +move 21 from 6 to 2 +move 3 from 4 to 8 +move 7 from 6 to 1 +move 1 from 4 to 9 +move 1 from 6 to 7 +move 6 from 1 to 2 +move 1 from 7 to 4 +move 15 from 2 to 8 +move 5 from 3 to 8 +move 22 from 8 to 7 +move 1 from 8 to 1 +move 5 from 3 to 4 +move 1 from 3 to 2 +move 1 from 1 to 2 +move 3 from 4 to 8 +move 3 from 8 to 9 +move 11 from 2 to 1 +move 2 from 1 to 4 +move 15 from 9 to 5 +move 22 from 7 to 3 +move 2 from 4 to 9 +move 3 from 4 to 2 +move 8 from 1 to 8 +move 6 from 8 to 6 +move 1 from 6 to 2 +move 3 from 6 to 9 +move 3 from 2 to 7 +move 4 from 2 to 9 +move 2 from 7 to 5 +move 1 from 1 to 7 +move 2 from 8 to 2 +move 2 from 7 to 5 +move 9 from 5 to 3 +move 8 from 5 to 2 +move 1 from 6 to 4 +move 1 from 6 to 9 +move 1 from 2 to 9 +move 2 from 5 to 1 +move 7 from 2 to 3 +move 1 from 4 to 3 +move 1 from 2 to 4 +move 5 from 3 to 4 +move 6 from 9 to 3 +move 1 from 2 to 6 +move 6 from 9 to 6 +move 2 from 1 to 8 +move 3 from 6 to 3 +move 2 from 8 to 6 +move 6 from 4 to 1 +move 14 from 3 to 9 +move 1 from 6 to 4 +move 3 from 3 to 9 +move 1 from 4 to 5 +move 10 from 9 to 6 +move 6 from 6 to 7 +move 2 from 1 to 8 +move 1 from 8 to 6 +move 16 from 3 to 2 +move 1 from 8 to 1 +move 1 from 7 to 1 +move 7 from 3 to 4 +move 1 from 6 to 5 +move 4 from 2 to 3 +move 5 from 4 to 9 +move 2 from 4 to 5 +move 4 from 7 to 4 +move 5 from 9 to 6 +move 2 from 5 to 4 +move 11 from 6 to 7 +move 1 from 6 to 8 +move 5 from 1 to 5 +move 2 from 6 to 4 +move 7 from 7 to 3 +move 1 from 8 to 6 +move 2 from 7 to 3 +move 1 from 1 to 3 +move 3 from 2 to 8 +move 9 from 2 to 5 +move 1 from 6 to 1 +move 1 from 4 to 8 +move 7 from 4 to 7 +move 8 from 5 to 6 +move 1 from 7 to 2 +move 1 from 7 to 4 +move 3 from 7 to 8 +move 1 from 2 to 3 +move 1 from 1 to 2 +move 1 from 1 to 7 +move 3 from 7 to 6 +move 11 from 6 to 2 +move 4 from 8 to 7 +move 2 from 8 to 7 +move 15 from 3 to 2 +move 7 from 9 to 4 +move 3 from 3 to 2 +move 4 from 4 to 7 +move 5 from 7 to 3 +move 3 from 4 to 6 +move 3 from 6 to 9 +move 1 from 4 to 2 +move 1 from 8 to 1 +move 2 from 3 to 7 +move 2 from 3 to 7 +move 23 from 2 to 5 +move 1 from 9 to 1 +move 1 from 7 to 9 +move 1 from 1 to 8 +move 8 from 7 to 1 +move 1 from 8 to 4 +move 1 from 4 to 2 +move 3 from 9 to 8 +move 1 from 7 to 9 +move 22 from 5 to 9 +move 1 from 8 to 5 +move 1 from 7 to 4 +move 1 from 4 to 5 +move 1 from 8 to 3 +move 2 from 9 to 3 +move 5 from 5 to 2 +move 5 from 5 to 4 +move 3 from 2 to 7 +move 1 from 7 to 3 +move 6 from 1 to 7 +move 4 from 3 to 1 +move 6 from 2 to 8 +move 1 from 5 to 6 +move 2 from 8 to 1 +move 12 from 9 to 4 +move 8 from 9 to 4 +move 1 from 2 to 9 +move 2 from 9 to 8 +move 3 from 2 to 8 +move 5 from 8 to 6 +move 7 from 7 to 1 +move 4 from 8 to 9 +move 1 from 6 to 1 +move 17 from 4 to 7 +move 1 from 2 to 4 +move 2 from 4 to 1 +move 6 from 4 to 6 +move 1 from 1 to 4 +move 7 from 1 to 5 +move 9 from 7 to 9 +move 8 from 9 to 8 +move 5 from 8 to 3 +move 1 from 5 to 6 +move 2 from 3 to 6 +move 1 from 9 to 1 +move 1 from 6 to 1 +move 10 from 6 to 1 +move 1 from 5 to 1 +move 2 from 9 to 1 +move 1 from 9 to 7 +move 2 from 6 to 8 +move 2 from 8 to 2 +move 1 from 6 to 8 +move 22 from 1 to 9 +move 9 from 7 to 5 +move 1 from 8 to 1 +move 2 from 8 to 3 +move 4 from 5 to 9 +move 1 from 8 to 3 +move 5 from 1 to 9 +move 2 from 7 to 3 +move 2 from 4 to 7 +move 1 from 8 to 5 +move 2 from 2 to 4 +move 1 from 5 to 8 +move 9 from 5 to 8 +move 2 from 7 to 5 +move 2 from 4 to 5 +move 3 from 8 to 4 +move 3 from 4 to 3 +move 2 from 8 to 6 +move 1 from 6 to 4 +move 3 from 5 to 9 +move 1 from 6 to 3 +move 12 from 3 to 5 +move 1 from 3 to 1 +move 7 from 5 to 4 +move 1 from 1 to 3 +move 1 from 8 to 1 +move 7 from 5 to 1 +move 6 from 9 to 6 +move 29 from 9 to 5 +move 2 from 4 to 6 +move 26 from 5 to 2 +move 24 from 2 to 7 +move 1 from 3 to 2 +move 8 from 1 to 7 +move 7 from 6 to 9 +move 2 from 5 to 3 +move 1 from 6 to 4 +move 3 from 8 to 5 +move 2 from 3 to 8 +move 2 from 2 to 8 +move 5 from 9 to 2 +move 27 from 7 to 2 +move 2 from 8 to 3 +move 2 from 9 to 5 +move 3 from 8 to 5 +move 2 from 7 to 4 +move 3 from 4 to 7 +move 2 from 3 to 2 +move 4 from 5 to 1 +move 5 from 7 to 2 +move 29 from 2 to 8 +move 9 from 8 to 3 +move 2 from 4 to 8 +move 7 from 3 to 2 +move 3 from 5 to 4 +move 1 from 7 to 5 +move 3 from 5 to 6 +move 2 from 1 to 8 +move 2 from 6 to 8 +move 3 from 4 to 2 +move 4 from 4 to 2 +move 1 from 6 to 8 +move 8 from 2 to 4 +move 2 from 3 to 5 +move 1 from 4 to 1 +move 3 from 1 to 2 +move 4 from 8 to 2 +move 3 from 4 to 9 +move 3 from 4 to 1 +move 2 from 9 to 5 +move 1 from 4 to 6 +move 4 from 5 to 1 +move 1 from 6 to 8 +move 1 from 9 to 3 +move 4 from 2 to 3 +move 15 from 8 to 2 +move 9 from 8 to 1 +move 1 from 3 to 9 +move 5 from 1 to 9 +move 3 from 9 to 7 +move 2 from 7 to 6 +move 3 from 3 to 2 +move 1 from 7 to 8 +move 1 from 9 to 6 +move 1 from 9 to 8 +move 2 from 8 to 2 +move 1 from 1 to 2 +move 1 from 3 to 7 +move 4 from 1 to 7 +move 19 from 2 to 5 +move 1 from 1 to 4 +move 1 from 7 to 4 +move 1 from 1 to 5 +move 3 from 1 to 4 +move 1 from 1 to 8 +move 6 from 2 to 4 +move 7 from 2 to 1 +move 2 from 7 to 9 +move 8 from 2 to 8 +move 2 from 7 to 3 +move 1 from 6 to 4 +move 10 from 4 to 6 +move 5 from 6 to 7 +move 2 from 9 to 8 +move 6 from 8 to 9 +move 1 from 2 to 3 +move 2 from 8 to 3 +move 5 from 1 to 8 +move 8 from 5 to 2 +move 8 from 8 to 7 +move 7 from 2 to 8 +move 1 from 1 to 2 +move 1 from 9 to 7 +move 1 from 4 to 2 +move 2 from 2 to 6 +move 5 from 9 to 3 +move 2 from 8 to 6 +move 2 from 3 to 9 +move 4 from 8 to 6 +move 7 from 6 to 1 +move 8 from 1 to 5 +move 1 from 8 to 7 +move 1 from 9 to 6 +move 12 from 5 to 3 +move 1 from 4 to 8 +move 2 from 9 to 5 +move 1 from 2 to 3 +move 3 from 5 to 1 +move 1 from 1 to 5 +move 21 from 3 to 8 +move 2 from 1 to 5 +move 6 from 5 to 7 +move 2 from 5 to 6 +move 10 from 6 to 9 +move 1 from 6 to 8 +move 13 from 8 to 2 +move 2 from 5 to 4 +move 2 from 4 to 3 +move 4 from 9 to 1 +move 5 from 7 to 8 +move 12 from 8 to 1 +move 5 from 9 to 6 +move 1 from 3 to 7 +move 2 from 6 to 5 +move 11 from 2 to 1 +move 1 from 8 to 4 +move 16 from 1 to 9 +move 1 from 2 to 6 +move 1 from 8 to 5 +move 12 from 9 to 3 +move 14 from 7 to 2 +move 1 from 7 to 9 +move 1 from 4 to 2 +move 1 from 7 to 5 +move 3 from 9 to 5 +move 4 from 6 to 9 +move 3 from 9 to 4 +move 1 from 8 to 4 +move 2 from 4 to 5 +move 1 from 7 to 1 +move 5 from 3 to 5 +move 2 from 4 to 2 +move 8 from 2 to 7 +move 7 from 2 to 4 +move 1 from 3 to 7 +move 3 from 9 to 7 +move 2 from 2 to 9 +move 3 from 4 to 5 +move 6 from 1 to 8 +move 6 from 1 to 5 +move 3 from 9 to 2 +move 22 from 5 to 9 +move 1 from 5 to 6 +move 2 from 2 to 3 +move 5 from 7 to 6 +move 5 from 8 to 9 +move 2 from 7 to 2 +move 20 from 9 to 4 +move 1 from 8 to 3 +move 2 from 2 to 5 +move 1 from 2 to 5 +move 15 from 4 to 8 +move 1 from 5 to 7 +move 6 from 9 to 1 +move 5 from 4 to 8 +move 2 from 4 to 8 +move 1 from 2 to 1 +move 5 from 6 to 5 +move 5 from 5 to 7 +move 1 from 9 to 8 +move 5 from 7 to 2 +move 2 from 5 to 1 +move 4 from 7 to 5 +move 1 from 5 to 9 +move 1 from 6 to 8 +move 1 from 7 to 2 +move 6 from 3 to 4 +move 3 from 5 to 7 +move 1 from 9 to 2 +move 6 from 2 to 3 +move 1 from 3 to 4 +move 13 from 8 to 9 +move 7 from 1 to 5 +move 6 from 9 to 2 +move 1 from 1 to 4 +move 6 from 2 to 3 +move 1 from 1 to 4 +move 5 from 9 to 7 +move 11 from 8 to 4 +move 7 from 7 to 3 +move 2 from 7 to 8 +move 1 from 8 to 2 +move 8 from 4 to 1 +move 2 from 1 to 6 +move 2 from 5 to 8 +move 3 from 1 to 9 +move 1 from 8 to 2 +move 11 from 3 to 2 +move 2 from 8 to 9 +move 9 from 4 to 7 +move 11 from 3 to 8 +move 7 from 9 to 6 +move 5 from 4 to 6 +move 3 from 7 to 3 +move 1 from 7 to 1 +move 5 from 7 to 6 +move 2 from 3 to 5 +move 1 from 3 to 4 +move 5 from 2 to 5 +move 1 from 1 to 7 +move 1 from 4 to 8 +move 1 from 7 to 6 +move 7 from 5 to 7 +move 2 from 5 to 7 +move 3 from 1 to 7 +move 1 from 2 to 3 +move 1 from 6 to 4 +move 1 from 3 to 4 +move 1 from 5 to 3 +move 18 from 6 to 4 +move 9 from 7 to 1 +move 14 from 4 to 6 +move 3 from 6 to 4 +move 12 from 6 to 7 +move 2 from 5 to 3 +move 3 from 7 to 4 +move 6 from 4 to 7 +move 5 from 1 to 7 +move 5 from 4 to 5 +move 5 from 2 to 1 +move 9 from 8 to 4 +move 9 from 1 to 3 +move 2 from 8 to 2 +move 4 from 2 to 4 +move 1 from 7 to 6 +move 1 from 2 to 3 +move 1 from 8 to 9 +move 1 from 6 to 9 +move 2 from 9 to 3 +move 3 from 4 to 1 +move 13 from 3 to 5 +move 12 from 5 to 1 +move 7 from 1 to 8 +move 1 from 3 to 6 +move 4 from 5 to 4 +move 1 from 5 to 2 +move 8 from 4 to 9 diff --git a/2022/5/part1.ts b/2022/5/part1.ts new file mode 100644 index 0000000..292cc73 --- /dev/null +++ b/2022/5/part1.ts @@ -0,0 +1,39 @@ + +const file = Deno.readTextFileSync("./input"); + +const [arrangement, moves] = file.split("\n\n"); + +const list: string[][] = []; +function visualize() { + console.log( + list.map((t,i) => (i+1) + " " + t.slice().reverse().join(" ")).join("\n") + ) +} + +for(const line of arrangement.split("\n")) { + if(line[1] == "1") break; + for(let i = 0; i < line.length; i+=4) { + const letter = line[i + 1]; + if(letter == " ") continue; + const num = i/4; + if(!list[num]) list[num] = []; + list[num].push(letter); + } +} + +visualize(); + +for(const move of moves.split("\n")) { + if(!move.startsWith("move")) break; + const [, num, , src, , dest ] = move.split(" ").map(t => parseInt(t)); + + console.log(); + console.log(`Move ${num} from ${src} to ${dest}`); + let moved = list[src - 1].splice(0, num).reverse(); + list[dest - 1].unshift(...moved); + console.log(moved); + visualize(); +} + +console.log(list) +visualize(); \ No newline at end of file diff --git a/2022/5/part2.ts b/2022/5/part2.ts new file mode 100644 index 0000000..c5d7f8e --- /dev/null +++ b/2022/5/part2.ts @@ -0,0 +1,39 @@ + +const file = Deno.readTextFileSync("./input"); + +const [arrangement, moves] = file.split("\n\n"); + +const list: string[][] = []; +function visualize() { + console.log( + list.map((t,i) => (i+1) + " " + t.slice().reverse().join(" ")).join("\n") + ) +} + +for(const line of arrangement.split("\n")) { + if(line[1] == "1") break; + for(let i = 0; i < line.length; i+=4) { + const letter = line[i + 1]; + if(letter == " ") continue; + const num = i/4; + if(!list[num]) list[num] = []; + list[num].push(letter); + } +} + +visualize(); + +for(const move of moves.split("\n")) { + if(!move.startsWith("move")) break; + const [, num, , src, , dest ] = move.split(" ").map(t => parseInt(t)); + + console.log(); + console.log(`Move ${num} from ${src} to ${dest}`); + let moved = list[src - 1].splice(0, num); + list[dest - 1].unshift(...moved); + console.log(moved); + visualize(); +} + +console.log(list) +visualize(); \ No newline at end of file diff --git a/2022/5/testinput b/2022/5/testinput new file mode 100644 index 0000000..e98aba4 --- /dev/null +++ b/2022/5/testinput @@ -0,0 +1,9 @@ + [D] +[N] [C] +[Z] [M] [P] + 1 2 3 + +move 1 from 2 to 1 +move 3 from 1 to 3 +move 2 from 2 to 1 +move 1 from 1 to 2 \ No newline at end of file diff --git a/2022/6/input b/2022/6/input new file mode 100644 index 0000000..4c21e87 --- /dev/null +++ b/2022/6/input @@ -0,0 +1 @@ +vftfrfcrfrpptffhnnnsznzgngqgsssczcjcdcssmgmtmnmqnmmfttbdttqtggmgpmmqrqzrzttptpdtpddqfdffgjgzjzczjcjjvttvmmrwmrwwjtwjttnccgbcbjbgjjcvvsqshszhzvhvsstjjljcczmzjmzzdtzzhfhvvvflljtllfqqdmmmhmfhffzhhtgtssqppgcppfjjrnngwwrvrvqvpppcspsrrsqqqlmmpcmcjmmjhmhzzpnnggmjjrprptpccdggcrrwfwggsfggbbqlqflqqcsqqccqzqbbnbmmlzllnhnwwsjsgstgttfdtffzfvzvbzzrlzlppcsctcncrncnjnfnqnvngnzzscslsppdqdbbthhqvqfvqqvccvdcddsllnwnqwwsccjmcjmmfmppnzpzffslffjrfjftftrffwcwppfsftssdwdzzffnwndnvnggbbfbgfbbfmbbjzzdqdtqtfqqpzzqpzpllvrrbqqbcqqzvznzmmwcwtwftwfwtftvtddhldldblbzlbzlllcjjwllvcllqplqplpzlzqzsqzsznnqwnqqrcqqnrrhmmqbqqlbqqrhrrdgrrsqssnwsnswsgsfsbbdhbdbqqtsqsbsmmbtmmghhcththrrnvvnlvvdvwwjwmwbmmvtvztzmtmrmprpvvmbmrbrsbbpsbbtccwgccbctbccjrjcjtccrrdnnwwqrwwjpjtptcpcfpfvfjjtqtnqqvzqqfhfrftrrgqgbqqtwwthwhqwqjqmmlglnlrnlrnnshsmspmmfnnqwqgwqqprpbbjbhjbbfqftfwwjhhcpcgcpcvppgfgcfgffbzbfzbzqzccmppndppspbssnbbpdpjpgpngpnggtztjzjdjhjmmwrmmqhhcvvvltvllvmvpvlplwplpmllgpllczlzpzczwzswwqgqbqppcjjhjddgccfmmctcjcscczzzjzwzjjsccdmdppdrdccmttjpttqvqdqtdqtqhqchhhtbbddmhhwdhdwdjdccnhcnndpdldvldlvddbjdbjbppjbpbssqnqnmmmclcggrmmdnnwmwddvjvdvrvzzglzlnnllhqqrbbcvvdtttdvvnfnqqstszsjsrscspszppfjjfttgqttdpdbbbvnndbdcdqdrdhhdhhdjjjzzhqqrcrvccrvrtvtnvnpppccpdpccjgjmjzzbsbgsbstsbbtdttrqtrrsrdrdcdjcddbcbjcbjbwbbslbbbbnmmtsmmrwrnwwqtqzqpprhrzhrhhldddrpdrpdpwdpwdpwwlmmzssbwswppldlmddphhnfhhczhhqrrdgdjjdttztftzffdvddqnqvvlbbncnffssbnbfnnzbnznhzhdzzrqzzptzppsnsnzntzzfwfzzvrzrbzrbzrbzrrqqltqlqppbwppmvpmvpmmbnnbhbmbdmbbhmmngmgmhgmghhvttzzfvfggrrchrrbffzjzlzsllbqqhqrrmqrrlzzsqzqqmhhmnmtntstnsnhsnnwwpdphhgjhjccbcqcjcbjbttmssqffjzjmzmqqrbbfnffcbfcfzfrzztftntbntttlddvwdvdcdhcdhdbbjfjzjwpbcvlqvcwjrcjssdfmgwrhrjvhpgqsbtzqqdwjrqsjplqjdzdcrtvqlcrfpcgwpjnbpcmbwnwbzhcvjvzzpvqnzdqdgpfrvdpfdmpprmzmghdfjjzfqjqcbplwntzmsrpqclgrqzhlsgwffqqntswnjsmrcpjlsvdrmcwdgqzsbsbvhbszqgwqffcgbqmjrfjdvbpwbrzwbjgvvjchwfscrhrtzbghjlcnsqqhdgqtdcqrrpsbzqvjwptblszrtffhwcvbngnsdjgpscfzwrncwlpfqgwdzffsqmjcbrlffftpvhjchmgmgqvjnpfsjnfzddqjsfqcpjgfrfgrtlmtfqphjfmdcvmghrdqvbbbhlstgpcgmqnwpdjwbrdbntbpncnztmnmzmsjzrwjmccqslngrvbjcjjgcvnvhsslfhwpwtjjcwgzqpdvqrlbttnnwdphztmwcdlvlqggrdprmzdfpbfhmsgqznzjhdqpmhfphqcvbfqmhnfpcvstrhdbtmljnnhqtfnpdwnszfrflsbbqjsvbvggzfhlcljwlrlfnlwlzzllzbqftlwzqsvwlldslnfnnbhlwmhqhrjlqzpdsjlhjncpwtnpnqvjtzzjnmdntmbjbcwphplbcwdfcqbhhnjnjsfplgwbrqpqmghnzvdprtlmgvwhdgpdwfvdtqtnqdvbntmsrhftwvrgwcbvhnwmhfggdzfgbdfqsbngmvjgssclqlhqggwndzzhcrzrmnzggnvbbbpzfdjtnlvlnprjtlljhtdqjlddmjdswjrwhwdbbbrmpwsgpfgnplbtzfzlvgnfrvvnbjtsglbzmtmcjbbjclmjgtdrrbpbbqzqnvrgqssfrwhrtpsbgsvnnfbmqgbvhshmpqtqljlpwptqzprdbgnzmlgtrvgnmmfhtccsvbmsfnlnzwhrmcnwmmhgwclghgmspwjvbgqrbbhhrglstdntwnvcgdcmwgbwrwhsqzsdnqsvmcbzrvtztspshrfmqbtrdtnsqdllqzdcbmvbdswzrrzchqgpgmhvjgwgnpqfwcmchsnqssnnslzwtwvbqjfbhlbdjzjrqjvsshcvcbwhsvvwtmjwjfgszmvfzclbqjhnczqcznprwzjnlgmdgbfjnrqfgvstcldnttbjmhsqgqlmzqtsqngvmdvrwcjtfljzdmnndnrbqnlqtmsqngflwsghzzsfcdnttpblqqhmtgnqmcdfmclsvgnsfpnnfssqzjtdsjbjnnmqhfctlddtwrqlpczlzvhddrtjfwgqhfcvchzqgfhdbfpbvtqcjvchqmwhvwjrbtcjgbfqjdsbfpgjrzvlgqwphshnqrvqsppgsnfswvrzpwmdfmmwntnsddzppffjvbnshhqgwclvtpjzvlbdzblhhmhrmjrpmltglsdffnstsdqwjhnjccqhbdrgnwmpwczflfvsbznpphgpbfzffbcdnbrqbwddlhvgqsdmdhmlzbdztrrswsbvdgptvhhcdtwzqqhzqpswwvftppwvwhrspfqwppjbdlhcchlftjhrpwhtvqhmwwtcbfhgbqzvzdlwlzwcsqgvmmsnhrfmwwpcrjlsgzmgdqstlwbzrzbqfnpqffmjqbqqzcnsqrfstnwjflwlpfgcjwjdvtjslrcpgwsvrbvjtzqvnjlqrvvwjhzbzqqjhcrbdtwqjbtmwfrmcgnbdcrhrvlcgrgtglpfmvpgwbzccddlrbsjzwbgwthhdmjjtpchtsbnnpgqfcpmsrgvqwhcdqzmtzlzbfdgmvtqzzdcrnhtlcwnmhdjtwdsrfnlmwpnfwdrptclvwrnwrnntwwqvfmjgswbtqcvmbfbgstvsntndzhjjnjfblqdqrgchchtgdwtvlqzrlpsqgbltjzjngdscdczwzhnlszpdnvnbrmfmjpdzvjfgvtwtpwdjjfgspbvtdjrwzncdpbsthgcwvvdbbvpvqdqpzjmlzhtjmjwmzsmrcstrsvbccqhppwrtmslggqbgglgrgffrbwzmbghfqclwwgssgghqjgfjgvwjhhwnntnrnhmfslqpmwzlggsbmrjjgfzfpjlvmshfsdjtshdlfzvjtlqwjbbgmnjhrhtpbgvcsjvwzlqvfchhpfwsbhcztmdgfzgsmszwfbvvgmgpqsrbzvtpmpqdvhgrjmmspnswjrjnjqfgjwsfbzhwhtlfwjfdhgsvcwqlbznqlnhsmzwltfwclcwgjdbhqvjbbchmcpptmpdqzwpfwrbmchpbqndtmdrwtcvlmrrnvhnpzwqcwwgmcblzvnzbzsspwchtqvjmphqtzgwdzqlbvgdjbssdjwljhlsjwzrdvqtrzcdwszqgfdwgnqdrmssqqhtblqzdhtqtqmlbbfhzvlbrphcjhzpvvshjffnsjcbgvngnsjmfdbgfzphjc diff --git a/2022/6/part1.ts b/2022/6/part1.ts new file mode 100644 index 0000000..60f430b --- /dev/null +++ b/2022/6/part1.ts @@ -0,0 +1,9 @@ + +const input: string = Deno.readTextFileSync("input"); + +for(let i = 4; i < input.length; i++) { + let last = input.slice(i - 4, i); + if(last.split("").find((c, i, a) => a.indexOf(c) !== i)) continue; + console.log(last, i); + break; +} \ No newline at end of file diff --git a/2022/6/part2.ts b/2022/6/part2.ts new file mode 100644 index 0000000..4241e15 --- /dev/null +++ b/2022/6/part2.ts @@ -0,0 +1,9 @@ + +const input: string = Deno.readTextFileSync("input"); + +for(let i = 14; i < input.length; i++) { + let last = input.slice(i - 14, i); + if(last.split("").find((c, i, a) => a.indexOf(c) !== i)) continue; + console.log(last, i); + break; +} \ No newline at end of file diff --git a/2022/6/testinput b/2022/6/testinput new file mode 100644 index 0000000..9e3311c --- /dev/null +++ b/2022/6/testinput @@ -0,0 +1 @@ +bvwbjplbgvbhsrlpgdmjqwftvncz \ No newline at end of file diff --git a/2022/7/input b/2022/7/input new file mode 100644 index 0000000..663eef9 --- /dev/null +++ b/2022/7/input @@ -0,0 +1,1045 @@ +$ cd / +$ ls +dir lhrfs +193233 mvsjmrtn +dir nwh +dir pjsd +dir qfrrtb +31987 zzdfcs +$ cd lhrfs +$ ls +197903 hzl.jdj +42249 wsbpzmbq.hws +$ cd .. +$ cd nwh +$ ls +63077 bgrccm.tqh +69961 dznccwl.bnw +dir pmdj +187013 rsbvj.jtd +$ cd pmdj +$ ls +292527 rlgfd.rrd +68737 tbj.grn +153072 wsbpzmbq.hws +$ cd .. +$ cd .. +$ cd pjsd +$ ls +dir czzcslm +dir dgwpl +dir fqg +dir lszhdjr +dir mmpf +dir wtwhzzwz +149748 zzdfcs +$ cd czzcslm +$ ls +249237 bvrnzhd.vzp +16960 ssvqllt.ccv +$ cd .. +$ cd dgwpl +$ ls +23547 brsbfqbm.hls +dir ljzrwpv +$ cd ljzrwpv +$ ls +dir btnzjtlr +dir czr +$ cd btnzjtlr +$ ls +191998 tbj.mwg +$ cd .. +$ cd czr +$ ls +dir fqg +$ cd fqg +$ ls +276766 llhzr.pjh +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd fqg +$ ls +275942 bhcg +dir fqg +dir gghdbzz +dir hswgvpt +75273 hzl +dir lfpblmwt +dir sdcwn +dir wmrwd +$ cd fqg +$ ls +dir bpbtnq +267620 btnzjtlr.mgr +174395 fqg.vpw +dir tfbfgzw +dir twhvbbr +$ cd bpbtnq +$ ls +194542 mtztnd.hdb +$ cd .. +$ cd tfbfgzw +$ ls +dir cgdlflbt +10814 fqg.cqp +40235 fztb.jzr +dir hzl +$ cd cgdlflbt +$ ls +176005 wsbpzmbq.hws +$ cd .. +$ cd hzl +$ ls +dir ccpdp +dir hgwpjvn +dir hzl +203730 pbn.rzl +88179 tbj +295466 zdbmfmzs.jjh +$ cd ccpdp +$ ls +172836 btnzjtlr +$ cd .. +$ cd hgwpjvn +$ ls +122725 hnsrdnl.ctv +261470 tmgpjbj +$ cd .. +$ cd hzl +$ ls +59843 lffmd.fwr +$ cd .. +$ cd .. +$ cd .. +$ cd twhvbbr +$ ls +134874 hnsrdnl.ctv +$ cd .. +$ cd .. +$ cd gghdbzz +$ ls +dir fqg +$ cd fqg +$ ls +233336 ssvqllt.ccv +$ cd .. +$ cd .. +$ cd hswgvpt +$ ls +dir fwfhnbc +dir hcp +221595 hnsrdnl.ctv +230875 hzl +257695 jbfnlc.qqn +126050 tbj.qlc +dir wdlh +$ cd fwfhnbc +$ ls +293848 zhz.mff +$ cd .. +$ cd hcp +$ ls +288118 gdndr.gwn +$ cd .. +$ cd wdlh +$ ls +227328 btnzjtlr.msq +dir hzl +94325 hzl.wjp +272466 zzdfcs +$ cd hzl +$ ls +184779 ssvqllt.ccv +$ cd .. +$ cd .. +$ cd .. +$ cd lfpblmwt +$ ls +151071 ssvqllt.ccv +$ cd .. +$ cd sdcwn +$ ls +61632 hzl.mvp +dir tbj +dir tdwc +dir tnjcf +dir tstqdt +$ cd tbj +$ ls +dir btnzjtlr +dir cwsv +1318 tbj +293645 wnv +$ cd btnzjtlr +$ ls +2441 hnsrdnl.ctv +$ cd .. +$ cd cwsv +$ ls +238930 gwr +236116 tlzqtch +$ cd .. +$ cd .. +$ cd tdwc +$ ls +dir btnzjtlr +dir fqg +dir zgjpfj +$ cd btnzjtlr +$ ls +177427 tbj.hgf +$ cd .. +$ cd fqg +$ ls +241003 dbnwzbn.flv +$ cd .. +$ cd zgjpfj +$ ls +249565 fqg +238012 tbj.csq +$ cd .. +$ cd .. +$ cd tnjcf +$ ls +188504 lljwfglp.wnb +35384 wsbpzmbq.hws +$ cd .. +$ cd tstqdt +$ ls +dir lszhdjr +$ cd lszhdjr +$ ls +252181 ssvqllt.ccv +$ cd .. +$ cd .. +$ cd .. +$ cd wmrwd +$ ls +117914 btnzjtlr +224916 hnsrdnl.ctv +dir lszhdjr +112511 trjm.mrw +20365 trn +$ cd lszhdjr +$ ls +183834 sdnlhh.ntt +$ cd .. +$ cd .. +$ cd .. +$ cd lszhdjr +$ ls +dir gjlms +dir hrwjmrwf +dir vblznslv +$ cd gjlms +$ ls +301712 bbs.fhq +dir btnzjtlr +148329 cnvlrpbs.tqv +dir hzl +107466 hzl.zps +dir jgflpb +9865 trjm.mrw +$ cd btnzjtlr +$ ls +60204 nhmc +$ cd .. +$ cd hzl +$ ls +99518 lszhdjr.stz +$ cd .. +$ cd jgflpb +$ ls +251545 hzl.ncm +$ cd .. +$ cd .. +$ cd hrwjmrwf +$ ls +65264 btnzjtlr.qgg +123207 pqsn +30133 zzdfcs +$ cd .. +$ cd vblznslv +$ ls +19460 hzl +$ cd .. +$ cd .. +$ cd mmpf +$ ls +200340 dnsq +109756 snl +$ cd .. +$ cd wtwhzzwz +$ ls +dir bpwjhpgr +dir btnzjtlr +dir dgqljsbq +dir fqg +dir mbbtzgmf +dir vvmzhhtv +dir wglhbp +dir zcwmf +$ cd bpwjhpgr +$ ls +1514 mjczjz +$ cd .. +$ cd btnzjtlr +$ ls +209165 lszhdjr +$ cd .. +$ cd dgqljsbq +$ ls +160750 btnzjtlr +dir fqg +dir hrncl +5964 hzvr.ftp +dir jldnlddj +267082 qdc.grf +205213 sjpdjt.ngt +dir vws +175214 wzwwqq.stp +$ cd fqg +$ ls +dir ghsdjhj +$ cd ghsdjhj +$ ls +166720 jqcjngn.fmf +298171 zzdfcs +$ cd .. +$ cd .. +$ cd hrncl +$ ls +dir hzl +82355 trjm.mrw +dir vrqbf +261260 wsbpzmbq.hws +18593 wtmlmprg.whh +$ cd hzl +$ ls +344 drndgmgz.flz +241877 zzdfcs +$ cd .. +$ cd vrqbf +$ ls +dir blf +dir pzrfw +dir tbj +$ cd blf +$ ls +68629 wdhfbtj.ncc +$ cd .. +$ cd pzrfw +$ ls +dir hzl +dir mdh +dir tbj +$ cd hzl +$ ls +12677 gvdh.ltp +$ cd .. +$ cd mdh +$ ls +222003 qbvfdv +$ cd .. +$ cd tbj +$ ls +dir wtmcqwgp +$ cd wtmcqwgp +$ ls +dir stcgrs +$ cd stcgrs +$ ls +285843 tbj +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd tbj +$ ls +173380 mcgzmthd.mdg +$ cd .. +$ cd .. +$ cd .. +$ cd jldnlddj +$ ls +57836 brdtwc.pws +dir fqg +dir hzl +140902 lbn +dir qhrcm +dir ssrc +169907 wsbpzmbq.hws +$ cd fqg +$ ls +273621 pwjr.gwt +$ cd .. +$ cd hzl +$ ls +dir fqg +dir tbj +$ cd fqg +$ ls +290882 hcf.sqw +62759 hlntl.zqg +115593 ntgm.wjn +64481 qwtv +$ cd .. +$ cd tbj +$ ls +199421 gsvpcdm +200467 hnsrdnl.ctv +9980 lgqgdvwz.zdp +dir lqlml +19593 pgn +51598 tqqbwd +$ cd lqlml +$ ls +92416 fdwgg.rdp +279285 zzdfcs +$ cd .. +$ cd .. +$ cd .. +$ cd qhrcm +$ ls +278543 trjm.mrw +279502 zzdfcs +$ cd .. +$ cd ssrc +$ ls +238789 zfvwwnhl +$ cd .. +$ cd .. +$ cd vws +$ ls +249170 bgfrh +dir ndtnt +$ cd ndtnt +$ ls +5224 qwdnzdq.rfz +$ cd .. +$ cd .. +$ cd .. +$ cd fqg +$ ls +171994 trjm.mrw +$ cd .. +$ cd mbbtzgmf +$ ls +dir cfqzlgm +57211 ssvqllt.ccv +dir tbj +$ cd cfqzlgm +$ ls +dir tlbgq +$ cd tlbgq +$ ls +232962 ssvqllt.ccv +$ cd .. +$ cd .. +$ cd tbj +$ ls +23083 lszhdjr.lzt +$ cd .. +$ cd .. +$ cd vvmzhhtv +$ ls +150567 fcpv.vws +$ cd .. +$ cd wglhbp +$ ls +dir cjm +dir gjhzw +dir lmzzlp +123986 lszhdjr.hcj +275863 lwbz +121332 snnhqgp.tdj +dir stngv +dir wdzvcfm +dir wjqztbj +dir wzhsq +$ cd cjm +$ ls +300643 jhtjsn.hzm +$ cd .. +$ cd gjhzw +$ ls +dir hwlj +dir tbj +$ cd hwlj +$ ls +280279 ssvqllt.ccv +$ cd .. +$ cd tbj +$ ls +88746 ssvqllt.ccv +139206 tbj +$ cd .. +$ cd .. +$ cd lmzzlp +$ ls +9261 btnzjtlr +dir fqg +128118 fqg.fsf +165323 hnsrdnl.ctv +dir prvmm +$ cd fqg +$ ls +35303 dcglqd.zrj +71812 mvzh +32361 ssvqllt.ccv +69305 zzdfcs +$ cd .. +$ cd prvmm +$ ls +296946 zzdfcs +$ cd .. +$ cd .. +$ cd stngv +$ ls +dir hgj +46259 vlb.ztz +25946 zstwl.wgs +106712 zzdfcs +$ cd hgj +$ ls +289819 dhwr.mvc +85418 dvpvhhgj.fmw +108543 fqg.frj +229544 pwhwmctv +$ cd .. +$ cd .. +$ cd wdzvcfm +$ ls +dir sdphr +$ cd sdphr +$ ls +84638 hnsrdnl.ctv +$ cd .. +$ cd .. +$ cd wjqztbj +$ ls +240174 btnzjtlr.ldw +125567 lszhdjr +265718 lszhdjr.mmz +242407 wzjcc +$ cd .. +$ cd wzhsq +$ ls +dir hzl +22176 hzl.cpv +122990 ldtwhvc.vcv +$ cd hzl +$ ls +309519 plnn.pdn +$ cd .. +$ cd .. +$ cd .. +$ cd zcwmf +$ ls +dir hwq +268508 mztd +$ cd hwq +$ ls +189618 trjm.mrw +120145 wsbpzmbq.hws +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd qfrrtb +$ ls +dir dmntr +dir fqg +dir gpcvsbpl +dir hzl +dir mqbhs +dir pgvngj +dir pnrdwlqn +dir qlnwhq +$ cd dmntr +$ ls +dir btnzjtlr +141598 fqg.wcw +223036 hnsrdnl.ctv +96925 qhwmj +257697 ssvqllt.ccv +184839 vmbfhldv.zgm +$ cd btnzjtlr +$ ls +153689 jnbthqwp +dir tcp +$ cd tcp +$ ls +90378 mczzfwsz.hwf +$ cd .. +$ cd .. +$ cd .. +$ cd fqg +$ ls +dir btq +51590 fqg +176455 gnqsnpj.vsh +dir mthwtst +dir trhz +dir zbpjvb +$ cd btq +$ ls +dir bdnc +dir ttpj +dir vftshfd +$ cd bdnc +$ ls +263358 trjm.mrw +$ cd .. +$ cd ttpj +$ ls +185501 fqg.dvq +151107 ltmmsr.lqd +dir mbtqmqh +231236 sdzp.qhb +16601 vfflgw.vrr +75487 zbvllh.gqb +$ cd mbtqmqh +$ ls +dir lszhdjr +184660 pmwswf.lrm +dir tbj +dir zqbss +262042 zzdfcs +$ cd lszhdjr +$ ls +dir dmc +$ cd dmc +$ ls +173189 mzmr.nrj +$ cd .. +$ cd .. +$ cd tbj +$ ls +59531 fjqfbq +$ cd .. +$ cd zqbss +$ ls +dir btnzjtlr +dir lszhdjr +14365 sqdj +$ cd btnzjtlr +$ ls +113619 trjm.mrw +$ cd .. +$ cd lszhdjr +$ ls +87142 hnsrdnl.ctv +dir lszhdjr +$ cd lszhdjr +$ ls +dir jsdrvbhc +$ cd jsdrvbhc +$ ls +210295 hzl +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd vftshfd +$ ls +dir jjws +dir mvdcjgp +dir qflcrlrm +$ cd jjws +$ ls +82848 trjm.mrw +$ cd .. +$ cd mvdcjgp +$ ls +231865 lzzl +$ cd .. +$ cd qflcrlrm +$ ls +150667 btnzjtlr +$ cd .. +$ cd .. +$ cd .. +$ cd mthwtst +$ ls +26308 lszhdjr.dbb +$ cd .. +$ cd trhz +$ ls +16138 swtdz.hdt +$ cd .. +$ cd zbpjvb +$ ls +69598 hnsrdnl.ctv +96314 tbj.gpj +$ cd .. +$ cd .. +$ cd gpcvsbpl +$ ls +dir dbssfzqt +dir pgn +dir zfgvldv +$ cd dbssfzqt +$ ls +156599 jcv +68192 zzdfcs +$ cd .. +$ cd pgn +$ ls +124613 fqg +139219 gmnqvlbb.nnf +177527 hnsrdnl.ctv +116238 hzl.qwm +dir tbj +69576 zzdfcs +$ cd tbj +$ ls +78863 hnsrdnl.ctv +dir lszhdjr +$ cd lszhdjr +$ ls +76043 qjwjw.dbn +$ cd .. +$ cd .. +$ cd .. +$ cd zfgvldv +$ ls +dir tbj +$ cd tbj +$ ls +308796 gqcw.fsm +$ cd .. +$ cd .. +$ cd .. +$ cd hzl +$ ls +50784 btnzjtlr +19755 gjbcgphh.rbw +169847 lncnj.bct +46359 mbrtgl +dir nlnt +269695 wfg.cdn +$ cd nlnt +$ ls +dir cqfzqwr +dir dghdql +dir fnd +159573 hnsrdnl.ctv +dir lszhdjr +16814 tsm +59202 wsbpzmbq.hws +22244 zlbj +$ cd cqfzqwr +$ ls +213009 trjm.mrw +$ cd .. +$ cd dghdql +$ ls +61202 hnsrdnl.ctv +$ cd .. +$ cd fnd +$ ls +237330 hnsrdnl.ctv +$ cd .. +$ cd lszhdjr +$ ls +222813 ssvqllt.ccv +$ cd .. +$ cd .. +$ cd .. +$ cd mqbhs +$ ls +dir fqg +$ cd fqg +$ ls +121590 lcwsbvw.jlj +13769 zzdfcs +$ cd .. +$ cd .. +$ cd pgvngj +$ ls +29079 lnfsw.mvd +dir tbj +$ cd tbj +$ ls +303514 ssvqllt.ccv +81789 wsbpzmbq.hws +$ cd .. +$ cd .. +$ cd pnrdwlqn +$ ls +145498 btnzjtlr.hdq +209811 fqg +dir gscsq +39287 jbln.grc +dir lszhdjr +dir zcj +$ cd gscsq +$ ls +dir btnzjtlr +257666 cmflqncq.csp +146453 lszhdjr.jvl +21252 ssvqllt.ccv +dir vjpgs +29627 zjgswm.zmw +$ cd btnzjtlr +$ ls +52870 fqg.bcq +131279 hnsrdnl.ctv +dir hts +180154 plgqz.lfz +118677 ssvqllt.ccv +143055 zzdfcs +$ cd hts +$ ls +295829 hnsrdnl.ctv +$ cd .. +$ cd .. +$ cd vjpgs +$ ls +247444 fqg.rjw +dir hzl +113248 tbj +$ cd hzl +$ ls +91966 ppff.qhn +$ cd .. +$ cd .. +$ cd .. +$ cd lszhdjr +$ ls +290399 grzs.btl +11125 gswg +110268 mhdfszz.pdh +dir mwbjshb +dir ndtllttm +126485 wsbpzmbq.hws +152691 zzdfcs +$ cd mwbjshb +$ ls +119607 rpgml +$ cd .. +$ cd ndtllttm +$ ls +5107 qsqqfpc.mzf +$ cd .. +$ cd .. +$ cd zcj +$ ls +dir gftzs +131397 ssvqllt.ccv +dir vpqvpmv +dir wdqw +34540 wsbpzmbq.hws +$ cd gftzs +$ ls +115531 fbjj.vrn +$ cd .. +$ cd vpqvpmv +$ ls +dir bfqpwgdc +67619 ffbllv +dir tzr +$ cd bfqpwgdc +$ ls +144904 fqg.djq +dir gbn +dir jzz +dir vtp +$ cd gbn +$ ls +dir btnzjtlr +$ cd btnzjtlr +$ ls +dir dzsbcqjd +253792 fqg.fcw +209245 fqtqsdrt.pqd +303280 nqvqm +271246 vchvvq.cft +$ cd dzsbcqjd +$ ls +13953 tbj +$ cd .. +$ cd .. +$ cd .. +$ cd jzz +$ ls +234810 ssvqllt.ccv +$ cd .. +$ cd vtp +$ ls +287225 rzqfq.pvj +$ cd .. +$ cd .. +$ cd tzr +$ ls +135596 bbzlnjtc.fft +dir bqfz +dir dztgr +306047 hnsrdnl.ctv +248180 jzdzf +dir lszhdjr +dir mds +dir nmdc +dir qpmt +126445 wsbpzmbq.hws +191907 zzdfcs +$ cd bqfz +$ ls +137988 fqg +122217 lszhdjr.bwc +232293 ssvqllt.ccv +168937 twrtmwh.ddc +$ cd .. +$ cd dztgr +$ ls +23653 qhrp.ljh +$ cd .. +$ cd lszhdjr +$ ls +dir ghqlj +dir qjjvfv +dir qsjrnq +$ cd ghqlj +$ ls +184316 ghshmzt.srl +258282 nbqndwj +dir ndd +dir tqqlnw +68843 trjm.mrw +92593 wllcqzfr.mbd +$ cd ndd +$ ls +152924 gvclc +77856 llztchwp.jjd +$ cd .. +$ cd tqqlnw +$ ls +4090 flvdsc.zsv +219378 vgwfn.zjh +$ cd .. +$ cd .. +$ cd qjjvfv +$ ls +230606 trjm.mrw +$ cd .. +$ cd qsjrnq +$ ls +252853 fnnbmt.dtm +279660 lszhdjr.rjc +$ cd .. +$ cd .. +$ cd mds +$ ls +10903 jzwjv +$ cd .. +$ cd nmdc +$ ls +114234 hnsrdnl.ctv +$ cd .. +$ cd qpmt +$ ls +171542 bvrzgp +129238 hnsrdnl.ctv +137570 tbj +54929 vtcfq.npn +44117 zzdfcs +$ cd .. +$ cd .. +$ cd .. +$ cd wdqw +$ ls +dir jmvsdlv +dir mjgpdcbl +$ cd jmvsdlv +$ ls +dir flnnqz +$ cd flnnqz +$ ls +224693 flqpwqp.fwn +$ cd .. +$ cd .. +$ cd mjgpdcbl +$ ls +140928 btnzjtlr.prd +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd qlnwhq +$ ls +dir btnzjtlr +dir cbhr +dir cnbssw +dir dwvv +dir lszhdjr +dir rnhnbs +dir sdhqp +$ cd btnzjtlr +$ ls +225671 ssrcp.chb +268250 tbj.cfd +$ cd .. +$ cd cbhr +$ ls +68468 qdqlml.qrj +$ cd .. +$ cd cnbssw +$ ls +dir tbj +187921 zscs +$ cd tbj +$ ls +307230 hzl +dir jbcnnvq +228268 lssvr.gfn +$ cd jbcnnvq +$ ls +277047 nztsr +$ cd .. +$ cd .. +$ cd .. +$ cd dwvv +$ ls +267743 btnzjtlr +dir fqg +68364 qznpsjp +dir wdr +230595 wsbpzmbq.hws +206 wtwwd.jnb +$ cd fqg +$ ls +260003 btnzjtlr.hjn +103775 btnzjtlr.ndh +200945 trjm.mrw +dir twpplmhh +$ cd twpplmhh +$ ls +dir tvrq +$ cd tvrq +$ ls +298383 ssvqllt.ccv +$ cd .. +$ cd .. +$ cd .. +$ cd wdr +$ ls +248357 tbj +$ cd .. +$ cd .. +$ cd lszhdjr +$ ls +259605 lszhdjr.mvw +$ cd .. +$ cd rnhnbs +$ ls +297597 hnsrdnl.ctv +$ cd .. +$ cd sdhqp +$ ls +95362 wsbpzmbq.hws \ No newline at end of file diff --git a/2022/7/part1.ts b/2022/7/part1.ts new file mode 100644 index 0000000..ad872d7 --- /dev/null +++ b/2022/7/part1.ts @@ -0,0 +1,69 @@ + +const input = Deno.readTextFileSync("./input"); + +class File { + constructor(public name: string, public size: number) {} +} + +class Directory { + constructor(public name: string, public parent: Directory | null, public files: File[], public folders: Directory[]) {} + + getSize(): number { + return this.files.reduce((acc, file) => acc + file.size, 0) + this.folders.reduce((acc, folder) => acc + folder.getSize(), 0); + } + + print(level = 0) { + console.log(" ".repeat(level * 2) + this.name + " (" + this.getSize() + ")"); + for(const file of this.files) { + console.log(" ".repeat((level + 1) * 2) + file.name + " (" + file.size + ")"); + } + for(const folder of this.folders) { + folder.print(level + 1); + } + } +} + +let root: Directory = new Directory("", null, [], []); +let current = root; + +for(const line of input.split("\n")) { + if(line[0] === "$") { + if(line[2] === "c") { + let name = line.slice(5); + if(name === "/") current = root; + else if(name === "..") current = current.parent!; + else { + let folder = current.folders.find(folder => folder.name === name); + if(!folder) { + folder = new Directory(name, current, [], []); + current.folders.push(folder); + } + current = folder; + } + } + } else { + let [size, name] = line.split(" "); + if(size === "dir") { + const folder = new Directory(name, current, [], []); + current.folders.push(folder); + } else { + current.files.push(new File(name, parseInt(size))); + } + } +} + +root.print(); + +var acc = 0; + +function traverse(directory: Directory) { + let size = directory.getSize(); + if(size < 100000) { + acc += size; + } + for(const folder of directory.folders) { + traverse(folder); + } +} + +traverse(root); \ No newline at end of file diff --git a/2022/7/part2.ts b/2022/7/part2.ts new file mode 100644 index 0000000..b303fc0 --- /dev/null +++ b/2022/7/part2.ts @@ -0,0 +1,74 @@ + +const input = Deno.readTextFileSync("./input"); + +class File { + constructor(public name: string, public size: number) {} +} + +class Directory { + constructor(public name: string, public parent: Directory | null, public files: File[], public folders: Directory[]) {} + + getSize(): number { + return this.files.reduce((acc, file) => acc + file.size, 0) + this.folders.reduce((acc, folder) => acc + folder.getSize(), 0); + } + + print(level = 0) { + console.log(" ".repeat(level * 2) + this.name + " (" + this.getSize() + ")"); + for(const file of this.files) { + console.log(" ".repeat((level + 1) * 2) + file.name + " (" + file.size + ")"); + } + for(const folder of this.folders) { + folder.print(level + 1); + } + } +} + +let root: Directory = new Directory("", null, [], []); +let current = root; + +for(const line of input.split("\n")) { + if(line[0] === "$") { + if(line[2] === "c") { + let name = line.slice(5); + if(name === "/") current = root; + else if(name === "..") current = current.parent!; + else { + let folder = current.folders.find(folder => folder.name === name); + if(!folder) { + folder = new Directory(name, current, [], []); + current.folders.push(folder); + } + current = folder; + } + } + } else { + let [size, name] = line.split(" "); + if(size === "dir") { + const folder = new Directory(name, current, [], []); + current.folders.push(folder); + } else { + current.files.push(new File(name, parseInt(size))); + } + } +} + +root.print(); + +const MAX = 70000000; +const unused = MAX - root.getSize(); +const minimum = 30000000 - unused; + +let smallest: number | null = null; + +function traverse(directory: Directory) { + let size = directory.getSize(); + if(size > minimum && (smallest === null || size < smallest)) { + smallest = size; + } + for(const folder of directory.folders) { + traverse(folder); + } +} + +traverse(root); +console.log(smallest); \ No newline at end of file diff --git a/2022/7/rust/.idea/.gitignore b/2022/7/rust/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/2022/7/rust/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/2022/7/rust/.idea/misc.xml b/2022/7/rust/.idea/misc.xml new file mode 100644 index 0000000..3ce3588 --- /dev/null +++ b/2022/7/rust/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/2022/7/rust/.idea/modules.xml b/2022/7/rust/.idea/modules.xml new file mode 100644 index 0000000..8e518a5 --- /dev/null +++ b/2022/7/rust/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/2022/7/rust/.idea/rust.iml b/2022/7/rust/.idea/rust.iml new file mode 100644 index 0000000..c254557 --- /dev/null +++ b/2022/7/rust/.idea/rust.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/2022/7/rust/.idea/vcs.xml b/2022/7/rust/.idea/vcs.xml new file mode 100644 index 0000000..4fce1d8 --- /dev/null +++ b/2022/7/rust/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/2022/7/rust/Cargo.lock b/2022/7/rust/Cargo.lock new file mode 100644 index 0000000..b21cc6a --- /dev/null +++ b/2022/7/rust/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "rust" +version = "0.1.0" diff --git a/2022/7/rust/Cargo.toml b/2022/7/rust/Cargo.toml new file mode 100644 index 0000000..1ec6963 --- /dev/null +++ b/2022/7/rust/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "rust" +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/2022/7/rust/input b/2022/7/rust/input new file mode 100644 index 0000000..663eef9 --- /dev/null +++ b/2022/7/rust/input @@ -0,0 +1,1045 @@ +$ cd / +$ ls +dir lhrfs +193233 mvsjmrtn +dir nwh +dir pjsd +dir qfrrtb +31987 zzdfcs +$ cd lhrfs +$ ls +197903 hzl.jdj +42249 wsbpzmbq.hws +$ cd .. +$ cd nwh +$ ls +63077 bgrccm.tqh +69961 dznccwl.bnw +dir pmdj +187013 rsbvj.jtd +$ cd pmdj +$ ls +292527 rlgfd.rrd +68737 tbj.grn +153072 wsbpzmbq.hws +$ cd .. +$ cd .. +$ cd pjsd +$ ls +dir czzcslm +dir dgwpl +dir fqg +dir lszhdjr +dir mmpf +dir wtwhzzwz +149748 zzdfcs +$ cd czzcslm +$ ls +249237 bvrnzhd.vzp +16960 ssvqllt.ccv +$ cd .. +$ cd dgwpl +$ ls +23547 brsbfqbm.hls +dir ljzrwpv +$ cd ljzrwpv +$ ls +dir btnzjtlr +dir czr +$ cd btnzjtlr +$ ls +191998 tbj.mwg +$ cd .. +$ cd czr +$ ls +dir fqg +$ cd fqg +$ ls +276766 llhzr.pjh +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd fqg +$ ls +275942 bhcg +dir fqg +dir gghdbzz +dir hswgvpt +75273 hzl +dir lfpblmwt +dir sdcwn +dir wmrwd +$ cd fqg +$ ls +dir bpbtnq +267620 btnzjtlr.mgr +174395 fqg.vpw +dir tfbfgzw +dir twhvbbr +$ cd bpbtnq +$ ls +194542 mtztnd.hdb +$ cd .. +$ cd tfbfgzw +$ ls +dir cgdlflbt +10814 fqg.cqp +40235 fztb.jzr +dir hzl +$ cd cgdlflbt +$ ls +176005 wsbpzmbq.hws +$ cd .. +$ cd hzl +$ ls +dir ccpdp +dir hgwpjvn +dir hzl +203730 pbn.rzl +88179 tbj +295466 zdbmfmzs.jjh +$ cd ccpdp +$ ls +172836 btnzjtlr +$ cd .. +$ cd hgwpjvn +$ ls +122725 hnsrdnl.ctv +261470 tmgpjbj +$ cd .. +$ cd hzl +$ ls +59843 lffmd.fwr +$ cd .. +$ cd .. +$ cd .. +$ cd twhvbbr +$ ls +134874 hnsrdnl.ctv +$ cd .. +$ cd .. +$ cd gghdbzz +$ ls +dir fqg +$ cd fqg +$ ls +233336 ssvqllt.ccv +$ cd .. +$ cd .. +$ cd hswgvpt +$ ls +dir fwfhnbc +dir hcp +221595 hnsrdnl.ctv +230875 hzl +257695 jbfnlc.qqn +126050 tbj.qlc +dir wdlh +$ cd fwfhnbc +$ ls +293848 zhz.mff +$ cd .. +$ cd hcp +$ ls +288118 gdndr.gwn +$ cd .. +$ cd wdlh +$ ls +227328 btnzjtlr.msq +dir hzl +94325 hzl.wjp +272466 zzdfcs +$ cd hzl +$ ls +184779 ssvqllt.ccv +$ cd .. +$ cd .. +$ cd .. +$ cd lfpblmwt +$ ls +151071 ssvqllt.ccv +$ cd .. +$ cd sdcwn +$ ls +61632 hzl.mvp +dir tbj +dir tdwc +dir tnjcf +dir tstqdt +$ cd tbj +$ ls +dir btnzjtlr +dir cwsv +1318 tbj +293645 wnv +$ cd btnzjtlr +$ ls +2441 hnsrdnl.ctv +$ cd .. +$ cd cwsv +$ ls +238930 gwr +236116 tlzqtch +$ cd .. +$ cd .. +$ cd tdwc +$ ls +dir btnzjtlr +dir fqg +dir zgjpfj +$ cd btnzjtlr +$ ls +177427 tbj.hgf +$ cd .. +$ cd fqg +$ ls +241003 dbnwzbn.flv +$ cd .. +$ cd zgjpfj +$ ls +249565 fqg +238012 tbj.csq +$ cd .. +$ cd .. +$ cd tnjcf +$ ls +188504 lljwfglp.wnb +35384 wsbpzmbq.hws +$ cd .. +$ cd tstqdt +$ ls +dir lszhdjr +$ cd lszhdjr +$ ls +252181 ssvqllt.ccv +$ cd .. +$ cd .. +$ cd .. +$ cd wmrwd +$ ls +117914 btnzjtlr +224916 hnsrdnl.ctv +dir lszhdjr +112511 trjm.mrw +20365 trn +$ cd lszhdjr +$ ls +183834 sdnlhh.ntt +$ cd .. +$ cd .. +$ cd .. +$ cd lszhdjr +$ ls +dir gjlms +dir hrwjmrwf +dir vblznslv +$ cd gjlms +$ ls +301712 bbs.fhq +dir btnzjtlr +148329 cnvlrpbs.tqv +dir hzl +107466 hzl.zps +dir jgflpb +9865 trjm.mrw +$ cd btnzjtlr +$ ls +60204 nhmc +$ cd .. +$ cd hzl +$ ls +99518 lszhdjr.stz +$ cd .. +$ cd jgflpb +$ ls +251545 hzl.ncm +$ cd .. +$ cd .. +$ cd hrwjmrwf +$ ls +65264 btnzjtlr.qgg +123207 pqsn +30133 zzdfcs +$ cd .. +$ cd vblznslv +$ ls +19460 hzl +$ cd .. +$ cd .. +$ cd mmpf +$ ls +200340 dnsq +109756 snl +$ cd .. +$ cd wtwhzzwz +$ ls +dir bpwjhpgr +dir btnzjtlr +dir dgqljsbq +dir fqg +dir mbbtzgmf +dir vvmzhhtv +dir wglhbp +dir zcwmf +$ cd bpwjhpgr +$ ls +1514 mjczjz +$ cd .. +$ cd btnzjtlr +$ ls +209165 lszhdjr +$ cd .. +$ cd dgqljsbq +$ ls +160750 btnzjtlr +dir fqg +dir hrncl +5964 hzvr.ftp +dir jldnlddj +267082 qdc.grf +205213 sjpdjt.ngt +dir vws +175214 wzwwqq.stp +$ cd fqg +$ ls +dir ghsdjhj +$ cd ghsdjhj +$ ls +166720 jqcjngn.fmf +298171 zzdfcs +$ cd .. +$ cd .. +$ cd hrncl +$ ls +dir hzl +82355 trjm.mrw +dir vrqbf +261260 wsbpzmbq.hws +18593 wtmlmprg.whh +$ cd hzl +$ ls +344 drndgmgz.flz +241877 zzdfcs +$ cd .. +$ cd vrqbf +$ ls +dir blf +dir pzrfw +dir tbj +$ cd blf +$ ls +68629 wdhfbtj.ncc +$ cd .. +$ cd pzrfw +$ ls +dir hzl +dir mdh +dir tbj +$ cd hzl +$ ls +12677 gvdh.ltp +$ cd .. +$ cd mdh +$ ls +222003 qbvfdv +$ cd .. +$ cd tbj +$ ls +dir wtmcqwgp +$ cd wtmcqwgp +$ ls +dir stcgrs +$ cd stcgrs +$ ls +285843 tbj +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd tbj +$ ls +173380 mcgzmthd.mdg +$ cd .. +$ cd .. +$ cd .. +$ cd jldnlddj +$ ls +57836 brdtwc.pws +dir fqg +dir hzl +140902 lbn +dir qhrcm +dir ssrc +169907 wsbpzmbq.hws +$ cd fqg +$ ls +273621 pwjr.gwt +$ cd .. +$ cd hzl +$ ls +dir fqg +dir tbj +$ cd fqg +$ ls +290882 hcf.sqw +62759 hlntl.zqg +115593 ntgm.wjn +64481 qwtv +$ cd .. +$ cd tbj +$ ls +199421 gsvpcdm +200467 hnsrdnl.ctv +9980 lgqgdvwz.zdp +dir lqlml +19593 pgn +51598 tqqbwd +$ cd lqlml +$ ls +92416 fdwgg.rdp +279285 zzdfcs +$ cd .. +$ cd .. +$ cd .. +$ cd qhrcm +$ ls +278543 trjm.mrw +279502 zzdfcs +$ cd .. +$ cd ssrc +$ ls +238789 zfvwwnhl +$ cd .. +$ cd .. +$ cd vws +$ ls +249170 bgfrh +dir ndtnt +$ cd ndtnt +$ ls +5224 qwdnzdq.rfz +$ cd .. +$ cd .. +$ cd .. +$ cd fqg +$ ls +171994 trjm.mrw +$ cd .. +$ cd mbbtzgmf +$ ls +dir cfqzlgm +57211 ssvqllt.ccv +dir tbj +$ cd cfqzlgm +$ ls +dir tlbgq +$ cd tlbgq +$ ls +232962 ssvqllt.ccv +$ cd .. +$ cd .. +$ cd tbj +$ ls +23083 lszhdjr.lzt +$ cd .. +$ cd .. +$ cd vvmzhhtv +$ ls +150567 fcpv.vws +$ cd .. +$ cd wglhbp +$ ls +dir cjm +dir gjhzw +dir lmzzlp +123986 lszhdjr.hcj +275863 lwbz +121332 snnhqgp.tdj +dir stngv +dir wdzvcfm +dir wjqztbj +dir wzhsq +$ cd cjm +$ ls +300643 jhtjsn.hzm +$ cd .. +$ cd gjhzw +$ ls +dir hwlj +dir tbj +$ cd hwlj +$ ls +280279 ssvqllt.ccv +$ cd .. +$ cd tbj +$ ls +88746 ssvqllt.ccv +139206 tbj +$ cd .. +$ cd .. +$ cd lmzzlp +$ ls +9261 btnzjtlr +dir fqg +128118 fqg.fsf +165323 hnsrdnl.ctv +dir prvmm +$ cd fqg +$ ls +35303 dcglqd.zrj +71812 mvzh +32361 ssvqllt.ccv +69305 zzdfcs +$ cd .. +$ cd prvmm +$ ls +296946 zzdfcs +$ cd .. +$ cd .. +$ cd stngv +$ ls +dir hgj +46259 vlb.ztz +25946 zstwl.wgs +106712 zzdfcs +$ cd hgj +$ ls +289819 dhwr.mvc +85418 dvpvhhgj.fmw +108543 fqg.frj +229544 pwhwmctv +$ cd .. +$ cd .. +$ cd wdzvcfm +$ ls +dir sdphr +$ cd sdphr +$ ls +84638 hnsrdnl.ctv +$ cd .. +$ cd .. +$ cd wjqztbj +$ ls +240174 btnzjtlr.ldw +125567 lszhdjr +265718 lszhdjr.mmz +242407 wzjcc +$ cd .. +$ cd wzhsq +$ ls +dir hzl +22176 hzl.cpv +122990 ldtwhvc.vcv +$ cd hzl +$ ls +309519 plnn.pdn +$ cd .. +$ cd .. +$ cd .. +$ cd zcwmf +$ ls +dir hwq +268508 mztd +$ cd hwq +$ ls +189618 trjm.mrw +120145 wsbpzmbq.hws +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd qfrrtb +$ ls +dir dmntr +dir fqg +dir gpcvsbpl +dir hzl +dir mqbhs +dir pgvngj +dir pnrdwlqn +dir qlnwhq +$ cd dmntr +$ ls +dir btnzjtlr +141598 fqg.wcw +223036 hnsrdnl.ctv +96925 qhwmj +257697 ssvqllt.ccv +184839 vmbfhldv.zgm +$ cd btnzjtlr +$ ls +153689 jnbthqwp +dir tcp +$ cd tcp +$ ls +90378 mczzfwsz.hwf +$ cd .. +$ cd .. +$ cd .. +$ cd fqg +$ ls +dir btq +51590 fqg +176455 gnqsnpj.vsh +dir mthwtst +dir trhz +dir zbpjvb +$ cd btq +$ ls +dir bdnc +dir ttpj +dir vftshfd +$ cd bdnc +$ ls +263358 trjm.mrw +$ cd .. +$ cd ttpj +$ ls +185501 fqg.dvq +151107 ltmmsr.lqd +dir mbtqmqh +231236 sdzp.qhb +16601 vfflgw.vrr +75487 zbvllh.gqb +$ cd mbtqmqh +$ ls +dir lszhdjr +184660 pmwswf.lrm +dir tbj +dir zqbss +262042 zzdfcs +$ cd lszhdjr +$ ls +dir dmc +$ cd dmc +$ ls +173189 mzmr.nrj +$ cd .. +$ cd .. +$ cd tbj +$ ls +59531 fjqfbq +$ cd .. +$ cd zqbss +$ ls +dir btnzjtlr +dir lszhdjr +14365 sqdj +$ cd btnzjtlr +$ ls +113619 trjm.mrw +$ cd .. +$ cd lszhdjr +$ ls +87142 hnsrdnl.ctv +dir lszhdjr +$ cd lszhdjr +$ ls +dir jsdrvbhc +$ cd jsdrvbhc +$ ls +210295 hzl +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd vftshfd +$ ls +dir jjws +dir mvdcjgp +dir qflcrlrm +$ cd jjws +$ ls +82848 trjm.mrw +$ cd .. +$ cd mvdcjgp +$ ls +231865 lzzl +$ cd .. +$ cd qflcrlrm +$ ls +150667 btnzjtlr +$ cd .. +$ cd .. +$ cd .. +$ cd mthwtst +$ ls +26308 lszhdjr.dbb +$ cd .. +$ cd trhz +$ ls +16138 swtdz.hdt +$ cd .. +$ cd zbpjvb +$ ls +69598 hnsrdnl.ctv +96314 tbj.gpj +$ cd .. +$ cd .. +$ cd gpcvsbpl +$ ls +dir dbssfzqt +dir pgn +dir zfgvldv +$ cd dbssfzqt +$ ls +156599 jcv +68192 zzdfcs +$ cd .. +$ cd pgn +$ ls +124613 fqg +139219 gmnqvlbb.nnf +177527 hnsrdnl.ctv +116238 hzl.qwm +dir tbj +69576 zzdfcs +$ cd tbj +$ ls +78863 hnsrdnl.ctv +dir lszhdjr +$ cd lszhdjr +$ ls +76043 qjwjw.dbn +$ cd .. +$ cd .. +$ cd .. +$ cd zfgvldv +$ ls +dir tbj +$ cd tbj +$ ls +308796 gqcw.fsm +$ cd .. +$ cd .. +$ cd .. +$ cd hzl +$ ls +50784 btnzjtlr +19755 gjbcgphh.rbw +169847 lncnj.bct +46359 mbrtgl +dir nlnt +269695 wfg.cdn +$ cd nlnt +$ ls +dir cqfzqwr +dir dghdql +dir fnd +159573 hnsrdnl.ctv +dir lszhdjr +16814 tsm +59202 wsbpzmbq.hws +22244 zlbj +$ cd cqfzqwr +$ ls +213009 trjm.mrw +$ cd .. +$ cd dghdql +$ ls +61202 hnsrdnl.ctv +$ cd .. +$ cd fnd +$ ls +237330 hnsrdnl.ctv +$ cd .. +$ cd lszhdjr +$ ls +222813 ssvqllt.ccv +$ cd .. +$ cd .. +$ cd .. +$ cd mqbhs +$ ls +dir fqg +$ cd fqg +$ ls +121590 lcwsbvw.jlj +13769 zzdfcs +$ cd .. +$ cd .. +$ cd pgvngj +$ ls +29079 lnfsw.mvd +dir tbj +$ cd tbj +$ ls +303514 ssvqllt.ccv +81789 wsbpzmbq.hws +$ cd .. +$ cd .. +$ cd pnrdwlqn +$ ls +145498 btnzjtlr.hdq +209811 fqg +dir gscsq +39287 jbln.grc +dir lszhdjr +dir zcj +$ cd gscsq +$ ls +dir btnzjtlr +257666 cmflqncq.csp +146453 lszhdjr.jvl +21252 ssvqllt.ccv +dir vjpgs +29627 zjgswm.zmw +$ cd btnzjtlr +$ ls +52870 fqg.bcq +131279 hnsrdnl.ctv +dir hts +180154 plgqz.lfz +118677 ssvqllt.ccv +143055 zzdfcs +$ cd hts +$ ls +295829 hnsrdnl.ctv +$ cd .. +$ cd .. +$ cd vjpgs +$ ls +247444 fqg.rjw +dir hzl +113248 tbj +$ cd hzl +$ ls +91966 ppff.qhn +$ cd .. +$ cd .. +$ cd .. +$ cd lszhdjr +$ ls +290399 grzs.btl +11125 gswg +110268 mhdfszz.pdh +dir mwbjshb +dir ndtllttm +126485 wsbpzmbq.hws +152691 zzdfcs +$ cd mwbjshb +$ ls +119607 rpgml +$ cd .. +$ cd ndtllttm +$ ls +5107 qsqqfpc.mzf +$ cd .. +$ cd .. +$ cd zcj +$ ls +dir gftzs +131397 ssvqllt.ccv +dir vpqvpmv +dir wdqw +34540 wsbpzmbq.hws +$ cd gftzs +$ ls +115531 fbjj.vrn +$ cd .. +$ cd vpqvpmv +$ ls +dir bfqpwgdc +67619 ffbllv +dir tzr +$ cd bfqpwgdc +$ ls +144904 fqg.djq +dir gbn +dir jzz +dir vtp +$ cd gbn +$ ls +dir btnzjtlr +$ cd btnzjtlr +$ ls +dir dzsbcqjd +253792 fqg.fcw +209245 fqtqsdrt.pqd +303280 nqvqm +271246 vchvvq.cft +$ cd dzsbcqjd +$ ls +13953 tbj +$ cd .. +$ cd .. +$ cd .. +$ cd jzz +$ ls +234810 ssvqllt.ccv +$ cd .. +$ cd vtp +$ ls +287225 rzqfq.pvj +$ cd .. +$ cd .. +$ cd tzr +$ ls +135596 bbzlnjtc.fft +dir bqfz +dir dztgr +306047 hnsrdnl.ctv +248180 jzdzf +dir lszhdjr +dir mds +dir nmdc +dir qpmt +126445 wsbpzmbq.hws +191907 zzdfcs +$ cd bqfz +$ ls +137988 fqg +122217 lszhdjr.bwc +232293 ssvqllt.ccv +168937 twrtmwh.ddc +$ cd .. +$ cd dztgr +$ ls +23653 qhrp.ljh +$ cd .. +$ cd lszhdjr +$ ls +dir ghqlj +dir qjjvfv +dir qsjrnq +$ cd ghqlj +$ ls +184316 ghshmzt.srl +258282 nbqndwj +dir ndd +dir tqqlnw +68843 trjm.mrw +92593 wllcqzfr.mbd +$ cd ndd +$ ls +152924 gvclc +77856 llztchwp.jjd +$ cd .. +$ cd tqqlnw +$ ls +4090 flvdsc.zsv +219378 vgwfn.zjh +$ cd .. +$ cd .. +$ cd qjjvfv +$ ls +230606 trjm.mrw +$ cd .. +$ cd qsjrnq +$ ls +252853 fnnbmt.dtm +279660 lszhdjr.rjc +$ cd .. +$ cd .. +$ cd mds +$ ls +10903 jzwjv +$ cd .. +$ cd nmdc +$ ls +114234 hnsrdnl.ctv +$ cd .. +$ cd qpmt +$ ls +171542 bvrzgp +129238 hnsrdnl.ctv +137570 tbj +54929 vtcfq.npn +44117 zzdfcs +$ cd .. +$ cd .. +$ cd .. +$ cd wdqw +$ ls +dir jmvsdlv +dir mjgpdcbl +$ cd jmvsdlv +$ ls +dir flnnqz +$ cd flnnqz +$ ls +224693 flqpwqp.fwn +$ cd .. +$ cd .. +$ cd mjgpdcbl +$ ls +140928 btnzjtlr.prd +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd qlnwhq +$ ls +dir btnzjtlr +dir cbhr +dir cnbssw +dir dwvv +dir lszhdjr +dir rnhnbs +dir sdhqp +$ cd btnzjtlr +$ ls +225671 ssrcp.chb +268250 tbj.cfd +$ cd .. +$ cd cbhr +$ ls +68468 qdqlml.qrj +$ cd .. +$ cd cnbssw +$ ls +dir tbj +187921 zscs +$ cd tbj +$ ls +307230 hzl +dir jbcnnvq +228268 lssvr.gfn +$ cd jbcnnvq +$ ls +277047 nztsr +$ cd .. +$ cd .. +$ cd .. +$ cd dwvv +$ ls +267743 btnzjtlr +dir fqg +68364 qznpsjp +dir wdr +230595 wsbpzmbq.hws +206 wtwwd.jnb +$ cd fqg +$ ls +260003 btnzjtlr.hjn +103775 btnzjtlr.ndh +200945 trjm.mrw +dir twpplmhh +$ cd twpplmhh +$ ls +dir tvrq +$ cd tvrq +$ ls +298383 ssvqllt.ccv +$ cd .. +$ cd .. +$ cd .. +$ cd wdr +$ ls +248357 tbj +$ cd .. +$ cd .. +$ cd lszhdjr +$ ls +259605 lszhdjr.mvw +$ cd .. +$ cd rnhnbs +$ ls +297597 hnsrdnl.ctv +$ cd .. +$ cd sdhqp +$ ls +95362 wsbpzmbq.hws \ No newline at end of file diff --git a/2022/7/rust/src/main.rs b/2022/7/rust/src/main.rs new file mode 100644 index 0000000..8cf0f0b --- /dev/null +++ b/2022/7/rust/src/main.rs @@ -0,0 +1,107 @@ +use std::borrow::Borrow; +use std::cell::RefCell; +use std::fs::File; +use std::io::{BufRead, BufReader}; +use std::rc::Rc; + +#[derive(Debug)] +enum VNode { + File(Rc), + Directory(Rc) +} + +#[derive(Debug)] +struct VFile { + name: String, + size: usize +} + +#[derive(Debug)] +struct VDirectory { + items: RefCell>, + name: String +} + +impl VNode { + fn get_size(&self) -> usize { + match self { + VNode::Directory(dir)=> { + dir.items.borrow().iter().map(|item| item.get_size()).sum() + }, + VNode::File(file) => file.size + } + } +} + +fn main() { + // read testinput line by line + let input_file = File::open("input").unwrap(); + let mut root = Rc::new(VDirectory { + items: RefCell::new(Vec::new()), + name: String::from("") + }); + let mut path = vec![root.clone()]; + + for line in BufReader::new(input_file).lines() { + let line = line.unwrap(); + if line.starts_with("$") { + if line.starts_with("$ cd") { + let name = line[5..].to_string(); + if name == "/" { + path = vec![root.clone()]; + continue; + } + if name == ".." { + path.pop(); + continue; + } + let directory = VDirectory { + items: RefCell::new(Vec::new()), + name + }; + let node = VNode::Directory(Rc::from(directory)); + path.last_mut().unwrap().items.borrow_mut().push(node); + let directory = match path.last_mut().unwrap().items.borrow_mut().last_mut().unwrap() { + VNode::File(_) => panic!("This should never happen"), + VNode::Directory(dir) => dir.clone() + }; + path.push(directory); + } + } else { + let size_string = line[0..line.find(" ").unwrap()].to_string(); + if size_string == "dir" { + continue; + } + let size = size_string.parse::().unwrap(); + let name = line[line.find(" ").unwrap() + 1..].to_string(); + let file = VFile { + name, + size + }; + let node = VNode::File(Rc::from(file)); + path.last_mut().unwrap().items.borrow_mut().push(node); + } + } + + dbg!(&root); + let root_node = VNode::Directory(root); + dbg!(root_node.get_size()); + + dbg!(get_size_if_smaller(&root_node)); +} + +fn get_size_if_smaller(node: &VNode) -> usize { + let node_size = node.get_size(); + match node { + VNode::Directory(dir) => { + let others = dir.items.borrow().iter().map(|item| get_size_if_smaller(item)).sum(); + println!("{} {} {} ", dir.name, node_size, others); + if node_size < 100000 { + node_size + others + } else { + others + } + }, + VNode::File(file) => 0 + } +} diff --git a/2022/7/rust/testinput b/2022/7/rust/testinput new file mode 100644 index 0000000..bcbb513 --- /dev/null +++ b/2022/7/rust/testinput @@ -0,0 +1,23 @@ +$ cd / +$ ls +dir a +14848514 b.txt +8504156 c.dat +dir d +$ cd a +$ ls +dir e +29116 f +2557 g +62596 h.lst +$ cd e +$ ls +584 i +$ cd .. +$ cd .. +$ cd d +$ ls +4060174 j +8033020 d.log +5626152 d.ext +7214296 k \ No newline at end of file diff --git a/2022/7/testinput b/2022/7/testinput new file mode 100644 index 0000000..bcbb513 --- /dev/null +++ b/2022/7/testinput @@ -0,0 +1,23 @@ +$ cd / +$ ls +dir a +14848514 b.txt +8504156 c.dat +dir d +$ cd a +$ ls +dir e +29116 f +2557 g +62596 h.lst +$ cd e +$ ls +584 i +$ cd .. +$ cd .. +$ cd d +$ ls +4060174 j +8033020 d.log +5626152 d.ext +7214296 k \ No newline at end of file diff --git a/2022/8/input b/2022/8/input new file mode 100644 index 0000000..7d4deb5 --- /dev/null +++ b/2022/8/input @@ -0,0 +1,99 @@ +201020000020303322022230330032044230113031313453252125532013420102412124020323433212213002201211011 +221122211131113232104233242130410414321444153244521454234151454403433303343014014211200020130201021 +102112213233022132323042313331110325141414514433444245122521543551413102221240240323013132010021012 +212122031103022003403234000212443324321434314422155233242453534233211343234422013224013220221331221 +120021002213013004322300004342351223253453131112554355354434514543424530141014330412112220012030100 +110030220312301221303240114023511313251235452554153313533532225523321252124201204244311022232032121 +121312201031322130110230412421442225245334123131515145212234133433233415522311231022134311321000221 +020100230031324430434024341335115412553414512562656363444145352221421522445422002030434102031122130 +220000230104403311312243233214515515435446342656324242626366645135422532125214432110131210310103230 +003003023131341211210331221223524241336226535362556324264636464225534143523153343232320341113023131 +112223200042240014101242254443335526426222663425434645266646256425232421555443522443343343040222212 +231012311120242400241444133551534245553543635524435534563436246556633523214513454134202402412222032 +220330240202202404535344311352665323254453226554432365224562355554363363151333234523041303220413221 +121002021430011334451344213364255233644624234666262534356622453454246624421544511143144103011020033 +202020322113024543532552542653345533456452562654645534656235562433434436334415143435524332020024003 +310110320114244152352314562242344252626553665353436643466362666566456525655324341215522140012022100 +110221133144051254241134634243634566337575354377753676574754763556336655255552215423315301120131010 +023103330131235322233516355555532625334656646336557633446767674554556336223544425443251340040433200 +132432123105353411452624322225325575374337563365746736564554336544355525366432631211232245344411413 +033132343444521244516544436535523466654537667544744476663746573636745636442363332524245254113330422 +240212240325552121365552256263733535565735746335463466567544543567734476366523225543133253533443332 +014040044113115313255646226444543555553356676643554577634743436547456666263336536224543412443204140 +400012201233335543436555243267766533635344636448755547767763564464353465424466233534541535134330223 +310321424323512214423252666345734663434464454477755755574766576757375645452364256455231125523143113 +120341315235134355553326253673657737467854647875554685867768888363564466744522656643243411411202421 +211424435534222552464542277754654673778574565664685656668785788674337456733762422665562115243331420 +041224121545426324343433735556775558747778655475548446546444644855836447336533256244246131551211221 +323022135312246564666246753547457576485774746455864785476454854456677544744755446355253333324224223 +422404312454164254356374377556777545446888854765488865674655784555588374336774323453664635521512403 +320111121333525633233467447363474754757666544975878856568786557468785844346456746244362554214155023 +432133454253265442345345367564745678767664779676785676798694645576758675675747735332642463312112442 +303044543315533422426665357566548776856698687968965877966777576476455648334774674336234564143523313 +141124135323365336635663746548446444577695886575586577666799555466665865475376647553423643512423530 +214355155153534342435373445867856445699798866765787679777879657677674465463366466546466355423513541 +003314452422264644754655647484847787556699986866665997688995697585544577454635535652562622625554232 +315232221245242552336775778457657668657989955685775566796966866855746586478664734656234355514532113 +114523555126323526455355657567578457756678568766677866966877997875946568856775756354534423351113425 +323154212432364243635574378486488795588786589898766869768775675985574687587653464466455563533245312 +315513155645632255373634478746559855698786877669779868866968696889595665758655537764544622435452211 +155455415243234246537643657878448578656566766676798978896899986985897445746483446365556345462215431 +132413352225424265436564845767665787788796666978899699878767689797576774668475563457633455426325145 +035342443624642673756568758755467769877698897769966699866679798958679645876645565566733542646215143 +252343432363525635777736884647665956669776899668776967669967686779669885785475437576333252562122345 +411311213323642436666665454786686569677689978787778968768667697778676656447454536774434556532524442 +325115355463345543664455455688586966988886788699779997996789877987877886457686473773546434644314535 +433555536433446454546485748745986879998796687879987888976878898856799789848876646575536265334111424 +545552165343435735755454777565959567986989967798977988887789877895885889675565554633442654643654425 +534223446223323736633585867855878669869696967889999787899679788795669667766454554437732624542231312 +115411526646527737747346785446589788969689987798978778889786868668995757566484657566775233634435121 +344525324534526535464368486565899669977988997898987977887886966767756889676855867574773434232411251 +212512245524437756563668454567599955986988888977789987788876798885976658848846474664543353623513415 +551242242534355353554587765457785895879698687978789997977777789686767995845757837367743655563315111 +333112226262653563744368577646597976867687789887788779798677766986556597758484573466337344546512342 +121453322644444354654584784688689598898878667899999977787999989686675767768757754646344363534211134 +415125366435452537577667458578656866778878878989887897798696876865789875444444476657445326253554534 +531113124455566744773445888477797596776969696979979799976899787979559588468555864477433426232435435 +444525352562435775533756588888599876778978668889988889987788876698578696586586766446442222434453551 +011423454424543744555648557788899588786976898979897878676876899758695857847865556577643446232444355 +113421412445663737435776446764868968996886799867787678867889686575587867867668433433575266324212535 +145313224636652244437535645477787898657898779786667978667976987965688977844457744773662435264235354 +322444552534333347547755588474678658788868996769867787869968657869969757854476677475346522364245435 +155451413634255633367675574887588657599988966986786889869999699857556674786566436355453655255335313 +011115224526426436457765544677789855685775669668769679776898685585875448877747355533463542265253313 +421513353634556643545746565788448798995557797867679997976966568778684755844657453474324363644422132 +424124123234232356335437365774776476777675995766896668885965685798754488687775575546465336614141113 +224525232426666356376347735456687547888958866599959977868595685699855768855537645475325566411521441 +010452514236325625664763535865858674855756888557776597995795768884668555854353653373442452223555110 +233452123533246442646765653487474644476798588579559689875968697974478784843437774765534656111433334 +334334531432222443267675376487857555675967869879855979697965677677654566636735646454225662144133140 +001225254155444434645666766357784466776477977878858787696555844667676744356533335232323623531345103 +302135311134435335527576674573867586767686688596997797787797478864775445673573367224525231252152212 +021404135525242534545665443545765777746456888579777989695865687784648643756566573366254213344555213 +044343323333323665255564365457338554886888546875566766477546647686484333337574565545432645234453401 +231000311153344624642634556547376875677587555667576684856587746845654457543436343466453314145250040 +200012424534143465246433675577347368864864757878448674875474676547545557443443256425556112543112221 +224122332451313652563435455457334565685444887787864765466648855483744576536663554253355253222220142 +043224025444321226454346556743664643465465845468785848846464877773545666355223262524421325243212321 +011040433124534116256654345354363635553646677845786467868647636353444766632635336654314321515320323 +331402111232145443263353466367765354433665344655866647668766566467474454662654334463114315541101210 +141103243533333225463465245644376767537677653735747535776456356376475676223566524434314115221424420 +122341124454254443564665254462753646774546734435734653654337646565366653525255342315353143231112131 +330241244331352334326263342332334543656756577774736743347437637454636626622453322353151335342031410 +101011141113311355121535244662346675667453474664477373444434537764332345353422642151445213331300321 +202434003224355125334313254642523662545676534675755643446547547664446622455236424145114330232141343 +223234300341032154514515266265623564465444376553447554737466375246532435533642331333435534213043030 +311120432040113211154333223444563336266242444543434767633353325334535623424341534254112432413322201 +201001024310404525411124234435523356244264563453345644646332455353525233353423222122553440131133000 +230101031024214425345433251153455563362556546652446245554534555434622455613435314215221041142342212 +002221213412420132124132321151523626344332445632454654365454525366352463343212512523014244333223200 +100132021423121332553234241241144454442525436534326442642454344636254511213144453134023432124110122 +010031101411142421225123351233451143554553325465225435565244533246241145141153143241213213041000302 +023323303001214031042243121311443352365626544526226433435636553353223153445124413242211232310121003 +010332220132301212403032412131445344225445255636665232224563245351225444153421101444022242211023131 +200231322211423420140141514424354541422215543125636226333224413143525251333221024210333121131120023 +110121032233102443112231002123151545531214331415224411123531145123422253222101330122000430133010030 +011001132223211344301013433412413154113522251445542421555254214443451322303310300203231022121333310 +021200232231012000201011020121322235235233535533352543221242332553452143101022000414323230132102112 +002101113203023310140322141401244212541455241424152514451444325212444422133103022314330130021132222 +100002203323321203402423434324400223225443334554221555514312335522000320202144212403130203231300110 \ No newline at end of file diff --git a/2022/8/part1.ts b/2022/8/part1.ts new file mode 100644 index 0000000..5b20364 --- /dev/null +++ b/2022/8/part1.ts @@ -0,0 +1,40 @@ + +const input = Deno.readTextFileSync("./input"); + +const lines = input.split("\n").map(t => t.split("").map(t => parseInt(t))); + +let hiddenCount = 0; +let visibleCount = 0; +let edge = 0; +let interior = 0; + +for(let x = 0; x < lines.length; x++) { + for(let y = 0; y < lines[x].length; y++) { + const num = lines[x][y]; + + // get all numbers in row; + const rowBefore = lines[x].slice(0, y); + const rowAfter = lines[x].slice(y + 1); + const columnBefore = lines.map(t => t[y]).slice(0, x); + const columnAfter = lines.map(t => t[y]).slice(x + 1); + const isEdge = rowBefore.length == 0 || rowAfter.length == 0 || columnBefore.length == 0 || columnAfter.length == 0 + + if(isEdge || (rowBefore.every(t => t < num) || rowAfter.every(t => t < num) || columnAfter.every(t => t < num) || columnBefore.every(t => t < num))) { + visibleCount++; + if(isEdge) { + edge++; + } else { + console.log(num, rowBefore, rowAfter, columnBefore, columnAfter); + console.log("visible interior"); + interior++; + } + } else { + console.log(num, rowBefore, rowAfter, columnBefore, columnAfter); + hiddenCount++; + console.log("hidden"); + } + } + console.log("ROW", x); +} + +console.log({ visibleCount, hiddenCount, edge, interior }); \ No newline at end of file diff --git a/2022/8/part2.ts b/2022/8/part2.ts new file mode 100644 index 0000000..165f5e6 --- /dev/null +++ b/2022/8/part2.ts @@ -0,0 +1,43 @@ + +const input = Deno.readTextFileSync("./input"); + +const lines = input.split("\n").map(t => t.split("").map(t => parseInt(t))); + + +let highestCount = 0; + +function countLength(row: number[], num: number) { + let count = 0; + for(let i = 0; i < row.length; i++) { + count++; + if(row[i] >= num) { + break; + } + } + return count; +} + +for(let x = 0; x < lines.length; x++) { + for(let y = 0; y < lines[x].length; y++) { + const num = lines[x][y]; + + // get all numbers in row; + const rowBefore = lines[x].slice(0, y).reverse(); + const rowAfter = lines[x].slice(y + 1); + const columnBefore = lines.map(t => t[y]).slice(0, x).reverse(); + const columnAfter = lines.map(t => t[y]).slice(x + 1); + const isEdge = rowBefore.length == 0 || rowAfter.length == 0 || columnBefore.length == 0 || columnAfter.length == 0; + if(isEdge) continue; + const rowBeforeCount = countLength(rowBefore, num); + const rowAfterCount = countLength(rowAfter, num); + const columnBeforeCount = countLength(columnBefore, num); + const columnAfterCount = countLength(columnAfter, num); + const count = rowBeforeCount * rowAfterCount * columnBeforeCount * columnAfterCount; + console.log(`[${x} ${y}]`, num.toString(), count, rowBeforeCount, rowAfterCount, columnBeforeCount, columnAfterCount); + if(count > highestCount) { + highestCount = count; + } + } +} + +console.log(highestCount); \ No newline at end of file diff --git a/2022/8/testinput b/2022/8/testinput new file mode 100644 index 0000000..6557024 --- /dev/null +++ b/2022/8/testinput @@ -0,0 +1,5 @@ +30373 +25512 +65332 +33549 +35390 \ No newline at end of file diff --git a/2022/README.md b/2022/README.md new file mode 100644 index 0000000..29909fd --- /dev/null +++ b/2022/README.md @@ -0,0 +1,7 @@ +# Advent of code + +Santa's reindeer typically eat regular reindeer food, but they need a lot of **magical energy** to deliver presents on Christmas. For that, their favorite snack is a special type of **star** fruit that only grows deep in the jungle. The Elves have brought you on their annual expedition to the grove where the fruit grows. + +To supply enough magical energy, the expedition needs to retrieve a minimum of **fifty stars** by December 25th. Although the Elves assure you that the grove has plenty of fruit, you decide to grab any fruit you see along the way, just in case. + +Collect stars by solving puzzles. Two puzzles will be made available on each day in the Advent calendar; the second puzzle is unlocked when you complete the first. **Each puzzle grants one star.** Good luck! \ No newline at end of file diff --git a/2023/1/Cargo.lock b/2023/1/Cargo.lock new file mode 100644 index 0000000..3c3af0a --- /dev/null +++ b/2023/1/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "first" +version = "0.1.0" diff --git a/2023/1/Cargo.toml b/2023/1/Cargo.toml new file mode 100644 index 0000000..d68bcf3 --- /dev/null +++ b/2023/1/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "first" +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/2023/1/README.md b/2023/1/README.md new file mode 100644 index 0000000..31b02db --- /dev/null +++ b/2023/1/README.md @@ -0,0 +1,26 @@ +# Day 1: Trebuchet?! + +Something is wrong with global snow production, and you've been selected to take a look. The Elves have even given you a map; on it, they've used stars to mark the top fifty locations that are likely to be having problems. + +You've been doing this long enough to know that to restore snow operations, you need to check all fifty stars by December 25th. + +Collect stars by solving puzzles. Two puzzles will be made available on each day in the Advent calendar; the second puzzle is unlocked when you complete the first. Each puzzle grants one star. Good luck! + +You try to ask why they can't just use a weather machine ("not powerful enough") and where they're even sending you ("the sky") and why your map looks mostly blank ("you sure ask a lot of questions") and hang on did you just say the sky ("of course, where do you think snow comes from") when you realize that the Elves are already loading you into a trebuchet ("please hold still, we need to strap you in"). + +As they're making the final adjustments, they discover that their calibration document (your puzzle input) has been amended by a very young Elf who was apparently just excited to show off her art skills. Consequently, the Elves are having trouble reading the values on the document. + +The newly-improved calibration document consists of lines of text; each line originally contained a specific calibration value that the Elves now need to recover. On each line, the calibration value can be found by combining the first digit and the last digit (in that order) to form a single two-digit number. + +For example: + +```txt +1abc2 +pqr3stu8vwx +a1b2c3d4e5f +treb7uchet +``` + +In this example, the calibration values of these four lines are 12, 38, 15, and 77. Adding these together produces 142. + +Consider your entire calibration document. What is the sum of all of the calibration values? diff --git a/2023/1/input1 b/2023/1/input1 new file mode 100644 index 0000000..1ba8437 --- /dev/null +++ b/2023/1/input1 @@ -0,0 +1,4 @@ +1abc2 +pqr3stu8vwx +a1b2c3d4e5f +treb7uchet \ No newline at end of file diff --git a/2023/1/input2 b/2023/1/input2 new file mode 100644 index 0000000..91838ce --- /dev/null +++ b/2023/1/input2 @@ -0,0 +1,1000 @@ +9sixsevenz3 +seven1cvdvnhpgthfhfljmnq +6tvxlgrsevenjvbxbfqrsk4seven +9zml +52sevenone +41onevfsgvssxnpsix38four +15ninedzhkpfstrscggbqhktwo +rxbfsvhpnjvsixmxfhhmvdvg26rgrfj43 +gcbq2sghsv4fiveeightrlhchsfs2hsrjknfz +tworgqpdjzrzf7one +fivefive18 +sixfztrcxmbzktwofour3fiveeight +2g4stjrjjmbngvljfvg24 +5jkcdxkltwo71 +vhpttjh2 +3threegmsppjrngfive7 +ktkgsvkthreevone2xxrxzgdqpnone2xnf +llxzczt3seventwotwosix5 +eighteighthvllljmgg82eightseven2 +9hcjzphpktwo76xfpdvnhklzthreejrzkdknhrktwo +fourtwojrvzzctzs5eight2vlm +zoneightthree2hvhfsprqxmlsix7onevn4 +56sixssevenfour5twonine +58fourfour +683 +8fourninenhfpz9eightptsnnb +gddmrzlpn9 +g3qsbqmbhqqp1eightkjggcxpmzgg +6bzjqs7nxpvgtwoseven +271lonepxp2flbmbz +5sgshnrfn9qxt8xsnhtdtx6 +cnhflx4sevensixonethree +595six93 +6eight8jbtmxdqpj96mqkrdxt9tpbpppl +68qvmgth371lqcrglmvqxtwonfk +mbqbhpmhspsbbxgflg98zn +8oneqzvdcrh +kb6 +mhgvpmfgjfourfourtwo4 +81mvcgqxlktbpkkrsgbdgeightbqn65 +hlbhthree1seven9 +vqczmtvqsnd3sh63 +qrzngvmk8 +chpldqtkhqbvdvmnqd5 +6three6two +sevensix4tjvkcfgpone98 +96zgpcq9four +cbvksjgvvklhnksixfive7kmmxg +threeljfr1vzskggfvjsccc +8pfourthreetwosix +l2sbdcvngvmtzrtq +hjdxfj94 +2hbhfbjfteightnr5sixfpfjkn +2sevenjqlpprggjlkddqv9oneightpj +fivebfmkdrrrdkclkscqmtwo6five7 +fourrp8fnbp9d1fl7 +six8pffqfpjl2nine +91sdjlghq5 +fivemrmcnjmfcnck2 +v1 +78htfvqsztlsixeight +5zpjtbgpkvkxbgpsp3cgklflkhdteightwortv +mcxqfgxt49sevenone9 +rt2dsvpf +9dzxmfour76six +tsbmbdrgmzsjeightonezqhqb5qn +seven8zllmz +373onefourthree +1fourfivezthdcxfr +996seven2four +8smnghninezczdlzxxgf +7cbqfzrmhxdmrdr94tz +6vstr65tfivelmhjshhj +248fourlckvrtnzz4sxdqpgkvh +zfivejfgfgdhfrhr6 +one2tworsmtnzfjhvvqjnp +5threefourjsnfzninethreejrknzfn +seven9nine +gthree15fivemzpnqgttcq1 +fivevvvkgtvs3four4 +five121three +7fourn +sixdnineqvfqglmn98516 +ninesixrppx4 +threesevenxbskhlqbone276 +fivesixfour82 +tmdnvgrkjxfour9 +61nine +vtxpkcgb48jzx8rgeight7 +twoonetwo3 +four167bnbdtxq4xvdgckkpb2 +xgbxvx7ninehmvqlldtxls88qhztfldr4 +5qxsfdchthree41 +fournb5gfqzfrlnc5fivethree1 +t6fourh3 +ninefgzksevenseven5sbcpnczgflqptjhk +6three4 +5tnplthreeeightvsk2fivesix9 +three8hcvnmvbhbtwo +6jnfourdbcgzgfzczbc +z53 +fourxzhgjfrrbmkcheightfive7seven8oneightb +2fivehkhnbtm +rptgktsnzvsslcvfsevensixfive72 +95chcvtxv4 +ninenldnphcpn93fivetwo7 +threeeight675vmhvgtxxc2bp +hfdmpv6 +xpffsljjcm27 +8sevensix8 +7hmszcvzpf9eightqqxgjdnhpfour68 +2czrnzdpxsjsdldcxq2vzgfrthsssix +four5bdxdnvtgcbdzzsxjdlbckninetwo5 +35fourfive6 +z5eight3r84hvptgskcclbsgh +2eightljldmconeeightgvhm +4sixsixsixfourthree +tnnthreelfmhone1onepfivevdg +8nine9lmpptxstrrbqbjrjtm4seven +2ltqd9mnrbhcsprz +two5ptcjzbqnk2spvlcxqvglndgvrlm5fiveeight +52sqstnqpdeight55 +2nvskvthreeqhkqvjzqrk1 +gbkqz127four +8zmngr5381rb +klrlqvkhslvbxdtwofour4cmlpbdm6 +eightninenjnmc8zrnrltgfmfour +38sv7 +eightvtkkmhhninebmgdvconenine7sixjkdzxcr +h14bdgvknbnjq4fv +74svtwo +7three5sixone4 +zseightwo6five +shkznseven5ninefivefour8 +mcmztmrgctqszzpqs8tworfvkseven +onejjmdfour15nine4 +7bxqxxxvlthree4tb9five +twoqzpx6hj +68hbdjdd45two +68 +4hxlfbgvtdmbhnpfzxpnltfivemtmczjcbffour4 +fourseven4hfffmtqoneglgnnsrqsmbnxr +dhbbmcxtv7five9ffjjcmshv31seven +foursbgvhgbggnine6three4zznzcvmxxqktpdhff +681cvdh +3ninefivefive +jg4dnnxzdtwoqdbvfsix +g4dbeight6rkc +236bjcppxmlnine +5crthreefive8 +6twoknqfbmeight5c +64eightrkvvtjtsonefour9eightwoqxq +sm7sixfivexbrkvhtl9 +threeninetwotwo1one +tjjeightwoj3gsdmdseventwo1 +63sevenk4blssxzkcq29ztjlnx +ckpleightxgngnhkj2threem +8knckxzrfbbpxldzninennnmkxkzzstsflv9two +rmldrlcvccgdbvdnxvqr3ninefznpqrrtd1cfpjrvjzs +5twojdflbxnlslnsjtklqkrbklvkthreejgxkfzeight +sevenxfpzvss6 +one61 +2seven7eight +fivefive5fourtwo9vjmxmtpv +4pxfour +twofive1eight9ldjbfbzhhffdb +onefive7four93pjchnkrzvz +4194hgfslhdczj1ztjtnccpjseven8 +sixtkjmtcthreezjfcgbdhvqlmbpzmc7 +nineeightvnd55sftvbf4sevenrkgbjskxbj +kqoneighttpqcnsphsfour7eight9sixthree +5foursvfsztnfivekkkftdfbptmrgcone +sevensix8one5zjlfcrqzvp +1hmvpbhzcbgbgvdkblnhgklltxx +55xszsjgbd2fk +hdrhmddj6ninebcfhbd +f91six +3tltgktntqpkeighthbqhlxcqnffgbfvxrkmr2 +3jthree +2eightplclghthree +771 +5gccqqmzmx81twob +6pgnqbsqglk44mvslnxghckcbtffxvkq2 +twooneone5 +twohbxsxj2six826hlkdjnnz +17tbdmntksvn89fivethreeseven +sixplznhmbgzmlh3six1 +h2kvpbnkcxrssevenfive +jhpmnksix7fgnbhgv8fztxfrpfvmnrvhzr +vskpbnine3vjqdlmv9 +vmg86ht36sbnzphxfive +klqxeightnine6 +4nfninelzshl26 +zqsb243hfdtvgx +two9tzcrmrsix81xsgvldl +ggqeightwo5bdpqtjkgzdclxsqptwo1eight1 +pvfzftdxqzfourmmbzlbzcfsevenfivesix5 +fivelt5fivegshvshpvkpqlddmfj6 +cjpzgsvgsz7kzcpr1sixfour +8two4onesevenseven7v +ztwonefouronezdvggfive8eightzflpvlnxfspgrtwo +one7tphmqvfltwo +49seven2three +9rntqtxseveneightgflqzkrxhglrnvrvz1 +four6nine7 +5nine3 +4ddpkhft12hrhjvbtdxthree1tpknk +7k +fmlrpkxqktzdldrs84onefptgdjspldljvnine8 +oneseven4nineqbqlbxf2kqnpr +ffivetwo97mp +47h92ffcd6 +two7tcjvxdvctfivepcqxjnzfourfcndmdmnjseven +cjdjxmnmpqr6cqvcscdpg +onefour95 +seven9onenine +trpvv6six64kfmxqrdvbsevenhqzk9 +tsgpcfxsgsgmhd7rvfz +66788 +five26b +chcbxone1 +6mrlfkqjssdxbtzkshvc8hjltjjxthkl +four5sdsevenvztqmzkm21threenine +snxrlctcztlbntnxkpmbs2 +652nnhvz6vcgx +2zrxljdgsnnfour5fourp4 +85lzkjln55239 +51fourrnbkb4 +xbvsjmgsjdvhjpxdjhl1 +6sevencfhtbm4svgpzeight8three4 +827cclvxpdgqlhrjvrgxbxthree +8pgqr +three2ninesjztqjdhdv +538one59one +6lcmxone4ninehzzb13 +phckzkgtxdcnine8onefour744 +five61 +skbknb9qknrlszdt +fivenine6jnxfsseven7 +lfj2onethree4198 +bb9 +kfljcb5zssbrlzml +twohmspvflmxnine2eight8 +4onegfnxxqpqnfour7 +qvg7seven4 +85bheightghccknine1three +fivedpthreeseven1fiveseven2 +6nine3gzlbtvtvlnine6eightmdn +seven3seven58gzmdjmchdrzxgkgbbfrf4 +2lxbnnsixgdcv6hrqjnfhdmz +8threefiveflbfmthreegtvckvpxkd856 +jbnkkbvfivexqzm238zxvztfl +68kglf7 +9fivetzjsixkvfrngxbfbbjpd69 +ninejgz82fivenltntmfs6xpxc +fourlseight3qrrrrddzlone +seventwoqfkj2qxzddcgtb348 +xgjddt5 +q8bfhspkgmsevenninevdqmlzxznhmdlg +qc2sqqlkfrkj652xpgzjskr3four +two3tpl1cvmldrrghr +qhoneoneseven9zfivevrkkjhtdf +ddjczzpcvkksjzdcmxkhmbds2 +qnvgskzdb3nine77sdvfhfqsnv2kjffgsvz +six8three3vbpnkb +rgjmvgtgfour36qqbqznkjv78cbpdqb +fournshtzbqfourthreefive8hsbpflngrvzdhone +toneightone9four +fourkkxtzpfivetwovnvxmtkeight4t9 +tbxlvkc5vgcmdckzv +7threethree +9ntqnzpldshfqlc2six +8zs7five +3threethreentqthree +jmxjl4four5 +jnmrhzpdvbvvg9qcxjjmv2msrszndl +onezjrkeight4two2seven +32jlkhszgnkklbrsgpplphh +1gsdqlbgt5eight1 +219 +93gcgx2twothree9xggt +5fivenine1fiveplgmlffsvzbtqpb +qv7lthszlgxeightnine +7sevenmhmkcrkkq +mxmmgqp4rptkbhfourvjh +3mrmhgjmdv6pvfkbmconelmlckqkxjfiveznxg +7one1kbjnmtpskgsix99 +bsvjlfgrcvvhmnfjzktdeight9914 +csfrjtwofivebcrcmggfpfsevenlmhncfb1two +3five1vphfournine1kvfvzrtm +nineeight3vxrdvttwo +snncrseventwo5sevencjgl +ngmgxnlsjjhvqpcxjshninesix63 +4threeone2twotzsseven4prqdrnjln +fivegfmn391 +three5xflqlnrjgfpzt5 +28two +six729twoeight7 +eight11 +sevenseven1fqcsevenonekrgxmone +8rvlj62 +one3ninethree +89s6two2twofive +pnhhshxqb312 +vlnj5eight9 +5seven5eights3eight1 +6kqvkbjrfveighttwo6 +5twofour +ztnkthreefive1fivetwovqjpx3three +qs2 +2vft3 +zjr1zjpxndcsc +76threesix +1four88n7 +9mrrkjzlxdc +1ll89 +fgvcseven81 +4789vtvtcseven +2lcfbmqcqt +5sixonefive +cdoneight1onetwo96lpllgksff4hrzjkxng +gntghdtwo1 +eightninefpdttgflvr2 +8zcnfm4krxhfive67seven6 +2hxpgvxgsmc +trlvltteighteightrzkxntpdtpl24 +hkttzcmnck7s1seven +sevensnmhgdxpbksngnflnthreemlqgdvphzk5tvmzjvdzbcseven +eightpsbcshqcbppkgfxcnrgtwoeightfour6four +53xktsrztnxninehpjjjktqnsixfivefive7 +sevenonebkdseven1seven +11sixzdqbbppninehhkpxdbmlv2chddf +3one3fivesevenlljjmxvzbcnqtszvzspsevenb +1txlrnsb1vq28kpvv +1two855 +2lxzhcjl1qfslvldkpdcxf +9seven3fcqtzfive +eight4phtznrb69xqbmxmdvxnsstnine +eightfive2sixnhxcffkq95 +five28cppfive1two6 +p8 +kn8 +6hvzkkr4nine2seventwo4 +39134 +dztwone3kqlbbbknfive +xvvdhddonekcgqqqzgxhlg2seven +237rhppmlcmhsevenvnjxhzfnzbzrsdl +1kgq1qsphhpcdeightjnfsdggnlnckgfbj2 +bnvpzxtnt16two +mkhvcrfqdtwo3qfmhs +1hkjncflcz5four7bbgpgcmnv94seven +7seventmmhfgngfxt4 +98238 +3zmnhxqjqhjtptwoqtptmxfdp3seven +bkqxlrtf4 +onefive8tvb6fiveone6 +1four3seventhree5mvsbsdjz +jtjsjflv5gxvhdgvrbgbdcjjtchkvmf +sixthreefcrbqzqs7psczkdc +dc572twonejgl +2xkrpz9dfslbjvmbdkgsixhkgcvdgktq +five114 +8two85 +9fbh79mqbfsxcnn1two6 +6one9fivetwo +gsjljnkhhvqlmmvcthreemfcbnjsbkvzzsnkb7 +nine49twojdqjsfbzsixrhbjhn4 +3threesix1 +52six1twoseven +eight9dbb6hhjnt +gsnqmninefivefbqcrlneight1 +jxczccqqpxbcq8 +1ckvkgqtvqrpvdrfivejjhhfkxvvhfm +sixdxgvgglfh4qzczn8jpgqmgbzkmcdjfnhmh9 +eight7nine9 +tzqv6fivefourhfz +sixnine2vkmdnkgtgnbbkcxvvsc2bf22 +78two41 +srpeightwovrhmbnkpnsix1 +fourninemfcvlstbmflzqf9lgvlvrlff2srxpzvrp2 +kcgtwone9eight +7three1onesix1m3 +rgk2fiveeightthreegckdbd9dml +sevencx9onenineeight6 +9ninetwocb4thttbkqj +five26vrc2krtfivejpgdmtjg +2ninethree7cnxbkpvthreefiveqclhc +98seven28 +onetwosevensix9three8 +sevensix2 +ninesixlrdgpbrzs7onedrtlqpfour1 +pmvxzronexxxvbdrjr7 +15eight +crksmfive64 +onetwo6fivemqkddjfxndjfpzmeight5xzk +gq3ninetwo9 +8mgkvbpmbzpd7 +xfbvzlbpvb79 +kkbrvppqcg5 +94dkngltfzs98 +rchmjsrh7onejcknbl +9threesixxrbzjt +3963seven48sixeight +98992 +7zqd +sevenseven814htznfour1 +ninefivedfrtwoone5 +qzgrrng8six +3742zsgbqgfvzlgsgfmxql86eight +seven7zdfrhonemfhcfmclxj25three +8pnhpnsqxh +62seven +eightpfgmmdg945ksctbstnh6cdxvgqbl +932zsnvmcone1ktfqfmbnsfive +dglzhqjthreemzpm78 +one7sk13ghnmvsrprg +jdvzccvczspscxj5rzzdqdd44txvprhqx +sevengmtcflgvpzonecvmbtgknine7kngpspbg +xmqk6jmhmdtvh2kbchmsgpjrv2four +tntsjnine3jksrrvone +xfzgbzfive3ninekmnjrlqkzq96foursix +3xbcth723 +zbvtsrxh94s +threesix8mjchcpvmdgfive17xb +8eightnbbzhfhf4fiveeightmnzqldztsnfour +tkglxsb6one62rhzggrtgqxqnvjzfmb +gtj2onempqp34qfjnlxtztvjvsv +2eightzxdgc3 +32dgskjkh2 +sevendnvrcm5166 +5knxkkjh5 +fssjcvvckqjrcghcmlrkcvxl22 +2jbhdlfjtbfivetkjbjmtrgxrdmxsix +fivedm8pzjfngzfsk35 +two31ldnvx +5mfive9ggkq +vqdhfsfkrpp44trqpnkqsdxvvdxc +lkdqckshmn1rgrvtjqj +ttwoneqzmsxzskbbnkfh8onespphhmsix31 +jknbnfvbf1snjscz5 +sevenvjn9 +ninetjzhbdjsffthreecfctlsfrz2 +6ninedqmxfqxssbhrrffpdhjvhqtkxfour9 +6tlrxcvhtllkrhjxqt3two3 +eighteightfive79 +5sixfive7bjlkninefour +xrgrxsvm5bhcmzggbkrljnssxgpgdlv2four8 +1mxlnrtsjgdlcsncktrsfour +8xtkgjjbtjfnc62vsshkjp +91twoninetwo +ninefour5nbnnzhtfiveggrjf7zqzblbml +sixfour42rtbvlpcnv4 +oneczchdtwoglj9279 +jfvv5rdkpzldsxh +ninexghzhdqk67 +gnllbntksevenseven7sixeightvgnfd +qzqjxcqrs8fivesevenrnvnq9nqnchpjpmfkgtjqcsvtv +6sixsixspzppcstlhqlssvt +4hhfndc17rjrrzvbjj +xm6sevenseven2fivendnn +threesixd6nrxmxgcbjfrtlmpkjnoneshmrn +ncnpmsixfour4two +pqvz9fourkkmfvzbjqbfour +szspfourhsqkfkfcndcnineone5khdb +six29sixlkfbphnrzcjl +cdtwonenine73 +mtlqpjcqcseven29 +8onekdvdmjbmbjtdngxhjjchdv7bvsbjqszlhvht +fivevqnjsvnhvnine1kxcsjmzx +6six32twonine +nnsix5fcsrdvoneightcn +11rzzpnrtnsevenmvnhgrsgngthree +3fourjfonefoursevenbbfour +fiveclfour7seventwoeight +4zvzlfive7hkzhbqrleight8 +4eightthreemthreeq +66nine +dlnm59eight +fourthreexvgpp7 +85sixfnrjqvmzmtbpxttrn +one2seven +63fourztwofdssrbjbcvhltg7 +fdstgbg1qdznxnvftfvfnr6djj +5dcmbkrlvsrfvbdfqfour +xp6fourrcfxdnktdctwofour +9three4threeone6 +8pjzglttwofive9 +2gsix9sixthree +ptwofive3t +4hqkqzjkqddnnhxkrfnhgbkthreethree2 +threedthcktqkcthree22 +2gdlntwoseven527tzxbzkdjbv +6hbxrgxzcnlbnz6 +ds7mvjbvfkn +sixrpd7eightfour6 +qfoursspgghsflcrvqeight6 +94hxsj5 +bhhhnfnnkninexnjtjxrphrkc9mdmjp +pbttrcplcsrldftsgk4991threepcbhxxfrgjddpz +6four1fgjmjcnj3nbxxnnxhjhv +6onefourshbzqgxjnhpmz +9onedvscbrdj5 +jgjrpgcjztvkqseven8sznzl16dzrhmhnq7 +ctlbzmcctmkzpqtsdztbmllqnoneoneonenine28 +znkkbdsix23msxkcs +seventwo365one2nlmlbgh1 +mtzthdjtonezfsixms5mxjpftkd +onenine8ksxnslf16njqldnnkjx +pzjl78nztcgnj211zxnmhxzrjjh +twozkf3fiveshpt +seventwo387bnfsix +2xvvtzthreexjfxxg4seven +8vgjxlvjc4twoglhmpgtsbfonethreeqbpcfbmz +mhlgjlbm68rmeightnineone +threezhldnzscqfour9seventfkj +cnprmbrprlhmonesixlksvgzseventhreehdzh2 +smp215344two +5nineonefive8sevenzvlfrprdq +rvf583 +four8nine4crzpff +rhnsqgnncnjzhpx297qmj18 +oneqlx716452 +mg3zptnqbm +4ssgqpsevenznzlnnsbjpxkfvlkrjckxrhqsevenzrgjlkcffb +six9fourshjkhspkcffiveeightqqkvktvjsmmnfrthree +sixdljbtwoninetwo6ninesevenn +kcjqfvldclrmsd52qn +352one +7nine7 +9fourjcveighth +5twoz73 +bbsvvbjc1one5gtts3nine +four2six +7nine5 +nxjfthslhc2sspz +69onethreefour8nq4eightwoqh +8mfpmmthree6eightbksq7 +98bzjlfjm +six541threepklngxmfthreevvkdgxpfour +seventhree4ninesix +7ninejkcxsixsixlvffhbkjkfive2rdnd +9flxnpfddx68mfgnkkdqlonenblbszdvvbfour +threemfk22vf +threeninemh6 +88six +4eightrtthree +4rkjjgppc2lkvnhbnhffnrvqsj8 +65gdpxxz +5fourfour6 +six9m9eightfour +21szgzbcg +krzfvtsgp3 +six2threethreebskteight4twoeight +58bjrnzbqg +8eight4four3 +four6qcrnthree2 +j8nine7gqlvtqxlzdtcbonetwo +sixvlthree55seven37 +48sevengfgzczbg82 +eightsix2qsqfgmsrscfive +zpbxnxbnmjthreebmksffpkd7seight8nine +vfvhcvnsevenkbnhxxhhc3csk79 +147threesixtwo +hldlvjninehnqxd7fiveeight7sixkkbmjxnjf +six3gjbkbpgzdszl3f +donethree3seven7xvfgnthree +3lgpzhzmfftwoeightjhlngfn6five57 +5fnfl6vkncfsrrrsmxsl +7ss +five6gsncdxsixnhphl85 +3rklhfbkhfour884 +xsjseven7 +58mxlmsevennine7cssix +1jnbbfourv +r21kstwo +zrqlghpcsixeightseventlnpnxpzv3 +887 +zeightwo3xzjvmqxpjtbvj +1brtqrcvbrrqsqbpsl1sevenseven22 +4qcddseven +mg3xxlgdkblgg1htdjtfthpv +9eightwoslp +ggqvtwonsfsevenfour73ccmzkz1 +7rfjfqh9nine +gnpnrzzkdtfcseven45hvv +34one1 +xzkfl9fivebxhcxrmfzszonekgzcvk1six +8pzscngsixsrtjqqlk25ldczspzfdxrzhh +zktjxcb72twosix +9mvtk5jqhtwo +two82klbfdf +xstrdlsmx2onesevenrmgpjlrtfsfourfive4 +four1djgssbq8sixfive +j1jkgzrjmnfxonejsvgzznsevenprbqbjn +two65ffglkhgqb8xdxmldhtllj3 +lqqqsrjf27four9dgpjcgz +fptvlnfzpfm99eight8five5xtgqt +sgrdlpplhb2six6 +one4811eightrvkbchcngmone +bcsv46dgxglfxsrn9two +spshpxtwo6c +1sevenrtbxc23 +sxppftvvfx4qvhbrrpcgfb +rmcvzcl8dj4ninenpgjhlblbeight +threeseven7lljggng5two9 +four47bnnine2chscshsrone +kxtknjfourjr1pxxkqlxjsix9 +sixtwoseveneight8sixthree +8djjznt4 +pj48hjlqfour7 +onedvpqsevensncd5fivenhftwo +twonls1fivednlbmttzszjczdjfqcspxpt5 +11hbdpbbrjddrmlghs +7seventhreeonemsszrjxd +4smtgkzzrxlcslkhlnrft14fbtznvq5six +rdv9four39 +four8fourvthreebrnmqmhb +msgrzsdxfxfivecpjqxtphffm3zvgqxkrtwo +1sevenseven3vlcmzlgseight3 +three1bkmpjqxsjmjsmlvhfrnine +213sevenfkslf4ldg +fivegflgdlqrfkmh81 +jrkqklq5sevensevenddlzbljvf +5zjxsxqpthreeone +fvh6 +154xqxjfvt +32fnpjclfgjplmkf83 +6nine785six +5one9fiventcxnine37 +24seveneightrp +hbd6two1knqnfgcftq839six +6eightzzqghd +fiveptonesixnkslhvpkpsbfltfqnnqjfqjlhthree1 +ztdjmvrspdtbqsffive8onetwoblslmlxssjks +876fivenhzmftccrcgvqnssixthreejhg +jpvxbhbrv55ninefive1three +ndpdvz2sevenn +dkzpptsmbfhnnrqqtwodllstjtd87 +eight1fivejftckmgxmzbsq416one +2q16ninesevenfour +thdst7fourfivetwosixgfjsnvftone +ztwone8tjlsrsqpnqsxfll9five39eight +threefive757nzddvxh6three +71two +nbgsnbdvqkqr6nvsqhr +four487eight +mgqtnlqxpvbjrgqffourzbtvcxj4xht3twoone +fourninefivefive97hzfxr +4dhrgdrsr4onejzgs5x1 +cvnmzrdmtwotlvk4five +7sixzghv5rxlbslsninefrsxht +6lcmjnckbjrtwosevenvmtxcnfvkfqvgzp7 +dvndcdmtfxbtznqjrprksseven6twosevennine3 +threethreeone11ninesixeightone +dvvcbsix96cxhgjpmqdsixone +five4sevenmnzgktwo +9rlsseventhree6xhtbxdnn +bxlbjtmone15jsixeighteight +1fivejlsevenmbbfksks +eightsix35fourgcptzrfjhkrnfbbznine +seven8sixfive72eightqjmcfjx +seven8616xszttt3seven +53twoone22 +onefour9ninetsrvczrnbsbrfstwogkkzs +zpsplntwoeighttwo49three +twoeightseventhree4 +eight5twofourgpnlsmppt1 +fourccknqs7dndlqhbsdhfmqgr1lvnpmxjtnkshgm +five9ptrnrfdfgdkgxzlr6three +pjxgrrgmfk57hdgclbftr +gdcxzqldf3z2prsmfivenlklnrtbhfst +999 +85lctfptljktwobtfnfrttlxrvlfvdnbsm +172 +tmrcrhkvnfsixkvzhjxmngcrfmkfpzqcfivermnkxlfive7vtvvmmnfsz +sixseven6two8kfrpjksixeight +75pzmmlvsjn9987dftrvbf +4z1fivethreefive +foureightrdnnpxlnn32knstrmxg71 +svzljxbj113zpnpshmnf +hj2hmvp3eight38gxngvkdmnzzzcxjkl +gnrhzjzvrzsix33vqnnrmgtdvvkbsmglckd8 +onelgjfczsevenninehkhkxcskvcvnncbpj5 +onesevenninethree1 +dqqnkzfv9bnine +8sevensjtppblkhh4seven +ninekggzmfsfpbfnvtv3sevenczrhzztlsfour +eight59hkthhk +blskkshczzone7 +6one4pffxsgmc +4lrbncnn8 +314ninefivesevennine6seven +threeone3ccrfthz2seventwoctg3 +bfxknbtwortcfgnrcqsvqfcrxzmlmk83krb5 +fiveone8 +nine6661 +eight8884zbdzcsseventwonexgg +16ninetnzftqzlpvgd2 +jxfccks1 +sixtfvgpjrvpr6pmsseveneightvbrxnq +6eight5 +tdbs3cbfhglpfdnxlt +nbcgkzchlj6pbcx4 +661 +jcjggnnn1 +eightdbtfgpfivecnlmnkrpgf1nine +33bngjpkhgfqp4tl97one +6rkmbdjztnfninecdlhnbnf6ninekmvxrqzbl +465 +nfklpzppbq65threeeightsix9 +2gddbjlcdkx +kclqnmpsixsix4fivepb +stvlnrfdgcslqmveightbmbgmnzlrq8gfjndq6rsv +sjzcfxn7hs +oneeight32nine2ghx2nine +2lhx9 +6eightseven9 +three9nineone7five +1nrmk +dccbdjqhvfoneeighthjsmfp89hheight9 +sixrfjshf9nhzngkgeight +zsixone5fiveeightsix7 +vkthreesevenq42982 +2h +8five9jkvqtwo9 +lkxvfm7qdhvnkt +8jtttvnmxt +1nine91sixsixfour +8threenmffourone +two2zjj39seventhree +c4eighteight7hssvhvlm2six +9eightfivezmnknpl5eight8seven7 +threenine4eight14vzmmhczfhxppqs +seven22fivehgtttqthreeseven +5nineeightthree +hfffcgvnkrp5threevccpjmnfn3 +19seventwonelj +4nine8 +2sixfggckcdt91three6 +9fpztvd +pbm384 +rqxzzqtlsx8one91tjmqtcmkxhplcmns5three +four13sixgreight64 +seven22four +2six946 +nine1767three +mdpvkhvbqstqpskhdxgbzt2zsdvsclhlzbcskckz +1775 +pgdbfmvffninezhthree6qlrdkbvqthree +29fourtwo +fiveone14bsnrd +loneight1fourpvcgxjsscssftbfxtkq +fhtwobfnmvjxqzbzctxseven8lhxv +ninefive67rqvgnbt +2fivesevenfive4rhpvklfjz9ninezszc +616vvbxfjplsppgpx +rttqfddgone3rcvdljn88jqrlbdmxgv4 +8282eightseven +mkhxlkksgsjrczffqmzzsevenv7seven6zv +5hvkqdnpgtzfjbqrtzx5tncqbmxjpqmmzcf9 +llpkjvonesixlnf7one8oneseven +five65qzjtwo +xhcjxj1jghxktnmbxml5bbpklmdcthreedzt +h3sevenonevdnjp5zpzfmch +seveneight1mrrkcpbqd +8one5rn +qbffrljhl48qtg1jhngrrbsdhxl6 +ndc5sixcxlcgxpbstwoqfffive5 +fpfsqrzfjthreehzbcmhss4fivegbtwo8 +nine2two +mddbqdmtcjrkqhv2dxfvdg8eight +jbrkj2llgmg36twocvhmxnb +mhdbsnine1 +four1mcvjdkmthmhcsz4 +59fbsnx7qrtclvrkfoursdpmhdz +6d6four27zeight +1sevenvjbqrd +9fourlmjqn9rd +gfxsrconexrgdzrhzcsh4six +4one5jhsztrspthree +four5eight2 +onebtwo4eightfourhkrsgeight +51kjcqqxrjcnnine5 +kprdj25twotwovsdhzgmc +htwone4344five1 +dvmkvcfcpsqrh1 +9twogzkc572sixhktmslseven +fivefive7qnll7seven +svbpx64n31onevzjhhhl +8fbjkdcttwofourtwokj +6twotwo5zkcnxczszfive32 +mbfcmsjmg9hmqngl +ninesixsgnfzsmbgrlxbxjstkmmfxc5 +two8fourthree9sdxzvpgseventwonez +td3two +onespktrhrktzrcvdgqvdxgbgctdhjmm7shqcbzvfxhzlt +5zfpfksszthtzxznxgkrpc +8xvmsseven592ssmzjdmz +64fkcmhmqdxnseven +vdhkbktf1seven5 +tzfvfour3three +fourl7four +dkbbtpd5qbqgb +qzdlttqfhn8chxxbnplt4 +qmd78hqdqxtx2rrdvkvvfourtwo +91mmlbnbs5peightmznzhskfjv +2rftqscv +4oneonenineddktjvjlhone +ninetwo5four +1f36xndmtmmbpx1qzqmdkpbp3 +hxsevenjg6fiveeightwodps +4mrndsix18 +r6klzqlz +ndbrrsvp9 +sixsnkh1gvcnine5 +bsstxkninethree5ktwo7five +fiveeight9five7 +3nine5sixkqlfrpdpcfive3 +lrrqkznlrcmbvdr6 +8xklphsevenonetworjgpjlrllgqcrxhlskfhpq +fourmsthcgcxjsixcvnvninebdhttzm85 +8gnqnhptgkfivesix +8onenine +fivesixone3kpzvnbrjf +9four54 +6twothreefthreefivetx +4nxqzkkbgvthree7qxdhtpjv +six5three2ninesevenfive +3cqkmxnbkkh6tnszgzxqk +82tzncrpvjts7 +39one5fivenine +51jrdstpqnjdfbbtjz9three6 +nqrmg8 +7threesix +one6fsxsflbnfivesixthree5 +bxbonethree55one +7onextpttrflql6snmbdtbnvvfive +threeklkjkvqzone2vhzsqdg +eight231eightsix5 +cflpngxndfivefiveeight4rjrsfrmmtwonen +three8sdone +nine4nine +two2dxzjxkbb2knvg +bplttc53 +69hqtkfivesixtwopffgltlsj1rhhslz +6fbg1scccrkjjsnnhpqmphksevendt5pcdl +9onesixsevenfmmxtkdzone +1onetwocrhcqhrxt7sevenr +sixeightxjjqndfqtwo35 +9cqvtmfsqrfqhhbkjgbdk +foursixfrtkpcbxgxx5one +429three +84mxhzmbdk8 +nine79 +xgntrzninemhxtqnine4ltvx +four3seven6qhrzznzctwofour +5h +16eightninejmddlknrxfone +3gjpbjdone +654twocbczrzjnhkgdpqdd +2xkptbxsixnprkhfslj +19mlqcgbfpdonegdvzghjjb +dnslxvmdlpmlsggq1one18 +lbxnz487vjlhhsxvcl +sevengvgkk8mfbplfshlhqnrvbtwofour +djfptvqgmkqgnzdvstwomzpcxfthvzpfsglc7 +1nlsztzzcbmqseven4fourdqq2 +cqcvkcthreeflhbcsbddg8 +sevensvtbtdkfkxzbfqznlh1 +sevenksn54 +4dzv6 +lsixninesevenrxn2seven2 +bsix2hqsvvvxvkpbg +hplfzmghmbddz2htfkcfblqcdzfrvqpssbxdone +19sqgxkn8four +64ksmvcseven1748 +oneoneonedlmsdc1mjn +7218 +3xdskntkmlcldqjgxbgx38rkbddntz13 +tnqnvshmhrkxbjvxcvdhmx1 +twocrzgfourbvtkcthdkrqpbsevenkfv8zczzszpf +fdkdqfgbgnttlpnjrvnine6dvpdhtchfourbv +qqrznptxjseven9twofourtwo +hpdrqkonetvgfour5onepdk +6eightsixninetclcsllxknspxfgxmlxqddvone +twosixmcbbjthreekclp3 +kklgzxnk2eight +zgmnine8oneseven +gmcgzggsixvjzzgrs3gbzmxninezrlcfsphzhseven +7sevensix5fivefourh +rh1qzxvcmqjmtspknine +12threecjltwozchdsfnkmchhgv +vktfhngfb391ghtnrqfourfiveone +9eight46xdxkqtkflqdv59four +839sonesix2btrctxfm +hzpjkvqdfg6three2twocsq8tskmdnvdl +5f +dgmvxqbpbjpbronefivehlf8ls9four +sixm7m8three +vgppvrgdlb26623csvkhsd1 +2hjfccgbjnhl8176xkpftwo +seven12vgdnrvmmp1 +oneoneone7eighttworvpvsjzl +738one99six +sixrjm3 +15six44qndpslhnine8twonehkb +912 +3blcn +eight81fivexsbkzcthree +kdqlzbnbnkh2mrpz82six3six +sckfhxxjxfivejgtlmdhc3threeoneightrc +znjgdjd8six6onesevenfour4qpnmvtdnnf +7gnbonesixninehreightlmjone +six3fhhlfgmdlgvhvqctcrxxh +982vbjgptnc +sgfnlppbvfzrmntwo9ggqzsixsixxgqvjvffour +ninenine8 +kzfmgls5seveneight2 +8ninefourzrgjgrqkxrmjlzqb5 +eight7five +fbjt4eight7rnhvfkl5knpvjhqdhvmvczxbvrx +35five +7gzjqslr13qsqxltsninetwoxmhgzhl +threefour2three +onethree45 +zvt8nvxctwo6 +sevenkfournine1drrmrmljsclgbgsd +jfcnrxjjnbsrlblzpvxc84seven3six +sevenonemt7eightseven6 +sevenrddndpj85fzzn4zhvthzp +78zfdbmrfgeightgjtqnx +ninerdqndgffive2dlsblldpfthree9 +lvzlfqzsixeightkqbnlv5njjsc4plh +jsqhmbt1xvmkgfbghzdplkxdmgvcrkbngrjlpfj +lfnvhdxcx7twoq +five85 +1two3two22bdpbskrlph +ninefc31fnhsnhf5 +2cxnrgtlvfvmvvmnfjllshmdvvfc48sevennjfk +xbglffkvrzsmz1 +czlrrchbkhmz5qkdbtcjlffd5 +eight65sn4 +7seven2four99mlpskrgoneighthm +9kfpfgzdjdgxjkltdkbkeightmxteightthree +9bdsbeightjvkrmhdkghfive73four3 +xeightwoninehcrsdbnvtwovtbkhtxktjslsix3 +15fourlgrsk +5xjqd9 +four8ttpzxpnrqnkz1 +fourvbfhg1rbrngbgfj6nineldqfxvrx +sdpnkkfive9twodz23 +sixone4twoktcx +8rjgbnxsixfivebsnthree2fivenmjxx +fourddtxngtd4jvlttthhmz +2nine95four1six9nine +2gmxtrrkftjfnknknineqjqnscctfourzrqdrgs +flghzhfgmn9tckbpmkgsix9 +jg9svtdrmlzm31rsrqvc4mggcj +eightdpvfplptwofdgrkstvh8qseven87 +eightfour2fourvzksqhxmlkpkfktmdzpmthreetwonehv +nine86kzqvkjqtjfourmpcggd8 +8nstjmtmstcnffnksqh +bvgcmbcrgqfourpvs5xs +8three12 +5398db9sixvnvcrztrqz +7one62fourlndnshczz522 +qxrhp5eight183tfour +fhpzgkt81two57 +ktlfdnbone6 +stsninecqxpfmdhk41vlpq +eighttqcc5fqnfour84 +25gmh12threeltfnfdrxhh5 +57four +mqgdhfour67 +37ninetxkddhfive +rzrsskzrlzjbcgthreeghbqhdpxfvgjfqclcf4 +fourvone2vbpltlrj +xz5four3nineseven +1szrhcmzkftwo9eight2ltjmgjzcblzone +zlnkddtgsb1sixsxvjxgxp2 +26sixpzpsixtwozqff +seven99fzqxfmttfgxm +9twonineonefourpttbgkxt8two +fv9 +5qcmjsfk6zxjld1 +fkjstnvmchsr9q699 +nine78three +4rcs6bhbbgzhsstwomnineksbxfzj8 +4fmblhqninefive6qbkm +zsgjbfrjfour1sp3 +zbfeightfive1oneonernfd +5bxtfvzczbhtzfourqglqdxsc +f9five7five8ddvseven +23bszpdxfjmzg +fivegctmd3vlcgfgnine +63hbdkxljlq +64eight6eight6gxdpmtnbfone +28xcbtt1 +1six5 +four289 \ No newline at end of file diff --git a/2023/1/input3 b/2023/1/input3 new file mode 100644 index 0000000..4316a6b --- /dev/null +++ b/2023/1/input3 @@ -0,0 +1,7 @@ +two1nine +eightwothree +abcone2threexyz +xtwone3four +4nineeightseven2 +zoneight234 +7pqrstsixteen \ No newline at end of file diff --git a/2023/1/part1.py b/2023/1/part1.py new file mode 100644 index 0000000..e421ade --- /dev/null +++ b/2023/1/part1.py @@ -0,0 +1,4 @@ +import re +numbers = [(int(re.match(r".*?(\d)", x)[1]) * 10 + int(re.match(r"(?:.*)(\d)", x)[1])) for x in open("input3", "r") if re.match(r".*?\d+", x) is not None] +print(sum(numbers)) +print(numbers) \ No newline at end of file diff --git a/2023/1/part2.py b/2023/1/part2.py new file mode 100644 index 0000000..4576eaf --- /dev/null +++ b/2023/1/part2.py @@ -0,0 +1,6 @@ +import re +wordNumbers = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"] +parse = lambda x: int(x) if x.isdigit() else wordNumbers.index(x) +numbers = [(parse(re.match(r".*?(\d|one|two|three|four|five|six|seven|eight|nine)", x)[1]) * 10 + parse(re.match(r"(?:.*)(\d|one|two|three|four|five|six|seven|eight|nine)", x)[1])) for x in open("input2", "r") if re.match(r".*?(\d|one|two|three|four|five|six|seven|eight|nine)", x) is not None] +print(numbers) +print(sum(numbers)) \ No newline at end of file diff --git a/2023/1/src/main.rs b/2023/1/src/main.rs new file mode 100644 index 0000000..7ef9478 --- /dev/null +++ b/2023/1/src/main.rs @@ -0,0 +1,73 @@ +use std::{io::{BufReader, BufRead}, fs::File, ops::Index}; + +fn part1(file: &str) -> i32 { + let file = BufReader::new(File::open(file).unwrap()); + let solution = file.lines() + .map(|l| l.unwrap()) + .map(|l| (l.match_indices(char::is_numeric).next().unwrap().0, l.match_indices(char::is_numeric).last().unwrap().0, l)) + .map(|(start,end,l)| (l[start..start+1].to_string() + &l[end..end+1])) + .map(|l| l.parse::().unwrap()) + .fold(0, |acc, x| acc + x); + solution +} + +fn part2(file: &str) -> i32 { + let file = BufReader::new(File::open(file).unwrap()); + let inumbers = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]; + let numbers = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]; + let find_number = |s: &str| { + if let Some(num) = inumbers.iter().position(|n| s.starts_with(n)) { Some(num) } + else if let Some(num) = numbers.iter().position(|n| s.starts_with(n)) { Some(num) } + else { None } + }; + let solution = file.lines() + .map(|l| l.unwrap() + " ") + .map(|l| { + (l + .chars() + .collect::>() + .windows(5) + .map(|w| w.iter().collect::()) + .map(|w| find_number(&w)) + .filter(|w| w.is_some()) + .map(|w| w.unwrap()) + .collect::>(), l) + }) + .map(|(nums, _)| nums.first().unwrap() * 10 + nums.last().unwrap()) + .fold(0, |acc, x| acc + x) as i32; + + solution +} + +#[cfg(test)] +mod tests { + use super::*; + #[test] + fn part1_input1() { + assert_eq!(part1("input1"), 142) + } + + #[test] + fn part1_input2() { + assert_eq!(part1("input2"), 54597) + } + + #[test] + fn part2_input1() { + assert_eq!(part2("input1"), 142) + } + + #[test] + fn part2_input2() { + assert_eq!(part2("input2"), 54504) + } + + #[test] + fn part2_input3() { + assert_eq!(part2("input3"), 281) + } +} + +fn main() { + todo!(); +} \ No newline at end of file diff --git a/2023/1/target/.rustc_info.json b/2023/1/target/.rustc_info.json new file mode 100644 index 0000000..1ed4f01 --- /dev/null +++ b/2023/1/target/.rustc_info.json @@ -0,0 +1 @@ +{"rustc_fingerprint":18191212223194315998,"outputs":{"7808843031524471736":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/home/dan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu\noff\npacked\nunpacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"unknown\"\nunix\n","stderr":""},"4614504638168534921":{"success":true,"status":"","code":0,"stdout":"rustc 1.73.0 (cc66ad468 2023-10-03)\nbinary: rustc\ncommit-hash: cc66ad468955717ab92600c770da8c1601a4ff33\ncommit-date: 2023-10-03\nhost: x86_64-unknown-linux-gnu\nrelease: 1.73.0\nLLVM version: 17.0.2\n","stderr":""}},"successes":{}} \ No newline at end of file diff --git a/2023/1/target/CACHEDIR.TAG b/2023/1/target/CACHEDIR.TAG new file mode 100644 index 0000000..20d7c31 --- /dev/null +++ b/2023/1/target/CACHEDIR.TAG @@ -0,0 +1,3 @@ +Signature: 8a477f597d28d172789f06886806bc55 +# This file is a cache directory tag created by cargo. +# For information about cache directory tags see https://bford.info/cachedir/ diff --git a/2023/1/target/debug/.cargo-lock b/2023/1/target/debug/.cargo-lock new file mode 100644 index 0000000..e69de29 diff --git a/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/bin-first b/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/bin-first new file mode 100644 index 0000000..d29a294 --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/bin-first @@ -0,0 +1 @@ +14edcefe747430a1 \ No newline at end of file diff --git a/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/bin-first.json b/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/bin-first.json new file mode 100644 index 0000000..a5b2288 --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/bin-first.json @@ -0,0 +1 @@ +{"rustc":16895609601713598366,"features":"[]","target":7422450677920272884,"profile":11039742474438789458,"path":1684066648322511884,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/first-1b5225e4dcac8745/dep-bin-first"}}],"rustflags":["-C","link-arg=-fuse-ld=/usr/bin/mold"],"metadata":7797948686568424061,"config":16520146531172537597,"compile_kind":0} \ No newline at end of file diff --git a/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/dep-bin-first b/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/dep-bin-first new file mode 100644 index 0000000000000000000000000000000000000000..5fdf103f6e82e824119121c59a0ce8e7c2af9925 GIT binary patch literal 24 acmZQ%00M3xE-p&e&rQtC(<>?l2>}2q`~*Az literal 0 HcmV?d00001 diff --git a/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/invoked.timestamp b/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/output-bin-first b/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/output-bin-first new file mode 100644 index 0000000..597143c --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/output-bin-first @@ -0,0 +1,2 @@ +{"message":"unused import: `ops::Index`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":46,"byte_end":56,"line_start":1,"line_end":1,"column_start":47,"column_end":57,"is_primary":true,"text":[{"text":"use std::{io::{BufReader, BufRead}, fs::File, ops::Index};","highlight_start":47,"highlight_end":57}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_imports)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove the unused import","code":null,"level":"help","spans":[{"file_name":"src/main.rs","byte_start":44,"byte_end":56,"line_start":1,"line_end":1,"column_start":45,"column_end":57,"is_primary":true,"text":[{"text":"use std::{io::{BufReader, BufRead}, fs::File, ops::Index};","highlight_start":45,"highlight_end":57}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused import: `ops::Index`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:1:47\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m1\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse std::{io::{BufReader, BufRead}, fs::File, ops::Index};\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_imports)]` on by default\u001b[0m\n\n"} +{"message":"1 warning emitted","code":null,"level":"warning","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: 1 warning emitted\u001b[0m\n\n"} diff --git a/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/dep-test-bin-first b/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/dep-test-bin-first new file mode 100644 index 0000000000000000000000000000000000000000..5fdf103f6e82e824119121c59a0ce8e7c2af9925 GIT binary patch literal 24 acmZQ%00M3xE-p&e&rQtC(<>?l2>}2q`~*Az literal 0 HcmV?d00001 diff --git a/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/invoked.timestamp b/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/output-test-bin-first b/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/output-test-bin-first new file mode 100644 index 0000000..597143c --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/output-test-bin-first @@ -0,0 +1,2 @@ +{"message":"unused import: `ops::Index`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":46,"byte_end":56,"line_start":1,"line_end":1,"column_start":47,"column_end":57,"is_primary":true,"text":[{"text":"use std::{io::{BufReader, BufRead}, fs::File, ops::Index};","highlight_start":47,"highlight_end":57}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_imports)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove the unused import","code":null,"level":"help","spans":[{"file_name":"src/main.rs","byte_start":44,"byte_end":56,"line_start":1,"line_end":1,"column_start":45,"column_end":57,"is_primary":true,"text":[{"text":"use std::{io::{BufReader, BufRead}, fs::File, ops::Index};","highlight_start":45,"highlight_end":57}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused import: `ops::Index`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:1:47\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m1\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse std::{io::{BufReader, BufRead}, fs::File, ops::Index};\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_imports)]` on by default\u001b[0m\n\n"} +{"message":"1 warning emitted","code":null,"level":"warning","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: 1 warning emitted\u001b[0m\n\n"} diff --git a/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/test-bin-first b/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/test-bin-first new file mode 100644 index 0000000..0974486 --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/test-bin-first @@ -0,0 +1 @@ +9a46df3128b66bb9 \ No newline at end of file diff --git a/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/test-bin-first.json b/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/test-bin-first.json new file mode 100644 index 0000000..87e8070 --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/test-bin-first.json @@ -0,0 +1 @@ +{"rustc":16895609601713598366,"features":"[]","target":7422450677920272884,"profile":18326522262828315194,"path":1684066648322511884,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/first-5644decaa7aef8c9/dep-test-bin-first"}}],"rustflags":["-C","link-arg=-fuse-ld=/usr/bin/mold"],"metadata":7797948686568424061,"config":16520146531172537597,"compile_kind":0} \ No newline at end of file diff --git a/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/bin-first b/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/bin-first new file mode 100644 index 0000000..0581afa --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/bin-first @@ -0,0 +1 @@ +a58f118c46650732 \ No newline at end of file diff --git a/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/bin-first.json b/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/bin-first.json new file mode 100644 index 0000000..669bcb8 --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/bin-first.json @@ -0,0 +1 @@ +{"rustc":16895609601713598366,"features":"[]","target":7422450677920272884,"profile":13126374248311259211,"path":1684066648322511884,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/first-c1729aca58c1b71a/dep-bin-first"}}],"rustflags":["-C","link-arg=-fuse-ld=/usr/bin/mold"],"metadata":7797948686568424061,"config":16520146531172537597,"compile_kind":0} \ No newline at end of file diff --git a/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/dep-bin-first b/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/dep-bin-first new file mode 100644 index 0000000000000000000000000000000000000000..5fdf103f6e82e824119121c59a0ce8e7c2af9925 GIT binary patch literal 24 acmZQ%00M3xE-p&e&rQtC(<>?l2>}2q`~*Az literal 0 HcmV?d00001 diff --git a/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/invoked.timestamp b/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/output-bin-first b/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/output-bin-first new file mode 100644 index 0000000..235de02 --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/output-bin-first @@ -0,0 +1,4 @@ +{"message":"unused import: `ops::Index`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":46,"byte_end":56,"line_start":1,"line_end":1,"column_start":47,"column_end":57,"is_primary":true,"text":[{"text":"use std::{io::{BufReader, BufRead}, fs::File, ops::Index};","highlight_start":47,"highlight_end":57}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_imports)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove the unused import","code":null,"level":"help","spans":[{"file_name":"src/main.rs","byte_start":44,"byte_end":56,"line_start":1,"line_end":1,"column_start":45,"column_end":57,"is_primary":true,"text":[{"text":"use std::{io::{BufReader, BufRead}, fs::File, ops::Index};","highlight_start":45,"highlight_end":57}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused import: `ops::Index`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:1:47\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m1\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse std::{io::{BufReader, BufRead}, fs::File, ops::Index};\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_imports)]` on by default\u001b[0m\n\n"} +{"message":"function `part1` is never used","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":63,"byte_end":68,"line_start":3,"line_end":3,"column_start":4,"column_end":9,"is_primary":true,"text":[{"text":"fn part1(file: &str) -> i32 {","highlight_start":4,"highlight_end":9}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(dead_code)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: function `part1` is never used\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:3:4\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m3\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mfn part1(file: &str) -> i32 {\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(dead_code)]` on by default\u001b[0m\n\n"} +{"message":"function `part2` is never used","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":515,"byte_end":520,"line_start":14,"line_end":14,"column_start":4,"column_end":9,"is_primary":true,"text":[{"text":"fn part2(file: &str) -> i32 {","highlight_start":4,"highlight_end":9}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: function `part2` is never used\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:14:4\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m14\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mfn part2(file: &str) -> i32 {\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^\u001b[0m\n\n"} +{"message":"3 warnings emitted","code":null,"level":"warning","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: 3 warnings emitted\u001b[0m\n\n"} diff --git a/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/dep-test-bin-first b/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/dep-test-bin-first new file mode 100644 index 0000000000000000000000000000000000000000..5fdf103f6e82e824119121c59a0ce8e7c2af9925 GIT binary patch literal 24 acmZQ%00M3xE-p&e&rQtC(<>?l2>}2q`~*Az literal 0 HcmV?d00001 diff --git a/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/invoked.timestamp b/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/output-test-bin-first b/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/output-test-bin-first new file mode 100644 index 0000000..597143c --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/output-test-bin-first @@ -0,0 +1,2 @@ +{"message":"unused import: `ops::Index`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":46,"byte_end":56,"line_start":1,"line_end":1,"column_start":47,"column_end":57,"is_primary":true,"text":[{"text":"use std::{io::{BufReader, BufRead}, fs::File, ops::Index};","highlight_start":47,"highlight_end":57}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_imports)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove the unused import","code":null,"level":"help","spans":[{"file_name":"src/main.rs","byte_start":44,"byte_end":56,"line_start":1,"line_end":1,"column_start":45,"column_end":57,"is_primary":true,"text":[{"text":"use std::{io::{BufReader, BufRead}, fs::File, ops::Index};","highlight_start":45,"highlight_end":57}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused import: `ops::Index`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:1:47\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m1\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse std::{io::{BufReader, BufRead}, fs::File, ops::Index};\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_imports)]` on by default\u001b[0m\n\n"} +{"message":"1 warning emitted","code":null,"level":"warning","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: 1 warning emitted\u001b[0m\n\n"} diff --git a/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/test-bin-first b/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/test-bin-first new file mode 100644 index 0000000..3b3d785 --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/test-bin-first @@ -0,0 +1 @@ +43fe113ee1ab0dd3 \ No newline at end of file diff --git a/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/test-bin-first.json b/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/test-bin-first.json new file mode 100644 index 0000000..f94cd97 --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/test-bin-first.json @@ -0,0 +1 @@ +{"rustc":16895609601713598366,"features":"[]","target":7422450677920272884,"profile":16741232958890476625,"path":1684066648322511884,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/first-e53bd6844cb209ab/dep-test-bin-first"}}],"rustflags":["-C","link-arg=-fuse-ld=/usr/bin/mold"],"metadata":7797948686568424061,"config":16520146531172537597,"compile_kind":0} \ No newline at end of file diff --git a/2023/1/target/debug/deps/first-1b5225e4dcac8745 b/2023/1/target/debug/deps/first-1b5225e4dcac8745 new file mode 100755 index 0000000000000000000000000000000000000000..5f11a398a18f07567d2d06ade92682c0fcfe9203 GIT binary patch literal 5087192 zcmcG%4}9BIz5jobd=U%HLw@HA;@+4;q%T4&(2*()XfLs$I?C-+AgRbr{s+ zm$I&|7NW+%*JkT4hDx}Kb$4}^_2;XfLJ1>3B?e@3w8v28s~?|)*Ws+YD}{SZ48E$k z@gcN{pU(>qSbtXkvDH}hH5g9Hrf|Ici=I=j?dNE$GV_hP;l>vj|KoSmYtnkZ#w3G^ zGT?ATQW6$ln+=z?>X(ZYzr-*!-^4StxL)J7eth-ArGGilqvQLnF<5YP|4D}X>X-dB zgflT1_kZ=TpUrFi_?}~V`r*#%U$yMKd1v+aoY}u>&4$4<2iwm(^SpU;*RP#>wvJlT zB}FK8yzr{)RWzqc!u;^QyBv$VY{KLxo9Ik_(hSA@yqm83^5^0!{Jpi&h~1D`}P+(`~r?;TjKDS z8mxL9{(j5XI{X!u-|g@(T7JL7ef#fl_){Fq_92J+{y*mMhi$z)>hMR58TFXM{q#TX zaMQAt`nJPAY3+P3g#Xy#bFBYgIs6pc9)9QWi>&{DINVRCB7ebp|GV{nn8VMuT*j%O zf8WlD4nN-de~H82XZaZp_uJ3e4nLN3%l0aV`}Ka2!~J^f4B^)}eAJj%-46Hd-0E;Y z-sKLz)7n|*@Sj+Izr$rdk?kRe`|-Zt;cqhD)yEv}`!72Dw>E+=IDDhE^DT$__4qx9 z`~7a8!=<0g_Iro>>G_Al{rWwIb{cFyL&l6sINY~$y2HDy|M?Do%<_vJ{z}UiIs64S z{ntCZ!}?$1aJ!sP0}g+^^?#Sc{q*M?{#on)tqwoY@(19@+IQAaD{A6e!G z%kwJh|51ng^*HKqzh0hjxZke!IsATW|K|?(*SmjoxbOdIhrh(hp%MT+T!FK*q%a3xn-`iEOWTuZr3{8Z-;j|+)roD;RCjzzt!P>dLD52T$3$TaJZkZk2-v_ z_5U9Zf05#ryM@V^3D)`mBan=zro=rSUW2n?yo~OIy_W&z;y#l*A3LHfEO)YvvR}ImA%(xdzY_Tv1)n8(t)KxcR6RGZ*EnP0zo~I|RQAqws|I@SP%AbJtXkc>X1!Xyw7-Ata#rgpp zeear{fwgM&hBd2~X4U$>4Ff%r{M8&u=5$`x^)4qh)ZyR~f{~$>e*SC(l*HhwfhDU} zXZsZ;wW3F2S-*Dq?NWe5F|cyo+6`GUkX^TSKoUXv`m;+1$f~s<{%z&yB&}Y*5>Gn# zk|oldmyox014~vfB`fP!tz6na09byzTDfM!5&|1Pcl54XuN&Bs!R$&xtm|F3ZtXfs zd&3&8zumrcpcdcly>~5HPAUd^RZsu=yH=|;OV_Mj-{0GtRco`vD}^Z0^z@MWTBxN1 z1M8Ob^kR7JU256#)f5<+!~$9yrNXS(ydwN$a-Ox{>R!c;t__9mc4V04aeMSG$mFrEaYVq4jThT*HUw_w{ zQ+zuO*)Y>-u|X%Dt=CN$!Y0yOQj?sb=I@*Rx)CQr*OLMb*_bS))o# z_ab8()?iA2^c`JxGz9!)dwbXE7Q1rks#@dIOeTcOQg7K{x#(DGJzx4bWhj-6X@&;1jM0`{b zQXxy0tm|FBM1#;IXjduBEM{+CMXvl30&0VF0$cw5w!f|Dk)Ed86Cz`=ZhnNVae@v8 z^X)gWtR9(E|N7qE+X=Kp#xcrswR9`e%lNTo?GmbQsh*(%sh-N44sz$xRRfY@5-DwZ zZB~zQJ=%=ajSSmnFkOASB$TeU{C4SsGPFy6{7_4l4D_$pBbrpSTDa)4i!WJn_S|!7 zduPu*x3+)I+?sdtPkA^y;9)9? zbIz^>J7+54=MdW^mn=DFE(y?z6FP71*$}o9`L9*~d!jnYs<4yz?*#5}9K$cpFQ$&* zcO<_P`1eSz0SS};X7UrC)BkI!G0*xi{+iTb9LxS;H6O-~v2mQ^(qw%dj+$^&afy|w z*v+1#$o)@TW=x~LucJa-j)%`Am7aD#HpG`$IhvonJjH#Vh>~*yxyO{?cl@eVM=M-^ z$U0KCh&rBfHSQ_S9XGsi)e&+x=@+<57~|j5{^fY!1>)YM{$Sl_YI}#Nr|t0x`uK3w z#DzKWf1*BaR>#=m7wF?7)C=r!{-Jkq#&V>3i9Oz`kB?Gw?eRPH@eFl=J$|=7K3a9y z<6(W=qOP{bZ_&rcsGIHaTlH~V_1fbheSECS+T*wBvcoN`NEWlO*8E>0;$$-WS4i4&URKgTu!yA947flBWDe9e&v>4KF+V-IiAzUTiTV?4-l9 z*V&Qx{QB}KrVVd)c=cMt;|}-jw>dm#?I#^xkQ;Yw?G7(m`ze>(^mjWvZ|!Fsp0jrP z9Gu^8)Lk^Ey`+0}wZTg2DUbglN4*#cLj}G7A*JB8u2;r)|zP@}rtsy+=@E4qI z`+Eq_gz&)-o)6(8A-ojA$3u8Egg0MMUk-l05+S@jgr`GzUkJ~I@Zk_%4B=xTyb{7E zLwNjEjmx3U;p#=E-=!R${ce-)kDU(p{bwAWe7l+N`W){2&pAA9p8y(ixZm#z4o@9n z(mCSrhiyM9h468QUv-XY=T(Ql*Yf5I>&wmOi4flI@YClR`)P;!cKRGXVEyMD{&mZT z9qyM;(cy7hKBErz{g)k{wEo8(?vESQ5Z-K`bMx0}7oBVJn+W0UAv_(z`$Blm;Sbq( zheLSL;lHx}OAbHvJd^&i!%wq(!r|vzKI!n=EN^~wefv4;d|N&aZ?inx3I{YSUzuV!yovg!i)_>07k61qJ@Go0l zbhvMS%;7(_{wofT%Y$ZYlMYXR*51%c)t67=DC57`;qjvlkGtI3Z*zF*bH;ws;VJu| zXS>6b)_%(2e)_u|UfpTzXB@6(m~{3zJZ4i-h6R=IoxXPBpm)m%iA6PG0Qt0 zUbO8qyxO$4QHS4T`Iy6( zSU&FXldb&;hx_CIq{G)*JMl~E%irg14j;Du+Z{e`d8fmFXL+~7egAz9f7<#Vba?Y? zO!?#;p0K>&@M|qEI(&=eV-8Oy%(zi;cuB4lmmD z4?El+XGR=;@@wt*=I}+9k2(Av%f}u53CkxO?$`UI!~OD%+xMOP^RkQ`w_6>a_^~O6 zgu^Q~-gbxk`R#PLzh3QjxbMHu;WOpt4BMc?PqKW-;VbMoIqdNC8;zY2ho55Yj5^#e zw=swNUv;?ezqzx% zUM{l!6Cu1kgr^<8+}i1L_=A=YI{a6b=N;bEVbWi4`0199hVZh(@3#Ic4*!VdRfqrC za&=jK`J8vDNl$ACPda>^_1_u7GY%iI{s%*N-r)()TyGq4cqwLh(c!x;H|ZY>;gt|R z8N%b2*O!lPzs=z%UTNY@h4AhWo^^QXWhP%k4p;IZJX_x3l~))(?D8`VFF4${KkD$z zOO5}M!#{V8$yeFoW0p@i{P=5)e|1HDxh=Q6HH0Tac&Ec3wRSQNFWYh(bht{GbmScF z`yY1s{kGg(ZtagcJZX8!;T6lr9q!*Rt~lH;pUDs&UsPY7FTc)|b6W^ch4AhWo(hVZcvUUB%k>rJ^$hVXd0z8w7VIpJ{MPP@Z@W6Lw;@IhNIoetk@dD`Je z+jMq2{3&ZchM2V`;!ij zT06?Vu;!m{#w~Alc4i-h6F+ zKlSsK2;uD^JRQROLU=BO4~Ot#2ps zatNOY;i{`~ep^F$GK6=A@Jt9F4B`0@J`%!9A$&Z9S3`L7^^MCR5yIO;c-rATeP(>< z3*kA3`~7Y>gcn2jSO~9#@W~J!zoBtCw1x0g2=5Nz*$_Sy!V3=1mdtt3sKb+w+w(++ z=dAy6m%qg1v*PeiuQK&jb@;=UH{V!aJ|)W&4nN{HW2fEWe)`i6kK1&1JKXo5b$H(9 zchKQ;Z#VG{IsACb3l6{C@}k4vVR^~n6E&wKM8) z-~O1x{qi4o_=VQagu_d=Jk?G0KQm5Ddw@QUSq4!_gZZ!Uxnhw!4q&s}Zmz2xwPmX{q~*l7G$9PazCI((J2 zqi(LRmwPRbJA8}f35Snbo^<%PEKfQ7Hd{VvhfiAn8Hb-HAHHH64B`0@J`%!9A$;87 z3vIj;4!_p&Nr#Wx^P1*c>dSM``fqjkJ(jmQ{9eo39iFlFI~`uN<3_i`efxb5_wzOA z@VDD|haB$P8Fu(1)_>9AU$T5GgjXECWP_>S$q*i2Twk7Vwf@^ec*@~^fA4m9!e0N( zIQ&D_exJiXV|mu$k6S+I@NZh4b9lF{$KhM+^HqG%_IHO@J#$}d%;73;{8t^Gu=Xb% zo_yH&S4-;SP5Jk!9iFy4?(mG|tq#vxo^W{1@-~Mbai>W~(&0y1-tO>ZDZ$zL1)X@`$k``r$&{=xXqI6ODglz*SY3okG{>u`0Su`}rKihbTY=kUzWjsGE+ zTmN~77oRZxhaDb&%6_3gi6d9%Yyyz?tt+~LWnU57ioaJb88UNi5&%fC4jKj;8_c>f8jQ^~|D`y)%=%CZPeijd%jp({`CQe`{_wIJn=(g zzs=#P|7Up8;pL|dZ+Cd=kl`tZXMSgRr^5?2-n7Fjr+n*-*dKIw_ISf{4o}F3_t=IUuD)k@-r;e}haH}@yx{PZ*c-itHhgU4mJG^T7u)~voH0dcg zT>Z)L5r?NNFFHK_XXAg=;YvPi$yRcB%JMOXXDlx}JlSH}-?+m|e>3(g4zE}~;qdt1 zjsL2{tCmkXyz&p@U-i_t|Ag(=%?{649(Q=L$%Jopc+qr-_XZuFv-3jE;fd3X zogs%O?e)sM!;3cFVTY$*VC)ne?x%Ca;l7=s!+krW4lmmAq2%z4EuS%mCr>o#DLcGu z`MAUV@ucE#f1a9fc*@4>|Gf@>Jok?)cbNEnp0&?ER~??%Z_am=Jx}ue`*x}}Ua@Ac zAn9>nGQiE71sW^WYvPrEt!3@d9N^{*#rTg0xb30Zp*6t$G>JnZ!1=IFZEFi~|68Qu zm<(|L+n>VQ1Kj^stMF8S^Wmi0)*0abw@Ae?9pL^qS%r58xc`k<;h6wW2(VjUfS>9^ zG#lVA5AeYNKRv*60e(h+4+XgY?OSoq2l!b5|HA?9e`8gg3jywbQ&#v$fS)VCZp8p^ z_aQnO;QqH}#kmyV7Y6)~1^BB2yd2;c2l#k^UlQPz0KYWACjxvyfL8;&Gr%VUd{Ka_ z6;tj1ssL{e@U8%l2lx#E-WuTkH-N=C5#Tok{I>=8%>kYa@JxWW2l(;;PX%~yfOiJ? zZ2_JR@Y@5tJHXcjcqYL8Z-k3;Ux2R*_|FFT8v=YVz~30)xd7iB;6nlamH^KO_fR_S%TY!%R_=f_#9N-@g@KJmHpU<=@(;|)I zOzS7|hHF)1FdjL1#^KF!E5ZM}J&`x07ipKn-*@g&hpCf&clqAge17SdMAXZ~M#tfC zv6bdGe|ALazoXI7l8N5g(%cH`INIpuD*lFaGeKrX* z0^iIxR$i)!VY^@jnE&@MB+fEy2kdg|Pb9%l_@?DPQA-IXeh%U% z&v!UpD}IjGeyWk!4DF|io7hj{wxd0wlI)YG#O=21I^nzF3Ck&Jy)S$Z{A9v=zojQE zY$-&dzm{kVAnm6gKVug})DNgb?cvXb<3%l1n3T^5em3)t<|bo5^+s__$$?4N z814sgmuBK`lHLmZ0K6&SAoeEV`!AwSB@qi-@{!nywel8sF|?m|sou=4w}~{-9@g48 z#XW(07w;-PA?|C9d$h}VNWfCKd%QdJ4spNTxGxK&S=!D<{N(WSAp2rJI%GVE+c0hi zaU-O-rK1msTUxhAdBt~-_k*?@w@mc?;+E0%BmH8=f(TzAWTP*UB+cb=_)NH-n)V0Y z>w|Z}X$n%_w5y~pZ>girxD9qj)b;G^c+w`GZSWFYe>#mm5sh`~z9s!Z{%*m+%OlGF z{(J(q6PCInqCUjFca~09I{Fqnw}ZHCG;ZnWQe!v4vAlBBeN{w_vG0B7VcW((Egp0m*ZIefcXdQvYr~JX);a%_>rA%H-52Bv#HbtWAw-5J5`OCrG z{7HQd!zF)Inck#~cEEB@+`@Om2OIEx@T|int-|}@vM%=S&+D|_W78^aZYC#^Be=Wu zCt+K0+lAW_3A@sSjb35`OS;pzAHv;Fx7h1}O~Ul~3+--&cu$!2ki%`(b+vw#@cY#; zybCVh=9O_=MhmfDgfD`>Rydp3-whjtl?3Sdbrj#mts?e$7om~cA>2y1?J(i;k?3|E zPRg{Eljg4LO+Km1bo6G^f0OWS@KYrWdGXgyo$#G-Rt>^a(T7@^rM!gCzagS>?0Z); z)5$z?l@vfm_oY6u=eu7q-F*o6L%#dM>Fy)AFXmkcZU2&bcgaTu_g%Or*q8MBW5FbR zcLN^hqQD-9OFo3}h0EI9``ZIzD;vE}@{!fHlel+vN7R3d`!8^3EgFeFCLW3rSb|>{ ze&RQ=&JjP~(SAyi=$FJ#N&Lt-Jt*t5_3y&jji`fodwmi0 zLiYVF!H)1<@XeCf+utr>S!b-Q49ml$ zUS*SXWMMmC!S$KA3*QNEBEjBKZ`XAiiT*)XspLU6$!8IN+tyHDq}QbN64ENJ#=VUD zo@_+@R)8K0zENvC622f*TR(19o`ch$tfOs2V%O+$F53)B`Q*j^U_{-?zHV3R z%s4Uv-wMCa@bv3jnlENlVk9x;I)=MPpC)m4 zv~XZ-yBh&Vc$CjJ2DQxTdZUtCeJfywAoElbI~$! zP8hc~+_vLZ5YM{a-&ZS-4&2%{M^r`JCTBC zDVHJqb=_B+bCdqstN`zaC-5WXBI7qmjq=X`T%R*=oZz22mAy9Y{K^0@Ih9ENqU0J zJC5}bO!pldwiPzu_?rXE!5A|2HlKe}u#K?mgk0Pbzo?~^HnS=A01JNh;up6xFK9{J z7})oBO&W8A-$r;zuWX`QVZ*RsdPZQ|VgC3kaqof^{+DsL5&jV2ON5vCSk_onGyihc zhktct$D<^lwvBTei5b}Pul*+R+lAk@x3dP6hDVuPtjmN+a+CK!?7?XC7cB{jNjnf# z(zJiVc>GOwJwFk@e-2WB&uG9$;WHgBWmksJg0Ey>-PV$thwOn3!tP<;yZfy=uYQ_R zlBWBj(Zzn6E|To0bUnctK0@qIx3f9K_ak zYz6bU1y+E0VxLX?6=2(7h~9+lZ@xt`@c@)p02P5LgDB(zhln-1S{ z*xQ>P@E(*Z9}<)#`L)zi_m@)l?P8P#%0S+%1H4VxtLxj*Tm4>4XTQqdzm&;h4ngM= zw)r7*t;t*IhFux-uJf=N|84l!Ye2$FzJ_5PFu#1n?p9a|Ho(4jvTHZm=^K_wOZ@M~ zf8I~W;jaJsboAi=ApVQ^mo=yNi_Ooa46kTZh6`F!9gVp3t2DM3pG5h*!=4Acn|Mr{ zY}A%+57dqxO5L_3j7&fIXnSlCPY|6fDqO)Oru;3Wo4(kap$8M5@)-h49S1^z!G_QKP)`Cp|?%Bu@oZSSrxuRhppn15YJ{B49KU`-My z+kAe5uvxH=vhN*b(rxByJ6GM{uN+ub1y&IW{EN*p;kOVzI1cQG4a59CFa9QBTVY4C zFPpF#6l^{ab`eZ2;%tLG#J=~wT%c^2)MVak+M;K@TjVIATcfP`aJj3VFbzr^S?nEf z(y|#g0i$W_P5ceR4#HTj*4Pf18lK8qg2NJQ2J9N~rQ6(~-wZf1`Pz@4PW-$`{IH4r zNmy6FmarLI0M5XIeK`T!0%HlKH}N+QHVk9BsIgAicGycSYeyHuO0c&J3vW|**0(8h zJ~T|&neVap`z~vV`{zAH_#Aj}tlAB0hxzSD`r0^b9*hz3+2USSANTaNiWK>53T_Zv zuM%6jj5+%@T}_X1b8sKVUHXogUnt5@+X&sjv6h>!O&GI2Xf` zumtR?rzT3sxxCv@rQBe6MW*iRgJ;&`{j5qmyyOt&cIwCFUhw_z{AzHDv$GOz=%YX#Je z3mg17SeEPh9A*H&i4R27C-Lgt`-adwJME7gF0RirEi#Rb-Pp@v?^|N;wLyFCIUBQA z?Ig%7v$^I|hcK!8Z<0=W2%Eukl@3_z2P5h~h)1?0zi!xWSZjm>GoF!8ZW@?rJa$AR zFn!}i=IbqlDHa&>B}|vB2V-$AlszGRe?;tki0f}r4yLy^F&sFzi@he=s9|xlLgG0n z>D?YtPf0vnQ;U6+SV*136Q50eeI%kj?uEpYu8ZflvBvSFrS2DFEB*0^YO!Sym=k^* ztb9q+5Ps)5V?FldIiIxNX}JQ9t(GzBuK!54X%G zc_zf>lM64BO&x9$x2{h$4mb0ql+UMY&sQX(n@u63I;ta+{6zP49z9hGoDm>%wtXA74h+?M}({^=Yh-0bf@|8gl4ZV%xe zpPtV9pDmruXVAX>JEET%mHH0U-^jCtOA+o6;ht}K4iawr-sfK~MZ(ShUPOIodj8(` zZ0VdJ++M;x-}+0?88&|Z`PV}?;b#Bf`Nx+h+#bR`pZZ%wSriG^HO_sz82$E%Y~!)5 zevNc?$l4{_kGlB1JK9a$gC|ARTc^r0cuicMNT@4^+Z)Efxe7_2 z#MZ9XsM^i>fpzdEWel{G$Fmfs+3fCufp860pe z&FSw!`_X>CtY{1E!Lo|Jb6Uss%c;&EQApnQ5@(zThaM+g-uWSUD>nt>j?FrvQEl-4 z1>;H_o2j#zAG)IEIT?T8ybsJfnKo*K004&HvK ztMktt)ws^N9jxnj9*G&cEn2%KF6;A7*j88<`w|DwFY&KD#bd(s;l3AlX$!K6ZiJO# zt(q8?hwXFxZHJA+P73%Nh3yZ7?Zj;ltO`3}s(gaufO~FpC}bGWX=^=~_R5PXQhu_f z`OSo>)lrp@^QSXbH7d(#^K?FBksdbHV4Sg!G5+>cawHKSB zZ_?pn=ZLQ%ek729(W{MIGgoEi^5Vs46EjTHWi14_b#7uk$4paA7q^VT%bMR!Akwh{ zSu$5GBjSHza)ZvoV&DzNXzUFV(Wi0t*ulIcT(U^2CGN~z)s5rNaa?J#cs&l}?25UH zJ?t)@t0>t4y~7~^`1f@>7kD%OQw_~0);>qIra=E~3T+Z?gtIQum*xdZ9sChQr%&qo1 zh;bjmedn{dkKw)__c_>-d~vyS6W8!Lk2miTP2heI_crU!dolPjbB=c**FT?%s*A*p zcNgZ1!a87oW!JloJd!4}Mx!m_r`8nTTi+D9r=#bL6yd#zs2Zi5y)zn?kvkvV5mI&O z6lus~Z{XKa^=h&A=brlX@Vsx#Pf+ae;Ke^W$3-}rYgz}ek^N0n=|BBQ?)8Q0X!P5< zlo+#OJ+(dE7iUor*#lAY&Ra15v=u+PXpfu!q;6+Yh&u^;nWXoY>FJI524crgPcLC) z&f1KP((j^brY=Kl1ly}=XFQ!7?9R~-Hg07ZeXZ>P_VT}vnrFyO8?);--rTegs{(@i zdMz;f)y$uS<94y$q`S7m4#K2Q$R=agB3Kpnq<~;~F%Q)0C;Hj?0+Vq3vV`6Ihp4(! z^160;%X%2o&v7upFhMYJ zFx1~Nmmy(@7b)@#Tf_Vc{6_c{qn9&;F(ojyFd@rC&b&s@tMt6V%*CP1*}vDbE^|{? z;BJ=;hO6|nPCyxB`(HzP{~T2n##ryu%j(iqwa;j-4H#G;uaC}&1jxlgj*bNgZw^PO zZdJkdVis4oNh#FoWZE_Aj{0lVG;q9k@=Lsy>z9PjP%jPJUwxgBss;~L^5U-4Nk6s< ze~&7PUvJW8a;mc36Mr4flP9psD^tfZ-U|9LdxV;s7`TvQk zU$XE0BBSles|Y+dcaHi{aZ^t?A2cjT@_O9S?NPFF6KOi z7wCV-zW3mg&~^}gU;WS~bD@M^MEKUjZ20xhFTC`T?SvmA{PXQ2Qm$i!JwVuHGz{-# z;-20HoqCc9sbL@1ZMyXm%A+}^P7-@Rz4bZRi+(7?oGzOj_V!_~LRuwl@|Hj}dYf&| z$@`g}wAc!3ivOcR| zSNdLC2la4FO#Oy^8K<~E;?JF53e25)%~nsQq5QNY%g<6~-7 zV_VbCx0wVQR-T-1OP{S`Z^wx-MU!Y$cY3A{K1lJKhKV!l;MtclZ@(a>ev2vZDOzW3 z{GK+yFzM^l27BLd`aMvYaU{QaY|eOLOubF&b9!6V!(A|ar-w9F83-l673?iKIi|i8 zZD>#49Ia~y9}dayEP~HjKzlnSW}Xqy?|_wLd8x--abJXc?nN;*&OYmCzH#uSntKY= zg?sA7F;!yU`}!?`@?yTzEz&+r8vQqSAdzOMQv8OovCFsd?&ohq=7xjVXivnFtx5@2|<*!pz-)L-`ts$x8EWN` zY%_LwhZBFWz0)CdW3Qc%Mt?c&eAKo*T`v4H@1-#{i+1ik$(;$umb?-iIJtc=(!f}i z^h^7gc^U2D<+0kk!jjK8Y$ohFX$PAe`~Ep^xqeJdg!D}riv}eB*i5uBrb?PG!Dg); znDN6;vw5$`Uh7&vS8+Lr>oU;;`eM%_z4+!kFOv~jSYJjyZ>Z0kJ_oEuI`y?1-TsMp z_!Y6*dss5ZR$*IVuaf*d+3lxAw*^*Mx-rCNM(XNcI{qBO&bb_WXT;Rg?0X+HVFUBS zr~PWjm_AQhjQ_qlG4%yqmi2M51k-VGR+_+uE)m8UxwNUr$6>-AI5TG6V_ip_&l>K=)&#aTSX)zN zf3sioJodsl8&kGiE}M#`y`5yMpz+bRlbYCt6`ybP4lFZiTL@v{q4;)Be+la01b7Sfb=@%zEw*2#c%mwDb z=z+$ST#$A%livh3H=l3&G-;FfD`n17SF*l)aVN zbrme9=#ILkn$hK!BHZ@&m|7>{9w8iYnzh{xwFO)oZaMrN!r!&*+xW39@z>r_;n<8z zJMf#lAf}EIzid*EBd|HJpRn&OtWTeQxAVcMo^Q(d+mAn*iSo`d>2cPC9ek-GSf={E zOyVlmr}JZKg+!?Hkl94h=(X#7+>)=3sUM14unp@w&wju8Vttdf-?5N3vyt#+!e4MW z2f_B@kEezDYlx>D-l&pI*^FUpcSp=z-^1KIe*0h**tgiPFWcw}zb{a@(Q5(+(pF|( zP5-nLw=D_E`^YACFJ<3nF1OL6=U4eEWb{6A5xgch~)xrhIH(*D`g8_Iq ze1_Oz6E+0v3NYyhn_+3#pw!tDU5(4gnR8zLEbCv1r;5#um&Md^?8_$g;1SsnY_)Wj z>Gj~AA1w-*)>1tLZ^zb-%VX-3GPa-9FwO2YyPr3z)djqEe`g~HK3I?>o>AgCcm?ML zlIB{UgJF6s}M*V!K zb&rF_aNmkMRi!s!`(XJ1n-3d@ZGlzU_fF!V)^<$0;mIFOtp5`vSl5xQP>e2OZiEk>W1xveOv}hEHWqSd#nuXi>HR0LNxZ3Nbr!Gk#>@1oRpyL z{I+AOwL7N%#=cFjzdos*D{OR|RhqVn_X=V65%xy64e2>K8(0!^t}=Z}&dMA$n{GUL zQ_Q?4rRye2)$z~@54!O$pO^#Uk0@0;es|m)Q$Lrwe-eVzw0VXFWw1T|7jE@+Wt^`$KHjuLojd4bNlEzG4(&}+xn4liRy{IZK?_~y3S``Py5Qm zR6_icpE%ME+Y39+GHJu}U=`ST?0YXJolN+vq;Qf-_ve1x)zYbJJ=4mi?pkv6O^tdj zCt*t)aXA~Chxt+B*hn0|lr(&T!M@hM<$|qQTE8TURh#wn>BW9F3(mKo`f$J81cvUfWJP0%K#!ocDM8sIA$tqF6iCn-sl$JW4( zm}=!T(Yw&G<*ye?C)TBJ*OiUaS2~ev@z~st&D3F@dgqbYTuVm@rq8!ou7B3+Ee+e% zf|l|Tu^SF+99>z)1<6AfOWADPQ(VsCUD}ZND)oKizJ~E}PtW#^5p2%qZ(|iXx$y1} zv019K$>OKsC9)DGbvvEOY0xl#&+f~lvtgNxCa!K7Ohj)snzRtel>OB`dKgeTl9kO@5edlQ#ev0_HM-n!@ZrtmLy$z!$ zsFeK#w)VfsbI!N?^XwuSDw3hn4bmRX`F6Htj1-q|xE#8qerV(zY7sVPGZ`gc?CERv z-Z{)AjnY_mf0D1iG%liyq;UXyrBgli@6sL*Z)lI}b@k8GJP`7HUa`rXFITWRYmTR$ z3|nL8>(|(ckmob<^x-&ZOw#|ho#UBzJ~)mc0DZSMCYb^0CV!e`&JCRNCuF`JBJ4)Ou9mP%YGJ3XtDJjeTwpcntq^_(;U(>| zi5`TFz)sS{T;Fcy(%w!O(}F)Au(p@^;GU`JAYs-wv+z5C-w)!|`$2kIe&p*YwM7Je zTKT03({-+=-*NYzAPnUM*6G=dTQ_bm62O+^Hw^26amT_*4U}a z!z)O7lk>w0Y!N5rTZEW(h|L#owOKndZ!|9^|M+`+%AfQvnGc`!y@?dz=C?opaD#-~ zO}OP#eOuDS1a)6D7Gq7M)5_eLkbCpyK-N`7!X3K6Gk@-MdVh1zRl=64srlGCgss$t z-v9dBRr6oRcu9C$+`2B)u*EQ4xx^vb1M7C!Agl}a65M4Ie_LQ#hZSI3U{aT|iNBq& z5tx5HN!S={JM0AU#3pPXtO)B6!1?DKqzXF#dz&!bNNEJR+#ifa8@$();1<`S`QGz> zuc@1G`w917HXi!5-=5y@w>#D>b?-Gvn)8I)^6II+AZ$Bq7h756Zq#+qu!)GGO*d#d1@(*$Gb3KLtlGheO>G0NuC&)I;ee2f%TK*xrCiX zU7o%kqn4Sq>0a0%>=ha^VC;?xm00GqXY@c0;VTj~D4P z$qeJ^P5=8olO_Bf!XJ+<*{Bw^Im3AwjLS7jUDuNGuaj(p$8WB0(?!@U*h=xs_sygX zcEbi?!G1Un8*tbGST?|9JW)$o3&Qlt*7UaVoZqXK^}r%*l@>GCid|!iz9m=v^spAa z!Jppr*;8_${xB0bH1}t=VK4PMPrZK19`hb+7PB^W)<0YuZl_UbXFS<4a~5IuV`mUM zf3bFWZ9vZ06zzOEQ|LL|DdP7$+2wW zZ#HZa#wnuS+W5B})^V4o{w5I``(H8k-)DpmxP$fe*dF}0-tC!h^q8?y<{Z`*%ce%Q zglY46{4T<;+;0`TdfrHFlJC`hU3=DjCly`oA28$d^p6aXxNtzQ4u0d<*}3umZYR-8 zKe)$Jd?v8cf-bQ^{&hce^x)WQSoETTx zuWN^Ne>uyax@Eee{=CJM&~?)w8OUI2#tPPp*gZVv*frw~gFd8=Y7$8 z1NWtLXOXd_jR|KbVR_uWzRdlx*ctcU9I}SUQUC3j7{uPpAqp(%N9w6+tXAjE*81?a{@jr(_F#R@9{k?Ad<2IhT-(#N} z|DqQdlyq<91LnW0XXZNG9Bk&WdFVk;9c%jqvqRcXI`*}OH%b)4hMKvG_4PYFbyVXxrae3L*@mVr}`n6g8d{hY=8@Ev>VdIL^F84Jo5OXtI+Ijpo>iGknI__`| zYUQizm}lN?75}5DzB=iTo%KWy#FEDh_6}|L6t6Z1?3uP&H&(^|y-^Je-iHEyH^=q4#giPWk@;Vz6i?Nq} z)UK5&OIff*H`<9RZ5~;b`E@h?hVUoR%GSwm7`7R9n&jEcnL2(Z&DhI1J=Rsje8u($aOp8AQ$fivF8h4!m2wCy0uLt2!B z9Wczz2ub^1{I!*c>r@VEZMe2>*7sq8_a8RBsByE9bAl8mW^?gr^k<&>4@vuUdv%lI z`@LyPaJ`1=!^XT{c}j{?Hd*6sge76u2{3hR*G08j7va-{|G%6c zNIJYVw7>slI;8z}5PpR4(%xhf)(zY4uzpwpcC7Yg{N-RfU~-L2Hn|qH6*dZcT!1MT z|J?dnuSM-4T;;KAZ!opW(w20@YN0aioR!OKQ;YygRYX*Wmv+_ z{$FzqK?))S5Vb|6&=0&5Qv6DfjHZ5dgyaHiPWilCmhww>$JFrnW=&3u{clt%( z^BYVoc6N|_R|s=}Fv07B2Vs-27m6LW6u;(m)c0RJbzd+qT#MqoYgpUU*-l1x1`f=~ zWE`abF2Y9oub%oY`*OW8`Z*b&6T1BSaGUuzukL%Z8)0$S$>N_)(wm3Pg2}#YqT6Au zuwyhaY}DF&k*&~Kxb1-@CcWBw0=n+9a-M10%K_XoxW7s4$lvdw!H9itJ?D#XnfqiD z)(YDT^T%spb6{nMrC@sktP_7-urb(xEz4YXp;jc$n14tNg@5FuUA+PqXpf3BoahEdb!~G!c@1ZUlj4Ar@kl>u$ z_!_KP8|}na=QG~)cUb-PAXi8Nwr*)WyB8yR&e=fyQOn#4R_Y3UorJ&S_Jr;evv7+? zn$!ZR$7yR8DzUa`xwXMKT!_peSOy!jqD|^!|7xlI&x~O)oX9Bk_++HSbY%+cw zf@NVp5`cgGcgf;>+n0U12LH-mHZy&vjX`I&*JQ>FT;%ylX)7uC9Js%B6}w%qHrP+B zUHuG1h}|51_u=;x>(~Fz@i2TpT+fa6I`0lxs;Q~Aevo!mf-Qp0e2(qv>5#sb!PbmB z89xqhQWrPA{^2~g7E3jp_V`0F(H}Qzai;BNiDSl*O|>z~j1AN;)16+CgTJ?f@ zLRuxgyCl8XY7I+o{k2m5*iwV*HS$-KKHSK`j6aD%>W4p!c`WhCCUrg!HUXQdiD8|v zgRmn5Y%#3ruq^CAfXVu6v$c1&gf(M}U4Px?Pi6X=-VXe!qnph0oV3Ad<7!=gnW`FO zSK8-6>$q;h&1-2= zKa+6(I;~@k(kf+Bz|KDGw2Pg(vdPxUM(Sh?e+TjB*HaH{A50z7q+S=+J{VB~PW*KM4;M=(<^mF0F$NZzOl*TTg7# z^EvZ&N^B0pI$(|FXi5Jl?ptw>O^tiCc_qdmXD1fjZuaAMu$6uziy3Dgo0`L7|H)OI zx{H32w!}ups~0t?ud*+j?*Fhcn5;h}y)q7W!Vbdjl{kX+?a#?|eKYpQkjn*n&9W6+ zZL^!|)?*{E*)V^ek#y{WC17%?N;c^)W!Nm(=Vbo8Mz;gKcz1>b%?AMOX8_+~+SwNTXU}L-AIH1+mpg~i=p#DelI9(_%O4w-B9^U{UkP@I zFpcK?eYjO|3y#TE*a4VdpOSCy9?q|@`;ZuwzlF^xNb{$6Q4L-!9?LYV0m`zFWfMeune~{kOco5HSYiQ8Hsl z#*PE{E55QxZIO5=T={D&33k1Ev43`xnq%up#;0iPrKZK;F6G>YpLyrdUc?V!`9zOi zTZvnTgr7IvP3kOz+pKf#x`|_91L7ZcCi}7p8-jJfWM4MXZLk#Vcufo|!WO~we6XY? zp1^H4Y!KFM(=XrumEp^LU6MY6p9%czJTKgj#5W^HdpUn9tsoUSId%rn{TG()tCcA)u>kx#UUZbajsAnj=R(~MJSvPi!~Gw1|bK-HU`d8UNULX)3i z?TePtG+IG>(D-K=8_^UxjAqasXc66w=0>rHmL4PRZzetHY&8C#oSUP`U8GBnzlN=q|Lhn{zz0LT5OLW*Ho2ZX&*~Q`cw(?MAa>)EOH82K^Z=p*zGK-Hj%{$()2{ z(1XI!_-4}gB;|w_&_9Kv(Pd+4^55Jme35^gXYkUXbBxg z%V-g;qGM>{hn!EMDRdG|qw%-mA5EfFbP*~q2=}0IbR(KTx1vdO2bw~6qiJ*>nn4eu zS#-t_=|E?r6|@7bqKi>EQ5itv=n$Gf3uqD@MN?=QEudAjjLvu)?)#_*G=-+n9J&}S zqXTFK-GU~5j6FF3^&&&&?4&P zsW(0xlt7awMAUq=bRyx=D!LJk^AU%wXciqoi~O;MJ!s-&@`F~;nGa!q7U9t%nnp`# z4_ZbC(F(c+t)kn}_$d)JiYC!LXd11cS@a;9N1NY)U33;If3$Bg8b`Be65WiZ&|$QI zj-$C3ldp%#XCk7KX!canf#%VTXc66tmeCz(>NNiDH(Ej`g`+dJl3p}{R?&H=dI|M} z#?i%S0?ndHbTgVlhtV9m1I?o)G{Z;e4+=+{--#Xma77myNBhtOx)DvGc{Gh~N3$%T z4hnxc`FI!h&4#t)OWxo^%eA zekSy7Xc66mmeC4YMGvC!GfDS*@Q2PqvuF}6pdDxl?MBmcsb_IVx1gD`XdiNns`nB< zIup&KZDpk15Lh?Z{(vzbU&Ion|R(wc(en}q1|X6?MGARP|j!uEumR-FPcLq z&;oi0P0gcUY$JVW2F;=aXdWFxi|95qelB*gzbT+Eai>P)q zj}D+EbPHNR3uqPHiRR8H{~y2|O`zF!>IW^LJ!tZRh$^CKbT^to$I%oona}}yE}8c$JQAI2U!AI+nEXzC)`6&k;o{_+UNXaZH2&|lC*2ma9XrSuQ9x-g>3Xyr26 z1)9H#^lc~pt0@OGla8nyn!1MiKoi$uA5C6IzR-AAL{-reI^!ewTSh-bOFgtZRP|E+ zXdEq|RdkQ=6|^U`g2q1zN88Z&N}ex3lV~@ZMzd%Z9YV|KZnT1qqgC_(n(ia~$MCn7 zc+ot%1ubPGY7DIm@b_#+$kzt)g;vnbXz~vFBU(l)sC>liAeu*K|2z2~BtK~CF8Tu+ ze*@`9tEl&J!re{zqlJys51M-;?H^6uL;ldjz4XsdU^mD3f|k)OXyHxd1I@jec8q2= zQ9nBfx0!x~s<)6Xv@}F|(8Rk)_b1_>r2V4hM+t{!K9Ai`!@s~dho*PY&d?%y2#tS{ z@-0#>=xj7GMm?a#Z%}S%?)Q}Ue_*eQ9kgh^iS;wGWkVa5sMj`)Cr4^Ih%5XciqpQ}L)Op@kQ5y?!V8LuaFj7h@ky zqTOg3?ME|c4$Yxk(E>VxmQIbTgJ_(G44OYnxR()+=;@>ft-gZqV57OYe1q?E)F1yb*o~O$-t57w|V6ReR9Pdr9A8xEG?T2Tgs5{GxeuJ6b|_i#u8o z_YadE(MNb^{XZ#>kKi9o@!-c8njPUgxo8!gw+qh8m4j&J6S$*QRDF^B>>#~p0&PR9 zXb+nGR8;LmbLbeF;wES2OZfYIRP93Z=pnQ^8daT-OM9R^&iKJg-%q)q`CpPxH2tfn+JeTPimEc2K=-3r^pG6?n(sP)o%%wzpqbx9)i@ge zZB!-3uycTVM=QUhUQxw22CHZS^}azm{)ju8J&1idM)#wozYzYL=wG8Mjpq2y-WD|V zclrUE=i76MC$WpB&??%6<~bQHpz%XdwHGa;hlKNOxY>I+j>J?JO?xr58_lBo&?0+WZ}kPl%~@w1}qB654~7(Lpr*f|%Na%D1B`Xoc@R%_)=qS$q!&ReVEf3{CT$ zqvrpjT+rEQB|&(!dMf!r^Rr_r`CZ&!hJCbxZbnltCw*ud9Yr(f9y#V)Gc*1he`o@& zqVv!K-)_l?@=caqsN#DlYA^oKIcS;hf8<2x#nfKWb8-J3;nA6B{5-z9fTqz-G|Bfe zcA$y&nA(r#bCk#TvAc=%p@|>!jVQGA6#joeJinpb(fl7NM>O-77=OzHJG}5ah!+1w zeW2+{>fwj*r(>!Qtu%RR7g{{pQ#1Y_<=Nt?1X@H>s5*xGk;2hkXbvr-1$4i-^Dbum zM;xOaXbH`r6?6bi9qXwPG=4nc(E_?3&CK-FtbOF;1l|`z^C$A`h#a?iY8=g>tv`mN zbI<~sLW^h@T0#5J_zOrMnnLqv8r_a&(NVO7?h*b%PaQ%NCwpq%Pe}JHPxYe-G>2x; zt!Ne*oUA~c0& z&^$Vb7SS!@exaudXcFCt%DYr!Xd2yzR(bEH?Pu6~4dKw#YduvGO?j$sM^g(a2ef=G_vU{=xph-7XyIn!L$kM#UNpJbQwLDRI}U0;cF~!lOUO4` zLi^F|Qo^B$<&>vz-VNyZC3br$f3&=U=M?3575V-Z{`$!eT0*_22)~x{L*rTeqa}0? znt46xn?MJ7_5jV@MfsqGdw510Ep8%TzsBBul)LB<=|xiy@*MPUNdH6BBU*Ww_|g3T z$K9L2RaNGX|L3_om(^WduZ9Vx>;mG3xn0YJQcE)fgo}{CCAhexO{iEZT3S}NSXxcl zs!djoSy`58HED}wHI-T!My2hR7QgrB+;aezW}4>v{r!Kh|E;&5XW#edoWmNMmQhdn zA#;)1o#Y#txR&xmW+V3@%aPwB_xzQ7d`Ud~(Z0pV{SQ;G$ZfAv9$%53x3EX9Ku$s) zMXpAczfCVv zxrgVU)*}<^sej})yh$|(N^SI zJ88VxD&3nb1yUe$diBa5u9LGP>gN)+tF$-CZ%tdZP z29Sx|6RtvLanH968P$PwAonAqP7q&5@_}6Iv1{eXjmR40HsosL9^}Kw72Sy!xfWR` z@@(#=e#O2g`A6=LwQEI4xf@!HT#LK|xe>V;xefW6*mD=OADPJgi}oA-ksf3@cQ0AU zDDF^lksFcK$ZYOJ)*`DD?b=SU=k8)ZGK;$kTLbpoM|hCA+&v6HRwJ{K8<7RbZOGZk z{m5lV4|fD>k=5J-yeQ_J^)oy*G~C`zb=E#(v;3K|KWWpxP}^9bK4^14U{{-L*JFM) z2ZWl|aC;Bsxzs&ND{|jsQ}?UvSNOYN7B{o@Dw~+xY3pV>#ci}|({+s+s%=&MH0=lF zo^MeNs*~xU;r2KcbCYWGEL%MlzAi-FVvA(Bc*!Q}b@mfhG;2aKP3KxegK`b&R<2F+ zNIKf6s2SaEQ`&XP{jgH2)j3V>Zf~K&GP@OPQ{8jb^k(J_Dy+MEnAV%i(+Qo2NqAxH zBT}`qyKu%lGLo0&BMjB-akCFM_Rj{WUVO-!^#$R<;k-L@B>(#K7@FP?4w^&6!rqnH}`yclg z^?T`({6)E@a=$%HOG@Fw!8KErG)p)3t-8AAY5naps2*oxxi7Yw2QIeCw+IIW0p452xFRqu3a?Tw2Me~ZB|;I zb1jBG!+n(YTn7!hf6_ra(1Ec;#?p@3b50DM(LXq~eNGRTWlr}pms;Rz$`0 zwOCqEjdIk@Qqp+1E<4CXY`Ce_$Igu}WwIzL`zUANesC`~-Z(_?&Mrt=EM}9U^ zJDAb(?vdILgWGH#seL&j`ou`>+L6&)Mrt2;!@uyVAH3l;qtxnA;af+kzm96wSLk2b zwWR1;t9xZDZIv_P=2qIFkRL2)J_y_C(6oD6xu0sK9%Tgo*>dw?$TfF+{Fr9EXS z!I3rMs8f5)%F{3Yv>zxt=<;0o9WCR z`m$ZS#hz!>!_#WJW9Y}1Xtl1+2QJa-TZO+qS-Y;ya)r_ScHy6(X}5=fKI+is*ktXN z&aNewXm@qq7^-QzVc&g7H{;%GrD+chyjlG+S-W?bYr!Sj!^75xuooT^ zv2L<<`?yxWP0}76cOyxDethZEQ?!K>GY(y%ZJXEy^(Pa%puX#(Xw+|AGzInJ7Y|1L z?Zq^J8zw~)?<13EbxoK$5!zUo!E&k8wzxHTDDt^1Z9~WK`B~c0&MjXV%(s!-{FJ3#+uij{mUeyj zugT%BeY!u8rM(g#wlIsYkcQoqrL9f!JfEe_PY!=5OZzN2qG7Q1W=6!vgSDpyIPkk+ z;PYxvmbP?o^u1ZyUk67#F<5(i@U=3)HQYW*4b+}x@$#&_*0L|m{)N+Vf0(tw8G(Aa zD`I7+{YjU5NvQqVkPevFxECrcc7-~B47KhF-KKX&#o4a>XcH|u-lteWY*%&$=$-sg zBg4GqS{1R5FIcH4M(iKdcHM)x*FP%wh;pvs7)&i`3@1uEjQX&0(8P`~N|VkwhBD^K z0W$PY3q7Q?(j2ZTRV!5AD*G~v`iTWkv$3wTYO8T*2W|NP|NEBEBNp|U<&-jSp>YlY zvFn}MU3#Z9@}a+&cAq6;SBSRB@-RJA%wnHBW4VJg0YZI26R7=jBUsbLTm3piBFhM+>RdlD8uPd$0 z`KZ#W7){<#?$4C^pvl=Ea?_xq^pCb3R8EdF534zP9Yw~6FR*BS$43OsT&0`2FC6%e z(ymuTrR&4x8>(X*42$DS#YpP*OlFbtG1Q87E9K+nRH5OnfT2E=f!fb{CukOSn{q$K zNurWs(d(V_d*+&VEQ@%j%gW>#bQeW!Gt#MU9K)`#4AtF6X{=x2s<-Ugq7bZXE@ zEe<=iL$+e%NUwK-q3X*bv??O-|eZOKyXX%+RRG^=j9nd_XEQ?-FC z83;E@TSZu_R0>xdFVjLv|3KF9yD{9YI$YZmxHI)&4VX2C`*~;7YvZPyYiCAUT zo|LQ*KmF-O6+y#Tr=&eRU~!<{WC?r4!gl54IQq6;YFA9EKibrOb)6MWQylb{c3Uki zcXLE(ZMn^=ZMQ}rvZ{Yt8$&SiFQxvHih5URdu5%Wm&ry_yU`l`s#V)%jg~a^Wz>?U zyvB0L$4>2CYuJrW?Gx+Qn7rYL#^g&!kF8Et0`7O6YL~N5^Ss_3qHNKwcr#^$@1EqM z8|N+}VhMYbO+8{u{?_ppMe(H5@jjLNn)@c(o2*H`i-@=t?fl4x8H*ojZC}e8=5MWK zbb6qD_$xU0s(s7PG27VD^%A3lP~ud~Acj_%o^3zV2H9}&JEv2kSh=ZI%U-hsdOyiwcH9QGb&?t1fr z@J(orUlhIp@yf+fHxvHSN#XAj)}bk`CrR+vQ@$V}`-;OK!ED9l_Mb3&Wk$qq#`331 zBR1mxrP4GO=%rE5;GnjQ;adB~A9WA*ua-xgAlUmW7KML_-O;P{TpX@e8Beh}`*FVN zdx*@{*QoPF|MVgiE&BHssT9$#yhcSmO=M496Exq8{shr|ag9n5cXwZ_qNTu|L9Ryb zLrU_$Lq0)t*DY3EpC$Soi&gl(#Y#0GZ(qWaZHWr~Y=u(yEm7ewqyKD)>LU7Em#Xj$ z*DJLRxtslDO|1&Q<~pSwM}AzZ)C)*)*MMBPOsPATsqjaU&m!MMeuzART(n$8KC@h@ z&zA@N|MfZ*`6}VmULOqqJEVkDy+SecnvI;c)Ru`;cHQkcYWqeX298;IQ$pHRwOw%@ z#MKYj@8Syd3(JkPoL}wj-`c3OJDu6zA%1YR-tZWIy*ngSbO%EyJMC+CydxV zXmdTW9-Kk>YG0M~70r94;rns0r7T=@N6KRFV*q)>AASqEh2^(7M7v|A;|7xS+RR57 z;eWpJbBkC$e07`0@OV$P(%o*XR{ODCv4|Is#QMg?in}*$?^5MB@~F~2SgMY)Kz((k zx>C|}$BjJy{u@Exb({K*#N2R)>L{7IWsPdPmW)*2sq{=fc&98*_T8z%#kS@yRUo!? zcPR$ed)KPg*P+|IR$Z=Xcdt_yi0->}`h0NfJ*tOj58R_#FGK!tk2;@6cJEbpTSR;C zJ~_Bpe!m(ky2b0&^_D%P@|FkHWt7>2>H^X2ct|4u{vj19y4??}=h>8&X1COYvA4ufiA5n}phtT~*(8nH8EuTOxdz1m6Q0{zGIV21BJ*r|Q)V+_Y z@XsGr>RV(DJHc%mXokoSkw=ifAeU`qr?*jsKY-kX+<`oXT*?mcrpHwH{m8o?Q#VqM zPy9_q-N_92(%+Qqgm*r!!hb}&_i;{x%tlHZU8Q1L-Q1eLfE~5Awf3sD%a+#K6Sjxd zs@B>8`#1(#M+=m9I9pY>*6N*Z)T>>gsPA#H($KbtjM?2vTj8eJZFYyDd@!^#PO8JA z7PQu03Jd?Jm9{$Eje2Xi`$#KoU1Sezzm6JARFAY^P}gc&MPqwctG1Xw)v7H4|D)AT z%%zVss6q0=*4(h)?7Z-HFQ%*szOrkdTf&a;7_&7B^W9e0hjwj=?S6%3qg__x_HHOY z;2a?sMrZ9#Oz(6@oe0w&b+dKU4uyuV4%fa5*6QJi@E2RFzelW~OYCatTGmEA*s3+&wzX=zuaz>w1X|`ThsB+j`|q&*=?SQ(@vZnbyu9WvS&2v4LuVdjnh8u8HKMOdnR5Jr>&2T z`XW|480)Bs)4qxgKM|{biDfm`Ysn9$7)^LC3=_nY{O)hgmf{uZDm6!l6A)47DzTa)?lHx+)9U8}XEb4_oFLiwO| z(k*svfvp=GS6eE|cWqOQGUyf3*DM1GzqqWtDv(@Rk)KeSS6mifQ8}fVIx{J0s;AOl zQWYrnmw5(y+(7Q*87R;LEcPdq`U?oDGEm{m zEAhVpyb??%P8iWA>PUx6q0LSJQ7Ngy+`s%%z8UU_U>u7|40EA!+Iuc*kC zR95-^->s$py5uTLit~L&MQOWtund6fVFQfYrD<0|BqV^e%8IhQ5|6K8IhhJ*@Vc}32&;y`&`{tTbArT=$p!fa0C%B4G>+MGPO zWBp}5qd93-p3iRwJs<<-e4uGdU=2J5|8=cW7ZnMmzCe+`ppsJal}WASR0Rq%GCgHJ zYK%@0@Ks8u2-JHq*I>RGzJr8IIX3pOYV#{?4e}SrD&(LEUI!1)RE~x_ z;Vt+Xx)-sUg-y`1SZPUcF)V_&;Rndg=NRR3R+(@BZYsbX96|j9a?lK=O@wP;7yJ{_ zOV~KUAqXo~S|-eb?eG;;m9ag9`Gox$>_h#3o0+72IGoM--;g;?d^3--Lf?RFZk~-h zLCpFY?vo6&Gx;&ygf|Oc!WHuYn2D4)n%j$B;*jv#BgOrx`m^TpEH@0p-efWQ9kbco zG&3KHU$Hl(>DH8DKG$#~eoeQ(=f1i9m&CJ;G~RV3&%44?=x4%9V1siBF9A8<;5qaU zqZav-Vb(f6;zsadKO{bOB`EaJG=r{(4O`fQtW_7WZX=Bj;W=K&B3D{ddR$4n4hW;EwidvY2eim^k{B`BZpsgWAEet@v z;ShO%r{PWb2*k|9v@`YplhO=Z;yx8gi^O%Rxfy@zG1C8w(tP}p=y`?|wUCScW$f?$ znRy%ir-l@@uoL}=K0Ie0Z_#GL;y8;og7*amBv`ai^q<3P*gprOFgt|(_q};u8}-?+ z5DvpdNfxbW7|;0|Qq)2P`j*+eA29Ym=PLZQxZpqc_h;fdlb^V8|2uL2*>E2<%A)0k z7HuG`f!ARl9E7(iuX;lsLE6S!v}hQKzdnX+ftw|$r%twLcNccotrQ*WfL99}Ykr9DyHUwV$)(a*I|7o3F5F z&%W}eFbupf8nR&mOoB@x z7Yd*VN}wD9FdODUHQW#HRa&$i$e)qFLPWr#b%jJ20vEz%;D>5h33tQe@FMJmL+}&0 zs>lQMfHW8hlb{%`gj%=*9)V|JH|&RRz``H&jDjxE8#2KQ7eN73Ks9_@OS@TS(NbU} zOkGae;6@Pj-LL~*xt_GacOdFtp#2Kmth8v;;R+D-Tv!C}Li7!kJBYd`G9D(bvS?qx zo|}T|Y(sq+au;SikfpT&QFlhhzz~RqcthP6IRLueYSHGvCJ^;ahPpfNDkVW7RD$R~ zdEjK`VzvX`GVG5d_rPBG2)>5NZ*r3jZ$WeQM4nqv1~ZTWc!>9U9)-tXlOaX@R5P{c zx4<(X?nN(bgYB@x(CF!PRdto1Z03X2t_!LYxpQHZ5(0_$I3f~!e)6M^1 z<&Wg^XE*^3MxHIaS7iq?&#q?bP}C8IzC|qAAw?~$K!0--e-F3??-ZeTq8Dj$0P{6Glxrn>PEJ$Mvc%#kjM9934}o9*E^-QzFxO!HTj6;#H?{r6FD$xtpQh!t`(qSs5a z^Td<(~G&nnG?L!k!BH} zUqMT*j4$^0Nh?fBFGx;8{OY&eN}Js6A#PN00DS21gT*ej})ti8RP@Gq|JrQ!#UNUy&@eB2|@SR26rEe>Nv)46m@N zOdkUYv@kEgwNXV?S)jPoXI>u#Z`?fQ&F9eZfr{d?>6w{jzFD!|r7?7mlRHxLs?xk2 z();rn11v5p4is~(cx9e`rAj&Fm-zC^s>-?2nC?EKmx2m^xwJ63_bAURE6(TNIVJwQ zf}oCDC-;#2d|zcHCGF>q)hCWgNoHoCNSbzLW`0#g1s7qlaa_yl7o6q(%F1H73d<{G zpwmMRy6su%;hK_iD4;a->y>FfhJpeg-OE46S8!@ZgT9P58!RQcv6=2G^GOHf+O7DC zD(O6u5YMP#nI5jnD!D78gl8A!aUtw0xNze52|4Eu8G8PN3x^CH{_n41o1&Rj!Bn89 zK6oF*t&ybr)I@U4YubxK_azfZ;|;S}Z8(&4;s)DtUqxv##l%%>fv>FCSHP`snbF28 ze1(*AL76Ww%U?00`Q>6WM|sm2*KriQP!_Mg0%?TQl!wb@0x)&rByT3S>vBD523p{s zRW_}{KZD{gFD|DR0>yzjp1cxC;T%ej5wFruB7+TSmcOc`z%z}?o1urs&{RQ;{)#zN zxeQc>u2G@41G#pdBLVjDmzB)%6mq{`Ifpta_0TXY@trr_=PC6S6jzltvn%mSgRCGE z!O*0LN{UO11D;r4{PcKFbMIN_- zKDt-%f=((@dSZdh@WG0fA-2-zn<2N~Rb`^muX82LW~sZP%1_hv&Ccf%(N~~H81VZ& zCCn7u1Xud2DrkJusw(IBX8ZE10*yiFX8FWW*{8ralPhQPL?*~5eMizpAfwL%ceKghdvutRFzZbB(}H-6YH-GntS5T(CBH_#eQ0HeqNd0CiFpq z#xNn+8%OIMeY{c2`cnj+f+`u`B-6o>LGSog`Ve_)1V-1_hYNl9Bqt0>_zy@Bi~^Z5 z3UNz*s?Wy9F7gUy=9T4(>ter0U)xoBrupXhS>{j*#TBv)nI0%=ayH68URF$|BZd;g z$*ED$iW3-nW+&(caO#LLtH@6?42}tf{)$q4xfd+RQv=cmT(Wn%d7ud6_*2a*=al6q z_{;KTEg_wehYgrf8n2(F!D<5EZmz<#B?Q}CPH|bGwCgj@mZz_bn|ms*%qin3 zhuApxk>{QXb~uJqX~V(kxX^s;AlPKw#zP1}-Kh!FJ^o%gE~JQp6Lcl@jCz`nnkOw} z@yzqQ?!)M-q$j^fYQR@Ky-Xj>^k+6IPg`l|?Q;fQh;*FmpFN;pPMK#&*_=U?rZk#@ zK|LE+37))w$7~e8TlGn~j7&3&EBs~p=r%L2qF5gx^=FeR%Xxl@HqltyZg((#X_NX& zLf2+y=9SFKn^T#i&w#OUy*;`@66p?BMpK$*6-oOp=UFGlH5mzl9qx1=`79QQhT7}H zqD-cqGdVtElW6Mx!POUQ20fPE#@Kmky~f8U@PA__^*sV}+B84QHuFIwPoH3W_GC_M z8s3Le&-6A~h7E08EL<2|D>OG?UF`K&1|~K=lQcHCl4xeq3<<6ghU-g&i)CSOt_(#4Fl3my4j5J0q;53C#c){>T*!)G z91DUG)J}Q!f{oBafM^_`FNbn#}k{+#Iiz_D$c3U z_XSlIzEc}e4b)vrKeQp317kB1Qs6&Wt5R- z_LZJJ^@X_k1QVS=<~`O``7_Qukmy#8Qx0w@0A^ICSPlr-Y2=m2=>{X-OkXe<&-ALi z3fWFfXTJE|%;>@9n90z`Ju_fq2qkAcmw0OE|02lXXh2ZE8>umP>#K~M8NNAsv}f3; zoj&YWGIHjX#1e9TX6E=&BeO?k5ASWPJuBkmprp|%XZVE|o;I>JR$}m|L6&&>@-L6o z5CtczX4xyvsFdaCg|kMZ{M}sW?h*=RO3$g7B|7qPdXkx)s>;OHR}f2S2YhkkSV^#E zKqCry+^xKVhVHMbWVx@sqfaZ(e?6+|hcXEytx}d%rxxTN@cZX{CD0}DnNU?( zA-h33AKUO#bn(-wic1Rm6c;26m9ey}XMj~ZOH^a`cCum9uCelDi{OFW$!2u*lMRZ? zcnGqwrAb&#p|C?@8P?oO(8SzCvZ9>sYYZ-ESHuA+XG+s#TUE&;lg0VPvS-l)=I<%# zr<=iVc8k*dy9|+rxhZ+=O#hkoJTtHVLJS#YNM4-Lf4otk|9Fo||DCEg{hQ&L;YS$m z+ZxhzXNGI0*NoRRHzkkS>p#<Kc&0S-Vd{CIP5+tZ)hTGx z_|7rkkLdxaFcc<2AymK~+{{H@11n$++z*>z8@vIZz&GIJJ2S0dHh#JwdqOe{gb9!f zC9od*zaW>vYPcV^z;Ap9=OyHu@F5%o$-Ce%up;F*Pn{$1Q=7^eJp z?oIn)|0Yk(!#k7OG&7}y+gxqN(_H>L`{r){Z>S|bfA&ba>9qX}7ex$GXPm!$1=D@; zY}}_81v~?}w~)cr(Dv~poj%`j4;9bajB`m`7gPpX7ezOsm|1};5C){Kv!w# z@~hYl%3*ZSlfI#h_Z8)wtjH;9^set6gO25J+3+XI92Rz_)}P;`k`o>?y3#z3E7*Jn z13*_{s>`dU$s*Hqh&C{%yit2nnk&ktHxIKZT2wi~dBO}PaB}vV2WghiEHeecgf(h| zxogr&mYVB~Bs3Z|rK-_LPg!$aQ|e~<|J0%WneSeVtjO()RlXqw9U%@fU>J;nOTY)^ za5XG})o>sD4W5TR@F9E&KZ1)-N3{bP>&)@m9LLRhz#RY0`M{iCPIYhkGu@l>nyEL# zGs7{>O=*T_>P`RV{A8M&{@am$lg@mT%T$Yug>=Jy1ag9*-q(lsHVn1M>2M`1h7*KQ zl+ZNKoAa+J&G=3IsnWDJrD<>GyOk6&KhxY?7nu4}rRm=EZ_fK>_@@8V_pREPf5U9- z7c_ITteN`X`Te8zH=iNQwU|A{w>@8l87)sIDdJ?a5x9Hc6tgq=6EktUw*`M+xs8o) zQrNVs;RZvF=KGwY|5seu)}{$B8Av#j@z*EDrkx8ZJ^ma&oMqDl@ju=Or|3Tj?=t+( z!TnytPjRz!+=89hi||2imt zc_sV7#>>b5Iy{EzW{)lW*TMO?G$@xz{y%sC;7?5ma*~|Sg$rBj=_PX2n-rg%qMx{x z_@?LO%YNTX!XJ2TEi-dy@3`1O1J3T175_h+oSBIvC6^YEnK@iee{wm3DGFY?v6(Jy zyit`W1LQ&{&l7Y!!n|L|Ew3t@BQLql?Q>P)AKk70QFpSdugJ_StnioW@6g41W^q=~ zc-h4Mz9^4FizJV{b{Bk&PFGfXW^pOTL9;wP!`*g9aZ*}wN^)^ps{R6RRYp}(T2)GN zRa&b43U6Uba$#C(w;WFF=W?M~#gjsfcYhp+cy@eA$;{IK>AGWQPvy*qx^WSr4hBsoMO`A4= z?*zkp&}pbm8|t-b?S|R3JmhxdZ=?8-&v`b@az1~v80O(-@@Sj(Id(IL+q8q@m}~e( za;I$EBWEJtgfX;?zIPNe+g5>n2qjC<1Hqh6=) zCQ5l%o9CVMU5CD__^(Gn&Y^hoIJm#~lh4nTa^-Mkj(;|9bu+l7$0r%jC>6>>Mf$7l zv`jsh`ajkDn+4mz18X4{_Jb^kRzNoFfkfB{LjzF>o&wz^B0H5wumnmlw3RAr&@30KNxVwl0Iw@EY`nhoJ<%gide= zTnhh$0k9S3!3mJ&xd6_E7oa=b4b$Kt$TIl`xDeiiWcV9Yz_%dF>7{TUyaK)8LAV^g z06v1K-3EMpO?w|QVGCRdzknQ#TmvIu2b>M}K_MIhS)Seu7r{G_22a9F_z`3odmW60 z*C8Grg);aW_~fB>C-C7E{m%{$LOu(Bf!{#7-Fz4V&qFs@2YGM+Wcj=jE`T>62_Azh z;2V%_%Mus`yC4o8fMPfd^7)8cVKTf2{owB~2Yv<_b{4^KcnNyIU%>~TK^wRUCc<9m z3r|25`~b4OSq@|1AJ7LLfl~Mi_#%(C2ByM?Fc6-BtKe6VVQC=@h3#+_+ynXW3CMQg zMi>uoK?*z$mGB+N_N*4phgabocnD@dJ#>WIVG8gDyVf6`hPiMY3MRnYkP4e10N+CxEQ8VT8uW&Tp#;8!PH+cY3jc%wuodRP39!HdI2T@k z?r=9ugM-i#Zh#BnO-P2nK?QsZZdeNE!7I=U9)!!`3+Mp1!6ooMWWpA>5`F;(TmvIu z2b>M}K_MK1ws13C1n)o^JP9-5M~HyyU@W{2@$e{=!Pn3Q?u5(WBNznF!e8JwP%s~c z!1K@z)62_Azh;2Q{mB`^whK^!~)#c&v+;Z~Ro??FHKJIsNf!48XH zIJ^Ws;IH6=&!7$51QTH|^o1v&3VwiaSPo<0AJ7LLfl~MiI>Q>63LnBicm}S5U%?6s zVJK{ev)~@chfkmt+z8|0El7dKp%T7>P^g9T;Z-;X9)cNA4;|rlm;xU_e|Q?^!f|lI zwJ;K1hMsUgOoz{*9ozyJ!@H0UPr)qs2_oTo7zeu{0XBdijzCwq3v%FN7!1$B)zA=} z_Oq&yS+ET}uoiM*KSaR_$c8q;XHT+dclKmIeY;f;5N7f-iJ)s0$0K> z;DBpj1nhvb;XWvYL(mp(hKt}GNP{O~Cj1Bya2B4F1|-2_a0Pq=A+Q8S!7hk{2cQ@ZLp0n9li@w+2Y-h- z@H5z95e$cypa=XFeDE2xftz3=?1jGY1XRHf5Dv>>4EzK7z#~u!UqNSB15@Ec7zoe6 zRq!iVVId5K?Qj;{1Nra?w1OL9JiG-d@HkY$cMuA-a6Y^W=fFcS1L~n8+zwOV1LzM= z!(2EHPPi6E!pqPT?uY5{IkbaY;9__e(%~tX1wTO~To2=5HzdFY@WT=43U@&cd<=u( zIk*}cf=m8w)yOQ^1|C=oxv(FiU{__ zW|$4fzy>ui3|@p7xEBiGQ)msVU;?}isjvwG@I8dVG8hf7L2q~%O5jWA1b4ut@J|>3 zTVWoY01GUDbKwQ(4tK*eI0!A_2DlL3gk<;|RKU03hNW;GyaK)8LAV^gfDUjQTmtVy zCTxK#;TLegH828pz}avg6v82B3pc|>@D8NGlQ0v0gb26}#=`3m5063_d<|XTPPhy{ zfs`~`jk1@mDDJP+Mq9pu3QXaOtX0(b+G;4!!YzJU-}0;6CT#K8kl42K~aZiUJ4 z9`u91!yNb-?63%i!%NTu{t7<$4BEg=FcJ1bUw8tl;0FkYRD21<}GpvEB z@F5I@XW%OM6|ArjhQf9@3+{n@_yk(PjW8bGf)schD&ac_g<3ctUWIeuA(#R6&=GEj zDewXGho@mK90w;{3nSrW=n413bodrxY#VZ*)WB(X=%a6svVo7 zu57r@VN=y#8_E_dpKaAbwqM)XdRh3?j{GMg7={!7;rNVZlbWOrVT(FndtOs&zET!t zRW{{NE)}MtRD0!7i7HFwYSk=o72g8VqFS`nT+R@O+a78QvxZwDRHPRCnFqap;AJ!O z0imXA>WaKsIlLG~J~_GOmX>!V%tzHucg&M83Hkbc?|*c>e0o6gxVL_Qb6t^5`{dtn zKlYC`bMtgF^}qA`N9|uaLzwSkcHw**AEM<>$&jzr*tDO(x`@9IhLoRK{(s=0-7Ja5 ztC6NR*Yq=J&XRK~@(PM)b2}f%3_bu|QY??M>96bP*WsSrDapM(DQQ!4J$-^F(4Lbn zZBC1$>G~x;{#-wY@UzBL1@y!C%qdOJA!T;b#^6{B1vuoc^i;?*4m={SKU(Sb@D@TL*>nfZMPZm^dOUMI zz4^!8+kKVis@PcM)YDQY8KVGcNQtu(c}FoZIWZ+MHL-7ET4H))Mq6_ZOZ{M`O>3uW$_Df4lOG-;lOG!&j z>zkIAmY$Z8)-OGg4|FD{r=+K*_f1brPfyQC@0XF7k(7~~k&=;`(KjP4BRwM{qhCLg z*pKM@5p+Mi^}{Gw#XQi*tE<6+HqUQ^Hu83Xe!ePis|DZlF!Vv!x=&tM2=GKc^~DPX zy2f}n)2BbrYPi&23E{a`ZaGTxW*3)Ml?FdJYP{OIr@!F%`QQ9&`IkTIDLCiKyN=Z4t&gel zJx8-C$kV6t(wlw>6?}P{Prdf%$!6(~Jgg{RL5-89k(;Z(XCf#2v;j}-X%_*yqcbKT z_~7noR=gLae*si~RY_iMkOADGWZtsaolc9(6=Gp>vP9UTR0~T>d#e_$RU1n?OLTZA zduLZy6{9Y<&9H2+K4#f!*=>2l@^;wXkasNaTHaUt?FTHM+v+S|dyd+US$?q|S7AN- z4;nk}`aAEuYi{k0H{boYE!RBeaE7D}9CXold)~0MZl9KZ(ZyFk_~?db`tEOe?UL*6 zw1r2sXc?E3nmK&LsPo2-EAUZ*=zfi5E?}^L>RgDraAH_0oGE+^})m zo<}#7`JcVJ4IMjl zetJk-x2t{s;r*=nu8_pG_HNdWc9oT3JKvsQb2~$vS)QJ@u#hxsroDsH7Us+zm7Wrw z;*58>=bwGy`RBNLwe4_rr`GL4#uCA>@Mx#o;dS*4sR})JP%lS+yW4SrL)oLO_UhVc zUA!)L^?jFhA0FyN2OaM zTy94{r+a={w6njp(?u#WIeg*mg;k-|FD@OOA6}Cf)%N-a7mQr@_XYi&y=<2{&UTM* z$J$#h*f_;^zOA3LMV2&)TaLME-su%`_viCdB2{Ncgv~X7*%I3fd$={k8FfSM$dJH* z>L1;euJSe`u52CFI_%<*=;~|dkF+j2H?mDlc2|d^dha>*LETh&A8QAjWqwxI7MXT6 ze^0LkhpK;y8*OvjEDKu<8$Gc4g#iv_n`rNtYMCF=+g1>Ek-PfQjLzY`Z6QuegroYl zh5KwRtl`#Kwj4*8O+|*;GRR!4tNYmb6T&)^mNZucPD7m4ul8`)I5cIo+Z_&z)4{^4 zg}YN|bXbS*sEDvgTa>kB%T^(6RXbaI6>aU{?5H|fy0-OL&$0FijaP}*Bulco-|~Rv zLEA&FUo6M%zgm8?HiSGfdrs~0yAv;-RJ&|Nrw=0{&mVpKM0~>FOQ+@>tXY2D${QYd zY|GOx?b!9oN1uMypxN{Wou1i$;HdMa)?A0>rY%qJc;)ropMIt_HuwJ0-Y+Zg)vUaI z&92vXhqs8!>_2?e#ZxZ5ET_P?eB}dpd1=?jpMG{Uyv6WQ1-|NLmRxuJV^2Qy-19qLez!&2c2h3>@u%M! zs!Ol<=;Mg4W&Tc`bFTW!qZ_V%dTZNuUAm4KId+`1|G!-Q#7l4Q{pZndeyFItK2UY@ z+3^YYZ+Pmtmv_JW@oibRtWLbX>zi-C-Y|CDB~zTP$f%wPUmq#+rw<%_?(h{W$4{@? zxogiG``-Kfw+79V(|y6mwgtmn9c_*l^B<0=e#qW6WPV3$v`g6%Y^gSP>QE7F>|>oBofkVTj&@<$wxQNO3{Nc_kztv(&OLHG zrMAm^RPVGe*l6wGSn#WLva@YS`w(exmpj~!4vxvrbL=DBy=}A&Yf@-$TL(v|wfbSK z5|YMPtM7FUutr)3I5S-5*cUXkXzxmB(Z|{?vRh>JGTVY%qC?v(US&_P_ot<`52=2( zdmya(oep94>IQrD$6?>Dv8IR2zqEDrW>@vAc6a;!R<|R=HNq9<2!wXAUSgXZQoXQ! zCwJSB(YETPj)(3IYiCPZXPf{2+0HP#z52eW`9C<7rCocAlr?fq^O z_=Ca|A3d0N@t2==o4luP-DHpU_2i@K>Pxu6b!vTBKv?)sc|#N1L@6H?Z?P!bS*lCN zDWRDmA*#Jig)m3i&#?}0^&3# zRP=TnsMeOYOm(;>Y?pFc-Igw@KYqjT8B6elYPHkUoR&~MR7nz%T14N;(vS3+v2<2m zHhKikR__93afZ33DN9JGbCjhc;VG3Kp@`8Qs$xP^q3j4*VMJSO)+k#zN{5Q%qlTKb zv!x6FWm%Ndr7WQ#ie|2=EZx;itIZOk9M%sg1XAmi5G^i;+oBS?CfO3v+f{5xn8iaT zl{EuPJX$kd7Rzd@3Rg~v&}!L{rK#=RH0yGe>(Ly19?hoQ9t)p|lgVC1TkPr z>TFkZXuLI%yjd(g)lf>_VhJN(2`Yt9EfzcZ?qzYQucg@d(4rO<6~$&)9aMaH-%2iR zu~wVhm2yOC^nFbYwp}0_{&-6} zHuhGV-Q}`4yV&?+N9nd?mx@qr?QGngtdJx`dx2VuA08Otv5iuvmMb@sxehMRLp&-g zYQHLO<#Bx7cCBMX^nORVXTLKyW`D@co}SQOd#??3ChiZtA;}Zwxo>}1;`-c(qYv$m zh-%1L%x~`)Zlh-Nt z@&lc!%er;m_GY&(ufLnuCF?-9u162%bv^p&x~?zR9q4++m)$(tH|sn{k00pv%kkvy ziSF6dzQwA!uW|2iYwnqDo1=t(XSywpvhYf`%Q@X$qP50qfF~fVN8Ao~ zTijQN{uR}e?u+p6aMPX~4)=}}3xDKxY+G*nDaYuL2o6h@y1Tekq{rPeQgd&0YmVF8 zXA@sr{BZ!|*7}6?Yhlqk#@IU3+ODy`;?`Wz&YmIX+uJ(US}akP_^gmrOBd_;_99n% zSDaIGB)YY(ce;Do%AMDAsdf)=uW&nCAJ@~bxeMKeVOp!HZmshtl3I6R8}6R<6e=f2 zJWLNI(L6N~j5(y*t@W2~FuD)*7>?;^{cjVP<03<&-B{s=88Y+~Y3=~j^nz(Q@O6FOz$Zb-|ITvzPMnvXMktuknABtM@^UtY3Nb$u1E<#>8nvo-nh)Wfd?@|$Qzj>D& z^*;agVDIzCtX{Rl`^Im9)&wxd2*A~_zc8}vuqOYKzUqNv@T*m&O!O`sxL_|z?~=~~ z;ojPT4$K?clw(wv&x;{D>@gUqsoM+VBfHi}GPLc5P3p+5S$cUMo{n21OO*8_?~(yA z-X(z;mv_m8m?-a(c`+W*#)>x4yJU1shPU7ARfD{>0c>k=TRRN5&+jK0!(y_$wG;RU zr(W{$14(JvgYkrg^I|4wk*l`FsKvu#y4Krw@UOO%e_~YRliR4kN!uj}-uYkF(e}N| z`z9}LXz(td7gH_?h}uHK)9PODfmJP9?D>o5T3zSvJQub@oMqL0!=+JV6e);|8Xc1z z88sm$H!^NjjQr82$hc)O)w-;SDMxyjZ;i?k7 z(AXo!`$>lQimkH@3>wFZ@kYZqu`bjwP88#6!#JaE6E}k1+IcYEyg=_SrfBIWUZmEHT2?5Pe1OFJ8EL4 zrs1`tcuyF%VjZ}by*X$O(br;Nco}6M(IH*Ax%P!(FBAU zQY>l-DN&cpVls4D6O$#9Vm>N)r545AmJGtF>vKXH&(@grx=r67*V?o#SmG*JGD9|F zp^ZkT`+eCKBl@~Kxz94aHMG(GK@Xk(VjUj!wkhp1+q>jj+VvB!+ISw*oBtF2c@(c6 zCGDz9?#|gccqi?>i}&SWF&<(dwhK9sE(J;@@<*=9{ z@lhl`vJ4xqAvcRpihdhXe$uRTGpc`^=xJ75x+80X4IX=4kA1KMEQ`rD!kVPZ(J>4r z!(wv1wW1>4T*;0VO7|#=8W}m@l zTF6rB5 zgtx+QzuIuG>v6B^8{5X=dis>)!;3TR@Q3K6^YNp9NiQFb)7a6}aiY<0^f@OWO>16E z_EK6sj_7!oFwIQU_$QxKY&H7SCS!1471Q2Gl?OSRRL1IZncipgJ~vn#Ec{uk>LrC4 zE3-qQw5e>`?j?~=?p%04)rH7dLw~2q(6Q==NSWeDrb2?u(xWgs5Epx;f*v z=w7i{sNR0~X%24A5T68`A%3Nk8IdnLE|ISa_EVzUs0YWOi#$`+*DS!|@CMx# zMJO4{kPLZ^1aCT}B`~$=3Egx`O)}9KF^Ozw^Wu(RpYuqbcN%%#BeJRQL@w%y!Qs|o zN{)j`tud0mEM}77D_55^Nr`~a)+6h~q}z#!{G?Z`MV={xi+HR-FFdj(?SUc}r&2d8 zR?GoxG?P3*7b&q>7F-iBWzE+0Om>F(Vne^ekebL^bBx{^>~+r{)asu3fohO;VMHp; zQEIC$jCLq0;vOb(j+UX9;pMQrz$z`gh{S1!cS*p_2bRv_UN6jjl6rEXOVYep*Z--J zWuK9aY9k1dXDGv}lSY>Px~D%jvQ&AbUr2r#R7T4T7+lA!SCNZ&Tt};C^fa?9Z!b$G zX@iDKmy{Jgq6~Rdl1Yw_iKOauJtd**akt;FuQTj*J@&dD`}TS`H8CC|ycLG~)rNar zk9%F;R5MpeeFeuMrWSpHAPs{Ni;6yZeJw+drM{1}CR&cU#KvWoxC~C9(vFxoCd9OF zXftp--A~rggikALzJAvyj=BQAn}LJ&&5{xvPZxffAt|7$Bq~y+H&Ty`tqia-k}cW) zG6lx!sQMQ@jEv@CoE{%bp`U(ij7-LBy#dLZ+m`w+EY-s1k+9`$ zoVQR~wRZ1I{L%JNxMEX_SQwh*B0Jo0Ww&S1*g>H|b?D z;KgQTL91gEs+Wh}KPS*YNpO2_+#8Yzv;PG9&9dN#B;^%c3Q4!Bidy=6XtXYGt@MI7yy_e8l5BG8jq<*%C%OKtf8&UNw0gZ%v!sKO&88Mfdn}Ts zOn|aY8-ukC8?%=Y$iJ=cUcLX zWY3cZ69`5~rbaWK^!sV1lhsVRRv+!HZOzVGcB|A>RNdnq-fEM*b^4E>s>E5ER^LI= zNLe?!t2N!F;Vw;I&r%8`K|36rStL|rWk~kLANidvZLJzdQvbR;X3OAsYP1KXH;uL8 zByNwmUT?VGs7rIzFQw&`2(l$Z8Pa(uMp0o#F^-lR(HouAjb8fmUz8Fus#vyPOOA;X zBAF1gPgMIwRVS*WqB_>p8l=2U_ov(G>q$zPKmroTJnKkwgiM95QGx-b2NV6J<8Tk7qV*kAzN= z$uO6^;XJr^VVC!@t~Dk%bF!3r$j}c%>T0{;oN_5Y)5LuNDH$h@%O!5T{ANo`G~rFg zw75ziY$Knf5!zpVR!(PR8Vh!1_8t=Z!mYa00zK--dY3cvH&#ANpK4sxU6ZY^uDc$d zEP2&yiAaf$F{AE*j$%d~G7jq8zr5RC1F`+0UT4hEnt}+<^BrQ}!q`t6s>IvTzTy`&!k!X`X zuhf0eRl*I6p(G={R(-j~KMZAUy|pqt=sQ6@i2Dhz-bHMpP(K>7%6@pPEba8>Oar3h zdR>fc@)JYZ;YthH9<0twV+iCg4F5~0hv1Y(#@pkd{v(pml@@V5J|mwDO39Ny z$WVPic_l1TRQ~j`T#jB z*zdE%U9L2QTuD)O-TRW)9-_{w8`O=|RbbFqAlnGUY(5`IO=d|py;2U0-G%nWD$O1tUY<4a&)B-K)rw21V%0s4a zHym>I7{2;CDN+uq#B6!^5<|OQcVg~fjQtVI;8VIv+FF~NcM2OsoP)Q+SHP^;iT@SI%!Gu zM`XR*US@e2v*|vJN-k*+`pn|m;ug2NWLc^AEtaQ2_c*5hwj_%6G=h@oK7d-7<2~6X*}~&O%e$l6o+zrT$&1Z;z_F zK%&Z!=s7`V42z6oS~6nLuj4R=ED7>#OYc#Mq2O=Jr;HpH&C>W+0aafCfACX9`% zo|^AFlbSXJ5Z0Jn0y{jKk~c!7{m49iJ`OQ)QP`5v?e&)W6G59K34+dQ&waY7v?UL9 zJwI>kx0FwjY)R;%ljNUVnL?zPktK#KH)J3@Xg=GJ^F+!(SVX%anOuWuO2%YamPu0* zwJg5nCu&)M>uOfW=3-nLd1O@3Ph_0YOP6nrS&O-MdGIu=?#K3IML#&N#<=cca(4J@ zt3+;$gXM%w)yziJ?~@5hylYkAqLhB11*X(rE>$(DX-~f_CRfinTTUEE`u2-Ue&S}o zNa+=*b$eNGnw!ccEU|-&&%wp0Q#W@fiN(*p`-`CC!wsvnpnf#7@HZ>2j5R2O;`8^mUni^=UX=UpA%7_p z1=sVFj8>=Dn4~~_?G#A?EjILf41KWRjbRdd-5u^X8uq$7^qUR+KEwYuL$A9tT7>S# zXc4-7vlj7zjB#d(JWL;vw9*bF7=k})WcHZIX6->g8Nl8=)yUS})dY{Z@UQD}KgsZ) zW!QW5aF!Vdhx$-iW1JSs6hw%@^AT1FMsxS*vPQrDpw0^jKz`C5L@n(>zd6B9Zcg;} zKsJo_@ZfpkM7DUehgiv*tih?&SgBOzJVqs{)GQ-5uP#^VcQ%rmN$Bf*ys#u|E4@-9 znMs`W+TmW!3$BtUE!b9l!T7cI$)@qEoCMZQKPcmubmv@#JsH24V~i%)KN^3Zn#&QH zPiSJsuFg|8#u-dJDU>mDi;?we=^E_Ez5QhKW1hL&nL#qPn^uhXE_0)BP#Um5BANhIM0FM3Jw2m{=@{fFzK>IWhxLQDe21)|O(mHRd6- z*d{PRa~!ATdb!ox-rjP1uPuF}wTO>O!Ycs<0xD3g8hqdxr(%3TL}mWp@7m{_ITM4T z-rxW8xwhn-v!Cm=*Is+=wfFcF@2KPqRV*X%viiqQz=cwoBAHwd;4m2^V0!#jf(%pP0CYAdGS?lQoc&ckH_4klT^}4ab6gxdK|5iM#p)Nph_xGNd<9UIjE9O zR!JwvtK6hhRMIK&32xGG#;n`eZ;9#MK*w219ZfU1FI!f~~bnx|fO zM$0r`ViMH=W@hn#h&PVYOXM}b{tzUJ|Fwu4iaukt7=yN%m>33c#x%?&Tr4GKusYg+ zN+{c{ABKaelOKiHU(xPX5eU-~JKztz_Ij%J{3|2k11rA|J}{^odr>3?zwP=8>e`>T z(QsW%MFXRQe=xbXqBN6bGOc8{_#^8RZmytcsoIY#K{;qvC|GLNQfN6+1*${oGqH-P z)KCH{9t41*2-=Ym*ex7}^gJYE{Rs^g!dCzVMnL191uX7cNGyi^c9~#tWDT%5m)*fi zJqt@27{wB=@SG@FWnlq20q*4i%RL(&E}(3fpjid5lLqrQU{_42B-Ey=jh?TYWqPzB zpqn@2>r&Ld1dDP38s9+@dhG=7~SV7vA`&R+xmh4&bU@1SSp#n_P3BolVU)oa(993W4CAzwZ(p! zX5BOu#?@D_^Mj^Ft0=318$gPl>0=$FEEQ66%v5syT52_wk^-)kC^|*A{TT0ASFGe{~0FZd~3q)?zkaFP8-vo9f%=)By~VY+qEG5X8? zqEq%U8h-R?QWm9piM1FLux?VPLH*FcrGSdIqKOCS3aocgggI18He`y4ik{y6G(9>k zng7StfGwi@5f*w>&G+fiiK-WJo#JD&ROUU~wO!A&#Wc!WSuu(-skO}tN#g#F;~sVV zJ0hW+bwJ!&0t&LF{A%29mJxtlof%-@$^kBTCrIGVq7L?geavooD%Z2s04D<5SV%I> zCxPa>rm|-M6>;_{BovsfLx$QgtcyJjmkRo3|p}vZ+L^aZW zHDB?R^iQUg}AEuunFE;9FsuPz$I!Yf!9!?Kah#(?%WnN>-E) zp5^D*7+j54=_pmZ&#}h!OiQL6ZoQ!0<&=`P%vW0vg+m;OMcS=cjI$+&W zsjH#miKxNAI@Bn&l`(2azFPx(+z=%cE=8$aR45_RQRQ0=;(I*4r?vvPhLaO)e!Mh) z18U?>B{v&Rfm00Wbtvacl&W;lv!TFF$8yq_I7y0d>8lK~I(VD79;L4hn{}=b(_5-4}%Hl>jX3GHUpsRkRQ1MZ~l){wKv?c&oW$y*8 z47hv}HLlfEj-r*+%>zd7F$^{x5qQ~$f9(usN=@hPkD4#szbp_^*%L9uOh)gm5WQHn z?Mb!Y+H6;joeaS3{c1dAphyKf44@bMAqguST8STh0Q5NFlYJzgt+55Q|NOaiQW(N>M9d$us~^$_BtbdnPO)c7+@cCDsF2HbQqV zP9F_2Kj>cgIL`o}Ql_CzHT0zGN`X-j4LC-8p&IOkTs9H_z)eJ4i6toS#B~BOID&R7A9OUibFeHkMPGEONz$b_8T?0L;mY_=${!Kwh+VfaBlTKg>MqlDg zGIxsAjkzzbbdY%U;njdBwUS=g4;4|O8IF-qYW-mhTd*f0TFBJ%z=(7O)Q;uqY=gKK zDL7Dz2C)eNrRKcMmlp_9r4ppupCE#^PANpsQ_M?BQX-taXjN+dS!`9I^gwrotascH zj{s23d(2k|v3-g*zfHRWk5U2sp@0UAWKdEjQ?5WV7voE;*?OoIXd3IPYM=qUkq&he zu@_o4ztJ9w^|JwxLzwcG9@$W0yALt+@6lQgdjRyKq=Ith+dGD za+Tzis(p0PAD|vRJAh;Zd=%)>syi*!mF~fnAQC=+l`CTsNaR}2V30d!Zk+vAS)fg` zH1G!qdcbA<64sTlsetv1H}TUn)kRs#$SAP>xGik~Sb)4j@nmP&GOOr=_LJCQb@z9v zf5?L&X( zimcmEt4=7R$~*iL;zK*bBNgS^RF<^?>o*u6i7&XOlZ};XJc>MN9CpLrU!>%-!1}MP z$B<7&KY=eY&DYE+2ZSf6g3`YOxJ1I1Ck5|J%vTCt^?l$IzGs4Qp7P23@XxYTf~x=J z^n7c}fbRnsEuQ)ouKi1+m%|S$OjvCy;cmWTQt5K!IaIpuKfF|0(w#;n8$W1bZ~rNL zNxOcJOxyT?!`||@4fs9)YeMA@l#glF381Be!bKm$=rcWxKKOGl3hTO3C^+(sVM_TM zjKBOTCzrqJ@K|92gW;}Zp~U(k%T5>|dA+IpVN`1rZAjl$X+WK&fEq}z0q{jf59Smb zD3N!9>*E&& zYKR5_!~HN(bW@}DFl`;vu=nQLXUe3(SjL*3Q&V&nSmI7cctg*$ucP$d$&y|ED0^)o z+g-@?dX`$uw*tO_qnPj*i#r0};#rOte*2i^e3D~6XV-jfb5Z5VAps3J(0L66=#bwEpBDb)}OY2s)I2f((>=9ZMMo0hax`|V_Vgk_2p}lL} zi~Vrd93;nW|AfD}M9DK|si2qxWM%=0Ur58MoETJEXR{YBBwYV1rlLu@`KomzFz2%f zzf(DIEO0zve4&kx+9R@@7SVzgmdt+|5$o9J!o~$MlKDH-=lMK11~Z$f!DN2xJy|LQ z_?!f!FqPh(N{1PnN?({tX9(*#j#W_Z(YJuF4&dQTZH^Y48`OeV7HZ?Ln9;_80t}9l zXse+06bKCZ=Ozkdsd5(LlbxL=@})LmVOZpX0(BeJIt_76hX}WBUB5wW2;svpkSSq7 zx!w9xTjL&Q|MQ?oKV$##&Q$;W=~C(c1BAuP&du@m|2gpY^#388^$Pz_+5gM%jDJ@A zJ5u;>$H@(a|4J8s49k8Q(`rq#8^x6#OxbhZ{QEy4|E_`g82gwpAY>R|kO#cX!>-FL z?BOVDxKs;fP|^x%?G{>hoF|f&mpB>QMYH_P^Aa;%QL6(9<|kg2Aq#oS!!Ql9Eg$tc z^2Sj5F@VQdS*6lSmN)=utS%Ibtj>CNJ*km+i-QyYVSZUn*7i9{1FhuIc~6Z3wZ9S% zxS4Lpg8)M*Kvfao;Kf0X5gb9M0~W%K_-(iete<0LpEwgiS5l?9KJhghdKJKlCRd>? zF2q0-;$XMV(FJ>--UFmUhe7=@Lb05IhlRw;S_9(%$qr6SHxY86g>!0nvHS`%*A?L4 zw+@*f#gA10%>Up42=2ziW{8^nY@XB;GkE&2iEo|p1sgLd-28*Y^)6;YLgoKT$BaeO zF@rQ<<{)M|&+*r3BjDLj;dtXf90|SP$Udyo9uw}RaJ21%f%w6D2ISgM1>&*D6}9;` zT3&{ofJn~7SjgHUfAe<}*SI*@0w5lk{V8stTslI7vTFH2G)QhigUwo3{LMjw@`nkY z$FTyOYh;XIL}IB5$R}WKdBEN-SSfDF5YQ5bEcjAq{pWtpI(YLnpQj84$POrcr#SLy zwurYK?Fy7KJ68e#Um~1dT)D&Bipl{Ct9PRetM~Bf#NNRZD&OhNiFpDTDt*mYvr$az z91&T=whbTGi@>b z`uErftdi$S`&6YJ9vZd3fl#j?=wT8VxuUJ|t=fPmw=g6|w~4&K@L zv0c_EZ=oim1^f5}En4Min~{UzD+Qcgcjy3^lmZI%Ygf~HywCM z6EVBH4gp;4=2;KFpyn@zvvX)|OuQ+YQ2pV^>LGsk1DqJDLJuPZvyU=lF{_Vh`Ox(gkR2VEI;FC#I4ekdyMzNMBGDWQLt;CDtp7uWq`Qk@WPo2*g z4W~jp6MtOYx(@|VyBCiHPJNJ#6cExK+6yzRyNcx@4Mz<$e~YD1fW|p0)w5^`rI{Qd ztbOuywq5NFBLN;6tt`HHkZ>0|<{eEFOpJwfdfOeej^bgU0K<8X8>od7VmK+1{cV*! z0oi0#35{-8FSi!WwVv3dNQ$uneZ|Jo^QTC@<8PfpG=jvcfM~SaXsqB9Le6iO5~)4< zro#B0QX*?`H*EqF4MoCH3usANL=ORij1j1IxbC!r((M=olwZYmQLa$RIXhkU6Y2Lz zzxES+s3n?p3EYWfdz8VL>{^r5Q@4K9k^prWij?Aw>MRnuZ(X+5nF2kdQ`Sr1Xj2iG zb!$;O|E!SFB%+RPs*w{}9B^g*mm=%Gq^$oE;eq!GeATE4nzqVVL%-ss?vt13B>_r& zKX=b`lYE$mod5{!DwREy(uE>26LSj~?ey>y43f=Y(F_zoe0DRpn{R7~<|=-!W{c~X z*1^v;_Q4^f@N5E8u|by@MoilEuF3$Q^YLQ^Y*ctOG2T@Gc4{Mxt55(aMfsw$4pl%M zKz3EMt(t{SGudD{dn?uborI-Oy9*uPDHkEMZ)knd-@dY_MXF0=f zUzYeXJF8dl9WyS%UfL@;h;OD(4Sg4KFs>$;&?u|$M3V#WctFk?r1HPi0gy8(v`nUw zS;r@UR>G?y7~r;b)eWo%w9BqUEIs4=IPHq&@oY>gvk|*7j=JMD11L3ut32N6B`MZ@?B}NwA?8Py9bMFP!rfr%;Y)jP4-oLHcp;0?VU5N0J_U zRDxQp*>al#7k3x|1)S{Ra(Pr~do}Jxich@i7V3x3}J105z+1>Z@ z3A*&)$^Wn@K;r{zt8*W1?rj#j-CC{Pn|uQp`3CTVwT_}9{L)i%B}XijgzQc|pejIj z_p%TetB!-Llo zH98l?M+U3cdXMJ?%`V;CV;$uFYQ(!?1%H)J7|?SQdxrg`n{IV`wz!AgtzgGN{(Sht7e_AyOx1)6+AS~t^L zS+1R*tsD~VfFFKC=Rc3XUB=8b>ls9hI-WT>|Hx576az#N2+$>fb^((&t`Gvz&VuMi zpaqh))~ndkXx|}#bE*;=BICDP&h5iwKsix)*#5qqZoR|^*f^6E2+j%6C}u{~g)j;Y z-Ss0rYuUgmc0I^F0P2>2bDb^xHds$|>PV*fOsiwse5TpN#sDa^)lYg1 zBk5VrDwR}2YCx%_oK^H^QW3lNlj0NLDr9wNBnU<<|2_OXGpv#`5#>#fpTi0Dls)zn zbQ2*i7lYu8G`tuzpBuDU=Gxy)6e9^?sa48vstU6&(woVYa$IMTxk$_+xSxjo zyaH`pm$ej85XoM|xBs5svHYMSKt(H}ph{33mhDf`HOUS-(@5xiuh7;|rk;h(!}v1< z5&6in3e7G|Gdw0~9mRGqV~yiV8QS$h7{}yx7Rt_~tp~RFGHh#A2BK|~LxchZA=yo7 z3JNs#6W?h%3*T!5nq#dx+R|oSn|6>tTg)Bz*rl{hK(jz%5sVy(8`GB4j!yhA^)1Is zQpfdsk&SjZA`{PGl#Fgy$Mn~cb7fmwAC<%VI4Ri&;uj(;s_P(iDHq--RGJveMUl4r0T4X? z-$HdeEUF&aixY6}vT@89GToIZm6)22pu~050<#_{YULC26J{zqAQR6Ol4)PE!l=xj z{09B2M!9eV(uJI`R!KSWV9L%ScKalj7E4mR=yH_Gb?W0{T-Y_dK89lDbyP^9CWE19lt|8 zJ@K_qeo1DQ9U&RXFMNMMe67$BGc_lWaoy}nO&E@cMhK$jJ?jW!JHV?Z@S+|S>fIRi zYa|f-B&0Q=0cvVINNbe5#@4_HH*LB4`=e0nJN@8=8UR?Zg6 z-MiRBIRKkQ;S+HH3E@=YdI|!B?cdNiSj6gb1n&5(769yP7jVlo!l-nU|F9(mAQ!To z`KY{*DFnNgw4j{17u3l3gFJ~bn6jZ|ph0Z8B>}PJ_7BEgEyq)xG>=QFl*s`&Dc-ar zZv!~IvWm8<8b~m`qS=hUR_EiCJ&92!`y3KHOJ382l+Av7F{tdvc0tauAyRfB-_SrM z!6=cjEevM2JaS1y;QF#*5V8Tp>@ph&2VX@xcg^sb@a1(bgW!AUmO=3aMG8niFvGTf z7rV+t8PRDND@jhzyw( z>1bjH6!%C=AlY;wdxZD}bTb#@K~^1hq|hCeLFE#gS9B8;03tI*Il$$Gh>X(`s3Z&W z?E4%NMzdr@RVL(AAXI@89^-GF zNIUj7pt_2%)b*EWVI`gqF^coU}Tp5Hf+M zUV@!R!+csYrL|#pVi>wFVPo+-L~{ZlTD(PLaj+0g@}$hI)@e3SU?8Thj{@ayIwdie z)l{YNY?Jyh{$>1SIw%B!%Cx68ukIMxKCeh?UnvH2=l&tBFHY0e?jE`eObAWsZ9F*v zn;IZf8>L#a&?L!OVBMLms8q{FYXp7b%epWD$+xB*dFCD^nrRn z3883Gb$k!#uaqew(wo!SJJLgdq1`|^l(-vJO3?0jj0{Rjn)M|1KsSj2k#XgRM8{%> zi_`I#TqSd%^$mOdb1c^JjttZ&M+IA+Dk)0!`~%sA3=Xmt!CTXqjWR+0S=?IQ+7J?1 z62XlB)sZEZ3yR2TSVS>6!s-#%lT1y6^RB6gVR@>ay5CKS)kMHa8^ssDLYik2unpRg zB0UU84|n6Ey|Z;c#CNO6Qpc^6C`)&QigFB{42s*M@Xo<1(IQagiB3AqNN}?3s4NVp?LJ8P{gm4bs^>Z4@3}zolg$T zA4I;j)C3=Kd!{yj=3NQy2dLd+;o8xsfBd@1qa z7z5N}U@>6gpF%x)Mc|{*_?i(r%)+s$v%f$aID6AgFmQNVfieSJj{!Ya9R2u~f9NVF7mMxIUmUZpBSr5?S}`jafX@F*Kij&T}5+Zgm=_)j8+X!BXAcJ>I*q;dQsax!G=;9#{KE z4m=%!X`*gbZ(tm!Cx|vB2C#QxkrYz<-hF(tI5k^pqpA{hy-T+qe(vL+c6H{8gAF5t zuFlA&QkP-Czmlk9ZwoG1j#0kc6-k%ptK*|e@dqkTyl_kmC|P5{K~sVxvFwW6!hYd|Sh`HK0_bODQGcnEyH4oDe+MEX0&U3iF%F zB(;2ez&8C?+I#Rg@&w*ED;RA5NNFB81K9N>+I#}Ake`C(LZ;O+4OgJS3PX7xGiwQA z9Ww>uN_)WD#*CyDvIsIDL44EsRw`#y)Onw~@8Ou|fV7o}jE4fsLjdX{5C5_-0cTk= z;nz?3yq&Qw0#cXGJY!8!_JA}a>|&T z7)CmlWzLCVZX?+zhRZoWDuFKNl*tpr#GqU}lbqCC2Wt>o=6+m+IzwmsqKWKv3SDF9%4G~Xv>SK3=Kc5DmkP(^cb*~4ede&U;!6x-s| z=dM!m-OX~?`dKAUrT@uCaGz@{G~K4n)L}vi#1_A~XQv z4|~!wwa8DI_G?dCmKGr`;&<6;1)%uEc8o8tnGNdOPGxv5_MtfcV_GktSSmA(`=|U4 z#j?+zf_p^Y#W^PkDJ4XLC8Xuf_>jo{v8`J>+5_w;vVU6Z)>b%g6F(;4c9Go3eyw$D zuPP!n>{8w;8Sy%5*i@~Nk^MQXTl<_^Xv9;?(@KW7l}x#0%R4&Mc*2m##lO6DrNF47 z{}$TExsm>sMJFeM>a}9gKd~b*%AYuy4fo#PJdj_C^6+K9IhyIj3*U_=n4#EjtuMH7$gkS8q9-6 z!S%2#XPx&rZrHCB>9(&Ue$ zp%Pe~>GQ2gjJg&fEhJAwZw0IoHVi?+P{4e#NvL>YkILY){)A{9Hi%tz3Qh_!>`(m;I=;#SagxZ@x;^_4;-#qv*QnP~P+--1y& z2EZc9NNyIcv);i@Kzt&J=$xRYRs;@IqKRj@t77|wN+>+_)^(3KT+(gS{SNpA9`HeF z8~1xi95lF!PpA|5wi$}4;c-kQY`M zJ&2(5UWz906N8|{dI;wsNE*4ShsFZlAtkbilQBclj9qZoB&eFd-S33Fvu=Sk42`2C z1N!SI@E5okV0N;SKN$#q%3kO41u~WA-$N@zTR{OGYBz;#_t?~Brvt25{+G}#8qU4W z%GNUeEP!eVps4QK#;nGM7@C~97C#2KqAfyZ24X+gY*pCv7DZW8Ll z_Xok>i$sL^i|zt>r=yZssnbCK5h|1yVlIJ>kZYr*hPJ#I-|^GEii3j%==9=&Yomek zV16!b`M)5a)Bz$`o~xr8;~>N~Fp^hFh0%e6%*JsldkY)kH%w$EiKdmP^wf3APN1d4 zMJR)gmr&PgBkWCWpt6v2+gLrO+-Me7b4i@JIyXfN+ZPCG*j}6xzAYAd#1pnjB{GBo zEYA|PdJ(Uz5-QT2^tP|5R>qWd_nq!IgML7*el{B5a-sl*p$8#&)+KHi5%+ondpz3Z zIVP>&NdTFW--3-{6W1{IGh7@TY+^*sJQaVrj~>9@5I!ybY)v2E*72=FHkS!wHqqiHs3hZO9m*uNPBdJJEmyE1_2WppdUZdZ=PU z!>ObtMhTqBTqj~#YF|7#Ndi(QF(4K9#?56h&|SuS9!9Wj3Ix^04hXgo4Z@Dby!rhA z6Blyi)rZU~pzwWwax(-N^SvYfvFzWS4+RBCR-+!H)Ht9ZzAB;wPh?W*qv=XXM&FBR z`?pFKl?w8qu(BUIS?OV&WowZOzFlw)TaRYH@>M)IUIs?YfPT6R7U~F(YMDoK!d{#5 zw|pkgEYKp4uub4pKmveR@UY<4NKmy;V0pkkG(Z#|uq_~?fXYHl8>Kg#g_NwBlvXJe z09M-TAzR^~)+*`F{&vwc}m*U`NEseTvl&~aXoI`~cuWe&qY;rKUlYS4%fxA>fDl{Hl zb85t*tDL0iMFwfAQ+yXPubxr`vEeZou&mT7xsQy^DxwieF+aBV(DwP(p-miGW3%%q zS{D1jvz1R*bYyxO)WPj*7Izx%ovaL^3hJnNN%#)z^+LH3*A)ebpa`X$*}2mW*948b zSXr>6QA;`F?**W=v%iDY%uGN2)cExnhaXUbsXzh4Te-|*Bu2T_41)+xJuNXZvA{J& zSg1B}5MDhEdFSDI-qDWn84W|Q>K~<@$abZ3X{|7!u{TMOjtViNYhW|rF%v(l16}(r z5yE;Frbyx)l`JRab?cVf$x|LO{EYDb6{gi^fZq$Q!0$!qQ^3FWHV6KA;yJ(fCzj*q zKL7FGj||8^@#G9|eSKZ$lGC^UNB6Hf^@qRt#(ln}Cq4RMntoo_^4paY|MB4;8})~O zuwun&c`sDmlb-*L2VeMc!{wKqhx`#2EIq%s@#kszxGaXhzO)F#rYl*z`6~l{AR5PB zpygJ;11i54n=C%{su4GkLNn&`V13}~ zs%w+Q2av3rFC_Ex@si3z$)S?}Jd)+*IlOpQV~`I53(1AQHCkDKsJ(Rf+1`Ni(~`wG zDVS~e3?6w0d@|1)2uD8Z>I;|nO9T43t*+OgG(aH+h_K)+j!WX0hieuJloY-mQ=Jv9< z*@v1%({fw!k?pNJq_4DmLR^RR4#3B13TCS00+ zB7P_S?o;CT%x_uYv*GujQulM=ceOO(;#YMgBm_z*2tG14)#0N?w&Xqn73+(09&{Oa zn!~_cF9nA^B0kgWZM44Nur1e1^I_f^!}%kpxb8cJjFfelHOyOaxVNJA2$_WeXGCWP z!qFcg@}*y|*w=855xpqn#}Z9$J9;LW|6h=0!~a6q{86y114A*05mxoJjS%k;N5eB# z?>BrtHjvotlH&;sW~@xGbcUtk&)@Il_svVyr)_wK z5vznr*wcWCM46^tvkHL|db15uFa+_s**VgJZ8_7>ftY9Cf2K0a3bZRbU#% zY4d@jKOen9DK6*xM*BN{?)J3uwbpAt^m`EU>T+@f_51W>0KdA`a4F1zC-lw(Sr0?e z_>#rr03gm=_T$1{eR;A8=OF6^hqDETWbsf5GhH0ml7mUSK1lRVw6hM*&9XPrQ|(W` zjO{z)WxkG!W|nVl!sZ)Ff{7AdLW37cl}-}uF|69<$2b#NWm_SUCCFMieV*G=9*4h1)N5tx7(f zc!8sqsGX|c&{rot0;Q{~uBrMeM`yCQ5iPo(;HTUMG!qw(_M^EBqS=V#rKtW2=F0ENeV>Fq-m0u|LZRoaA$_!f=-o%U?cz4__f)TAMl>N0~Bj}9${JnL%FfgLVUgtKWWbV!_R4BThR+5 zXNw%CRN$t#jbt)+3LsAt9QWy^h%7U-o00@}=|(9H5x#b~g7+kWH<|xs=!|rdr1~dI-LCmz z)l0h@z4Vw0f%MR00zOHPwLfs^;TcbkhPWwcBsYVmYJ5aKl(Dg%(rI99{2Z5pK`;{s z97S-Jetn-iK3rBfLn2xHjf**2C^t?T=9*2ezDaIx$}`l^L$lTtG;d(&y=p{nkx~6V z2pIy=G6m#h{#j5E9+J4~0NNlF{Wg@_%S|&w(JvWGw~!`@a~8;dDg73EEC3(8MWYvG zI0TI36HTLx=nx?$wDV!>oY|=Pv>u%yn(lNxIvF^!sECM*NV51g!>jBJv&*oX-wfl( zh-|4_!NxJT|HRsCdOYw8n+JKv&16o>)?~piX`S_bHK1oexp?q%^t(&pWbp`e>I$fn z??RU>epC16yYuU>fYin(()bN~;r%L6hYK8j%#LMEaP*=> zgYdfn-G7wd1~ne_ZE|zC;$Rxf4YW>{zl_E>HyZCKj*nQZC{l(XbeAG7zrpMPnO!f8 zpY%!mo=EXM7QZLqN2HI7-#?vo41PaNIU0=LQ-E9=zfXOe*d?tmEmGKB26f|N=hff6 zwgyS*7p7Rx0#@i3ap4?8zbw=T>K7>u{c?1ulESsOsLuCbY53%#wJbBdEPQIf}zd1<$C~8|z`<0$D$+;78)eUTwF3dZ;9pUy_rBK(+ zr|OX{rR%pL>EWgLBX(F>N3!@v3>SAWpnvH1{_LirPg3&RYwT)+;k(AkM0=M-rk$s? zwV_MM8K#UnRUx{h7D!|$A47f%DnMJ*D}^6jvQY2D`Muc0N=2mnuSx!2+Sv-|hnUJo zTKS%8VX7*z$}RzW{gHcA2}S6ulf|c?$ko^r%V94kin7X%Z=c0M?fK6$zSWXIYkQ0h zQ9HI^z$CS{R(ywJ3rb-AZK}p6nd}<9b0jO*or_)nO(FO|7>)=nmIc*F)5^g22AE(f=)rL0yYIV=@K@VqE@=< zNEV;P(&^KO2VJjy=!ah4m_`f~9Qcj3atq9C+^Y|6VmqF;umcR_(t}qrfAtIk+E_xK zVfC@3(8Ubwh$8c9wVoKnzP=vzH3|GJlp1JX>$I=`_vmZe<6~_qb_k)NNC{UGhIptQV*fs~~YC;$UJugRrHz>|v$!RhaYXLut|E&r>3E1W%ocYp-bb+7Sn`Ri177Uj@BibUP1@_CVK?loI z23(Dx#TJyrEhX+yc`EUM0kw#sa%d0^o`!y1hNh_XQTc|R!2FwHG4{%wqt22@{4Q&q zHXC<&Q6(&bN;uRs*Rg&Os&d%+KB#I$Z%dIIMvag=I9(>Wg)H>)5!m%uuV$ob40rF0B%WS?h+Xz+_Tqj7 zdT>dQvd!0M~~GdL(zKtTa56Y!&S-A2HnsAZkQ3h5<8L5ZOv%=u>weq!$VI4$>J-K3)>eZ z;lZ-1fI4M#oRHvE>x`R7f)wlI&6SX3@yV#|&d*es&iw52AVhE+FNk%K2T{A-LFm!x zEk=D%*>-az{x=-3CrLF|JNfO3Teuz;Rk(rupV9W2bp zgn(HgMa2I`2~Pv!kKo!-3UTciK$DKk>X!7vXfLHtINT;V{+Aj|z}O@HVht(`oFD2r zKNNBP?UVUe`C+i$;>la5FV3y-52+Q(NcdvvQxj|-A|Rm_;haiM0`bh(<#!!z`(X?= z96z!yExm~9bW_>|9wY_rJ=>8|yb^7D$N_&&`u@9%ud|v=`I`d3_i|Jph;PAh`J0^i zO&J|t)RM(XL@f@g9bvzz`AtL(I%KlaA^F=;gFYFe$Em%*B`gGa4V$x(bmpU_UA3HX zeh4aJD(b;I%@>@udZe50UJC|sn9{m9P4wtr0$6$^^B;!>$4Wnl4*;*!!nN_KsLWZ( zZYKH{wruTvhrM{~TUqSIt!`!GlWO?&?+nlx;4e-D-yVp(m)Q*HCV7Sglwu1_<_gTX zE(?#ruPWFtbl>0qsEEH{o6LCoiov0;t zCwm|l14b|ApOn9*oT4wD??rGT*epwjzn}NSd>s5=1MG|N zujQEVZ~XGd!GAAuQ}F-fMFsyNJPH3z3kHFIR)HAl^w}50pA#ff;x=GDT!cBWrI2H( z+MW<6qQk@}uY7F!RP&*%DhJGmy%)%QSmKqR_}i~|=R-%|ygq4wz8Pday@sn9Y8zQk zH_fxPzz@(1*U~4^;pma?O$A&}AA3JVt&dw$({~vgf|{Xaju7jsgQ3_Gj-Qi}&V7M_ z;|Kb9d(#&U-_;BrgPO&0%oqN^etdE+(=wl!u2 z2CqQX2Sqs-9*5;T8GRmm9G!;TlpN;tDmi@P1to{CBFfsfoE>-x zDre}tLE!z=R{bx(^l`8)MQ#eV8vqliYF%c-Hai6yhe1l;y8D@q1zdr4Hj2Fg#*c@D zaqkSqfidn-L$Tg9BM7#WHyO9*fZdKCll8aoF4w(n7hUW(dd-2e9umOGeHHM8kGKU(Gj*O6*lgKXXFw8!47fw3iw}t~%IEf?$TaUbO%WyU` zG90V*hs@Cl4TsUIhi)~uZLDFPw`#PtzAB_uMS7>z4DD_`($|0rZ((mFb}9NDofw7# z@>N5-tIZ9lu^V9U)KlmFkySWv9C>kC_0SDNx1}IgN}v2=d`hih?p4-+NSWEa^u1Pq zuPvifbm@B%TXd?qt@E`ZW;gop>eW*3G$J_>xJ6|mD_hk3Awzf(HQ3w&q zg&{;EmT>F8lzs549Gm^4Z!nC9yky%rAC}e&KgR3@e`~Hctjs?qiYi%ckmu*|MB-D@$AUM}PyNX$cwrj;iPszwD>Htv$L;k7W(7s+ht%bG5b|D7B#Kp`*zKRZn&< zs6Jy`^FQJbBhB7#Ua%fHPj)Rh}An@~O?Z zqr5B2h-}OXRqSo}XI1pVs>xIQ&3{?rPke*3ooBvVu#W9_EI4CBQ_UJbt*lCRftH8Q z($2E5*_ccL(&4pL_*?uyk=_I7g3ue?@cu7X{gGkA2zAuqc*5NG0 zM4(dhvBcO!XBLKId440g&8XO>MUH@c+S(h7>W$b{7~QwPR6iZYTQF=sK}ME_$9)ho zzgbigihi$jZfwd>CKgt$M=db=nxbHM9Hv7YjHqmTz3BpIrv)pfYiqMc8rpwvX{ZVN z(a3_rIkCL6E{#wG>+3(=aMi9i(BACECSFC)nY8_og%x;fKZD*(hp{%+K5*c1N{SfKfu zve!NQ2qA1Z7_N9NWZuX=Ekm2Np~`#%2pU?=hEPR!+IP0JiTJO z7RduBGqknigEKC?G2hqxbtAbUT(PV91(EY=^Fv#njEap~B#NGKpcbuZk^Auud;)L1C;)3dJu!iqxRj_jnGlhFkB9=jdgfDs6;b#{Ti+2o-(0He-h#*@lR_w;CIG-B?9m;|$<_DRD6vIRT885+Sa5gg6$tn1YwR^DUeNC94(rwm!jDgBighDV+N*fZWPbje`t}LV@ z%mnGle4ixR_Bi9$V$(6mF^RlLK2^M>MRxH;=7VhA&-*2N6D7(XFwFPDrax?66);Q# zb`*}PB{!fzA?vmMyVQG9?|dmc6w4iJL^^vh(Ts(v&l;;w4vp<=$XT>AJlWs4P4~lL zay8r-mlXhOKmHj(ZA7LvVm4N`Y8Z(}yTH1pnrMRwE4l@#{&JDqh&3a`$Wp}UON?>tF~b}hHmd@P2tkx@`Wg<-8VDS?IGUSt@#IiWU*n6ge{$x; za&thBzB$qAoPa`k1T;HPeY8rJK)_WS>m%rmzYE8%>O+}K;zvWv{ClWkck@die&WYC z2OXQb`j8+n^FtSb*=Gv^u!5l_ZGQg6LE&EE3+H#2pM_W;_Hyn=A3g)WQ4uzE4=f)&POy|3|}aIB66 zflqKY%c;VG**;?Scf;(DW4n_)lEc~E?+ShkK5+57q4=Zt-RI!<-+aLc!@n*Fqm?Lh z{qJVLMiM7(L{c$zzSYzmLTPZQ3z&6Tjjw<^U2{+wM6m#5RY2ibO9=XDHU11sXe%833QE_pbOuRbBs;^f+A6j+KTGW7>Sr6f*WMBA+TVAv zixnyHgMZh(Eg>O)pgprAHCYY~uG56RL;BT)Mq4EI@$YbD+pUU&_*rCGHq(a!k#?~w$}vksP>)`M z+2TqVvwm#^7AZ$F8)l+ZX=5c;;H8LxJ1XXo$6lnDz?|DJ@%6JTJ-GwN0dT2H3`aoF zI;Mt(eW+{;PM+M z80KNa{6Orxpr|$Rh8?x45qN_$o~+@SDLE0A!a^3a73(v2EMT^*+!%mLe}^l*Qg~Bx zeOlWB#D+7!ZIjI2aV!opLRhe4z#B&7!?Ig&S=`M~=~E0NI`0F^h)($c7n(MfIU?H+ ze->6{KtFMI+I&*BJAMSHdh~fu4d!p0N>5@zmuG~dW1cG8ZB)E(Xfw7M+VuCeyRb^` z3XRx?zq&SkhY@Q@B1oqt9Ibu_{Z4!*gx_O08LGxG-!#l4m~+$ix5FmJ!x4DojL1&E zsyF7HvP0pDjbUxZk+3#>W2JW2mT*P4K4K64hBT=1*kb(4t3(e^p@+PuaOS9SG@L?Q zJ(@?bM)kz&p?xmjFkK}(R3*ZX<^lf(HV^ov^|$y}o8CnjNVjk__Z@)$0TyT8FY|EN1U0dW+<`S$r4h}20*g^SvKy1-n*g^1jbb)FszrEVg1zWDa-wqV z!Qr6qvM!G0eiwPZkUwt3P(9LVh0GU~KGUPT)L7luDL>xWR@923I7p7<1~m>c^r$MJ z@watAr~><%$HspF*;^5&AGQZ>Gm4tZ(%K@( zq2I0&lJ;}Fhb!LDBAK}73enFPm!YCcJv!8woV!U|b|lQ4%5kp^z72*!u*W9=;9ILWmOIVPHhJ-W_ zowp6EZFR!|m*v|WfWy&Rnc}!I--eYrirEmuByb@HK4=_$2~gTHY*i)`%U2K-Gq;F% z5pWa=n{OE7lG?H)7CjiAE#X+vrm*=TR6@QM`6ARn{CNo<7bp31xZE)b4H7Srz&uHN zs4tlWYudg87f!qzWg&v@{+TF+M6Nqt!{!0u)_2ewxrJpl1jS{`5C=){OWD_3fXEQT zL@66d@Mwz{%d9O%>Q@)d$NCzLRu|RNET0btKp74TwL$2BVTHeu{E*dY z#nI+BxY<&H{gyW|4tBz%5J?aFt+_EY4C^9nzUIY;4m&8Sf^bZ?j0zC1yYZiiVJUo} ziI7i6be(p44;EZ>+?B!&uid@|Upy+0ORsWUAOqVti!a6^<5H}cwpBgS3h*9M@XxIhI$GLxo6B~ae@DEcwwy8X@t09p?9(vH zpJ$-F7I_L8A?)wQ?ksA>YuW2KhY%l6+SyH^q4@7nF%)}LN`%e#;{Sth!+hR|9QeTL zCknK-b<0hPd&0BE7F-+)qVmJ5%0{D&GU_l zJkG%MSi`rHwp|aPh53AaT zVynfdm<6-`t}WHEtNeKHnbkg~EIi^(d}h?NpA5Gu64#*suAkUU7-zKSo{Xeb;Sqli z#}=*9&3Kr@`nBdYhWUOqR%14WNbt6$fB|08OtQIbH>u;%S5@ufjEd@$ECXxm%A=b> z0}GR<;osZ*iqlBE5)C-|gffpCE$ZZAsKyc1W>59FUR+&uZphr7Xj-s>0v{;?)2hwx z>T&(6{dAq{+VZnx3~YhoCZA*?swDxYMPtrrY#Sd`#CcFyHs~=o6(KPm+B@9c0i~DU7!JW(IG?1h=x;L zbU@Fd1QaN`sPS}x7T_V>aMT92=NQ2D64;)P0*f`Q(pfb<0M>wFShf&jKCTGTA@B+c zaqguVu}esrs-%9n2a^-P#=S>2)L7Tj=@JcX<`}Ks%%Se%%Gjn0(w)AL30;n5Q%4Av zGzqg+`q0|`0GajjU+D9B`*KO-HiXy}Me53eL7=Y0O{qTMR+p?W+WQF~E$*Ow8#8F)kcs^)>S@Ruim}$3-qO48ET%-MKbx|#6-EeF? z;@3a_%p0zN1+X7x_D;R?U?vR8O6^}a8?iAwzzHw)6UcA;qVjuj(yD}L=33XkO-ybq zstlX28s&TQdkaRlR#hBYLOP?#A~D_F+%vuA@SMx zhMOq(Pw}0>C`;yV%HxU%iH)AbKRby(R*A{{UpOiMOt3C0{;QL6sg&89%r}vOUmJ+! zS4zsBWd3hd8515J{2~BVK%MpY22NlvSfi>WVnF-@k)s)~ufPShi{y=ul1Z-vz|+cw zZ4t|=0i%=H=x=-(W?&68E1KKo&i}9@GidVXfsK{2e-q7uQzUDr5$OTo9kS8%@9c^W z!e8+PY7Wg}mnnDWoXNRejdvo2mQGhFYH&Y?TQ7dwN5qjt(>w%cA>|Qs8%;{(bpkw? zd$MZKD8R+0L!Y+nM!*-JL?8vpQv}Jr#7IX!@+_iuTPBn7TVjOiVg(aS^eZuxW#cD@ zy~|DzbkR;OoUw$az_7qh=^sjOr`$}t>_PM{D^;B4z%C*@y}g0+GK z0wqV-#eS+PO5$ry;w4VqeUg&$#qf>tXJA_l1}UN$0Ib}s7R%3l4Im&0BEXBQfI&|( z|KFwS^y-Lb#C!5e#$FZW=Vz5b|uS+Qa5#riCk3U z++vdLy~SjR_ZAcHl{4Mf5nhEj@w4v6G0UU3ENz{`M9 zsdo&h1MJjqYy45TVv`p6L$=R{5Smai)|XF|cQ*AJv09CLH@7{3UNE!k=0RybSDM$_ z802Imx9G{oab?QkAR}SFSrkmIk3$tNRl!EkmMuW%@FJ-ua5svogmX&I#c`q3sXSTN(s{5KgIiC-yRfiB?qIf$jI9<%THMRGS%le~9%A71Dz=*2S>Rk!8QL(+$D zt!+E1;g=Zj?u&Qhz3Q+2_%nE733v>eb`B);KFnpCL$=dPH~+)_1%N*ktwN)8hPB(z z)p#Q4ZyL6L7icZGeg=Q9DXP>W-^F&I5z|``!!!{m5KGHm2R~>c7Q9`h-IO)q?HcW- z>Ip%9G)*YvH|hxwuNdiizhd3}70KM&cDFVLRtUZCyWwS0GT{eo(g z=by(H)G)aU>5NrdegIIR@LTxzJ}MkVg}std0hvJ}JbO(EWc(8uPfJDNiPKH=$XYCk03VLGc&FHwgsGB?LRa;AhJ%aqA-< za&r*Z*=hD2#s?ZY9l(h2R-Z19T(}7b_NXn7 zL0qd^U-2g<;pbf8hC&SWbl%>i?q^TrIX|lcvFk^s^)u23`hXu;68_s}fQy|B>RRtk z1{B3TD4^q-Pp`tz);hn>umh%fQx!KM#_hS~ORZBzcl_{6@hKb$k&S(A9hGR=!)k2Q zTYXO_lfbbm@Oqr1LR&tZr4f{@Aqp^SbWK~w;^EcimP9ki-W)GS5qw1sFwS@0Xnz&r zS*u$6dmFxl@6hOsD*Vh9qkn6L?m}{3Lj{tnM`uP39N!3?MU%93S=lKGPb6#Tx!i@lul5s$YkK;WE-*M8dO1weS9hQU37%l$F~4>$8a^Rr5{Sf^6AcHdRdjN zuS~0K-HzK3Z!F5LdW^^?Za^tG$s5mgZqv&$t+Y!JQ&omkJ%%~Nmniodq9~j)L_IZO zh^A`hR6QnS#Zge4OM{uyAFAkUfHPpSeVJaC92J;%0uGNL$k$xr8agKAIiLjEbO%+D$au|;YNj#9#bY|Ir_%uD*s^CY2-BG|l?mhU9 zbF|20G=#lJwg*bcy@!nAGa?re96;l1Y5{q0)d)(2&7*W0MsM$-C4&J`Q}w7q_q04e z15)3_HlxzFJbw_o8G+VYAG?P*Xw~n?NuuPFc6C)4jWj=n14ZlDjFi;1>OT9-5w0}* zn-8{8R}JCt#oxjoVdUQh+L=LIvRL3D(z0hcx4;7v{F@Eck5FB~6N>(ZK;vc}tqo?e z5AOfnQ`=ma5Ea3%C6W|i%B?n|@j z`>7w1PVgU+8Zf$M28pI&UIB;Rw?NJBA~N`gJVfIS>LS@^F)S5l9GYgj{f8a-+<;vN z%4erOZWlbx@GS%y&yVXu83_1$0WDGsKX2T`ALPd;NKU6+R9kjBz8U`$y#s5*pZ`2xP!L;E zVx9LVPSx)xo6hRfld}WOV;-vnV@0$8wL4oUi=Ri_l>3=>MCCGEis&5A#ji&$DG=9C zGXD>#Ax)pEn$CNSk@{}axc`MsZp8U=*2npAoOHlxp2k9+qQ#VLAL`2g<|nl?L$%}3 z)IM)63)kCv(Iw^3z5)vOa4^M!p_w$Iw^?@XU{}n2i_(UJVv%IB>2zQ)H_$x#F_X4ugOhIuXgQA5-*n-C7qpuIhbKiLFUr;*Ar zzi4gr-l=1D@M7h{qlZ1*SqN=7iV2)^Dgy5h@z~Crh(4K$_}eWP$MP7p3j5^{*@9~z zPDF?uev={uKNySy9_~kr)%dlcq4F(-;oB{wmn>ktL9QU~pb!QI4jDmU#AHILR=uLD znZHGdLkT#?XHLekKE~;&&*jNx+zh)5l7g`bFL5dEtC0`TS58+ceAY?tJT`c2eDsH| zxLp3r<}TR|2A?22<6Q-4o`D1EnMAEnp@uy!gxI_2k;or|Uhs3F_ZFG#p!d3bP<}l4 zeHwmECcj|T=$$WSIY`<3$~ta@rct|oW`3RFMQDtTkQX2B9etAg=?`7ow5w+HSDXAU zzl-X?dAqPdM*Aw;YJ0$6NCGj>yk$iS67a~H@#qv7&aIy6A@6*U*MM@rrIGEY;IOMpQ z_h(+Z^qHCWFNpJV(YjMU(#O~F>5uN4$8_QUDS7nhkF5@B9{tgA-01bZ_j%B}zu$x2 zALV0!{`lFkTkUgU-=<2?+g(*T#Kj1-RlJ z4?nc7whf2M8oU8Ci^B+PjV|6k_kA4r1LU`A{0kZQ_h~)NA zY(5-4XY1zo0&r8~b}i(78@Y30Q@A6D^-}h9Y}jEDD6UnwzmoZWBw&)(+P(nSDVHU1 zP+GU{@j!CkYI5IF26Z zhxh9KH|S z5smXm=Lg|f7GUhi3Y(0tMnpSc%v=yTlBwOk0!6e3cXz%x9IX%COE|;kCf(dFO*W54 zSgO^4uy4kk;fE6V0~u@^Y*;(5D6@T+KU7q-pxPY2277c_3(U}(3~|G=9DWl4E<*UX z!Mjk!YufTJVATnwQsi$&tOZz)dp8h}gm!VfFwP+61zj@&qxct>>vzpKfwI6ddKW$J zzPOzGgOKo=K4D@?g0{>ERNKV}WDp*V<|`5laUK9n?tqg)KfGJ_<5d3@fi*)CqYVE) z!{*tJGhz*XMC#S{8G$V`h7Rl;S01a*omP3b8?F(73UaQL9*;OOwf;}tnorq+Oe6v# zWe8hcGpcO2(}Q{030*UCiIHyNOl5le&8rgkuNeZ8WhHj5S9l&x=C{8tdI!!v>6{o^ zkKzYe>G4~63jIE~Ke6+*fc9W#O#d+QUh$$3PMrSfx9}%kmy6%c?o962qr*c8ut10b zqO@Z0V?!Vi*;xgj$dC{OS9@@TF|J2jc0V22v0QA*3}l?IdFiym!sXb3q}FmoqDVmAxJ0TmIsK84ER^q%#PmcM97&wm!9|M+kbD+!~obHE4 zJ3(7}X=ZhMsOZV|c}065+SNr*fgMlA@8)2N;$}*KFGT#4G(sX?0wMxi5OFOwg$;k_ z{y^13l-W4K20bJ~&vgB(o@>#wkVtz_N3Ec?wlWi4KG|N4ZlM65!Vtl&NK5zopoz>a zOR<@cO~;4m?!qlV@sm&VwhZDos+I>3e_#U!O$#&xzvLMmRS%(#FTMjK&EX?AHvSBj zm+fwyg80C;Gs#ja&t1(2<3B|PI2hu#2n+V%oWtx`7WQU#<9}PzqvedseaZO>}v^~ezR$+ac8U}6Za0-<^7yKhwdW$@Nv9lN}pM=O%J z{9!sSIugd=awDi>ZP|OGMY9n0Cdr?GI12mXPfO#FNXP{n{{rxn#%s~I;teiZdI+h$ z_zBFT^x9>QQXB|~Teh{_r~Mmfibj3$XGL00;*bl)F2+%UZvGNcVtgt-CQXjj6eSYe zEi!$YjL?2u0>2B*h16gK`7V(mvC)VeX=(af4fd_qt;vc10QTL z5&2b~T5(5Y)3*m3jo2(|0|dgmwDC9woen-8F9Gugj7O5wW@;i6VMJ?2#Vt@sfSx}P z=yN_6=l~_aW<=z@pcc7~^}A+a=D^dO1&wMCd1-y=z}7QAw)GP{tz!@L)N~f}-mQmD zLqBC(6H^vQpK-%e1G-1M?Nas_>4aXWReE6#l&jB?N4x$Zj^WFts-sdewA&_2)s7FL zQn1ugD&;{ahnq7x4+Mv9aoP}F;7f#3WPoNlLv;(C_8Bz`@gh{~Ng!9z;X11_1r=Jp zMCmNf7F7Ui1eBf9St05yYD(x$sQO~mz&JDx{~g!+V8(5q71%P1lj|(b?6d5d9g)8d zs}^8d?}5gK?&IG5Zh+zw{WmKYj~;W@P$=_J{M9zMimGAPVSSvUv8!~UFZ`#fczR)i zo!2$Xo`DBxkq3o#x6eHh;G!K?+Je$sW@$v=|D)|)0Hdm|{r?OENFaKG5X5(|W1IL4 zRa>Z_8A;#_nSrPXsQ75@rL;auApxwYfk_~z!&q)htGDg%%5863`}?)GP$^KK3D1C5 zK@_o68{cyrAMphdmHB_Z`<$6fLPYfU`=goj+I#J_*Is+=z1LoQE!iC8GMPcyFFu2k zrntsRf5%K4(>;i?$67Zf_)lwXUGRD8Vz(wsXF3y(!fJ>>4c5A<;65HLl~mb0|Ja$% zv=V3X;A~C1HOB3qyD{b{M{axm@^gduvB}Ze0dFxeFp@FDiA_wG z>?Dhnl$ySM)sWN~8D7ZEZrHOb_!8gRAx+*YI64x1ZA^{Tw9yPNRl(OjgRa<@=D8<{ zf?GL$zzlHLizD}i_HC%dN?>>FLoU(XHa_!u%o}>N4m~{2eTE{tI_YQRkZ^E+YjU(O zEX!4oFaN&6K84&E?B5Y4Af9H9oX_^gtIvSRY%;C%6RcLWPi6V$b=CVX<_yj-v4AYz}eWT1*`ivPws7m$mxbh%&Cm2u(gFI zps=;kivw-wBoBac9kvu6wCDE$&P307kXBT~poMiSrQoagjF)Hx-J zD?BM#s+>1tub@tN^OiNnTxWqr6%*e%NHX*eCYcUSm4#&@_8vKA2dbS9LgWdxzJl7| z&8osTs~h)mS~MbW$fUF!of0>|&HxxLD?R}jnuk-u&K)dcD*Mcgb)p`)yhQ4OmezLE z18)|}*viGgBpq6`G2PB3_ED*|^gCLKBubj8?8NKO`-L6Yoqp9+=qjxp66cKynZ5IH zImcyN%sRo?hgoYEc+0!WhBV8A^GRH3t;MYJLtlLpDcoM!n6{h~LC{PmTeOsC=~chU zeNQtd5pBP2dMjgj5BN`$uy^=xGAHQ?|EHvGz%r=mbh-^@6s)g)Ztk|SzOoC#4k1$T z_3kZhPgz~#u3}zbGW;Q%;dGC%pORtZU?{uxNu4J{8+I`H$<2C3xuMbE`(|-BC0Ok2 z^w)p8z4c$N9N#fA?fy_C#{HDF_$CiMGwTdH#|k|-uHbK)6-UaS@J^*oOymy?I|KCb zu#k!TZ^jb^n)_R&P}*WwGzUsoVBDN zi=y4fr=VH)qMvx7;1R|&Mi}Uh4_H>biw@*5aj=?Bqjf^qD-uuepM8l|Vl@`=CPOyk z3^w_~jXAVCSEYbMaW1Xe9^q}Cv)x@x=4=7f&uTh9Tfm0BUI8ca1}EKN!ZUb!jYY?( z3Z7oWRDW{8d)DoF2Btei=!g|h0bfq4W!6gT+&}DAGSQuUAi_yZJ=rS!%zZhmUR+szhx4P$MAWkQX zoqj^=(QNat?P~s5KqeoYJalRb+!gSiLAk%C`pRUJ$*?pHV$@C}x4FmZqbk-e%|f?S zW~sa35zVqm*rD%)#?WDqC#cSosnf8R>(ay0kg%7K2Z2CvJlg-P?qu=ytDWzTN01>Vmk4_JBT`ZsD4{t@PZkZm}-g^G$j; z;iYDoce98c+e%lo^D}MMO@Y+a6B&pH_3Y*zxJnNkQY~mG+Jlb8Zgqx$cQHLX0s_j< zWA6lfhx+!EuIH25wCB5GG1HzgNxV;O&rM=(ku+bm|MY(I7~QJ(e)EZkMyB7Wi?DpB zDe~O=AcoJ%e+jr>635`t*jkeBwaXW#G@O&??iT%GY19-KtFA`D&Ff>Juc5&AvJ`m0 z^oSlULBFaBYJ53W6fl&kGdX&s%d(5p+d%QiaYAJhsLTw-J{(~+Ed)k5KFqDpu<9xj z96>WLCt2^!{1N!|Xy()2)44ng5rU89rR-74?PrP~g0_ zz~hR>#tnDNXizQV>2|E0j@Cj1o;QnzK~9a9@dZvzAzL{^+;>f95b0ha z0k|9?>4cg~L<06k(|zYv|KA8o1L{~nc^LaR3xB?7jswbD*)iguLHQyNWoApa7!h)0 zBDyL#h~9k@IRs?OI4Lj2A*+1Iu1f){he$2=7mCh z-wS1SU?+1XG#pGgz68oUdC-p;#JBF8SP;RFlJ6iz6R@8om2l*{NXt zndZ!XrgQZ!8Ii+z?s-^`LZ(8{FLEv`f(gw85@`ay#qM`A4Ew1x&Zzl{rREzdHQz92 zoUi5^=c)OwlbUa)dt0`yn>|7FIjFAP8aNs)oQ>VIks^oHu$WnV=x@vz^PCOtWMfY% zD*vC)UGhETFkSZlh61xifqCw&j5)Oac=s6HNDh2)ppC%>Drc>03@+j7mI5);0dgUm z-Wmy>z&B%Wuo|vpSZ(-_rPcwB@-+M@hvyTccPqkJ)pSNy^zIlqZ}pJonnSmZ-Sfo8 zoLcnP1#T5s$Rj%rwE`bvdM|&j{yORK z3@QyEthokb%-r_MwBct9u@qyYS*o!Zm&E`2kxG2z_an5tHawi|sqbe>lpqx#Q^W%mj)brm>Zo=t(da|yF9gdBN@gxfh!j)I>xG8PcsR-?}2-g4es+`DVA z*F1dvk3hiGs(Vd!PXxik!}_!VfkpQh%&DVzU#!d;a%O0s3*m4**4BLJvwN(WeqV`3 z@AJY>LWd)OZ}hbXu-p8+@SBeezNSX*FFrSXZ`At?X=e1b7Xq6J!f;4=f<`?CEFMom zqPcTL;>6GjuOG{0qMYyLkJc<3@1)k^JD@9CCAxbg@OV~Ag`LR-?r#XZd886XYhiaS z8rCDtAo1-seU1!_2zl-l8KWMqI;$W>@6|cHNM$h3bN68qdZhT9IooD3pz-!cjw)wd zmpza%b~+oVoMV@cIeQfD>W#VGBg1lC0`dq1M5P48cxK|3o{Ym!!ti%y&TrE6bD(Rt<-gq$Zsm>C(OFws|_r#`rYc-pFZ9lryS#Ml8#52l%D zKE)X^w2#*f^lW>oF&UGx_>B1_=)CWV20lXP?U}N;r%_II;#a|TPoLapZb7xP)5S>) zCsW_78xk#l%UZmTCtT8+U8Q*pIgf@oq=lJN>HLL}#7W~QGkiVEhrqMx7dSag`(Gy&eu`iN+3T9k55m=iFIVl<3VP6z2d`_N?odgYG z7NYpwYz@agmVMC5UDeHC8TY z=LeMBb4Xy2-mII%Oc=EW>l0GXlH>SRMWy zKaQs1t)+iLq(l;@9lzvYy5{<#Uqu2h_>J{`z9K{#_Gb#PH2YDw8OAuuT@5wFVpGRy0vG2(CqbhXarM z-ziCsS3AXiM)Bi3tJ@p2K=5v*=c!6K9(RAp?!u|8kQTM7j}m{?3pwQ{os`Yx8A_$5 zc^^W5lW$Yg%?_q}! znJrj(JsQEmThq^(l1osO__i>Sa(6DyFqq&^C`ettWk5};cIMUrL-5xS2_$`sF}?i; zwD9}TDvY{j1Upj2k-&Slb8^N`Y1NSC0b3>nnDtIz%Dr_04XPe~t#Le+iO#7BocLlJ zCZtyCg)IY$QtbYt0l!p}Wo8mc?YA_;d0n{~UQ^D5d@f06LLhZ2@1-MBqUX)*ny^iL z+)J9Rl&miUhNR*GNWb#Yai;azIsswB$a6Dg8)MO@QZKIRKlA=!d8vQo+N0Ncas1HI z3?ExDf`!tLmyiv+&#^z^%I=rQ2~2VayvFJ7^}3%3F=EapRs& z((I?FGoKzaHv_GvLFO}-kqV`^wJ-Y%tW>?z$~vRm0WWw^&wz~Xb7UJkQV2E5SZeH7 z&21Z*#-6L&rU!W&id_iczi=n7Ts~klNLj!_2Ty~s&H>g^nR`-`yBoXJ1oPEvvyf(W zhcqk)l2D9hQIscquc}o3b?}w7XQL#m8w7?Dmu3<-9ixJs%T(zzb0B)iD;7)+^2g>R z5R`8Kh4TY&pRm zDdezPDXOw5PVbT8PCtc&pNH$0dZZ{Kg=ym^V;bq9@|7NmCiq}v9_fK8?~!6Noy`L? zoirk?dk;6Fmu&NdrR1WQxwJ>-B$<^$DpM~-SxyR%qSx^)r%{IHBv2v0^+Cu*mIvar z9w}meies}WM)XMWO+ST>P*@hoq0(7<(Fwqd;l>$@jlBfdw1ySgV}k20G; z6?9p2iC@J@&BpUnqj4>2im-Vo*vv+GVD`R2sYjoaE0 zsd7CPvL+Z+*Yi5W)}HvDX80Mof$^+a~WMsb5lV-7%5! zox;;Tx#jTNWa5udr7YF?U|pUeKg46x#XDrc8xKOQc8)|g6P z#D~m2(FV^x#ORvck3@ZEOfZ_bxilQV8N_dwKZXZ5ufg<(Aw_49qz%{cqEd4zNS?sv z;;AR>JcYNuVq76c5;q2I{LPb|RZKC%wm#{ z?KP)e?6a-L4IpBol`5oZsR10@l%DgD<{eN+r;%c}mF3mbmG*?sz!&7!YSk9aUbS(4 zhli^%K{mVs8^g}YI>944H{H#SK1WzeNl1?I({*L8QFjEDU?9F|5fwQqWz zNtMZEJ5~f!kkmKA&M>owh67I6=NpQ88NQ&VcIgCaBV6HfM^s)o$Aja#PH6f*d2(eAeL+T*AkydYNN~qY* z%*|4PIoC{%uQ*`(#|kj08y78qQFR!(E!6Nsy2%QTflZpu;h<8EaFs;~SQ>W5j|w~U zDyfGJ5{9k;*8(ffpt-+>@>~VN{kiNaxY7F`ai5)k+4xS?5t~?Nzxm^to1C~XXKsQ^ ze5mIH(f1o~Sao4h1BaqXb$pg`d2I zsK5eEsRXYqZMD|6W~yL&@}lm_F2#dQ;39}^$Ir&@CV!5N2pC_C)SOhp-PB{_QwK*9 zSFmAHtwTFzH5ZT#Ik#28Df~_eUdHc?;HA2))!ilTPQX<;A65P}KU}`oTKr!; zMiS?7*6nLT2RB5l50{xVQ-TZSVeWsbFpT(akSHa(`K)Cglf(ePCXHQ7v zpB;irSW{ze7dwN-p(c3Swz)&qfQ80+RDt{~3TG3Qu4SN&%gbxb*N+OU#R~2UQQn6r z_{1|rvEx_gSN^p?2*$3Z&T^9G*M1Ev3B?`ee-2Z&C{oW-H%AJwKRo|$c=V!5 znUzpgGiHd*lP&rc?nu{e$0cDwsPG+RF)vzQEhyZL-_$L*9o^I#m}%WUp^$_-Sgnz) zaOX^C@=>;DFwaz3dM!0^j>ur~bEjGSKsOdd`igX@3jSCQ#+vQZ%mT}KBi#Bj+lp_F z3dbHBLXF%}^fjnkFlrIKgZrXET!aHa4#W^-ESXPq1Wl5b+Mo7$7^=Da&wNUj^%638Sbysmb zw8M^9BhxmUNs`DHc8E^i;^Jo~w>2xFS|ms~^+>Rq+p1s{zf*$a_?;2Nr8LnXbQdzb z($%DH6RMlgLlV#?{Zi5FLFph@xp%V`F?XH_lv<48z0*qU?TRrsp-=-WXuIcZ-3$MQ}G8xSI^zjRx)p!EF)T zR``zwQ^8y5IZt`pw7p1c*#6K$)KfVZrk|%xAy1h?c9}vLI;I2}BxVG6b`|mrg?#^T zg&c|KsxZZVO~syXiapO1d#)+=t17la#g23<)%3AWh6XJZ)Q4dDE$kIsUSzGSE+l<5 z#!WX3(g+^cSbnFDxGkg2v$7!KbhvMj*#mPf%=3l81j*c63o3NjkHu)sh+0piAQ3!? zqTYMAB+3n6G^hI~u+Ok%E)aFAxMWvWep8NcF|w$>L>S!@alA1s^bpABrEbfL`1~N$ ziv;`YM?#e_68z#YfZrKG2Hl}S-2~huZSVz(KetEmtQ}Z95XW?rFGM8TIOj0Sl)BWl z*aRZ!?+8pZF7;HkPT)!hg;40@Rv_aW0%=V^k-YaJ7bUl@tc zIWt~DmJvsbmoob`7}uSl?x`7-OwzX)<{3(MBO+k`H(O+;Wq1S#`$$$KWM zH&VAU-kFsvx#}-W{lMrS1g8v-kE}!SaUeskGdO}6G7C}LxuoK6+LmPG>6W|h{F$SZ zR#Pq0OuetLLNRKD*&y?85dytYGC2mm}L1uduyH`rcTU7)qJrA z6A^f8-Z^|dbh?;nj-35UmJPFz?6!PYavle-#}g}!CStSbp}-Q;SiC=I+|VaK_^P_A z_kdDk14*pnM)S=oUKXr?lda+v!Ae~Rb4AQsgL!YRq~mIDZ8Q!f#q_$D10i#d|I0rZ z*C&ru^2vBAOPA#H$~ZrH3Kbq+XjPhgm8dj9Q)vcz@vr>SrdL>lYfBZ2nJ`zb+?g=BMi4cRxCr%_-lS7%Nql&0o;u2hMcZ99gcZurtgCKd}j`Q7f&=u2h zZ3wCcsJ_yoMZ8mV#e>Fl}XUcdmILn~Z7#yYNSS!r!bvrwe!2>j* zlkgd(D>$ed>YwfxWbTogXyn#-{kb}Y=s|?rV`}On3f!kGQq|cJKZ);8gq`3poxp=> zHGW0On%F@!H##`CFZto?Sy*+^UbfGni<{7oz;)6h7vy6?P%sN?$0z#F;ZX zc43?CsNdk2+V3|iMHGcY3Oo+cQ}TzuLnHWL(9p(eT%l?aF1JnOz`HI!i60EM=%LHE z%#Qzt@d4Iu(zM`?fHZqdnsyu#omXj`1gA^xHR;v_J9A-mbcfaGrzutwWy&ki10e-` zIM*r7qD_*fIV*G{y%sRW+Hph_bc=wt6coaymTS6X{_pzIH8wG(X>Q9xR`h4Usnq~D zUHaAQG$_te1Kmr-*Bcubn4_KSUW|tp(IfH4U;|e*-Ab<6WJdal_eh>P-wSq=JpLt( zelRL26(vHj^sIG~p7-$FrLWa^dMo2;ZaiQXKUux)eg(<0aqN^lW{U@RrQpOm8CZ?0 zn%E`{tUw@$S!1w8l!G4YNhGx{J@eYY?7g#};_wD-y^) zgHf*1A7AYXQ&%&-9s%I)8BcRsJ@wlEqr?jCCGw zEzM_aMt%3qS-I*#6D=tD>Oydk)$|R0 z$U#s7$UUtq^}w#w$68HAJyJ_Fx%<%}_^|(pF+(o0hQ+!gTPkEXb!GWOZkAYQaec9d z4v*cI1&31;UJ7Ol75*EKdA3!>VR-L_`@=3s*8&Mq&_I%7tfp`3Lr%pcP2GrIl1Ac_ zE%C8knNRJ?e3sP|%*~9LRC-f1#Y*J5efCswhUbl8xa5|+#OhylP!hThT<5O+B zoG5%_Ng57pBAf$jyJ^A?aH@T?U%|wjkHZPpB%ydwF!tfw){-kp6#Ebb@)V@p1JWOJ z;NlEkW_r8&n>sKvGcz}(_&m2n7TQpG6bVHV@wP}($@Op~QThz=MVdaCl4j>qnO3Mr z*8kB=>QY0tR2N*#*do00+`CvH6GF;wvQ~i)|#!eM1n*ECDLqWuW?inTY#L{Q1VO;{QCd@hkbilDd9hlqS?`(c-|eSg>8D@iKkx9L*Ym7tU5o!d z2}x}zWX5vJY4+3Y$mA0*^F7J4%GKbZ^7feTRaz$^)BT4^J#_jx3w%gNSR=L-M1)Biroe_rM1uk@eq^`CA3S=~tRYI)YI zS^}dPDPSI}upVv;Dd3>Azga%NhRt9o%2--(ST2HU9nW+{;!+Q@Pu?zm9v= zx5b11O?~2+hhnbGr1+UU^Re;(rVA^;nB%VG;y#T3P2!z+ z+Y=9HQz_*9E7bZnt^uA88&42xUk(>;a;2Vio(QeVC&&z;M0m1^uV9W4D(W#>=h9GO zO7H;Q7(e!+t=%`+?W1ILhn3WeZFM5@j2~{7cg*>U1nhJ;07b=iJMc~8)eTuuetdOgGrvRP$F9^3Fffuw`^;n=34(5eCv(b+BP#9lO_hmBN1uP~W3 z5{UA)hRw9Qy&zK9VXb}CE@VWVNWO1Ta353fG7PFi>1~{C#T0A+1W`EbM8B_HcQ8E} z|A)~)YbgCf1Xr6)7xED`mu)tjqDJ)<2K7958)frhlKBuZA8dWl{B^Qa(YDvr5$7el z^`(Mv>l>r&*rP+-{;FK!c6Rq_Wf;pw(~_U7^>kRdMrMPWDx`ZY3y$E!sv3p$o$UV66d)S^ znY&25(ETc-elxtg>R6aXN#5Z_!vfaUjsGIaeIXZr9cjjfQo!inmPS)F1n|l>9ZZEo zff{slh8(FeKr3{gM%}D*US4jbq0a?E-_$pazi6Qx#4h~)rruL7$>OU{B; z11t+_iKZSZkbo=GWm!<0r4&#L0WK32>~O0)3deEe}zaSYZI4Ntl4e7^5^_gOA%soTUJQ=EF1nPs?$1Rm`lpp|Y11h(r&pSz$>W%I(| zZMc-F`$1*nKI>;}-~zaB-S0_Eq7}gwGB!S0cP08CHWz2ZF^FK0l_=J?G(lL_QVRb+ z7~G)`rs~S)pw_MLBx@YNflKW-7mTWhGeK-L?Dnc_qFdVfo zlQxPh;Ln6Y^A=H_gjp&p1k;B9B_M$|V``102H$4hNP0eRY>OZmZb&Z3s~b8oG3Ejr zBbhYO&bHRS?#>{cLhcZ^KCpu$dwkqr2&E2D7M1u~u4(KAUX0WFlQgGqpxoqn|Dg&j zGY_iBa$eer{CW1){MJ)+@62dLIxlQ3ma_#=G6`T-x|wPQ`~u1pifF@|E3s1PhjJ_$uaDmd(k(J&~O>=(9~n(It6v_DrP1nq+0Y!! z>L!oA#f5xR?T$+Lf*p%|pc9X9>P z%)Y$-Qw3Vw<#e7_M7#Q@={%-^d+R)$8;Q`6J$um4$=tmMEey^!eMn!r_aUZrhx8%W zTU~qx_qPr}A(-2Nyox6w!KYA0;JBS6ElTM(JGG_9T5ys!9(W9deV4}|r^W&)VA*evg zVk|7G3IcK-RWJr=CZDoQ*A;FSVfJdca33!4hZ+0WRxdBd^Qs#Ds$p&VDv-Ag4!$%BZtlSU?NRKV}T;BP?*ouj6z>NX6v+ zy^!;sf1EB-I3rjISNPZ?QX+*jq!TS(4hXi&ZeI6nV^%zm~moR_S-Kz#LHTLDC=wXC`x|JskR&wVF zgFpVv69(oDGOpcxVSb}4P<&xPg!k5VP86;15^T+v?{q*&C^?Zn8X5Z(qZ;pn1=vDK zhlPDgbw`6Q>{DjCbyc4VGjw)nK43(KDZ}fq;#EVOKqn3e#kNh~XUgd=)@ZE{*|FhH z|4pgga~P=W`9(+mW+VDIMCut ze{^HnyEg7L0O+dfmZQ`FpRB6CjiTv8Ugz%M!Mp3s-sO=ob&k|L?LrsILc3+bq#pdS z2NP>V{ez|ntj6D|M6au?i;T({UaANLwRvSmP}@Fz4#x@7ymGowRWRWQZ3wBOmxiR_*%0Dq{WM^CYk12 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