From d7c4452ffe1311c8d0b13ef1a5996938084a94b1 Mon Sep 17 00:00:00 2001 From: red Date: Sat, 30 Mar 2024 02:31:15 +0100 Subject: [PATCH] Year 2017: Day 16 --- CHANGELOG.md | 8 +++ Cargo.toml | 2 +- NOTES_2017.md | 4 ++ README.md | 2 +- benches/year_2017.rs | 19 +++++- inputs/year_2017/day_16_input | 1 + src/year_2017.rs | 9 +++ src/year_2017/day_15.rs | 3 +- src/year_2017/day_16.rs | 116 ++++++++++++++++++++++++++++++++++ 9 files changed, 159 insertions(+), 5 deletions(-) create mode 100644 inputs/year_2017/day_16_input create mode 100644 src/year_2017/day_16.rs diff --git a/CHANGELOG.md b/CHANGELOG.md index 078786e..4c21c12 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,14 @@ Of note: - The changelog 2015.5.2 has been rewritten from each commit content. - This file may be amended entirely in the future to adhere to the [GNU Changelog style](https://www.gnu.org/prep/standards/html_node/Style-of-Change-Logs.html#Style-of-Change-Logs) +## [2017.16.1] +### Added +- Solved [exercice for 2017, day 16](src/year_2017/16.rs). + +## [2017.15.1] +### Added +- Solved [exercice for 2017, day 15](src/year_2017/15.rs). + ## [2017.14.1] ### Added - Solved [exercice for 2017, day 14](src/year_2017/14.rs). diff --git a/Cargo.toml b/Cargo.toml index c3922cc..af2edf9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "advent-rs" -version = "2017.15.1" +version = "2017.16.1" edition = "2021" authors = ["Arnaud 'red' Rouyer"] readme = "README.md" diff --git a/NOTES_2017.md b/NOTES_2017.md index f5cf1e4..4050421 100644 --- a/NOTES_2017.md +++ b/NOTES_2017.md @@ -63,3 +63,7 @@ I kinda liked this one. ## Day 15: Dueling Generators The most interesting part of these exercises is often [all the obscure maths you can leanr about](https://www.reddit.com/r/adventofcode/comments/7jyz5x/2017_day_15_opportunities_for_optimization/drasfzr/?context=3), in that case [Mersenne prime](https://en.wikipedia.org/wiki/Mersenne_prime). But the peculiarities of the number used for the remainder [should have been obvious to people who wrote a lot of C](https://doc.rust-lang.org/std/i32/constant.MAX.html). + +## Day 16: Permutation Promenade + +Nothing hard, until you see how much ONE BILLION ITERATIONS actually is. Good news though: "All loops are about knowing when to stop". In that case, we can just...look for a repetition of the pattern. diff --git a/README.md b/README.md index 8d392bd..ebaa31b 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ As I said, [Consistency is hard](https://github.com/joshleaves/advent-rb), and I I'm also adding notes that may be useful if you're (like me) discovering Rust: - [2015, complete!](NOTES_2015.md) - [2016, complete!](NOTES_2016.md) -- [2017, up to day 15](NOTES_2017.md) +- [2017, up to day 16](NOTES_2017.md) # Regarding style rules I'm gonna use a mix of what `cargo fmt` does, with some stuff that feels more natural to me. diff --git a/benches/year_2017.rs b/benches/year_2017.rs index adf59c9..6485bbc 100644 --- a/benches/year_2017.rs +++ b/benches/year_2017.rs @@ -13,6 +13,7 @@ use advent_rs::year_2017::day_12; use advent_rs::year_2017::day_13; use advent_rs::year_2017::day_14; use advent_rs::year_2017::day_15; +use advent_rs::year_2017::day_16; use criterion::{black_box, criterion_group, criterion_main, Criterion}; fn year_2017_day_01(c: &mut Criterion) { @@ -243,6 +244,21 @@ fn year_2017_day_15(c: &mut Criterion) { g2017_day_15.finish(); } +fn year_2017_day_16(c: &mut Criterion) { + let input_day_16 = include_str!("../inputs/year_2017/day_16_input"); + assert_eq!(day_16::day_16_v1(input_day_16), "lgpkniodmjacfbeh"); + assert_eq!(day_16::day_16_v2(input_day_16), "hklecbpnjigoafmd"); + + let mut g2017_day_16 = c.benchmark_group("year_2017::day_16"); + g2017_day_16.bench_function("year_2017::day_16_v1", |b| { + b.iter(|| day_16::day_16_v1(black_box(input_day_16))) + }); + g2017_day_16.bench_function("year_2017::day_16_v2", |b| { + b.iter(|| day_16::day_16_v2(black_box(input_day_16))) + }); + g2017_day_16.finish(); +} + criterion_group!( benches, year_2017_day_01, @@ -259,6 +275,7 @@ criterion_group!( year_2017_day_12, year_2017_day_13, year_2017_day_14, - year_2017_day_15 + year_2017_day_15, + year_2017_day_16 ); criterion_main!(benches); diff --git a/inputs/year_2017/day_16_input b/inputs/year_2017/day_16_input new file mode 100644 index 0000000..6c94d7f --- /dev/null +++ b/inputs/year_2017/day_16_input @@ -0,0 +1 @@ +s9,x0/5,s3,x6/12,s7,x8/4,pd/o,x5/12,s11,x1/4,s2,x11/6,pa/g,s15,x14/2,s7,x13/7,pk/n,x5/4,s5,x8/11,pc/g,x2/1,s12,x3/13,s4,x4/2,pf/d,x13/15,s14,x3/5,s1,x2/9,pi/h,x14/4,s8,x1/11,pk/p,s8,x7/2,s8,x10/9,pl/f,x15/5,s8,pc/k,x10/7,s14,x15/2,pi/h,x7/10,pp/f,x11/14,pi/b,x7/4,pp/h,x15/14,s9,x8/13,pg/d,x9/11,s12,x12/14,s2,x15/2,pb/c,x0/7,ph/m,x8/12,s14,x2/4,pc/n,x14/6,s14,x13/7,s9,x2/0,pm/b,x10/13,s7,x2/4,pf/c,x3/8,pg/a,s13,x5/15,s4,x7/12,s9,x6/11,s3,x1/15,s4,x0/7,pn/e,x3/14,s14,x2/10,pb/f,x9/3,s7,x15/4,pi/o,x13/5,s11,x8/14,pc/f,x1/11,s12,x13/15,s7,pb/n,x14/12,s8,x1/13,s1,x15/14,s6,x1/11,pe/k,x7/6,s6,x13/1,s12,x3/7,po/b,x0/13,pc/g,x11/12,s10,pp/j,s3,x0/6,s2,pm/o,x7/4,s15,x11/15,s1,x14/8,s2,x10/1,pg/j,x3/13,s11,x11/0,s8,x2/13,s1,ph/a,x14/3,pp/g,x11/12,s13,x3/6,pe/f,x11/9,s7,x3/2,pb/a,s6,x9/4,ph/e,x2/14,s1,x0/4,s10,x14/2,s12,x11/6,s13,x3/10,pf/i,x7/11,pg/m,x12/5,s9,x14/3,pn/o,x15/2,s14,x9/0,ph/d,s6,x14/1,pk/j,s11,x4/9,s14,x3/7,s13,x2/11,s6,x0/5,pn/i,x7/3,s12,x13/1,s9,x9/12,s1,x8/15,s4,x0/13,s1,x7/1,pj/b,x13/3,s13,x14/9,s11,x7/0,s1,x10/12,po/k,s4,x9/13,s8,x10/14,pc/f,x0/8,s10,x13/2,s14,x14/10,s5,x8/12,s3,x15/13,s3,x11/0,pj/n,x2/9,s8,x15/14,pg/m,x13/10,s10,x5/6,s2,po/h,s10,x9/7,s13,x13/12,s9,x9/8,s9,pm/d,x12/5,pe/o,x15/3,s11,x13/0,s2,pk/g,x6/3,pp/o,x10/7,s10,x3/5,pj/g,x14/15,pd/b,x1/9,s12,x14/12,s5,x2/13,pe/m,x0/8,pk/b,x6/10,s5,x15/3,s7,x10/2,pi/f,x6/1,s8,x11/2,s11,x3/8,s3,x11/9,s12,x10/13,pj/c,x2/1,pm/n,x9/11,s13,x3/4,s13,x8/6,s8,x11/10,ph/c,x3/15,s1,x2/5,s10,x14/3,pg/d,x9/12,pj/l,x6/2,pm/o,x15/7,s1,x2/11,s3,x7/15,pi/b,x6/2,s9,x15/3,pp/k,s3,x8/14,pn/g,x3/4,pd/h,x11/0,s13,x6/5,s14,x3/10,pl/a,x15/2,pe/k,x4/5,s12,pb/m,x10/0,pd/e,x14/3,ph/o,x10/11,pa/d,x5/12,s12,x0/6,s15,x2/13,pm/f,x9/15,s7,x4/1,s10,x9/15,pc/k,x4/5,pn/a,x7/12,s3,x4/1,ph/f,x15/6,s3,x5/1,s2,x6/10,s9,x5/0,pg/j,s14,x9/14,pa/d,x4/6,pk/c,x7/3,s3,x13/2,s9,x1/12,s14,pe/m,x0/14,s9,x11/10,s9,x2/1,s9,x13/14,pi/f,s7,x2/10,s13,x4/15,s2,x2/13,s6,x5/12,pc/j,x11/4,s7,x9/12,pe/h,x13/4,s9,x15/7,pi/o,x10/2,pk/l,x6/14,s2,pc/e,x8/3,s13,x10/1,pi/f,x15/2,s5,x5/0,s3,x2/11,s10,po/g,x7/14,s7,x6/9,s7,x12/7,s13,x9/2,s3,x8/3,s2,x12/13,s15,x4/3,s3,x8/1,pp/h,x13/14,pg/c,x1/12,pd/k,x9/10,s11,pe/h,x13/15,s13,pd/f,x7/1,s3,x5/15,s15,x9/2,pb/k,x15/3,s5,x8/10,s5,x7/11,pc/i,x6/15,s4,x10/5,s4,x13/0,s10,x5/3,pk/l,s13,x1/15,s3,x6/0,s2,x7/10,pg/d,s8,x3/15,s1,x13/6,s12,x14/0,s8,x1/2,pj/h,s8,x9/14,s5,x7/5,s15,x13/0,pa/k,x6/8,pl/n,x14/3,pc/j,x4/9,pl/f,x0/8,s10,po/m,x13/15,s10,x11/4,s5,x0/1,s12,x14/8,pl/k,x6/13,s3,x7/8,s3,x14/0,pe/b,x2/8,pi/p,s13,x0/3,pd/g,x10/2,s3,x6/7,s3,x2/4,pf/k,s6,x13/14,po/g,x3/9,s2,x11/10,s5,x13/4,s5,x7/1,s9,x3/9,pb/l,s15,x8/12,s8,x3/14,pf/a,x0/12,pm/b,s2,x1/7,s13,x9/3,pp/j,x11/6,pb/h,s4,x5/15,s5,pm/o,x3/7,s10,x13/0,s1,x6/11,s4,x8/4,pb/k,x3/0,ph/j,x2/11,pl/g,x15/3,pe/c,x2/9,pg/h,x5/10,s7,x11/12,s10,x13/2,s15,pp/l,s7,pc/a,x12/5,pm/k,x0/15,s14,x2/3,pn/p,x10/9,pd/c,x11/1,s5,x6/13,s5,x7/5,pk/j,x0/10,s13,x1/5,s9,x9/6,pl/c,x13/4,s13,x12/6,ph/f,x15/4,pd/c,s14,x7/2,s12,x3/9,pi/h,x2/13,pa/c,x0/10,s9,x2/9,s5,x6/3,pb/f,s9,x7/14,pp/o,x4/2,s3,x1/9,s15,x15/13,ph/j,x11/8,pg/e,x1/2,s5,x6/8,s5,x12/4,s7,x0/13,s13,x5/11,pb/a,x15/8,s13,x5/0,pn/l,s13,x15/6,s3,x1/11,pc/i,x10/6,s12,x4/15,s14,x9/13,pe/p,x5/10,s9,x14/6,pg/a,x9/10,s1,x13/3,s5,x1/8,s3,x12/9,s8,x2/13,pe/i,x1/5,pf/b,x14/11,s7,pi/h,x9/0,s12,x2/8,s14,x0/11,pa/b,x1/2,ph/j,x0/14,s15,x7/12,pn/c,x5/3,s14,pe/l,x1/13,pm/n,x8/14,s15,x13/4,pa/k,x3/15,s12,x10/4,s3,x7/3,pe/j,x10/9,ph/g,x2/12,po/d,x14/15,s13,x3/4,pk/h,x6/8,po/e,s10,x2/4,pl/j,x0/13,pd/g,x5/6,pn/j,x2/11,pm/o,x4/8,ph/b,x7/13,s6,x1/4,pf/j,s1,x6/12,pc/m,s3,x10/1,s8,x12/4,s10,x10/2,s14,x4/6,s4,x13/1,s5,x3/15,pg/b,x14/11,s5,x9/2,pm/n,x7/12,s5,x1/3,s4,x0/9,s8,x5/12,s14,x3/13,pp/i,x12/2,pl/b,x0/10,s11,x6/14,s5,x11/2,s14,x4/1,s14,x5/11,s13,x2/0,pi/p,x4/10,s6,x11/15,pk/f,x5/9,pg/j,x7/8,pa/n,x9/11,pb/d,x3/7,s1,x4/8,pa/c,s14,x13/10,s3,x8/6,pj/p,x7/15,pl/e,s1,x1/3,s10,x7/5,s13,x10/14,pp/a,x12/15,ph/c,x6/9,s5,x7/10,pd/j,x3/2,s12,pn/l,x1/14,s12,x8/7,ph/e,x3/5,s3,x15/7,s13,x8/5,s11,x1/15,pa/j,x0/8,ph/o,s14,x9/12,pi/e,x14/5,s2,x0/12,s13,x4/9,pj/n,x6/2,s1,x8/7,pf/e,x11/5,pp/g,x10/13,pb/e,x8/4,s13,x1/15,s10,x8/11,pi/p,x10/6,pa/k,x9/12,po/b,x3/10,s2,x9/7,pd/c,x5/2,s11,x10/8,pa/k,x12/5,s12,x13/11,pn/b,x6/15,pp/e,x9/4,pb/n,x1/8,s5,x7/12,s15,x1/14,s6,x12/9,s8,x6/5,s11,x13/10,s3,x14/7,pj/o,x11/8,pl/e,s12,x14/13,s10,x1/15,s13,x5/0,pa/m,x3/13,s7,x6/4,ph/c,x7/13,pa/i,x8/12,s14,x5/9,pj/g,x8/14,pa/o,x9/13,s4,x3/14,s7,x10/8,s12,x15/5,s11,x8/13,s15,x15/1,s11,x3/6,s11,pb/k,x4/5,s3,x8/9,s2,x14/1,s1,x9/10,s13,po/c,x14/4,s9,pb/k,x5/6,pi/p,x10/9,po/l,x0/7,s6,x1/9,pf/e,s13,x12/11,s13,x1/0,s2,x2/14,pb/i,x11/12,pd/m,x3/6,pg/l,x2/15,s3,x3/8,s8,x10/13,pj/n,x0/15,s14,x7/3,pm/c,x1/9,s6,x15/13,s5,x0/7,s7,x14/8,pp/n,x6/1,s2,x13/15,s8,x3/7,s10,x11/13,s4,x10/0,pj/b,x12/8,s5,x4/14,s3,x9/6,pe/i,x14/4,po/a,x6/1,s14,x11/5,s4,x6/4,pb/p,x2/1,s4,x6/15,s15,x3/7,s7,x6/12,s4,x13/14,s7,pc/e,x6/5,pn/a,s10,x7/12,s9,x13/11,s3,x10/5,s13,x1/8,pe/c,x5/12,s3,x6/0,s7,x8/9,pi/f,s12,x5/12,pm/b,s5,x3/9,s8,x7/0,s10,x3/5,pc/e,x7/10,s15,x4/13,pn/h,x9/10,s9,x2/7,s1,pf/e,x9/15,s4,x7/3,s11,x14/2,s7,x12/6,s12,x10/8,pa/m,x7/4,s14,x13/2,pk/g,s10,x9/6,pj/h,x8/11,s12,x9/12,s4,x8/2,s14,x11/15,pk/c,x10/7,po/d,s10,x13/12,s10,x15/6,pp/h,x9/0,s8,x12/5,pf/i,x3/8,pe/c,s9,x13/0,s6,x3/12,pk/f,x4/0,s4,x5/15,s12,x4/14,s3,pi/j,x13/7,s3,pg/o,x4/2,pe/b,x15/6,s1,x7/2,s5,x0/3,s5,x11/6,s4,x14/9,s5,x15/11,s11,pg/o,x9/5,pb/c,x13/15,pp/l,x5/12,s15,x8/9,s11,x14/1,pi/m,x12/0,s4,x13/15,s14,x12/14,pf/c,x3/6,s1,x12/10,s11,x1/15,s1,x3/10,pd/b,x11/13,s12,x9/12,s12,x7/10,s9,x13/15,pe/i,x3/7,s9,x4/1,s2,x9/8,s6,x1/10,s4,x5/8,s7,x3/1,s9,x6/5,ph/m,x10/12,pi/k,x8/11,pa/p,x2/4,s8,x13/12,pi/n,x4/0,s9,x12/8,s5,x5/3,pb/g,x0/2,s12,x13/12,pf/k,x3/10,s5,x1/15,s12,x0/13,pn/o,x1/9,pi/d,s1,pa/m,x4/12,s7,x8/6,s3,x11/13,pj/c,x10/6,s4,x0/9,po/n,x10/7,pi/l,s8,pb/f,x2/14,pc/l,x11/4,s1,x2/12,s9,x9/6,pf/j,x14/13,s9,x3/7,po/k,x5/10,s3,x15/13,s15,x8/14,pm/a,x10/5,s4,x14/6,s10,x4/3,s13,x10/1,pl/k,x3/4,pd/o,x15/1,pl/p,x9/10,s14,x6/15,s9,x3/10,pc/i,x4/11,pm/e,x13/3,pk/l,s14,x2/7,pa/n,x4/6,pf/c,x7/11,pl/k,x3/5,pj/d,x2/14,ph/a,x4/10,s15,x9/1,pe/j,x5/10,s2,x11/6,s7,x14/13,s13,x9/1,s8,x3/12,s7,x11/15,s9,x12/2,s7,x10/13,s7,x6/9,s5,x5/11,pn/b,x13/3,s13,x12/1,ph/c,x14/10,pf/b,x3/9,pa/l,x13/4,pd/j,x10/6,s11,x8/12,pa/i,x11/0,s15,x13/1,s3,x7/5,pn/f,x4/11,pm/d,x9/10,pg/n,x12/4,pi/j,x3/5,pe/p,x13/8,s4,x7/14,s6,x10/11,pn/f,x7/9,s15,x0/1,s13,x12/2,s5,pp/k,x10/9,s5,x11/8,s3,x12/10,s1,x15/11,s10,x4/13,s2,x10/7,pn/l,s6,x15/12,pf/b,x10/13,pd/g,x5/0,pa/e,x12/4,pd/h,x3/10,s8,pp/m,x2/6,pa/h,x15/4,s15,x3/12,pj/e,x15/5,pc/f,x6/8,s2,x3/9,s3,x5/0,pl/a,x11/6,s2,x0/4,s3,x14/2,pg/h,x12/4,pp/k,x7/0,pm/c,x10/12,pn/l,x2/1,pm/e,x0/11,s7,x9/13,pg/f,x2/4,s10,x12/3,ph/e,x1/11,pl/f,x9/12,s8,x4/11,s14,x3/12,pm/p,x1/9,pe/j,x10/2,po/k,x9/13,s11,x8/1,pf/l,x12/10,s2,x7/1,s2,x12/6,s8,x1/7,pi/m,s3,x12/5,s8,ph/n,x11/10,s12,x7/4,s1,x6/11,s4,x3/2,s4,x14/8,pm/j,s11,x1/12,s1,x13/10,s8,x15/5,s11,x2/11,s15,x3/12,pl/f,x14/10,po/e,x13/1,s11,x7/10,s4,x9/3,pn/g,x4/7,pp/c,x10/14,pi/f,x5/6,s4,x1/2,pg/l,x11/13,po/b,x8/1,s3,x12/7,pd/m,x0/14,s9,x13/11,s14,x6/10,pl/b,x14/0,s3,x4/6,s5,x12/10,ph/m,x11/6,pb/a,x14/7,s9,x13/4,pe/p,x7/1,s7,x14/4,pl/c,x2/5,s4,x15/4,s5,x7/6,s11,x3/12,po/g,x6/11,s2,pl/b,x3/12,s10,x8/0,pc/f,s2,x4/14,s10,x2/15,s11,x6/1,s8,x13/7,pp/n,x9/5,pm/h,x0/6,pf/p,x2/10,s15,x1/14,s3,x12/11,s8,x13/7,po/b,s5,x4/0,ph/e,x12/11,pf/j,x6/7,s11,pc/d,x9/13,s14,x11/7,s11,x14/6,pa/i,x4/13,pc/h,s11,x15/5,s5,x12/10,s5,x7/0,pi/k,x13/8,pm/j,x1/7,s7,x8/12,po/h,x7/11,s15,x5/8,s13,x15/2,s10,x11/3,pn/m,x12/2,s4,x7/5,pd/o,x6/2,s4,x13/7,s4,x4/15,s10,pj/e,x6/14,pf/d,x11/10,s14,x6/1,s5,x10/12,s7,x0/15,s15,x1/12,pn/a,s11,x15/6,s8,x5/10,pe/g,x6/14,s10,x8/5,s2,x7/11,s7,x13/1,pa/j,x3/10,ph/l,x2/8,s11,x7/12,s14,x3/2,s11,x5/0,s12,pn/k,s15,ph/p,x3/12,pi/k,x7/10,s9,pe/c,x4/9,s11,x15/3,po/i,x1/10,s13,pb/a,x3/6,s12,x2/13,s5,pj/l,x7/6,pi/p,x0/8,s15,x10/1,s11,x0/5,s13,x11/6,s4,x8/9,s5,x14/4,pa/h,x9/8,s12,x4/3,pk/b,x7/0,po/j,x11/13,s9,x5/12,s10,x4/9,s15,x8/2,s10,x12/6,pp/k,x4/0,s10,x7/14,s8,x5/6,s4,x14/4,s2,x6/0,s9,x12/13,s12,x5/14,pa/m,s1,x12/9,pc/e,x0/8,s15,x12/4,s4,x5/6,ph/l,s14,x9/12,s9,pj/o,x1/0,s11,x10/13,s3,x0/11,s11,x2/8,pg/m,x7/4,s12,x2/12,po/p,s1,x3/13,pa/m,x9/14,s13,x10/1,s11,x0/5,pp/l,x1/13,s13,x4/15,po/f,x3/0,pd/p,s9,x6/8,pe/n,x13/14,s7,x7/0,s1,x15/2,s13,x12/8,s14,x4/15,pj/m,x1/6,pa/h,x7/2,pd/e,x11/8,s8,x2/4,pi/a,x6/0,ph/l,x7/12,s3,x6/5,pf/o,s5,x0/13,s6,x5/11,s13,x12/6,pp/c,x3/14,s3,x12/13,s3,x8/3,pm/k,x14/13,po/h,x11/9,s14,x6/10,pj/g,x1/7,s6,x6/11,pe/o,x12/9,pb/d,x10/2,s6,x15/9,pc/p,x2/13,pg/k,s10,x5/14,s8,x12/7,s7,x3/13,pf/l,x4/11,pn/c,x10/1,s12,x3/7,pp/g,s7,x5/10,pk/j,x4/8,pm/c,x7/15,s11,x11/12,s6,x1/4,pl/n,x11/12,s10,x13/7,s14,x4/12,pj/f,x11/14,s2,x9/15,pb/k,x6/1,pd/p,x11/4,s14,x7/3,po/h,x9/8,s14,x11/6,s14,x5/12,s14,x13/14,pd/i,x8/10,pe/l,x4/7,s14,x5/1,s7,pp/i,x11/10,ph/f,x13/8,pn/a,x11/15,s1,x6/8,s11,x9/3,s6,x10/12,s10,x11/7,s7,x1/8,s13,x3/14,s7,x5/10,s10,pd/i,x0/12,pg/m,x7/3,s13,x5/0,s11,x9/3,pl/f,x10/0,s5,x12/8,s14,x10/13,po/d,x1/3,s3,x7/13,pk/m,x3/4,s14,x8/5,pg/e,x10/14,po/n,x4/9,pg/j,s2,x11/3,s14,x8/1,s10,x4/2,s10,x11/6,pn/k,x15/14,s4,x6/9,pc/f,x10/14,s13,x7/9,s14,x6/0,s11,x12/15,pj/m,x13/4,s15,x11/1,pe/o,x2/13,pb/h,x3/4,s11,x8/11,s11,x6/7,pd/e,x11/3,s3,x0/5,s5,x9/13,pb/o,x1/12,s5,x0/8,s10,x9/7,s14,x10/11,s4,x7/3,s9,x9/4,pa/m,x8/7,s13,x15/11,s12,x1/9,s1,x3/5,s4,x11/14,s1,pc/l,x2/3,s6,pp/e,x7/15,pl/d,x13/4,s5,x8/7,s12,x14/2,s13,x12/15,s8,x13/11,s11,x12/9,s1,x13/4,pm/i,x9/3,s4,pg/e,x14/5,s7,x2/0,s13,x12/9,s7,x8/0,pc/f,x15/6,s11,x4/3,s13,x12/9,pp/g,x0/14,s10,x1/9,pc/j,x14/11,s15,x4/2,s7,x8/12,s7,x1/0,po/n,x11/2,ph/d,s5,x9/3,pm/j,x11/2,s12,x1/8,pk/f,x3/7,pd/b,x13/4,s5,x14/7,s11,x8/3,pa/g,s9,x2/7,s12,x3/10,s7,x2/13,s14,x0/8,pb/e,x10/13,s10,x9/3,s10,pm/i,x5/6,s15,pb/j,x8/0,s15,x10/5,pn/p,s10,x9/11,s11,x6/5,s7,x8/2,s13,x1/13,pj/c,x8/5,s8,x11/0,s5,x4/6,pd/k,x11/1,s9,x3/5,s11,x9/15,s14,x3/12,pm/p,x6/9,pa/l,x15/2,pd/f,x4/6,s10,x15/8,s3,x11/13,s4,x9/15,s2,x0/13,s9,x8/12,s3,x7/2,s12,x5/9,pk/p,x11/12,pg/l,x9/5,s9,x15/2,s12,x5/0,s11,x8/14,s15,x11/4,s8,x6/14,s4,x5/2,s4,x15/13,pf/h,x8/5,s11,x12/4,s13,x3/2,pm/d,s5,x12/11,pf/n,x8/13,pg/e,x5/14,pj/i,x8/2,s11,x9/14,pc/m,x11/3,ph/n,x13/10,s9,x6/1,s5,x0/13,pl/j,x14/8,pk/g,x15/2,s2,x5/14,ph/e,s8,x0/6,pb/j,x12/7,pp/h,x5/13,pf/a,s14,x7/0,pd/l,x13/15,s4,x5/10,s10,x1/15,s15,x8/6,s1,x3/11,s1,x10/6,s9,x12/7,pe/p,s5,x8/13,s9,x1/4,s9,x7/11,s12,x4/3,s14,x6/10,pb/m,s14,x2/11,pg/d,x10/13,pl/h,x6/3,s1,x10/11,s9,x5/6,pp/o,x4/3,s8,x11/8,s12,x4/1,s15,x3/11,s13,x4/14,s11,x13/9,pd/c,x1/5,s12,x6/7,pa/h,x10/13,s6,x4/3,s1,x8/7,s2,x11/4,s8,x3/10,s9,x15/11,s13,x1/14,pp/e,x8/6,s11,x0/12,pb/a,s6,x3/2,s11,x0/7,pe/f,x4/15,s13,x9/13,s1,x8/6,pi/l,x5/4,s11,x14/12,s15,x0/2,po/d,x12/13,pl/m,x3/11,s13,x15/6,s15,pf/e,x10/8,s13,x2/1,s3,pa/k,x14/12,pf/p,x10/3,s2,x9/15,s8,x2/3,s9,x1/13,ph/a,s11,x12/10,s2,pb/i,x2/15,s7,x10/6,s13,x12/5,ph/j,x2/3,pp/d,x7/5,s13,x0/11,pm/g,x14/9,s15,x2/12,s1,x11/7,s15,x15/3,pp/l,x2/4,pk/a,x3/5,s8,x2/4,s6,x7/10,pg/b,x2/6,pn/d,s10,x11/10,pj/e,x12/5,s15,x0/6,pg/f,s14,x15/7,s8,ph/i,x11/13,s3,x3/4,s6,x10/9,s15,x7/12,s5,x11/9,s9,x0/6,pa/b,x11/2,pf/o,x7/5,s13,x1/12,s5,x5/6,s4,x15/7,s8,x13/5,s9,x14/0,s4,x4/15,pn/i,s14,x0/12,s11,x15/1,s5,x13/4,pf/c,x3/1,s10,x2/4,s8,x12/9,pp/d,x15/0,s2,x13/10,pc/a,x2/12,s7,x4/14,s6,x8/1,pm/j,x3/6,s5,x4/11,ph/g,x6/14,s13,x9/5,s12,x3/11,s13,x4/14,s11,x1/9,s6,po/j,x8/7,s1,x2/10,s14,pe/n,x13/12,s4,pl/k,x0/9,s8,pn/e,x14/11,s9,x6/9,s10,x2/15,ph/j,x11/10,s11,x1/4,s14,x9/7,s13,x14/0,s5,x10/9,s6,x2/13,s15,pd/b,x4/6,s9,x2/3,pk/m,x4/0,s4,x10/2,ph/e,x12/9,s10,x6/4,s5,x1/12,pa/n,x9/4,s9,x8/6,pj/f,x9/3,s11,x12/15,pp/o,x3/13,pd/j,x2/5,s14,x11/13,s11,x9/15,s7,x5/14,s2,pc/i,x12/2,s7,x0/1,s12,pe/l,x14/7,s14,x15/0,s15,pd/i,x5/7,s8,x2/3,s7,x4/13,pg/e,x5/8,s11,x13/0,s2,x15/11,pc/l,x9/10,s14,x13/12,ph/o,x2/7,s7,x15/14,s5,x4/9,s1,pm/b,x7/11,s11,x9/4,pe/n,x12/7,s3,pk/g,x2/15,pb/n,s5,x13/8,pj/d,x6/10,pk/l,s4,x2/7,pg/c,x10/11,s11,x3/12,s9,x6/14,pm/k,x8/3,s5,x5/0,pn/o,x4/1,s2,x5/0,pc/k,x8/12,pa/b,x6/2,s5,pk/c,x13/5,pg/j,x12/7,s1,x10/8,s14,x13/7,pk/e,x9/15,s13,x10/0,s7,x9/15,s4,x12/3,s12,x10/14,s11,pm/h,s9,x0/3,pp/i,s4,x1/15,s5,x0/4,pc/d,x8/1,s3,x10/7,pf/a,x5/9,pm/l,x0/15,s4,x3/10,ph/p,x0/15,s1,x2/1,s7,x14/7,s7,x2/6,pn/m,x3/15,pj/p,s3,x14/0,s3,x13/6,pm/o,x0/15,s14,x4/10,s12,x14/0,s3,x9/4,s8,x10/12,pd/k,x4/5,s8,x14/7,pi/j,x0/5,s15,x6/9,pp/e,x2/1,pc/f,s7,x3/0,s2,x9/14,s10,x11/6,s12,x12/4,s15,x8/3,pp/l,x13/15,pd/o,x12/11,s6,x2/3,pl/e,x5/7,s1,x10/0,s2,x13/9,pb/p,x11/8,pd/h,x14/7,s2,x13/9,pk/g,x4/0,pa/m,x12/1,s10,x2/14,pg/d,s13,x8/9,pn/j,s4,x10/13,s5,x12/2,pk/e,x7/14,s12,x3/15,pb/d,x1/7,ph/i,x8/14,s8,x11/3,pm/k,x0/9,s9,x6/4,pe/c,x7/0,s11,x10/15,s11,x3/8,s9,x0/1,s3,x4/13,pp/i,x8/15,pn/k,x3/14,s7,x13/0,s5,x1/15,s9,x4/0,pe/c,x8/15,pa/o,x13/9,pc/h,x4/14,pg/a,x1/3,pl/o,x12/10,pk/g,x1/2,s4,x4/9,s1,x6/14,s12,pf/j,x3/4,ph/d,x11/6,s7,x10/1,s4,x8/2,s8,x12/3,s10,x9/10,s13,x5/11,s7,x12/3,s14,x0/8,s15,x4/12,pb/e,x11/13,pm/f,x10/4,s15,x2/12,pb/n,x9/5,s10,x2/6,pk/j,x3/10,pl/c,x2/1,pg/k,x9/8,pc/o,x1/4,pa/d,x3/11,s3,x10/1,s6,pl/c,x0/15,s8,x8/4,po/g,x15/1,s15,x6/14,s14,x3/4,pk/h,x6/0,s6,x5/12,s9,x13/11,s5,x4/15,pl/d,s8,x0/3,s6,po/k,x11/4,s11,x15/1,pm/n,x6/8,s7,x2/10,pa/b,s12,pc/f,x7/6,pa/i,x14/12,s14,x0/13,pn/f,s10,x10/5,s8,x15/14,s8,x12/7,pa/c,x8/14,ph/g,x2/6,s5,pc/d,x9/7,s10,x5/6,s1,x10/7,s15,x0/2,pg/p,x1/8,pj/d,s3,x9/7,pi/a,x4/12,po/d,x7/9,s13,x12/1,s15,x11/6,pf/i,x1/8,s4,x3/13,s5,pe/p,s1,x4/9,s5,x13/2,pf/n,x5/0,po/b,x3/15,s11,x2/1,s8,pm/e,x12/5,pc/f,x7/1,pk/a,s11,x13/12,s7,x9/15,s14,x1/11,s2,x15/10,pg/p,s2,x6/3,pb/f,s12,x14/2,pi/h,x7/3,s11,x11/9,s9,x5/3,pd/p,x2/11,s11,x8/0,s5,pa/j,x12/4,s10,x9/8,s3,x12/1,s1,pd/o,s3,x15/0,pc/n,x9/13,s12,x1/6,s6,x0/3,pg/l,x10/1,pk/e,x4/5,s1,x12/14,s2,pb/n,x0/2,s6,x5/12,s9,x7/6,s11,ph/m,s15,x0/14,s15,x8/5,pl/g,x9/3,s15,x0/12,s14,x14/10,s8,x4/6,s14,x10/8,s2,x11/12,s6,x10/3,s3,x6/12,s7,x15/5,s1,x9/2,s15,x13/7,pc/d,x3/15,pk/g,x8/10,po/e,x9/6,pg/b,x4/12,s5,x2/5,pf/c,x10/7,s3,x1/4,po/p,s5,x5/7,s6,x10/11,s12,x14/15,s9,x2/8,s5,pe/f,x1/11,pl/g,x10/9,ph/a,x11/13,s9,x12/15,pl/g,x8/1,s8,x6/10,s11,x12/7,ph/f,x0/2,s12,pj/i,s10,po/a,x1/9,s7,x3/11,pn/j,x13/12,s10,x11/14,s14,x15/9,s4,x1/7,s9,x0/11,s9,x14/1,s15,x11/9,pb/o,x12/13,pl/a,x7/1,s5,x3/2,s3,x13/15,s6,x4/14,pi/m,x7/0,s13,x11/14,ph/d,x13/3,pj/n,x11/0,s13,pk/e,x4/14,s15,x9/1,s2,x5/15,s4,x8/9,s8,x7/10,pi/l,x2/15,s3,pa/m,x1/3,s13,x10/8,ph/p,x14/5,pj/l,x9/7,pd/g,x2/14,s14,x5/6,pi/l,x13/1,pk/c,x0/2,s8,x13/3,pp/j,x7/4,s11,x9/2,s6,x10/8,s15,x14/1,s7,x7/0,pg/a,x11/15,s10,x2/5,pb/o,x14/12,s7,x7/10,s15,x5/14,s12,x7/1,s13,x3/2,s14,x4/0,pe/i,x9/14,pj/a,x0/3,pn/p,x13/7,pd/g,x0/3,pk/j,x2/14,pl/i,x6/3,s7,x0/1,s15,x8/11,s7,x3/10,pj/m,x8/1,s1,x13/4,po/c,x10/2,pf/h,s3,x15/8,s7,pa/o,x12/9,pp/h,x11/14,pl/i,x9/5,pa/n,s4,x0/15,s8,x1/12,pd/m,x13/6,s2,x8/5,pp/j,s15,ph/a,x0/14,s10,x4/12,s5,x1/14,s14,pn/l,x9/12,s5,x2/8,s14,x7/4,s1,x10/14,s2,x3/13,s15,x12/14,s13,x7/6,po/p,x15/2,s6,x7/1,s11,x14/2,s3,x15/12,s6,x0/3,s12,x11/12,s1,x15/8,pl/d,s7,x7/6,s13,x15/8,pn/h,x4/2,pa/i,x12/15,s8,x2/14,s12,pg/j,x5/9,pk/n,s15,x2/13,pj/p,s14,x8/14,s5,x12/13,s5,x15/10,s4,pl/h,x1/13,s10,x6/7,pd/g,x11/13,pa/n,x3/4,po/j,x13/6,pp/n,x15/7,pc/g,x11/1,s4,x4/14,pk/n,x5/13,pl/j,x3/14,pm/d,x9/8,s6,x14/12,pl/k,x7/8,pp/h,s4,x14/13,s8,x9/1,s3,x0/13,pg/j,x1/15,s1,x8/10,s12,x6/1,s5,pf/h,x14/9,pa/o,x6/3,s12,pc/l,x14/2,s8,x12/8,pj/m,x3/4,s5,x9/2,pe/l,x8/11,pf/n,x14/3,s11,x12/5,s7,x3/0,pe/j,x11/6,s1,x8/7,s6,x12/3,s8,x1/2,s14,x11/15,s1,x4/8,s10,x15/0,s1,x8/2,s2,x12/7,pm/i,x8/9,s5,x3/14,pj/g,x13/5,pl/h,x3/7,pi/e,x0/2,s4,x8/9,s10,x5/2,s15,x8/13,pm/g,x0/6,s7,x8/9,pp/c,s12,x11/15,pn/a,x3/8,po/f,x2/6,ph/i,x15/8,s8,x5/2,pe/f,x13/7,pl/h,s5,x5/8,s2,x3/1,pg/p,s12,pj/a,x13/12,s9,x4/0,s10,x7/10,pk/n,x4/15,pl/b,x12/9,s12,x5/3,pc/e,x13/4,s7,x1/7,pm/n,x9/12,pf/d,x2/14,s9,x13/3,po/l,x8/14,pk/b,x12/15,s6,pm/f,x8/2,pl/e,x9/4,s1,x8/1,pf/o,x0/11,pc/h,s6,x6/15,pe/o,x11/10,s6,x1/8,s9,x9/15,s2,x7/1,pg/l,x10/6,s10,x7/12,s14,po/i,x9/6,s11,x10/7,s1,x15/12,s7,x7/0,s14,x9/1,pd/a,x6/5,s9,x11/13,s6,x3/1,s10,x14/7,s8,x15/2,pn/k,x14/6,pg/c,x5/8,s3,x1/9,s13,x12/15,s7,x13/8,po/k,x14/9,s4,x4/13,pj/p,x14/5,s14,x0/7,s6,x1/2,s14,x15/11,pm/o,x0/8,s5,x4/9,s5,x10/11,pf/p,x8/12,s1,x11/13,s15,x1/0,pg/a,x10/9,s11,x5/12,pk/e,s4,x2/15,pc/j,x4/10,s11,x0/14,s15,po/g,x7/3,s6,x15/1,pp/b,x5/12,s9,x9/14,s1,x11/7,s8,x0/14,pa/n,x9/11,s11,x0/10,s11,x15/11,s1,x3/14,s1,x1/0,s13,x6/2,s15,x3/4,s3,x7/12,s6,x1/6,s5,x12/11,pm/f,x4/9,pg/l,s15,x0/6,s12,x1/14,pi/j,x4/0,s4,x13/10,s11,x3/15,pm/g,x10/0,pf/c,x3/13,po/h,x10/0,s14,x8/5,s6,x11/12,pd/p,x13/10,ph/e,s1,x8/3,s7,x1/11,s1,x13/3,po/c,s14,x4/12,s9,x5/7,s8,x4/1,s9,x9/10,s14,x3/8,s1,x15/5,pd/k,x1/7,s12,x14/11,s3,x3/6,pe/j,x4/14,s4,x7/0,po/c,s10,x1/9,ph/d,x12/4,pf/o,x5/13,pl/j,x15/1,s14,x4/13,ph/b,x14/11,pi/m,x15/2,pn/k,x9/13,ph/p,x10/7,s11,x4/9,pc/l,x5/15,pe/a,s4,x4/8,s6,x13/0,pn/i,x14/3,s5,x1/9,pl/o,x10/12,s13,x11/0,s14,x15/3,s9,x6/0,pa/b,x3/14,s10,x6/7,s1,x14/9,pg/d,x8/12,s9,x4/14,pl/j,x8/3,pf/a,s13,x2/5,po/l,s4,x0/3,pp/f,s2,x15/11,s5,x9/6,s13,pn/k,x4/2,pc/l,x9/14,pk/d,s2,x6/1,po/a,x12/3,pg/j,x0/6,po/l,x12/7,pp/a,x1/6,pm/g,x15/11,s10,x5/7,pf/p,x12/10,pg/k,x9/11,po/b,x0/1,s12,x10/7,pf/c,x13/11,s9,x3/1,s14,x14/6,s8,pk/g,x9/2,s13,x7/4,pj/l,x8/6,po/m,x0/7,s15,x13/15,s3,x7/5,s8,x3/12,pk/d,x10/1,s13,x0/7,s14,x6/14,pl/h,x4/8,s12,x3/7,pg/m,x9/14,pi/p,s15,x10/6,pd/c,x13/9,po/b,x10/3,pp/m,x15/11,pd/j,x13/3,s6,x6/15,ph/k,x0/2,s7,x11/6,s2,x15/7,s10,x3/13,s14,pl/c,x4/12,pe/g,x1/8,pp/j,x2/15,ph/c,x4/3,pk/n,x7/5,s3,pj/c,x10/14,pb/f,x0/2,s4,x1/7,s9,x15/13,s7,x10/2,s10,x11/8,s7,x1/2,s3,x10/15,pj/k,x11/6,pd/n,x13/1,s14,pb/o,x10/3,ph/i,s2,x7/13,s11,x14/0,s3,po/b,x12/9,pl/f,s1,x6/13,s1,pa/b,x14/4,pd/m,x1/0,s14,x3/4,s5,x1/11,pf/j,x12/15,pm/o,x1/6,pb/d,x14/5,s7,x11/3,s3,x6/7,s8,x9/10,po/j,x13/1,s3,pl/b,x14/3,pa/k,s5,x9/7,s11,x4/5,s14,x13/11,pj/p,x14/1,pg/c,x15/8,s14,x0/11,s8,pf/h,x2/1,pa/g,x11/0,s1,pn/o,x4/1,s9,x3/5,pc/m,x11/4,s2,x2/12,pp/e,x11/7,s8,x6/3,pi/k,x7/12,s12,x1/11,pe/n,x14/10,po/h,s6,x9/8,s13,x11/15,s9,pd/c,x7/14,s4,x12/15,s2,x1/13,pa/b,s15,x5/2,s10,x6/7,pg/f,x12/8,pe/d,s3,x4/11,pc/j,x9/13,s9,x15/10,s15,x8/11,pd/l,x13/9,s8,x11/4,pp/c,s15,x9/14,s8,x8/15,pg/o,x11/7,s14,x10/2,s7,x4/12,s12,x3/13,pb/e,x7/6,s2,x1/14,po/g,x15/8,ph/m,x9/7,pg/e,x8/13,s2,x1/14,pl/f,x9/12,pp/o,x3/13,s4,x10/15,s10,x4/1,s8,x9/3,pg/m,x1/4,po/h,x8/11,pd/i,x14/2,pp/n,s11,x11/6,pi/o,x10/13,s3,x5/7,s13,x1/15,s8,x7/5,s2,pa/l,x1/10,pn/j,x15/13,s12,x0/4,pf/o,x11/12,s12,x13/2,s3,x7/8,s9,x6/5,ph/p,x13/14,pf/i,x7/8,pb/k,x13/9,s3,x11/14,s3,x4/12,pe/a,s6,x9/8,s5,x6/3,pf/o,x9/8,s15,x14/15,s5,x6/1,s3,x10/7,s9,x11/9,s10,pg/m,x2/4,s9,x11/13,pi/d,x8/10,s11,x15/12,pg/a,s15,x8/2,s15,x10/12,s13,x8/1,pb/p,x12/9,s2,x7/4,s1,x8/13,s3,x10/3,pd/m,x6/13,s5,x14/0,s4,pj/o,x6/5,s7,x13/9,s13,x5/15,pf/a,x4/0,s7,x3/13,pg/j,x8/2,pn/a,x12/13,s3,x4/10,s1,x0/2,s5,pk/g,x15/10,s5,x14/7,s9,x9/4,pi/n,x1/2,ph/l,x5/0,pf/c,s1,x2/14,s6,x4/13,pe/j,x12/15,pc/d,x13/9,pn/e,x6/12,pm/b,s11,x0/2,s11,x3/12,s6,x9/2,s9,x7/3,s13,x1/5,s5,x10/8,s5,x14/3,s3,x11/15,s1,x10/0,s10,x7/3,ph/g,x15/14,s1,x9/2,s14,x11/10,pf/i,x4/12,pc/n,x11/13,s15,x6/1,s3,x0/7,s1,pk/p,x11/8,pc/a,x0/6,s6,x12/7,s14,x5/11,s14,x1/15,pg/h,x3/2,s7,x10/7,s8,pi/k,s10,x3/5,s8,x7/2,s12,x4/1,pb/p,x14/3,pd/k,x4/6,s12,x1/5,s6,pc/f,s11,x4/8,pm/k,x12/7,s1,ph/n,x0/10,pb/d,x11/6,s15,x13/1,s11,pk/j,x4/14,pd/n,x1/11,s14,x9/15,s2,x1/5,s12,x13/7,s4,x0/11,s2,x7/9,s13,x8/12,pm/e,x7/5,pa/n,x8/1,pf/p,x9/14,s9,x7/2,pj/m,x12/15,po/b,x7/11,s12,x2/0,s7,x9/1,s2,x15/11,s2,x12/1,s6,x6/4,s7,x1/10,s9,x13/15,pl/g,x2/12,pk/n,x9/3,pf/o,x6/5,s11,x9/15,pe/n,s3,x1/13,pi/l,x15/9,pd/p,x13/7,ph/n,x10/4,s3,po/c,x6/15,s6,x8/11,pj/f,x3/9,s10,x10/12,pn/b,x11/9,pf/p,x1/15,pi/l,s12,x13/2,s2,x3/15,s5,x0/6,s3,x2/12,s10,x0/15,s4,x2/14,s1,x1/10,pc/k,s13,x2/8,pf/m,x1/14,pe/l,x0/5,s8,pp/d,x2/4,s2,x12/5,s10,x7/8,s10,x3/0,pb/i,x6/1,pd/h,x5/15,pg/i,x1/2,s13,x14/5,s6,x7/10,po/c,s5,x1/12,s15,x4/14,s4,x0/6,s13,x10/14,s2,x6/8,s13,x2/7,s3,x15/0,s4,pj/l,x5/6,s14,x8/12,pf/k,s14,x4/5,pi/n,x2/8,s11,x10/9,ph/b,x3/15,s6,x12/0,s4,x13/8,s7,x14/7,s3,x5/2,s1,x9/13,pl/d,x11/5,s6,x9/10,pi/k,x6/14,s12,x4/7,s6,pc/h,x10/2,pm/a,x7/4,s3,x3/10,s4,x15/4,pd/j,x10/2,s12,x13/4,s1,x9/11,s4,x8/3,pa/e,x15/2,s3,x0/4,s8,x3/11,s7,x15/8,s14,x10/6,pg/l,x9/11,pf/n,x8/4,s14,pd/g,x11/5,s3,x10/8,s12,x14/3,pc/f,x13/5,pe/p,x11/6,s1,x2/4,pf/b,s1,x12/11,s3,x2/6,s15,x4/11,pm/o,x0/14,pe/c,x9/5,s11,x12/4,pb/l,x1/3,pj/f,x10/5,pd/i,x1/14,s10,x9/6,s4,x15/3,pa/g,x4/8,pi/j,x14/11,s13,x15/0,pc/o,x11/3,s13,x2/14,pb/p,s3,pa/k,x12/0,pb/e,x8/7,s9,x4/15,pg/d,x1/2,s11,x0/12,pf/m,x5/8,s11,x0/9,pl/a,x4/2,s12,pm/o,s8,x9/7,ph/f,x10/5,pm/n,x6/14,pp/h,s14,x8/13,s6,x0/10,pk/f,x9/6,s12,x0/5,s14,x7/11,s10,x4/10,pa/g,x1/12,s2,x5/15,s14,x12/6,pf/n,x15/3,s2,pd/j,s2,x8/0,pa/l,x13/4,pg/c,x7/2,pp/b,x14/3,s10,x1/0,s8,x3/13,po/m,x2/0,pd/e,x14/8,s10,x5/3,s13,x0/7,pj/l,x9/3,pf/m,x5/10,pd/i,x9/1,s6,x4/8,s8,x11/5,s10,x2/9,s6,x10/15,s3,x5/9,s12,x8/15,s5,x5/7,pf/e,s13,x8/4,s9,x1/12,s7,x7/6,s9,x14/9,s15,pl/n,x3/6,s5,x4/15,pb/i,x12/13,s4,x7/4,pj/m,x3/13,pe/i,x14/7,pc/d,s12,x10/2,s2,pe/a,x5/14,pg/o,x7/6,s11,x10/8,s1,x6/5,pd/a,x9/10,s4,x3/7,pb/c,x12/4,ph/e,x10/7,pd/n,x5/3,pp/j,x12/1,s14,x7/4,ph/d,x12/5,pb/g,s7,x8/4,s3,x2/9,s2,x13/11,pm/h,x9/0,pi/g,s7,x13/3,s13,x6/4,s3,x3/2,pb/e,x9/10,s15,x11/13,s4,x3/0,s3,x13/2,pa/h,x15/12,s3,x13/11,s8,x7/0,s6,x14/4,pf/b,x1/13,s15,x12/3,pj/p,x1/11,pa/e,x6/9,s7,x2/15,s1,x8/5,s6,x11/14,po/n,x12/5,s4,x1/2,s3,x0/7,s10,x12/3,s8,x11/2,s14,x4/1,s9,x13/3,s3,x5/8,pb/e,x14/10,s6,x1/6,s3,x13/10,pd/g,x8/15,s5,x1/3,pf/n,x12/5,pj/e,x2/7,s1,x15/12,s12,x0/3,s14,x10/6,s13,x8/11,pc/l,x10/13,pa/h,s7,x12/8,s7,x2/5,po/d,x11/14,s14,x5/10,pa/m,x9/15,s5,x7/1,s12,pc/e,x4/6,pn/p,s5,pa/m,x5/9,pd/p,x12/11,pa/e,x6/10,pb/l,x4/3,s4,x1/5,s5,x6/13,s12,x1/14,s14,x9/0,pk/f,x2/14,s9,x3/7,pe/a,s2,x11/6,s3,x1/15,s4,pf/o,x11/9,ph/b,x14/10,s7,x8/13,s13,x15/0,po/n,x5/2,pe/k,x1/8,pb/n,x4/7,pf/p,x0/13,pl/o,x1/3,pk/c,x11/5,pn/l,x8/3,s13,x0/1,s14,pi/o,x6/14,pc/a,x10/7,pm/h,s4,x2/3,s7,x12/6,s4,x15/7,s6,x4/0,s12,x5/6,pj/d,x10/4,s11,x0/12,pb/p,s15,x3/1,s14,x6/4,pl/d,x5/1,s12,x12/7,pk/g,x14/10,ph/a,x15/1,s2,pc/l,x9/5,pk/f,x11/1,s14,x6/5,pg/n,x15/9,pp/m,x13/7,s1,x12/8,s9,x11/9,pn/b,x12/7,s7,x15/9,s2,x14/4,s9,pc/i,x2/9,s13,x15/1,po/f,x10/14,s15,x4/2,s12,x5/13,s13,x9/3,s1,x14/4,pk/b,x6/3,s11,x12/4,s9,x2/0,pm/i,x10/11,pf/o,x0/7,s4,x13/8,s5,x14/11,pi/d,x12/10,s15,x4/2,s4,x9/1,pk/e,x15/8,s14,x13/0,pl/n,x5/4,s7,x8/12,pe/c,x1/4,pn/k,x13/6,s5,x4/9,s15,x7/11,s6,x12/3,s15,x5/4,s5,x1/9,pp/j,x3/7,pc/h,x11/5,s15,x2/13,s2,x8/6,pe/k,x14/12,s2,x10/5,po/i,x4/1,s11,x2/6,pj/l,x7/11,s7,x13/9,s2,x14/11,s2,x2/6,pi/c,x5/14,pl/n,x3/1,pp/k,x0/12,pi/e,x13/10,s4,x9/7,s12,x11/4,s5,x7/2,s3,x9/12,s3,x2/13,pf/c,x12/3,s9,x4/6,ph/p,s5,x14/2,s14,x4/9,s10,x6/14,s9,x7/1,pf/l,x6/2,pk/n,s12,x15/12,s4,x7/10,s1,x14/4,ph/a,s8,x2/1,s8,x3/13,s13,pg/b,x10/6,s2,x5/4,s9,x13/14,pj/l,x1/5,s10,pk/i,x0/14,pb/l,x11/5,s10,x14/8,pc/k,s13,x2/15,s3,x3/7,s12,x4/14,s2,x12/7,pi/d,x1/14,s14,x8/7,pj/h,s10,x2/4,s12,x11/15,pc/b,s14,x13/5,s13,x2/4,s14,x10/0,s6,x11/3,s13,x8/5,s14,x7/12,s3,x8/11,pa/p,x9/10,s14,x8/14,s12,x6/10,s6,x13/3,s7,x7/5,s3,x13/3,s8,x4/8,pl/i,x3/0,s8,x13/8,pm/o,x7/6,s1,x5/9,pb/k,x2/7,pm/h,x5/6,pa/j,x9/2,pi/m,s11,x6/4,po/c,x0/9,pb/d,x4/14,pc/k,x5/10,pb/a,x6/2,s12,x0/9,s7,x5/3,s6,x2/12,s1,x3/9,s12,x13/0,s12,x5/6,pj/o,x15/9,s9,x4/13,s7,x3/0,s3,pp/n,x9/8,s1,x6/1,s2,x12/8,pl/g,x10/4,s14,ph/o,s1,x3/15,pc/k,x10/6,pl/d,s3,x5/11,pf/e,x1/15,pa/h,x6/13,pl/p,x4/12,pg/h,x0/3,pb/i,s14,x2/6,s5,ph/a,x7/9,pk/i,x8/14,s12,x9/0,po/h,x12/1,pm/g,x7/13,pl/b,x2/14,s1,x7/10,pd/k,x15/11,s14,x5/2,pp/f,x14/8,pa/h,x12/5,s8,x6/9,s13,x4/12,s15,x2/5,s5,x13/0,s3,x9/8,s7,pp/e,x0/10,s5,pi/h,x4/6,s4,x15/11,s7,pa/p,x5/4,s13,x0/1,s7,x12/10,s8,x8/13,pb/i,s1,x0/3,s1,x14/7,pp/a,x15/11,pg/d,x14/8,s13,x1/13,pc/m,x15/12,s15,x11/7,s11,x2/5,s7,x9/10,pi/d,x5/7,s8,x15/11,s8,x6/4,s3,x1/0,pn/j,x6/12,s4,x1/13,s5,x15/5,s11,x4/6,pf/i,x12/2,s14,x15/1,s11,x8/2,pn/a,x14/5,s15,x1/2,pl/i,x5/0,s9,x11/1,pg/m,x3/14,s1,x12/6,s10,x13/3,s11,x8/4,pb/i,x11/3,s6,pn/l,s7,x5/0,pp/k,x4/15,s7,po/d,x13/6,s6,x9/5,s11,pc/g,x7/15,pm/i,x9/8,s2,x13/2,s4,x10/12,ph/n,x2/0,s5,pi/c,x5/8,pp/h,x7/14,pd/k,s7,x9/15,pp/j,x4/0,s6,x14/5,s8,x11/3,s10,x4/13,ph/i,x15/9,pn/k,s12,x10/2,pd/o,x7/3,pn/f,x2/15,ph/j,x0/11,s12,x15/1,s12,x12/7,s4,x10/11,s15,x8/5,s12,x14/2,pg/o,x7/6,pa/i,x10/4,s5,x13/9,s4,x10/6,s6,x14/15,s15,x5/3,s14,x0/6,pk/l,x10/11,pn/m,x0/15,pd/o,x9/7,ph/k,s5,x5/8,s5,x14/9,pe/i,s13,x10/8,po/a,x9/5,pe/d,x15/2,s14,x13/3,pc/p,x6/1,po/n,x8/3,s15,x9/6,s9,x12/3,s12,x15/0,s9,x5/2,s4,x0/15,pb/c,x13/7,ph/d,x8/6,pf/b,x12/5,s5,x8/9,s4,x14/15,s15,x12/1,s10,x15/0,s14,x1/10,s3,x13/11,pm/g,x9/12,pf/c,x15/8,s6,x0/3,pn/o,x12/4,pk/c,x11/3,s5,x6/4,s6,x1/5,s13,x4/14,pe/g,x10/0,s4,x6/11,s8,x5/12,s2,x11/7,s14,x6/3,s4,x14/1,s11,x5/15,po/c,x10/9,s7,x8/11,pb/g,x2/4,s8,x12/8,pe/j,x9/3,pi/d,x0/15,s7,x6/10,s11,x7/5,pk/m,s7,x11/2,po/b,s8,x0/8,pa/k,x15/6,pg/m,x11/2,pb/n,x8/3,s7,x2/6,s15,x12/8,pk/o,s3,x0/4,pl/p,x14/15,pc/m,x8/4,s1,x14/10,s14,x4/9,pa/o,s14,x2/12,s3,x8/6,s7,x4/14,s5,pi/g,x10/0,pp/c,x7/3,pm/k,x6/8,s2,pe/g,x2/1,s7,x15/3,pb/d,x8/11,pp/f,x13/7,pj/m,s12,x0/10,s9,x11/6,s13,x2/10,s12,x9/12,s11,pk/o,x1/2,pm/p,x6/14,pb/d,x3/13,s9,x1/0,s8,x11/12,pc/o,x2/8,s12,x7/5,s1,x15/14,pk/i,x13/9,pe/o,x7/4,pf/i,x10/14,s2,x4/6,s14,x9/0,s10,pd/k,x7/8,s12,pg/l,x11/4,s2,x9/15,s4,x1/6,s8,x10/13,s9,x1/12,s14,x0/7,s9,x2/11,s8,x0/15,s11,x4/6,s3,x7/14,s8,x4/10,pc/e,s8,x15/13,s9,x6/0,s15,x11/8,s14,x12/3,s8,x11/10,s1,x4/14,s1,x13/1,s5,x5/10,ph/m,x1/0,s12,x8/6,s7,x4/0,pp/n,x15/14,pk/d,x6/4,s15,x13/0,pe/n,x1/6,s2,x7/0,pb/k,x9/5,pp/m,x8/13,pi/l,x6/10,s1,x14/7,s8,x12/2,s15,x5/3,po/d,x7/9,s13,x14/15,pm/g,x11/8,po/i,x15/5,pg/n,x11/2,s10,x6/9,s5,x4/1,s4,x13/12,pb/e,x11/3,s11,x8/7,s7,x1/4,pf/l,x14/7,pb/e,x12/1,pp/c,s15,x5/14,s11,pe/a,x9/1,pb/o,x6/11,s15,x8/7,s2,pn/a,s14,x14/12,pd/o,x9/10,s1,x3/2,s2,x5/10,s9,x12/2,s15,x10/8,s6,pn/m,x15/11,s3,pd/c,x3/5,pe/h,x13/8,pd/a,s14,pn/f,x3/14,s1,x5/9,s13,x3/2,pk/h,x0/11,pl/m,s4,x14/5,pi/k,x6/7,pa/e,x11/2,s12,x5/0,s5,x14/6,s6,x10/13,s5,x3/1,s13,x2/8,s3,x3/13,s10,pj/k,x0/12,pi/b,x10/5,s10,x9/6,pa/g,x5/12,s10,pf/i,x6/15,s14,x5/7,s7,x13/9,s1,x6/11,pn/g,x14/1,s8,x4/11,s8,x13/15,ph/o,x9/3,s8,x12/6,s11,x1/0,pi/j,x3/7,s1,x1/0,s11,x14/12,pk/h,x15/6,pe/m,x9/11,pj/i,x7/1,s11,x10/13,s8,pp/o,x5/8,s8,x14/13,s5,x10/4,pb/m,s10,x9/14,s9,x5/13,s12,x11/8,pl/a,x0/3,s5,x15/1,pb/d,x12/9,pg/f,x4/10,s6,x12/13,s14,pp/j,x4/6,s9,ph/d,x2/7,pm/c,x5/13,pj/b,x12/9,pn/o,x10/8,s3,x11/0,pp/e,x2/4,s7,x11/12,pj/h,x5/8,pn/e,x11/3,s5,po/k,x0/9,s8,x15/1,s2,x5/14,pa/g,x9/12,pd/k,x6/8,pc/p,x3/10,pg/n,x15/4,s12,x1/3,pk/e,x8/7,s8,x3/2,pd/f,x14/0,s10,x1/10,s14,pl/o,s14,x5/13,pc/a,x9/8,s2,x15/3,s3,x1/7,pb/j,s6,po/f,x5/15,pm/e,x14/2,s5,x11/8,pd/b,x10/3,s8,x6/1,s1,x8/9,pf/p,x6/10,s12,x1/4,s15,x12/7,s1,x2/4,pe/d,s7,x1/5,pm/a,x6/8,s11,x1/12,s11,x6/4,s2,x2/5,pd/j,x7/11,pb/g,x0/14,s15,x13/1,po/l,x10/6,pp/m,x0/13,pb/o,s11,x9/4,s14,x5/1,pi/l,x12/8,s1,x15/1,ph/k,x12/3,s8,x13/1,s10,x8/5,pg/a,x7/11,s12,pb/n,x3/1,s5,x5/4,ph/p,x9/10,pl/n,x11/14,pb/e,x1/4,po/h,x14/10,pn/d,x13/9,s10,x14/4,s7,po/a,x8/1,s11,x9/3,s15,x15/11,pp/m,x6/10,s9,x2/3,pn/f,x7/6,pp/m,x14/11,s11,x6/7,s14,pg/k,x10/15,s3,x1/13,s6,x0/9,pm/a,x10/14,s5,pf/h,x15/9,s12,x12/2,pk/b,x14/7,pm/e,s15,x15/13,s7,x3/9,pp/a,x12/1,s9,x10/0,pk/d,x7/13,s1,x2/0,s4,x10/4,pm/h,x11/8,s9,x15/5,s2,x0/2,s15,x6/1,po/i,x5/9,pa/f,x11/13,s6,x0/7,s1,x11/3,pi/k,x9/7,s3,x6/13,s1,x4/8,s8,x10/13,pj/n,x9/1,ph/b,x14/0,s7,x11/7,s15,x8/10,s11,x12/0,pj/g,x6/15,pb/a,x2/1,s10,x8/0,s10,x10/14,pl/p,x13/15,s5,x12/0,s3,x15/1,s13,x9/6,s7,x0/5,s14,x13/1,s5,x9/0,s1,pj/c,s14,x7/10,s15,ph/o,x4/15,s9,x0/2,s8,pe/d,x12/6,s7,x2/1,s6,x11/15,s1,x0/8,ph/k,x3/13,s11,x9/8,s15,x5/15,s15,x1/3,s13,pg/i,x10/5,pb/c,s15,x2/7,s12,x11/13,s3,x7/6,pd/l,x13/1,s9,x14/15,s6,x10/3,s5,x5/4,s4,x11/8,po/p,s8,x1/4,s10,x9/12,s12,x11/13,s13,x15/1,s8,x4/7,pb/j,s9,x15/13,s1,x2/7,s6,x3/5,s14,x12/6,s6,x9/0,s15,x4/13,pk/e,x0/7,s10,po/g,x11/9,s8,x7/12,s6,x5/13,s6,x11/14,pj/d,x8/3,s10,x1/14,s7,x9/10,s9,ph/o,x6/7,pk/g,x8/14,pf/p,s2,x0/1,s9,x15/10,po/c,s6,x8/2,pk/b,x11/14,s7,x8/13,s1,x4/12,s3,pc/h,x8/2,pm/e,s9,x4/6,pk/a,x15/10,s9,x8/14,pe/p,x10/11,s13,x1/2,ph/k,x6/11,s6,x15/8,pm/d,x3/14,pl/n,x8/0,s14,x7/12,s5,x15/1,s7,x0/5,s15,x13/9,s8,pd/j,x4/14,ph/e,x0/13,s1,x4/9,s7,x3/8,po/n,x12/5,s9,x7/10,pi/m,x12/5,s2,pn/f,x0/9,ph/i,x10/5,pg/l,x12/0,pe/o,x2/1,pf/i,x9/12,s8,x14/1,s2,x10/4,s1,x13/7,s7,x2/3,s8,x10/11,pp/g,x15/12,s1,x8/10,pb/i,s12,x14/9,po/f,x11/7,s10,x3/12,s13,x6/5,pd/a,x13/10,s10,x2/8,pj/n,x3/6,s4,x5/11,pb/d,x9/14,s8,x10/11,pi/c,x13/2,pp/d,x8/6,s11,x0/3,s13,pc/m,x6/14,s5,x10/7,s2,x14/11,pf/a,s15,x15/4,s12,pg/l,x2/1,s11,x10/3,s1,pp/o,s7,x4/12,s12,x1/3,s4,x14/9,s14,x8/1,s5,x15/4,s14,x13/12,pa/b,s14,x1/4,s6,x3/6,pc/o,x2/11,s10,x12/10,pd/g,s4,x11/4,s7,x10/2,pe/k,x6/8,pm/c,x13/14,s5,x1/9,s3,x2/4,pd/h,x8/10,s7,x1/14,s14,x13/7,s6,x6/3,pi/f,x5/8,pn/g,s10,x14/3,s12,x11/1,s5,x13/6,po/f,x3/12,pk/i,x6/11,s9,x15/3,s12,pp/j,s14,x14/4,s5,x2/10,pi/n,s13,x6/13,pe/f,x14/4,s5,x6/15,s8,x8/3,s9,x13/9,s10,x14/0,s7,x6/13,s5,x4/11,s14,x1/0,pa/k,x4/14,pi/c,x6/8,s12,x4/12,s15,x14/10,s10,x0/12,s6,x10/5,pn/h,x15/2,s2,pk/o,x12/11,pb/c,x9/0,pi/o,x14/5,pc/n,x9/0,pe/m,x2/8,po/g,x14/10,s10,x6/0,s1,x12/15,pe/i,x11/3,pk/f,x12/15,pc/b,s2,x14/2,s8,x10/9,s14,x7/5,s12,x8/14,pn/m,x7/4,pj/g,x11/3,pa/m,x6/12,pc/n,x15/4,s4,x0/2,pd/m,x13/9,pe/o,x6/3,pf/l,x10/11,s12,x1/3,s13,x11/6,s12,x9/10,s15,pk/h,s14,x12/14,pj/p,s14,x13/1,s1,x4/11,s15,x2/7,s8,x13/4,s15,x8/7,pg/d,x11/0,s14,x4/5,pc/b,x9/6,s15,x0/13,pn/g,x11/12,s12,x10/13,s13,x12/8,s5,x10/14,s7,x7/4,s15,x15/3,ph/m,x11/8,s12,x12/0,s13,x2/8,s14,x9/14,s15,x7/3,s8,x14/5,pa/g,x9/13,pn/e,s7,x3/4,pk/a,x5/9,s6,x6/7,s14,x3/10,pn/i,x4/2,pp/d,x10/13,s10,po/b,x11/6,s7,x9/4,pl/c,s13,x11/14,s15,x15/4,s7,x3/2,s6,x6/11,pg/d,x1/8,pl/p,x15/3,s1,x10/5,pk/i,x12/7,pc/j,x3/2,ph/n,x13/5,pg/f,x8/12,s4,x3/2,s8,x9/12,s13,x13/15,pc/l,x14/1,pn/m,x2/12,pb/j,x0/1,s3,x2/10,s4,x12/14,s4,x0/9,pn/d,x11/6,s1,x0/8,s10,x11/5,pg/f,x10/2,s4,x12/11,pn/o,x1/15,pe/c,x10/14,po/h,x0/6,s2,x5/8,pg/m,x3/14,s14,x12/13,s3,x11/3,pb/k,x14/7,s1,x8/6,s3,x13/5,po/m,x4/0,s5,x14/3,pi/b,x13/0,s6,x6/5,pg/h,x2/10,s13,x3/0,s6,x4/10,pp/o,x6/14,pn/d,s13,x12/5,pl/c,x6/11,pp/h,x9/0,pk/b,x3/2,s9,x15/11,pn/p,s1,x12/7,s6,x13/10,pa/e,x7/12,s9,x2/0,s4,x7/1,s14,x12/8,s5,x0/15,s12,x11/5,s3,x8/14,pj/f,x13/9,s1,x7/3,s3,x8/6,pl/e,x9/11,s8,x4/13,s10,x5/3,ph/j,x9/10,s14,x3/15,s13,x11/10,s9,pa/g,x0/2,pi/h,x13/15,s13,pg/e,x0/1,s9,x7/11,pk/l,x1/10,pd/j,x2/0,pf/b,x15/10,s11,x3/14,s12,x11/2,s6,x4/12,s7,x11/1,s9,x8/9,pl/e,x0/11,s6,x7/14,ph/g,x2/5,s8,x12/11,s7,x15/6,s9,x11/7,pm/n,x14/10,s15,x11/1,po/j,s10,x8/9,s6,x11/0,s2,pi/a,x14/7,pe/f,s7,x11/2,s12,x8/1,s11,x3/10,s11,x6/12,s10,x11/15,s12,x7/14,s2,x11/0,ph/g,x13/3,s12,x14/2,s4,x3/10,s5,x7/0,pk/a,x15/1,s3,pi/n,x4/10,s10,x11/8,s4,x0/6,po/h,x13/2,s3,x0/5,pl/j,x15/4,ph/n,x8/12,pe/a,x10/3,s9,x7/12,s13,ph/f,x13/9,s1,x11/15,pe/p,s5,x0/6,s9,x15/4,s3,x6/2,s8,x13/8,s13,x3/4,s2,pm/k,x7/6,pa/f,x2/1,s4,x13/4,ph/d,x8/10,s9,x1/13,pe/f,x6/4,pp/a,x11/0,s14,pd/g,x1/9,s4,x3/15,s13,x7/6,pe/i,x9/4,s1,x10/6,s11,x13/9,s13,pf/n,x3/7,s12,x4/0,s2,x6/3,s15,x9/0,pj/c,x11/15,s6,x13/6,s2,x11/15,s13,pd/o,x4/8,pa/g,x6/9,s4,x4/13,s12,x1/5,pi/n,x7/12,s3,x1/13,s7,x0/9,s2,x13/2,po/m,x12/5,s3,x9/8,s2,x14/4,s10,pd/l,x5/12,pg/e,x1/4,s9,x15/9,pi/c,x7/3,ph/a,s10,x11/0,s13,x8/14,pc/j,x4/2,pp/k,s9,x6/11,pl/c,x9/14,po/d,x3/15,ph/j,x8/14,s15,x6/0,pn/g,x1/11,po/h,x10/8,s6,x0/13,pk/i,s12,x7/15,pf/a,x3/5,s8,x11/12,s2,x14/5,s1,x1/10,pe/h,x0/5,s13,x13/15,pc/n,x2/4,pp/i,x11/8,s10,x10/15,s15,x3/0,pd/k,s1,x1/13,po/j,s9,x7/14,pp/g,x11/1,s6,x3/15,s8,x13/1,pj/e,x0/9,pp/g,x2/8,s1,x12/4,po/a,x15/5,pj/k,x14/10,pd/e,x4/11,s9,x9/15,s11,x12/2,s1,x15/11,pm/l,x9/12,s13,x8/2,s11,x9/15,s5,x6/3,s9,pp/n,x0/14,s14,x3/9,s11,x12/15,s7,pk/e,x8/4,s12,x6/0,pi/p,x14/2,s10,pc/o,x15/1,s14,x3/8,s14,x5/2,s6,pp/a,x0/4,s8,x8/14,s8,x3/5,s8,x9/0,pf/m,s3,x2/13,pp/k,s13,x6/0,pl/n,s15,x3/12,pa/o,x8/9,s5,x10/3,pj/k,x15/7,s2,x12/4,pn/e,x0/13,pg/o,x10/6,pc/a,x11/2,s14,x4/8,s8,x1/3,s1,x14/13,s10,x11/3,pd/e,x2/15,s12,x8/9,po/h,x5/4,s10,x3/14,pm/g,x2/15,s12,x4/10,pj/h,x11/7,pd/o,x1/6,s12,x4/14,s6,pm/i,x5/8,pd/o,s1,x1/12,s3,pg/m,x4/3,s2,x15/1,s4,x3/11,s10,x10/14,po/i,x6/3,s3,x10/5,s14,x11/3,pc/k,x2/12,s15,x15/1,pd/h,x3/12,pj/i,x8/14,s5,x2/7,pk/h,x6/3,s7,x13/15,s15,x11/3,s7,x7/15,s13,x10/9,s3,x6/5,s15,x8/3,pd/p,x1/10,s2,x6/12,pm/b,x7/3,s3,x14/15,pd/p,x3/9,s7,x15/10,ph/m,s3,x4/7,pn/j,x13/11,ph/o,x6/0,pn/k,x4/8,s8,x14/10,s15,x1/4,s7,x12/3,s1,x13/6,s2,x9/5,s5,x3/14,s2,x15/5,s15,x7/4,pi/d,x3/15,ph/g,x6/0,pe/o,x2/12,pj/g,x1/8,pp/o,x11/6,s13,x1/3,s13,x8/11,pe/d,x5/1,s4,x3/14,s6,pf/h,x1/7,s2,x12/4,pc/n,s14,x1/7,s15,x5/10,s7,x8/2,s4,x1/12,pl/h,x7/13,s5,x2/14,s1,x5/15,pn/p,x1/13,s13,pk/g,x0/12,pn/d,s7,x4/3,s1,x1/15,pj/a,x8/14,pb/d,x9/7,s12,x6/4,pi/j,x11/1,s15,x15/8,pk/g,x1/13,s15,x8/11,s9,x12/15,s10,x8/11,s11,x5/6,s11,x3/2,s15,x13/5,pl/j,x15/3,s9,pm/d,x2/0,s11,x14/3,s10,x6/11,s11,x5/12,pj/h,x14/2,po/k,x1/7,pe/a,x12/6,pn/g,x4/11,s11,pb/o,s8,x14/1,pk/l,s7,x10/13,s4,x4/9,s12,x5/10,s15,x9/4,s14,x5/0,pf/o,x7/4,s10,pa/n,x10/14,s15,x2/1,s5,x8/3,pj/h,x0/11,s12,x13/3,s4,x8/12,s7,x10/2,s6,x15/9,pl/e,x8/0,s11,x15/10,pi/h,x12/4,pk/m,x3/6,pe/b,x12/5,s11,x0/4,s5,x6/8,s13,x3/12,s8,x0/10,s9,x14/1,s2,x12/6,s1,x13/5,pf/k,s5,x0/11,s1,x3/10,s15,x9/12,ph/d,x11/4,pp/a,x7/6,pl/b,x3/12,s14,x14/13,s15,x10/15,s5,x2/1,pi/f,x8/7,pa/p,x10/14,pb/c,x6/0,s5,x13/5,pl/o,x12/4,pf/e,x6/14,s6,x5/10,s15,x4/15,s7,x14/0,s10,x15/13,s2,x4/14,pm/a,x13/1,s11,x6/11,s7,x15/3,s4,x8/10,s7,x4/3,s9,x7/13,pg/j,x15/4,s7,x10/7,s10,x9/8,s8,x11/4,pb/m,x7/13,s6,x0/5,pc/l,x9/3,s9,x1/11,pi/o,x3/2,pa/j,x15/11,s14,x4/0,s8,pn/f,s3,x12/11,pp/a,x15/6,s15,x1/14,pn/f,x4/12,s14,x14/9,s11,x1/13,s15,x12/8,s3,x4/9,s5,x14/6,pm/j,x4/0,s1,x6/7,pe/b,x2/4,pl/f,x5/6,s13,x3/2,s14,x10/1,s1,x11/12,s4,x13/10,ph/a,x7/6,pc/e,x5/12,pf/h,x4/13,s1,x7/12,po/j,x6/13,s12,x15/8,s9,x1/9,s10,x2/10,s10,x7/12,s6,x4/0,pa/b,x7/6,s4,x0/1,s13,x11/7,s8,x14/12,s8,x13/3,pn/g,x6/10,pk/l,x13/2,s15,x12/0,pi/d,x5/11,s11,x2/6,pa/h,x0/15,s9,x4/7,pm/f,x1/3,s12,x8/7,pb/p,x5/0,pd/g,x7/9,s8,ph/e,x4/8,s14,x7/10,pf/c,x9/4,s15,x10/5,s12,x11/6,pb/h,x12/4,s8,x13/3,s9,pm/i,x10/9,s12,x6/15,po/a,x0/4,s15,x10/12,s15,x2/14,s12,x3/9,s7,x15/0,s14,x10/11,s4,x2/5,s9,x0/1,s4,x8/10,pf/k,x1/12,s9,x4/14,pp/i,x12/10,pm/f,x5/3,pi/a,x15/8,po/d,x3/7,s9,x12/1,s13,x14/4,s7,x1/2,s2,x10/6,pm/b,x8/4,s14,x15/14,s8,x9/2,ph/g,x5/14,s11,x10/7,s3,x0/14,s3,x2/10,pm/i,x12/0,s7,x4/7,s3,x11/12,s1,x14/8,pl/f,x4/1,pi/b,x2/8,pl/g,s7,x7/11,s9,x8/14,s1,x13/0,pi/m,x7/9,s15,x15/8,s1,x4/0,pb/k,x9/6,pd/l,s8,x7/15,pj/p,x1/6,s11,x12/15,s5,x11/4,pi/k,s6,x0/2,pc/d,x10/5,s1,x9/15,pm/i,x2/1,pf/p,x4/6,s12,pn/a,x5/9,s2,x12/6,pe/i,x11/7,pd/h,x0/9,pm/l,x3/6,pp/j,x13/14,s5,x1/7,pm/g,s8,x15/3,pa/i,x5/1,s3,x10/9,s14,x1/5,s6,x2/4,s9,x10/5,pl/m,x0/2,pp/j,x10/13,pe/k,x12/7,s15,x4/13,pi/m,x0/6,pe/o,x1/11,pm/p,s11,x10/4,pj/l,x7/3,pd/k,x8/5,s7,x4/1,s14,x6/13,s15,x7/3,pa/i,x8/6,s14,x3/13,s4,x12/7,s3,x11/2,s4,x9/6,s15,x12/7,s6,x10/4,s12,x15/9,pk/l,x13/10,s15,x15/8,s14,x3/1,s8,x2/14,s14,x8/4,pp/n,x12/9,s3,x1/5,s13,x12/11,s3,x8/13,s1,x15/0,s4,x8/3,s6,x14/0,s6,x13/9,s7,x0/14,s12,x6/15,pj/e,x12/3,pa/i,s7,x1/15,s11,x4/12,s7,x2/1,pg/h,s4,x4/11,s12,x12/13,s15,x5/1,s2,x3/6,s11,x7/0,s14,x3/10,s9,x12/6,s13,pp/o,x15/2,s8,x8/9,s12,x13/14,pn/c,x15/6,pi/j,x11/13,pc/n,x15/6,s15,x1/5,pj/h,x11/9,pa/l,x5/8,s8,x15/13,po/k,x3/10,s14,x15/9,ph/c,x0/4,s3,x6/9,s2,x7/15,pi/a,s15,x1/3,s14,x8/7,s10,x6/5,s11,x10/2,s9,x15/3,pb/j,x6/4,pa/n,x5/15,s15,x7/1,s3,x11/10,pk/m,x5/15,s6,x0/12,pl/n,x11/15,s13,x2/13,s15,x1/3,pg/k,x11/6,pc/l,x12/10,s15,x0/1,s13,x13/10,s10,x11/9,pi/d,x10/2,pp/j,x6/9,pg/n,x13/3,pm/l,x1/6,pj/o,x14/4,s13,x1/12,pn/f,x4/14,po/l,x8/0,s6,x2/12,pn/g,x5/13,s6,pk/f,s5,x9/0,s14,x14/6,s9,x7/12,pj/n,x3/8,pf/a,x9/0,s8,x14/5,pc/d,x6/10,pg/i,x4/14,s5,x8/3,pn/f,s14,x13/4,s8,x8/3,s9,x10/0,po/e,x7/8,s14,x1/3,s1,x0/13,s1,x15/2,s6,x3/0,s5,x4/14,s11,x10/12,s13,x13/6,pl/m,x12/0,s12,x1/2,s3,x11/6,s7,x4/15,s7,x11/5,s11,x10/1,s6,x6/9,pc/d,x14/13,s14,x6/0,s9,x14/3,s15,x10/0,s13,x4/15,s2,x3/0,s2,x2/5,s13,x14/0,pf/i,x7/3,s13,x11/5,pk/l,x3/15,po/m,x8/0,ph/d,x9/14,pe/p,x11/5,s3,x14/3,s2,x6/13,s12,x5/0,s12,x15/3,pm/h,x2/5,s6,x6/8,pl/f,x4/11,s11,x7/13,s12,x6/11,pm/j,s2,x10/3,s9,po/f,x13/6,pj/d,x10/14,s11,x7/9,s13,x13/12,s4,x10/1,s4,pg/e,s12,x15/7,pj/p,x9/11,pf/d,x4/15,pm/i,x13/6,pg/p,s14,x2/14,pk/i,x11/10,s9,x2/3,pf/c,x8/15,pn/d,x6/5,pj/c,x13/8,pb/k,s5,x14/1,pc/f,x5/12,pb/a,x4/10,s3,x11/9,s8,x14/13,pc/h,x10/6,s3,po/m,x12/4,s8,x13/14,s14,x1/8,s6,x13/0,pa/k,s6,x12/1,s7,x8/7,pg/h,x3/13,s5,x12/7,pd/a,x11/1,s2,pl/m,s5,x5/12,pa/g,x3/2,s8,x9/4,s6,x13/2,s6,x8/9,pf/e,x4/0,s9,x9/3,s1,pa/d,x13/4,pi/h,s5,x12/1,pc/a,x2/7,pj/g,x0/14,pp/c,x15/1,s1,x0/5,s11,x1/9,pi/e,x5/8,s12,x7/15,pn/j,x4/12,s4,x14/0,s6,x10/11,pi/e,x6/8,s10,pm/j,s14,x15/4,s13,x7/8,s12,x2/12,s10,x4/11,s2,x10/9,s12,x4/1,pb/h,x11/6,pp/l,x8/4,pj/k,s2,x14/7,pc/n,x8/11,s1,pj/l,x3/14,s14,x8/11,pf/m,x3/6,s14,x14/5,s2,x15/6,pi/o,x4/2,pn/d,x9/13,pf/j,x10/0,pi/h,x5/12,pd/c,x14/7,s3,po/h,x13/4,pd/i,x2/14,pk/n,x9/13,s5,x1/12,s4,x2/5,s13,x10/11,pp/h,x0/13,s9,x15/6,s8,x12/1,pm/a,x8/4,pk/g,x11/12,s14,x10/13,s3,x3/15,s11,x2/13,pe/o,x15/5,s5,x8/0,pj/m,x13/2,s3,x10/15,s12,x1/6,pk/a,x7/5,s7,x12/0,s2,x7/9,s5,x4/2,s7,x1/9,pd/c,x10/12,s12,x4/5,s5,x3/0,pi/p,x4/7,s5,x15/12,pn/e,x5/6,s14,x1/3,s15,x15/7,s14,x13/11,s14,x9/15,s14,x2/1,s7,x5/0,pd/j,x3/12,s2,x10/9,s4,x14/3,s14,x9/1,s3,x11/7,s8,x15/4,s7,pg/l,x7/3,s4,x11/5,po/e,x2/6,s1,x13/12,s3,x0/5,s1,x1/4,s10,x14/10,s10,x1/11,s11,x13/4,s8,x0/11,s1,pa/f,x3/2,s10,x12/11,pj/b,x2/5,s6,x12/6,pg/f,x7/9,pn/p,x13/4,s15,x9/7,s15,x12/3,pk/d,x11/5,s9,x10/8,pf/l,x15/11,pj/o,x14/12,pb/e,x0/5,pd/i,s7,x3/1,pp/c,x10/2,s11,pg/m,x14/11,s5,x9/8,pc/a,x0/15,s9,pn/p,x2/3,s15,x0/8,pa/j,x5/12,s8,x9/13,s4,x5/12,s3,x13/15,s14,x2/11,s8,x5/14,s3,x8/10,s3,x12/6,s15,x3/9,s10,x11/12,s14,pd/o,x1/2,s11,x14/9,pp/f,x3/13,s4,x10/11,pb/d,x0/13,pf/k,x6/11,pi/a,x3/1,s7,x15/14,pf/p,x11/10,s1,pg/h,x7/0,pd/o,x2/10,pl/a,x0/9,s3,x1/13,s2,pi/k,x15/3,ph/o,x10/5,s15,x6/8,s1,x0/4,s13,x1/5,s13,x12/4,pb/d,s11,x1/13,po/f,x14/12,s15,x4/1,s13,x11/9,pk/j,x13/15,s1,x10/11,s1,x2/4,s2,x6/3,s8,x0/9,pd/a,x13/10,pn/c,x12/15,s11,x3/14,pi/h,x7/9,s13,x11/6,s3,x13/1,s11,x10/12,s9,x4/11,pj/b,x1/10,s1,x9/2,s15,x15/6,po/a,x14/5,s12,x12/0,s8,x14/13,pc/n,x9/4,pa/m,x13/1,s7,x6/4,s8,x5/9,s10,x1/3,s8,x11/8,pl/j,x10/14,s13,pk/d,x7/2,s11,x14/5,s11,x9/4,s3,x8/0,s15,x14/9,pi/a,x13/2,pk/o,x1/10,ph/j,x6/4,pc/o,s7,x10/9,s13,x11/3,s6,x1/12,pp/e,x6/3,s10,x4/1,s15,x12/10,po/c,x7/6,s11,x15/2,s4,x11/3,s1,x10/12,s14,x0/4,pg/i,x12/5,s7,x2/4,pn/h,x0/8,pp/g,x10/3,s15,x1/4,po/n,x7/5,s14,x8/13,pk/p,x7/12,pe/m,x15/11,pb/j,x9/5,pk/o,x11/3,s1,x9/14,s3,x1/10,pd/g,x5/12,pk/n,s12,pc/h,x1/4,pk/g,x11/12,s11,x9/7,s8,x5/4,s10,x11/10,ph/j,x14/0,pp/e,x2/13,pl/a,x1/4,s7,x12/15,s8,x14/4,pj/n,x11/2,pc/o,x12/0,s5,x1/8,s13,x2/13,s11,x12/9,s7,x14/1,s6,x0/13,s12,x11/7,ph/d,s10,x10/14,s4,x8/13,s1,x9/10,s2,x5/1,s14,x0/10,s4,pg/l,x6/3,pp/a,s7,x9/10,pj/o,x13/4,s12,x9/1,pi/d,x0/5,pf/h,x7/8,pl/o,x1/11,pc/p,x2/0,pg/o,x5/12,s7,x4/15,pl/n,x3/5,pk/c,x10/8,s8,x7/3,s14,x6/8,pe/a,x13/14,s8,pk/b,x4/1,pd/e,x14/6,pn/f,x5/4,pg/m,x0/1,pn/a,x5/10,pi/f,x12/8,s13,x1/10,s4,x14/3,s4,x4/15,s15,x3/0,s3,x11/14,pk/d,x1/15,s13,x11/4,s4,x14/5,s5,x13/1,pc/o,s12,x8/3,s5,pe/f,x11/12,pb/g,x5/13,pj/p,x11/12,s2,x0/5,pe/i,x14/12,pd/o,x9/13,s1,x0/6,s1,x3/2,s11,x14/5,s1,x2/6,s6,x5/0,pe/p,x2/14,s8,x7/12,pa/c,s10,x9/15,s8,x10/12,pf/p,x3/0,pk/o,s4,x2/9,s14,x0/14,s3,x3/9,pd/a,x4/0,s3,x13/10,pg/m,x9/5,pj/b,x15/0,s9,x13/11,s12,pp/k,x7/8,pl/h,s15,x0/13,s3,x11/2,pm/p,x13/14,s15,x0/10,s14,x7/3,s5,x1/12,s2,x11/4,s5,x15/6,s13,pi/c,x3/2,s10,x11/14,pp/d,x15/12,pi/n,x2/11,s1,x12/14,pg/d,s10,ph/l,x9/13,s8,x2/3,s9,x12/9,s8,x3/15,pm/e,x9/2,s6,x1/13,s9,x3/0,pj/c,x8/6,s4,x10/13,s11,x4/7,pf/p,x1/14,pc/g,x8/11,s6,x0/13,s15,x9/14,s6,x12/3,pb/a,x6/13,s2,x0/15,pi/d,x4/7,s12,x11/12,s15,x2/1,pl/b,x7/8,s9,x4/3,s11,x2/5,s5,x7/6,s1,x8/13,pi/p,x11/15,pd/l,x7/0,s15,x15/2,s7,x6/14,s7,x3/9,s14,x0/12,pg/o,x7/9,s9,x11/0,pl/i,s13,x8/4,pk/f,x9/0,s4,x2/6,ph/i,s1,x1/10,s7,pl/e,x9/7,pb/i,x13/5,pd/e,x11/4,pn/g,x9/13,s1,pe/l,x14/7,s9,x12/4,s4,x2/13,ph/n,x7/6,s10,x14/2,s14,x0/10,pi/f,s13,x7/9,ph/o,x12/2,pd/g,x9/6,s9,x12/10,s9,x4/1,s14,pe/b,x10/3,s15,x4/13,s2,x12/6,pf/g,x0/7,s13,x15/4,pk/h,x5/3,s1,x12/2,s15,x5/10,s12,x8/9,pn/l,x15/2,s3,x7/6,s7,x13/11,s1,pa/k,x4/6,pd/l,x2/9,s5,x15/4,pk/o,x10/3,s9,pm/j,x5/13,pd/l,x6/7,s10,x3/5,pn/i,x11/15,s15,x10/1,s12,x13/9,pl/p,x0/15,pc/j,s10,x11/2,s9,x13/8,pd/p,x0/6,s14,x11/14,s14,x4/13,s2,x14/6,ph/o,s15,x9/8,s13,x13/10,s2,x11/8,s15,x1/3,s15,x7/9,pc/i,x13/2,s11,x8/1,s4,x7/6,s7,pl/m,x1/3,s6,x5/8,pi/c,x6/1,pd/m,x14/4,pe/n,x11/2,s6,x6/9,s6,x2/7,pa/g,x13/11,s4,x7/4,s8,x12/10,s14,x4/9,pc/i,x2/13,pg/h,x8/11,s2,x5/12,s11,x10/13,s8,pe/i,x14/12,s1,x10/0,s13,x8/4,s3,x9/0,s8,x11/1,ph/n,x7/10,s7,x15/9,pm/a,x4/3,pj/f,x2/5,s3,x15/3,s1,x8/4,s6,pm/d,x3/1,pn/j,x5/4,s7,x2/8,s13,x4/5,pc/e,x8/14,s10,x4/3,pm/i,x10/9,s4,x15/13,s10,x0/3,s2,x15/7,s8,x1/6,s12,x12/2,pf/h,s10,x0/13,s1,x14/8,s5,pb/e,x1/3,pf/c,x7/9,pl/a,x2/8,po/m,x1/13,pb/g,s13,x15/5,s6,x0/9,pe/a,x12/15,pj/f,x4/9,pi/c,s2,x2/6,pk/n,x14/9,pe/i,x0/13,s15,pl/b,x3/7,pi/h,x9/12,pj/f,x14/0,pp/g,x11/8,s12,x6/15,s8,x8/7,pf/c,x6/13,s3,x7/15,s6,x12/3,pj/h,x0/9,s6,x8/11,s13,x6/10,pc/e,x12/8,s12,x0/10,pd/h,x4/13,pp/c,x1/12,s7,x6/8,s9,x15/10,s12,x0/3,pn/e,x10/4,s3,x1/12,pm/l,x4/13,s1,x15/11,s6,x6/10,s3,pi/n,x13/9,pd/j,x15/6,pi/e,x12/0,pb/d,x7/5,s1,x6/4,s12,x9/5,s11,x7/15,s4,x11/6,pg/h,x9/1,pc/o,x11/2,s9,x14/15,s11,x9/1,pl/p,x6/12,s3,x10/5,s11,x6/9,s9,x4/1,s8,x0/2,s5,x3/5,po/m,x4/1,s10,x15/14,s13,pf/a,x0/7,pn/k,x9/4,s8,x0/15,s1,x3/13,pl/g,x7/0,s1,x1/3,po/d,x0/2,pb/g,x15/14,s10,x3/12,s5,x4/1,s7,pj/i,x11/12,s2,x8/0,s3,x13/14,pf/a,x12/8,pm/b,x14/7,pc/g,s13,pp/l,s12,po/i,x2/3,s2,x9/8,s1,x12/1,pm/d,x15/11,pj/l,x1/10,pg/k,x6/14,pp/a,x12/9,s2,x13/5,pl/g,x8/6,ph/p,x14/1,s12,pm/k,x6/5,pc/e,x7/13,s11,x3/0,s7,x6/15,pi/h,x8/4,s9,x2/1,pe/l,x9/14,ph/d,x7/11,s10,x4/8,pp/g,x2/6,s12,x12/13,po/h,x3/5,s12,pb/a,s9,x12/4,s6,x8/7,s3,x11/13,pd/g,x3/9,s5,x10/7,s3,x15/13,pe/o,x6/5,s9,pd/c,x14/0,pa/h,x6/7,pg/k,x10/1,pd/n,x9/0,pg/e,x7/13,s11,x14/8,s13,x12/10,s9,x5/6,s15,x10/1,pl/j,x2/3,s3,x12/7,s6,x9/0,po/k,x1/3,s14,x7/2,pc/b,x11/9,pp/e,x5/12,s3,x9/10,pg/l,x2/12,pa/k,x1/10,s2,x2/9,s6,x11/14,s3,pg/l,x15/0,s8,x12/14,s1,x5/11,s8,x4/7,pb/i,x10/1,ph/j,x4/11,po/m,x14/2,s12,x5/3,s14,x8/4,pi/k,x9/10,s9,x6/8,pc/e,x5/1,s8,x15/13,s8,x10/2,pi/f,s1,x5/11,ph/k,x8/4,s10,x7/13,pb/c,x0/11,s13,x1/7,pg/p,x2/13,pk/m,s12,x0/3,s6,x1/2,pj/n,x4/8,pd/k,x11/9,s8,x12/13,s9,x6/4,ph/a,x15/0,pb/m,x7/1,pi/f,s8,x6/9,pa/o,x11/15,s2,x9/4,pb/p,x8/1,s2,x10/13,s9,x14/15,s10,x10/3,s4,x9/8,s12,x10/2,s9,x11/14,s2,x13/10,s2,x11/15,s13,pn/d,x1/13,s2,x2/7,s10,x9/13,pl/p,x8/12,po/e,x14/5,pm/d,s2,x13/1,s11,x14/9,s9,x12/13,s9,x0/1,pa/e,x14/9,s12,x7/1,pd/i,x5/13,pf/g,s12,x12/10,s2,x2/5,po/c,x13/15,s14,x5/10,s8,x8/1,pm/p,x9/11,s8,x7/13,s6,x2/3,pe/c,x14/0,s12,x9/8,s7,x7/15,s7,x12/10,s14,x8/9,s14,pj/l,x12/2,s5,x8/14,s15,x0/1,pm/e,x11/15,s2,x2/9,s15,x15/4,s8,pb/f,s15,x13/9,pk/a,x4/5,s13,x8/9,s2,x1/15,s15,x3/11,pc/e,x2/4,pb/l,x1/8,s6,x4/3,s15,x2/11,pf/i,x8/6,s1,x0/3,s3,x15/5,pp/l,x7/10,pg/o,x4/15,pp/b,x12/13,s2,x7/10,pl/k,x11/4,pb/e,x8/7,pl/g,x5/14,s4,x11/10,pk/b,x0/5,s12,x9/15,s7,x13/14,s8,x10/3,s4,x2/12,pm/d,x0/3,s4,x15/9,s12,x10/3,s6,x6/12,s3,x14/9,s13,x10/4,s5,x3/2,s8,x1/7,s3,x4/11,ph/e,x7/8,s3,x12/14,s15,x15/4,s10,x7/6,s6,x12/3,pl/n,x5/7,pi/j,x2/8,pb/d,x1/12,s7,pj/g,x0/11,s6,x9/5,s3,x15/0,ph/a,x5/4,s9,x3/8,s13,x5/15,s12,x6/8,pc/l,x12/2,s12,x1/7,pn/d,x2/14,s5,x7/4,s7,x14/1,s12,x6/11,s8,x7/12,pl/h,x8/5,pm/c,x2/0,s1,x9/13,s7,x1/8,pf/b,s12,x5/12,s10,x13/0,po/d,x10/9,s10,x7/14,pk/b,s13,x10/9,pe/c,s7,x13/4,s12,x8/12,s10,x13/2,s2,x7/9,s6,x5/15,s1,x11/4,pp/f,x13/3,pn/l,x9/15,s10,x14/3,pd/p,s14,x8/9,s12,x4/2,pl/b,x10/11,s4,x0/8,s12,x11/12,s8,x15/1,s13,x14/8,pf/j,x1/9,ph/o,x6/8,pg/j,x10/3,po/d,x7/1,s13,x3/8,s15,x12/4,s7,x3/1,s14,x8/7,pm/n,x6/15,po/i,x0/3,pf/c,x11/13,pm/l,x9/2,s5,x10/4,pn/g,x5/0,pl/i,x2/7,s3,x1/3,s9,x10/13,s4,x5/1,s4,x4/7,s6,x9/10,pf/j,x4/6,s4,x5/12,pp/b,x6/2,pa/g,s14,x3/4,pp/e,s5,x11/6,pm/g,x7/3,pf/o,x6/13,pd/k,x14/3,s2,pg/p,x10/6,s4,x14/9,pc/l,x15/12,pk/m,s2,x10/8,pe/l,x11/4,s13,x1/12,s9,x5/11,s11,x0/6,s9,x7/4,ph/g,x10/11,s15,x2/8,s9,x5/0,s1,x3/11,s5,x4/8,pc/m,x15/0,s15,x13/5,pe/k,x12/9,pc/d,s1,x13/15,s13,pk/m,x12/0,s10,x7/14,s15,x0/8,pn/b,x12/5,s13,x15/7,pi/e,x0/1,s15,x13/11,pc/h,x5/0,pa/n,x15/14,s3,x3/11,pk/h,x8/14,pa/n,x1/13,pf/c,x2/5,s8,x0/1,po/j,x15/11,s3,x13/0,pa/c,x11/6,pe/o,x12/9,s15,x1/2,pg/f,x14/5,s13,x4/15,s1,x10/7,s1,x15/11,s11,x9/12,s11,x3/13,s11,x14/5,s4,x8/6,s6,x1/3,s2,pi/a,x8/14,po/b,x5/4,pj/l,x7/0,s6,x3/9,s2,pb/h,x13/8,po/c,x15/12,s3,x3/2,s14,x7/10,s14,x0/11,pf/n,x7/2,s1,x14/15,s15,x12/10,s15,pe/c,x5/0,s9,pn/k,x13/3,s5,x8/7,s10,x1/9,s2,x14/13,s8,x1/10,s14,x6/13,s2,x9/12,pj/e,x2/3,pi/o,x10/0,pb/k,x15/9,s13,x10/13,pp/a,x14/15,pl/d,x9/3,s4,x14/10,pp/o,x3/5,s11,x9/4,s8,pc/m,x11/15,s12,x12/0,pp/e,x10/13,ph/i,x4/8,s3,x9/7,s9,x0/12,s9,x15/6,pm/j,s3,x0/3,s1,x13/14,s3,po/c,x8/3,pf/a,x10/15,pk/d,x14/2,s4,x9/12,s8,x2/10,pf/b,s8,x4/14,s12,x7/6,ph/a,x14/13,po/m,x3/0,pp/a,x15/7,s15,x13/9,s4,x3/2,pc/m,x5/1,s1,pi/d,s11,x6/11,s12,x1/7,s2,x11/4,s8,x13/3,pb/o,x6/0,pa/l,x5/10,s3,pp/m,x1/3,pd/f,x5/9,s9,x15/4,s4,x13/7,s10,x2/9,s9,x0/12,pm/c,x14/8,s12,x7/11,s12,x8/0,s1,x13/14,pk/n,x12/11,s13,x6/7,s13,x14/8,s11,pa/g,x2/6,s5,x8/7,s3,x3/4,s1,x14/1,s4,x5/8,s4,x11/7,s5,x3/9,s14,x2/7,s9,x13/3,s4,x7/14,s13,x10/8,pj/e,x14/12,po/a,x9/11,s2,pj/k,s9,x1/8,s10,x15/9,pd/o,x10/6,s15,x12/7,pg/l,x9/2,s2,x11/15,s11,x1/2,pi/e,s4,x7/6,s12,x8/12,s10,x0/2,pb/d,x11/3,s4,x8/2,pn/p,s6,x14/11,ph/l,x3/10,s3,x8/6,s13,x2/9,pb/j,x11/12,s5,x4/7,s7,x10/6,pd/l,x14/5,pm/k,x2/6,s7,x12/10,s8,pc/h,x6/9,pi/j,x7/15,s10,x1/6,s14,x5/13,pe/g,x10/3,s1,x12/14,s7,x13/7,pc/o,x8/1,s5,x6/10,s11,x1/7,s1,x8/4,s13,x0/9,ph/b,x2/15,s8,x0/12,s11,x7/1,s9,x9/15,s10,x4/1,s7,x14/3,pa/j,x12/10,s4,x9/1,s9,x12/3,s1,x4/15,pc/o,x6/5,pe/h,x1/0,pc/f,x15/8,pm/k,x0/5,s11,x4/3,s8,x10/7,pg/o,x5/6,pn/e,s12,x4/12,pm/l,s9,pp/h,x11/6,s3,x9/5,s14,x11/7,s8,x4/1,s9,x5/2,s7,pd/m,x10/4,s2,x2/3,s2,x11/10,s8,x8/0,pl/c,x11/10,s2,x2/12,s1,x0/3,ph/b,x1/9,pe/d,x2/6,s7,x11/4,s7,x1/8,s1,x5/4,ph/m,x6/9,s14,pl/a,x15/4,pb/o,x6/2,pl/e,x8/11,s13,x2/12,pf/i,s8,x9/1,po/j,x13/3,pn/b,x9/7,pc/o,x8/13,s2,x0/12,pl/g,x6/4,pp/a,x2/14,pj/n,x1/5,s2,x8/0,s3,x3/9,s5,x11/13,s13,x10/3,s7,x8/2,s14,x1/0,s6,pm/g,x2/5,s15,x10/7,s8,x15/8,s1,x3/10,s11,x11/5,ph/l,x4/0,pn/o,x7/10,pe/a,x11/4,s6,x5/12,s11,pp/i,x6/0,pn/k,x3/13,s6,x11/5,pl/j,x6/1,s4,x2/5,s9,x8/3,s3,x15/14,pa/c,x12/2,pk/p,x11/14,pg/e,x2/5,pk/j,x1/0,s7,x4/14,pg/o,s6,x2/9,s1,x0/10,s9,x13/14,s4,x0/9,s7,x3/15,pk/e,x4/5,pc/g,x9/11,s9,x13/2,s15,x5/11,pj/m,s12,x0/10,s3,pn/i,x3/5,s14,x1/14,s1,x0/3,s13,x10/2,s5,x11/1,pd/m,x14/4,s11,x15/8,pc/g,s15,x2/0,pm/d,x8/14,s13,x9/1,s12,x7/2,pa/n,x12/13,pl/m,x1/11,pc/p,x7/14,s2,x15/13,s11,pe/d,x6/12,pp/h,x1/0,s4,x6/12,pc/l,s2,x10/9,s7,x1/6,s12,x4/2,pk/h,x7/13,s12,x5/3,s10,x0/14,pa/c,x15/9,s8,x8/3,ph/i,x5/1,pg/l,x0/15,po/k,s10,x13/5,s6,x8/12,s5,x5/10,pl/j,x7/6,s13,x2/15,pn/o,x5/10,s9,x3/7,s5,x14/8,s2,x10/13,ph/c,x7/9,s5,x13/15,s12,x14/10,s8,pp/o,x11/7,pi/e,x0/9,s15,x6/14,s7,x2/8,pb/h,x5/9,pa/g,s4,x15/14,s2,x13/7,s7,x15/6,po/n,x12/10,pk/p,x1/15,s1,pd/g,x14/13,pp/o,x6/7,s13,x14/4,s7,x2/11,pa/i,x14/1,s13,x6/8,s15,x9/7,pf/b,s5,x5/10,s14,x15/4,po/m,x7/14,s11,x12/11,s14,x9/2,s2,x11/14,s10,x0/15,s6,x6/10,s15,x7/5,s6,pp/h,s12,x3/12,s9,x5/0,s15,x12/9,s15,x0/7,s2,x12/13,s8,x1/3,s1,x13/6,pj/e,x9/0,s8,x6/14,s9,x9/12,pi/b,x4/13,s12,x2/14,pl/j,x5/12,s11,pm/b,x6/11,ph/e,x14/13,pm/c,x8/12,s7,x10/14,pp/k,s11,x6/9,pc/m,x8/4,pf/j,x15/1,s12,x6/5,s13,x12/4,pc/b,x11/5,s12,x12/10,s8,x5/14,pd/o,x2/0,pg/k,x8/9,s14,x1/4,s12,x10/14,pp/b,s14,pd/m,x12/8,s5,x5/1,pb/e,x13/2,s9,x1/5,s5,x7/14,s3,x4/9,pi/k,x6/5,s10,pb/m,x15/7,s3,x11/4,s5,x6/7,s2,x0/9,pa/l,x2/12,s7,x0/13,s6,x5/3,s9,x11/0,po/f,x6/15,s11,x5/13,s2,x7/11,pb/i,x2/3,s14,x8/1,pa/c,x2/10,s1,x5/3,s9,x4/1,ph/f,x10/9,s1,x8/0,pd/a,x2/4,pi/f,x0/13,s10,pl/e,x10/6,pb/h,s7,x14/12,s2,pl/d,x0/8,ph/g,x4/15,s15,x0/14,s15,x1/10,s3,x6/14,pf/o,s12,x2/5,s2,x15/6,pg/p,x10/0,s6,x14/15,pn/h,x8/9,s10,x0/13,s14,x6/1,s8,x4/2,pk/e,x15/3,ph/n,x1/14,s8,x13/7,pd/f,x6/10,pi/o,x1/8,s11,x0/2,s8,x13/8,pl/n,x5/1,s13,x2/8,pd/a,x15/0,s1,x14/3,s10,x12/10,s6,x11/3,pm/i,s15,pc/o,x12/15,pl/g,x8/9,s12,x15/2,pf/p,x9/7,s15,x1/12,s6,x8/13,pm/e,x14/11,s10,x7/15,s4,po/i,x2/14,pk/g,s1,x15/3,s3,x10/2,s11,x9/0,pc/h,x5/10,s4,x4/0,pl/a,s14,x11/10,s6,x7/0,s15,x13/11,ph/b,x12/4,s2,x0/1,pn/a,x6/8,s5,x10/4,s14,x11/8,s11,pb/e,x13/0,s4,x12/3,s13,x8/7,po/l,x3/9,pe/a,s11,x12/4,s9,x7/1,pg/c,x3/2,s1,x5/4,s10,x12/11,pm/a,s1,x8/6,s7,x11/13,s15,x1/0,s8,x8/14,s15,x9/5,pf/j,x2/14,pd/o,x1/13,pm/l,x7/4,s10,x2/9,s12,x3/5,s6,x12/11,ph/b,x0/7,pa/c,x8/11,pp/f,x9/0,s8,x13/1,pb/i,x6/11,s3,x3/9,pn/f,x5/13,pm/l,x3/10,pa/h,x0/4,s11,x7/8,s4,x0/2,pd/p,x14/15,pn/k,s10,x1/7,s15,x11/9,s7,x15/0,ph/g,x7/3,s13,x5/2,pn/a,s14,x1/8,s4,x13/12,s4,x0/9,pl/i,x6/7,s9,x15/1,s1,x7/14,s2,pj/b,x12/10,pe/c,x1/9,s12,x3/11,pj/h,x10/14,pf/c,x6/2,pj/h,x3/10,s9,x11/1,s15,x10/3,pg/k,x9/4,pm/n,x5/3,s4,x1/15,s15,x2/6,pc/b,x5/0,pp/g,s10,x6/10,pl/i,x2/4,pf/h,s4,po/d,x3/6,pp/e,s2,x11/5,pl/f,x8/14,s7,x4/5,pa/i,x15/7,pb/c,x1/11,pg/j,x10/2,pc/i,x6/13,s6,x12/8,pe/h,x15/10,s4,x13/6,s6,x14/3,s1,x6/0,s15,x11/12,s15,x15/2,pb/c,x5/4,s9,pp/d,x9/14,pf/a,x15/12,s2,x7/8 diff --git a/src/year_2017.rs b/src/year_2017.rs index d53336a..fd1734c 100644 --- a/src/year_2017.rs +++ b/src/year_2017.rs @@ -19,6 +19,7 @@ pub mod day_12; pub mod day_13; pub mod day_14; pub mod day_15; +pub mod day_16; pub fn solve(day: u8, part: u8, input: impl Into) -> Option { if part > 2 { @@ -41,6 +42,7 @@ pub fn solve(day: u8, part: u8, input: impl Into) -> Option { 13 => Some(day_13::day_13(part, input).to_string()), 14 => Some(day_14::day_14(part, input).to_string()), 15 => Some(day_15::day_15(part, input).to_string()), + 16 => Some(day_16::day_16(part, input).to_string()), _ => None, } } @@ -153,4 +155,11 @@ mod tests { assert_eq!(day_15::day_15_v1(input), 567); assert_eq!(day_15::day_15_v2(input), 323); } + + #[test] + fn day_16() { + let input = include_str!("../inputs/year_2017/day_16_input"); + assert_eq!(day_16::day_16_v1(input), "lgpkniodmjacfbeh"); + assert_eq!(day_16::day_16_v2(input), "hklecbpnjigoafmd"); + } } diff --git a/src/year_2017/day_15.rs b/src/year_2017/day_15.rs index 1a68c03..ab99a8b 100644 --- a/src/year_2017/day_15.rs +++ b/src/year_2017/day_15.rs @@ -18,7 +18,6 @@ impl Generator { } impl Iterator for Generator { - // We can refer to this type using Self::Item type Item = u64; fn next(&mut self) -> Option { @@ -26,7 +25,7 @@ impl Iterator for Generator { let prod = self.value * self.factor; let g = (prod & 0x7fff_ffff) + (prod >> 31); self.value = if g >> 31 == 0 { g } else { g - 0x7fff_ffff }; - if (self.value & self.multiples - 1) == 0 { + if self.value & (self.multiples - 1) == 0 { return Some(self.value); } } diff --git a/src/year_2017/day_16.rs b/src/year_2017/day_16.rs new file mode 100644 index 0000000..cc167e7 --- /dev/null +++ b/src/year_2017/day_16.rs @@ -0,0 +1,116 @@ +use std::collections::HashMap; + +enum DanceMove { + Spin(usize), + Exchange(usize, usize), + Partner(char, char), +} + +struct DanceFloor { + input: Vec, + instructions: Vec, +} + +impl DanceFloor { + fn dance(&mut self) { + self + .instructions + .iter() + .for_each(|instruction| match instruction { + DanceMove::Spin(rotate) => self.input.rotate_right(*rotate), + DanceMove::Exchange(lhs, rhs) => self.input.swap(*lhs, *rhs), + DanceMove::Partner(lhs, rhs) => { + let lhs_id = self.input.iter().position(|c| c == lhs).unwrap(); + let rhs_id = self.input.iter().position(|c| c == rhs).unwrap(); + self.input.swap(lhs_id, rhs_id) + } + }) + } + + pub fn new(input: &str, instructions: &str) -> Self { + let input: Vec = input.chars().collect(); + let instructions = instructions + .split(',') + .map(|instruction| match &instruction[..1] { + "s" => DanceMove::Spin(instruction[1..].parse::().unwrap()), + "x" => { + let indexes: Vec = instruction[1..] + .split('/') + .map(|number| number.parse::().unwrap()) + .collect(); + assert_eq!(indexes.len(), 2); + DanceMove::Exchange(indexes[0], indexes[1]) + } + "p" => { + let indexes: Vec = instruction[1..] + .split('/') + .map(|chr| chr.chars().next().unwrap()) + .collect(); + assert_eq!(indexes.len(), 2); + DanceMove::Partner(indexes[0], indexes[1]) + } + _ => panic!("Invalid instruction: _{}_", instruction), + }) + .collect(); + DanceFloor { + input, + instructions, + } + } +} + +impl ToString for DanceFloor { + fn to_string(&self) -> String { + self.input.iter().collect::() + } +} + +pub fn day_16_v1(input: impl Into) -> String { + let input = input.into(); + let input = input.lines().next().unwrap(); + let mut dancefloor = DanceFloor::new("abcdefghijklmnop", input); + dancefloor.dance(); + + dancefloor.to_string() +} + +pub fn day_16_v2(input: impl Into) -> String { + let input = input.into(); + let input = input.lines().next().unwrap(); + let mut dancefloor = DanceFloor::new("abcdefghijklmnop", input); + let mut positions: HashMap = HashMap::new(); + let mut idx = 0i64; + while positions.insert(dancefloor.to_string(), idx).is_none() { + dancefloor.dance(); + idx += 1; + } + let pos = 1_000_000_000i64 % positions.len() as i64; + positions + .iter() + .find(|(_, value)| **value == pos) + .unwrap() + .0 + .clone() +} +solvable!(day_16, day_16_v1, day_16_v2, String); + +#[cfg(test)] +mod tests { + use super::*; + + const SAMPLE: &str = "s1,x3/4,pe/b"; + + #[test] + fn works_with_samples_v1() { + let mut dancefloor = DanceFloor::new("abcde", SAMPLE); + dancefloor.dance(); + assert_eq!(dancefloor.to_string(), "baedc"); + } + + #[test] + fn works_with_samples_v2() { + let mut dancefloor = DanceFloor::new("abcde", SAMPLE); + (0..2).for_each(|_| dancefloor.dance()); + assert_eq!(dancefloor.to_string(), "ceadb"); + } +}