Compare commits
81 Commits
e65fbe9f63
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 3906d6ef72 | |||
| 1d745a0855 | |||
| 3550f65914 | |||
| 20f20a3179 | |||
| eff95027de | |||
| 76e670770e | |||
| e014b32ab4 | |||
| ed3c7f3a04 | |||
| 73235b3e44 | |||
| 118b56e5f3 | |||
| b5e8ea0a3b | |||
| 57f4a97627 | |||
| 20e2555470 | |||
| 998c523971 | |||
| 7de77107e6 | |||
| 5bb873bcc5 | |||
| c3e8e6320e | |||
| 81a488aaee | |||
| 5c94aed258 | |||
| 97334d34eb | |||
| 399d894c68 | |||
| 782fccc572 | |||
| 811a6a0af0 | |||
| b9a8e7585b | |||
| 15b11a191d | |||
| 3e09eee5b7 | |||
| 322f8eb45a | |||
| ccfcf5a259 | |||
| ae327a4928 | |||
| 4fef41464e | |||
| 4a90257257 | |||
| 522618d106 | |||
| 0ad5dac997 | |||
| 7a871771bb | |||
| c11231307f | |||
| e72f71c1bf | |||
| 5d73f12e43 | |||
| 23cb05ad27 | |||
| 0b1ae6e334 | |||
| d793a47801 | |||
| ff798eaffb | |||
| 59dfc17ee1 | |||
| e54fa1b187 | |||
| 9490164d09 | |||
| 6689a739bc | |||
| dac50700b6 | |||
| af4d17a4a5 | |||
| 779ff4c398 | |||
| 0f2098634b | |||
| 83b5a09e73 | |||
| b9d62c2835 | |||
| b0001697f5 | |||
| 264ba1cb91 | |||
| a0149c26e0 | |||
| fecc1df668 | |||
| 55271e210d | |||
| 5ffebae101 | |||
| edce14cd40 | |||
| b9a0c574e9 | |||
| edc60130dc | |||
| 90c9961d72 | |||
| 2aa4226083 | |||
| c1f0b7be70 | |||
| e268a50409 | |||
| 1850a2145c | |||
| d12618febd | |||
| 0f2e01d6a8 | |||
| 582f4f4b50 | |||
| b7ba2d10a7 | |||
| 34259208d5 | |||
| 67c9cf0391 | |||
| 9aa3c1cace | |||
| 3399bd8c43 | |||
| 77dd1e2cc5 | |||
| 1923e54548 | |||
| ee2dfbd40b | |||
| 7d8db7b493 | |||
| f2280bc2b5 | |||
| b38cdcde07 | |||
| d394c8697f | |||
| 23e3b517e9 |
@@ -0,0 +1,14 @@
|
|||||||
|
plugins {
|
||||||
|
id("java-convention")
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation(project(":utils"))
|
||||||
|
|
||||||
|
annotationProcessor(Libs.Micronaut.processor)
|
||||||
|
|
||||||
|
implementation(Libs.eclipseCollections)
|
||||||
|
|
||||||
|
testImplementation(Libs.Jmh.core)
|
||||||
|
testAnnotationProcessor(Libs.Jmh.processor)
|
||||||
|
}
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
package be.vandewalleh.aoc;
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.factory.Days;
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day;
|
||||||
|
import be.vandewalleh.aoc.utils.input.Lines;
|
||||||
|
|
||||||
|
@Day(1)
|
||||||
|
public class Day01 {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
var day = Days.createDay(Day01.class);
|
||||||
|
System.out.println(day.part1());
|
||||||
|
System.out.println(day.part2());
|
||||||
|
}
|
||||||
|
|
||||||
|
private final int[] input;
|
||||||
|
|
||||||
|
public Day01(@Lines int[] input) {
|
||||||
|
this.input = input;
|
||||||
|
}
|
||||||
|
|
||||||
|
private int fuel(int mass) {
|
||||||
|
return (mass / 3) - 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int part1() {
|
||||||
|
var total = 0;
|
||||||
|
for (var mass : input) {
|
||||||
|
total += fuel(mass);
|
||||||
|
}
|
||||||
|
return total;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int part2() {
|
||||||
|
var total = 0;
|
||||||
|
for (var mass : input) {
|
||||||
|
int fuel = fuel(mass);
|
||||||
|
total += fuel;
|
||||||
|
while (true) {
|
||||||
|
fuel = fuel(fuel);
|
||||||
|
if (fuel <= 0) break;
|
||||||
|
total += fuel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return total;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
package be.vandewalleh.aoc;
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.intcode.IntCodeInterpreter;
|
||||||
|
import be.vandewalleh.aoc.utils.factory.Days;
|
||||||
|
import be.vandewalleh.aoc.utils.input.Csv;
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day;
|
||||||
|
|
||||||
|
@Day(2)
|
||||||
|
public class Day02 {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
var day = Days.createDay(Day02.class);
|
||||||
|
System.out.println(day.part1());
|
||||||
|
System.out.println(day.part2());
|
||||||
|
}
|
||||||
|
|
||||||
|
private final int[] input;
|
||||||
|
|
||||||
|
public Day02(@Csv int[] input) {
|
||||||
|
this.input = input;
|
||||||
|
}
|
||||||
|
|
||||||
|
private long runInterpreterWith(int noun, int verb) {
|
||||||
|
var interpreter = new IntCodeInterpreter(input);
|
||||||
|
interpreter.setNoun(noun);
|
||||||
|
interpreter.setVerb(verb);
|
||||||
|
interpreter.run();
|
||||||
|
return interpreter.getOutput();
|
||||||
|
}
|
||||||
|
|
||||||
|
public long part1() {
|
||||||
|
return runInterpreterWith(12, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int part2() {
|
||||||
|
for (var noun = 0; noun < 99; noun++) {
|
||||||
|
for (var verb = 0; verb < 99; verb++) {
|
||||||
|
if (runInterpreterWith(noun, verb) == 19690720L) return 100 * noun + verb;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
package be.vandewalleh.aoc;
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.geometry.Direction2D;
|
||||||
|
import be.vandewalleh.aoc.geometry.Point2D;
|
||||||
|
import be.vandewalleh.aoc.utils.factory.Days;
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day;
|
||||||
|
import be.vandewalleh.aoc.utils.input.Lines;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Day(3)
|
||||||
|
public class Day03 {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
var day = Days.createDay(Day03.class);
|
||||||
|
System.out.println(day.part1());
|
||||||
|
System.out.println(day.part2());
|
||||||
|
}
|
||||||
|
|
||||||
|
private final String[] wireA;
|
||||||
|
private final String[] wireB;
|
||||||
|
|
||||||
|
public Day03(@Lines List<String> input) {
|
||||||
|
this.wireA = input.get(0).split(",");
|
||||||
|
this.wireB = input.get(1).split(",");
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<Point2D> path(String[] wire) {
|
||||||
|
var points = new ArrayList<Point2D>();
|
||||||
|
var point = Point2D.origin;
|
||||||
|
for (var section : wire) {
|
||||||
|
var direction = Direction2D.from(section.charAt(0));
|
||||||
|
var count = Integer.parseInt(section.substring(1));
|
||||||
|
for (int i = 0; i < count; i++) {
|
||||||
|
point = point.translate(direction.point);
|
||||||
|
points.add(point);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return points;
|
||||||
|
}
|
||||||
|
|
||||||
|
private int part1() {
|
||||||
|
var pathA = path(wireA);
|
||||||
|
var pathB = path(wireB);
|
||||||
|
|
||||||
|
var intersections = new HashSet<>(pathA);
|
||||||
|
intersections.retainAll(pathB);
|
||||||
|
|
||||||
|
return intersections.stream().mapToInt(Point2D::manhattanDistance).min().orElse(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
private int part2() {
|
||||||
|
var pathA = path(wireA);
|
||||||
|
var pathB = path(wireB);
|
||||||
|
|
||||||
|
var intersections = new HashSet<>(pathA);
|
||||||
|
intersections.retainAll(pathB);
|
||||||
|
|
||||||
|
return intersections.stream().mapToInt(p -> pathA.indexOf(p) + pathB.indexOf(p) + 2).min().orElse(-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,80 @@
|
|||||||
|
package be.vandewalleh.aoc;
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.factory.Days;
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day;
|
||||||
|
import be.vandewalleh.aoc.utils.input.Text;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.stream.IntStream;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
@Day(4)
|
||||||
|
public class Day04 {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
var day = Days.createDay(Day04.class);
|
||||||
|
System.out.println(day.part1());
|
||||||
|
System.out.println(day.part2());
|
||||||
|
}
|
||||||
|
|
||||||
|
private final int min;
|
||||||
|
private final int max;
|
||||||
|
|
||||||
|
public Day04(@Text String input) {
|
||||||
|
var spl = input.split("-", 2);
|
||||||
|
min = Integer.parseInt(spl[0]);
|
||||||
|
max = Integer.parseInt(spl[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isNotDecreasing(int[] ints) {
|
||||||
|
for (int i = 0; i < 5; i++) {
|
||||||
|
int a = ints[i], b = ints[i + 1];
|
||||||
|
if (b < a) return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean hasPair(int[] ints) {
|
||||||
|
for (int i = 0; i < 5; i++) {
|
||||||
|
int a = ints[i], b = ints[i + 1];
|
||||||
|
if (a == b) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean hasGroup(int[] ints) {
|
||||||
|
var occurrences = new int[10];
|
||||||
|
for (int i = 0; i < 5; i++) {
|
||||||
|
int a = ints[i], b = ints[i + 1];
|
||||||
|
if (a == b) occurrences[a]++;
|
||||||
|
}
|
||||||
|
return Arrays.stream(occurrences).anyMatch(e -> e == 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Stream<int[]> intStream() {
|
||||||
|
return IntStream.rangeClosed(min, max)
|
||||||
|
.mapToObj(String::valueOf)
|
||||||
|
.map(String::toCharArray)
|
||||||
|
.map(e -> {
|
||||||
|
var ints = new int[6];
|
||||||
|
for (int i = 0; i < 6; i++) {
|
||||||
|
ints[i] = Integer.parseInt(String.valueOf(e[i]));
|
||||||
|
}
|
||||||
|
return ints;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private long part1() {
|
||||||
|
return intStream()
|
||||||
|
.filter(this::isNotDecreasing)
|
||||||
|
.filter(this::hasPair)
|
||||||
|
.count();
|
||||||
|
}
|
||||||
|
|
||||||
|
private long part2() {
|
||||||
|
return intStream()
|
||||||
|
.filter(this::isNotDecreasing)
|
||||||
|
.filter(this::hasGroup)
|
||||||
|
.count();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
package be.vandewalleh.aoc;
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.intcode.IntCodeInterpreter;
|
||||||
|
import be.vandewalleh.aoc.utils.factory.Days;
|
||||||
|
import be.vandewalleh.aoc.utils.input.Csv;
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day;
|
||||||
|
|
||||||
|
@Day(5)
|
||||||
|
public class Day05 {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
var day = Days.createDay(Day05.class);
|
||||||
|
System.out.println(day.part1());
|
||||||
|
System.out.println(day.part2());
|
||||||
|
}
|
||||||
|
|
||||||
|
private final int[] input;
|
||||||
|
|
||||||
|
public Day05(@Csv int[] input) {
|
||||||
|
this.input = input;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Long part1() {
|
||||||
|
var interpreter = new IntCodeInterpreter(input);
|
||||||
|
interpreter.setInput(1);
|
||||||
|
interpreter.run();
|
||||||
|
return interpreter.getOutputs().peek();
|
||||||
|
}
|
||||||
|
|
||||||
|
private Long part2() {
|
||||||
|
var interpreter = new IntCodeInterpreter(input);
|
||||||
|
interpreter.setInput(5);
|
||||||
|
interpreter.run();
|
||||||
|
return interpreter.getOutputs().peek();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,80 @@
|
|||||||
|
package be.vandewalleh.aoc;
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.factory.Days;
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day;
|
||||||
|
import be.vandewalleh.aoc.utils.input.Lines;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
@Day(6)
|
||||||
|
public class Day06 {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
var day = Days.createDay(Day06.class);
|
||||||
|
System.out.println(day.part1());
|
||||||
|
System.out.println(day.part2());
|
||||||
|
}
|
||||||
|
|
||||||
|
private final List<String> input;
|
||||||
|
|
||||||
|
public Day06(@Lines List<String> input) {
|
||||||
|
this.input = input;
|
||||||
|
}
|
||||||
|
|
||||||
|
private final Map<String, String> reverseOrbits = new HashMap<>();
|
||||||
|
|
||||||
|
private int countDirectOrbits() {
|
||||||
|
return reverseOrbits.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
private int countIndirectOrbits() {
|
||||||
|
var count = 0;
|
||||||
|
for (var key : reverseOrbits.keySet()) {
|
||||||
|
count += countIndirectOrbits(key);
|
||||||
|
}
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
|
private int countIndirectOrbits(String key) {
|
||||||
|
var count = 0;
|
||||||
|
var currentKey = reverseOrbits.get(key);
|
||||||
|
while (currentKey != null) {
|
||||||
|
currentKey = reverseOrbits.get(currentKey);
|
||||||
|
if (currentKey != null) count++;
|
||||||
|
else return count;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<String> pathToCom(String key) {
|
||||||
|
var path = new ArrayList<String>();
|
||||||
|
var currentKey = reverseOrbits.get(key);
|
||||||
|
path.add(currentKey);
|
||||||
|
while (currentKey != null) {
|
||||||
|
currentKey = reverseOrbits.get(currentKey);
|
||||||
|
if (currentKey == null) return path;
|
||||||
|
else path.add(currentKey);
|
||||||
|
}
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
|
private int part1() {
|
||||||
|
for (var line : input) {
|
||||||
|
var split = line.split("\\)");
|
||||||
|
reverseOrbits.put(split[1], split[0]);
|
||||||
|
}
|
||||||
|
return countDirectOrbits() + countIndirectOrbits();
|
||||||
|
}
|
||||||
|
|
||||||
|
private int part2() {
|
||||||
|
var sanPath = pathToCom("SAN");
|
||||||
|
var youPath = pathToCom("YOU");
|
||||||
|
|
||||||
|
var common = new LinkedHashSet<>(sanPath);
|
||||||
|
common.retainAll(youPath);
|
||||||
|
|
||||||
|
String closestCommon = (String) common.toArray()[0];
|
||||||
|
return sanPath.indexOf(closestCommon) + youPath.indexOf(closestCommon);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package be.vandewalleh.aoc.geometry;
|
||||||
|
|
||||||
|
public enum Direction2D {
|
||||||
|
Up(0, -1), Down(0, 1), Right(1, 0), Left(-1, 0);
|
||||||
|
|
||||||
|
public final Point2D point;
|
||||||
|
|
||||||
|
Direction2D(int x, int y) {
|
||||||
|
this.point = new Point2D(x, y);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Direction2D from(char direction) {
|
||||||
|
switch (direction) {
|
||||||
|
case 'U' -> {
|
||||||
|
return Direction2D.Up;
|
||||||
|
}
|
||||||
|
case 'D' -> {
|
||||||
|
return Direction2D.Down;
|
||||||
|
}
|
||||||
|
case 'R' -> {
|
||||||
|
return Direction2D.Right;
|
||||||
|
}
|
||||||
|
case 'L' -> {
|
||||||
|
return Direction2D.Left;
|
||||||
|
}
|
||||||
|
default -> throw new IllegalArgumentException("Unexpected value: " + direction);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package be.vandewalleh.aoc.geometry;
|
||||||
|
|
||||||
|
public record Point2D(int x, int y) {
|
||||||
|
public static Point2D origin = new Point2D(0, 0);
|
||||||
|
|
||||||
|
public int manhattanDistance() {
|
||||||
|
return Math.abs(x) + Math.abs(y);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Point2D translate(Point2D other) {
|
||||||
|
return new Point2D(this.x + other.x, this.y + other.y);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,115 @@
|
|||||||
|
package be.vandewalleh.aoc.intcode;
|
||||||
|
|
||||||
|
import java.util.ArrayDeque;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Deque;
|
||||||
|
|
||||||
|
public class IntCodeInterpreter {
|
||||||
|
private final Deque<Long> outputs = new ArrayDeque<>();
|
||||||
|
private final long[] memory;
|
||||||
|
private long input;
|
||||||
|
|
||||||
|
public IntCodeInterpreter(int[] memory) {
|
||||||
|
this.memory = Arrays.stream(memory).asLongStream().toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNoun(long noun) {
|
||||||
|
memory[1] = noun;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVerb(long verb) {
|
||||||
|
memory[2] = verb;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setInput(long input) {
|
||||||
|
this.input = input;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getOutput() {
|
||||||
|
return memory[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
// private ?
|
||||||
|
public Deque<Long> getOutputs() {
|
||||||
|
return outputs;
|
||||||
|
}
|
||||||
|
|
||||||
|
private long readArgument(Mode mode, long param) {
|
||||||
|
switch (mode) {
|
||||||
|
case Positional -> {
|
||||||
|
return memory[(int) param];
|
||||||
|
}
|
||||||
|
case Immediate -> {
|
||||||
|
return param;
|
||||||
|
}
|
||||||
|
default -> throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeArgument(long param, long value) {
|
||||||
|
memory[(int) param] = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Mode[] modes(long instruction) {
|
||||||
|
var str = String.format("%5d", instruction).replace(' ', '0');
|
||||||
|
return new Mode[]{
|
||||||
|
Mode.of(str.charAt(2)),
|
||||||
|
Mode.of(str.charAt(1)),
|
||||||
|
Mode.of(str.charAt(0))
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public void run() {
|
||||||
|
var pointer = 0;
|
||||||
|
|
||||||
|
loop:
|
||||||
|
while (true) {
|
||||||
|
var jumped = false;
|
||||||
|
var instruction = memory[pointer];
|
||||||
|
var opCode = OpCode.from(((int) instruction) % 100);
|
||||||
|
var args = Arrays.copyOfRange(memory, pointer + 1, pointer + opCode.params + 1);
|
||||||
|
var modes = modes(instruction);
|
||||||
|
switch (opCode) {
|
||||||
|
case Add -> {
|
||||||
|
var value = readArgument(modes[0], args[0]) + readArgument(modes[1], args[1]);
|
||||||
|
writeArgument(args[2], value);
|
||||||
|
}
|
||||||
|
case Multiply -> {
|
||||||
|
var value = readArgument(modes[0], args[0]) * readArgument(modes[1], args[1]);
|
||||||
|
writeArgument(args[2], value);
|
||||||
|
}
|
||||||
|
case In -> {
|
||||||
|
writeArgument(args[0], input);
|
||||||
|
}
|
||||||
|
case Out -> {
|
||||||
|
outputs.push(readArgument(modes[0], args[0]));
|
||||||
|
}
|
||||||
|
case JumpIfTrue -> {
|
||||||
|
if (readArgument(modes[0], args[0]) != 0) {
|
||||||
|
pointer = (int) readArgument(modes[1], args[1]);
|
||||||
|
jumped = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case JumpIfFalse -> {
|
||||||
|
if (readArgument(modes[0], args[0]) == 0) {
|
||||||
|
pointer = (int) readArgument(modes[1], args[1]);
|
||||||
|
jumped = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case LessThan -> {
|
||||||
|
var value = readArgument(modes[0], args[0]) < readArgument(modes[1], args[1]) ? 1 : 0;
|
||||||
|
writeArgument(args[2], value);
|
||||||
|
}
|
||||||
|
case Equals -> {
|
||||||
|
var value = readArgument(modes[0], args[0]) == readArgument(modes[1], args[1]) ? 1 : 0;
|
||||||
|
writeArgument(args[2], value);
|
||||||
|
}
|
||||||
|
case Halt -> {
|
||||||
|
break loop;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
if (!jumped) pointer += opCode.params + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package be.vandewalleh.aoc.intcode;
|
||||||
|
|
||||||
|
public enum Mode {
|
||||||
|
Positional, Immediate;
|
||||||
|
|
||||||
|
public static Mode of(char representation) {
|
||||||
|
if (representation == '0') return Mode.Positional;
|
||||||
|
else if (representation == '1') return Mode.Immediate;
|
||||||
|
else throw new IllegalArgumentException("Unsupported Mode " + representation);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package be.vandewalleh.aoc.intcode;
|
||||||
|
|
||||||
|
public enum OpCode {
|
||||||
|
Add(1, 3),
|
||||||
|
Multiply(2, 3),
|
||||||
|
Halt(99, 0),
|
||||||
|
In(3, 1),
|
||||||
|
Out(4, 1),
|
||||||
|
JumpIfTrue(5, 2),
|
||||||
|
JumpIfFalse(6, 2),
|
||||||
|
LessThan(7, 3),
|
||||||
|
Equals(8, 3),
|
||||||
|
;
|
||||||
|
|
||||||
|
public final int value;
|
||||||
|
public final int params;
|
||||||
|
|
||||||
|
OpCode(int value, int params) {
|
||||||
|
this.value = value;
|
||||||
|
this.params = params;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static OpCode from(int value) {
|
||||||
|
for (OpCode opCode : OpCode.values()) {
|
||||||
|
if (opCode.value == value) return opCode;
|
||||||
|
}
|
||||||
|
throw new IllegalArgumentException("Unsupported OpCode " + value);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,100 @@
|
|||||||
|
132791
|
||||||
|
78272
|
||||||
|
114679
|
||||||
|
60602
|
||||||
|
59038
|
||||||
|
69747
|
||||||
|
61672
|
||||||
|
147972
|
||||||
|
92618
|
||||||
|
70186
|
||||||
|
125826
|
||||||
|
61803
|
||||||
|
78112
|
||||||
|
124864
|
||||||
|
58441
|
||||||
|
113062
|
||||||
|
105389
|
||||||
|
125983
|
||||||
|
90716
|
||||||
|
75544
|
||||||
|
148451
|
||||||
|
73739
|
||||||
|
127762
|
||||||
|
146660
|
||||||
|
128747
|
||||||
|
148129
|
||||||
|
138635
|
||||||
|
80095
|
||||||
|
60241
|
||||||
|
145455
|
||||||
|
98730
|
||||||
|
59139
|
||||||
|
146828
|
||||||
|
113550
|
||||||
|
91682
|
||||||
|
107415
|
||||||
|
129207
|
||||||
|
147635
|
||||||
|
104583
|
||||||
|
102245
|
||||||
|
73446
|
||||||
|
148657
|
||||||
|
96364
|
||||||
|
52033
|
||||||
|
69964
|
||||||
|
63609
|
||||||
|
98207
|
||||||
|
73401
|
||||||
|
65511
|
||||||
|
115034
|
||||||
|
126179
|
||||||
|
96664
|
||||||
|
85394
|
||||||
|
128472
|
||||||
|
79017
|
||||||
|
93222
|
||||||
|
55267
|
||||||
|
102446
|
||||||
|
133150
|
||||||
|
148985
|
||||||
|
95325
|
||||||
|
57713
|
||||||
|
77370
|
||||||
|
60879
|
||||||
|
111977
|
||||||
|
99362
|
||||||
|
91581
|
||||||
|
55201
|
||||||
|
137670
|
||||||
|
127159
|
||||||
|
128324
|
||||||
|
77217
|
||||||
|
86378
|
||||||
|
112847
|
||||||
|
108265
|
||||||
|
80355
|
||||||
|
75650
|
||||||
|
106222
|
||||||
|
67793
|
||||||
|
113891
|
||||||
|
74508
|
||||||
|
139463
|
||||||
|
69972
|
||||||
|
122753
|
||||||
|
135854
|
||||||
|
127770
|
||||||
|
101085
|
||||||
|
98304
|
||||||
|
61451
|
||||||
|
146719
|
||||||
|
61225
|
||||||
|
60468
|
||||||
|
83613
|
||||||
|
137436
|
||||||
|
126303
|
||||||
|
78759
|
||||||
|
70081
|
||||||
|
110671
|
||||||
|
113234
|
||||||
|
111563
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
1,0,0,3,1,1,2,3,1,3,4,3,1,5,0,3,2,6,1,19,1,5,19,23,2,6,23,27,1,27,5,31,2,9,31,35,1,5,35,39,2,6,39,43,2,6,43,47,1,5,47,51,2,9,51,55,1,5,55,59,1,10,59,63,1,63,6,67,1,9,67,71,1,71,6,75,1,75,13,79,2,79,13,83,2,9,83,87,1,87,5,91,1,9,91,95,2,10,95,99,1,5,99,103,1,103,9,107,1,13,107,111,2,111,10,115,1,115,5,119,2,13,119,123,1,9,123,127,1,5,127,131,2,131,6,135,1,135,5,139,1,139,6,143,1,143,6,147,1,2,147,151,1,151,5,0,99,2,14,0,0
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
R1000,U371,R195,U136,R804,U805,L450,U211,R768,U768,L548,U354,L736,U431,L152,U658,L670,D262,L277,U136,L290,U939,R501,U550,L931,D839,R335,D492,L25,U80,R878,U355,R653,U186,R423,D485,L793,D259,L739,U679,R508,D269,R432,D761,R97,D461,L675,U958,L58,U348,L719,D271,R144,U849,R384,U72,L84,U493,R947,U30,L356,D442,R327,U646,R825,U718,L329,D173,L949,D345,L971,D830,L93,U506,R245,D376,R322,D105,L604,D60,R298,D959,L165,D423,R180,D527,R956,D944,R785,U641,L794,D182,R975,D719,L166,U974,L224,U243,L666,U706,R796,D600,L856,D913,L988,D993,L259,U351,R487,D424,L335,U910,L437,D180,R621,D3,R878,D188,R254,D393,L727,U829,R352,U958,L327,D158,L854,D17,R143,D454,R889,D265,L345,U784,R35,D129,R77,U117,R951,D980,L866,U646,R242,D603,L562,U727,L496,U328,L380,D504,R644,U803,L530,D546,R328,D373,L489,U454,R74,D908,R366,U94,R604,D482,L573,D27,R943,U497,L782,D267,L391,U49,R528,D58,R155,D529,R227,D998,R558,D891,R224,U843,R512,U34,R92,U404,R752,U946,L338,D880,L513,D28,L856,D444,L187,U532,L187,U669,L306,U259,R287,D442,R478,U576,R702,U336,L305,U701,L754,D277,R760,D863,L717,U196,L221,U101,L334,D156,L961,D810,L67,D716,L457,D44,L505,D724,R716,D660,L36,D338,R54,U424,R730,U18,L65,D133,R149,U374,R356,D989,R519,U593,L444,D270,R328,U167,L748,D797,L434,U751,R444,D71,R158,D530,L630,U147,R909,D994,L957,U521,L644,D579,R673,U191,R935,U237,R600,D321,L671,U961,L884,U378,R534,D46,R275,U845,R571,U245,L507,U273,R995,U408,L14,D799,L955,D534,R579,D94,R705,D391,R469,D381,R620,U162,R907,D826,R824,U167,L734,U922,L484
|
||||||
|
L1007,D620,R853,U77,L13,U473,L253,D410,R897,U464,L862,U281,L650,D470,R87,D204,L896,U670,L864,D950,L75,D320,R901,D785,L653,D225,L857,U616,L143,U940,L664,U131,L547,D745,R636,U569,L50,U454,R288,D254,L36,U377,L609,U929,L714,U85,L939,U923,L566,D280,R243,U948,R447,D7,R908,D151,R824,D432,R34,D81,L458,U745,L420,D982,L625,U910,L729,D274,R910,U322,L984,D88,L700,D349,L932,U510,R625,U88,L252,U785,L378,D101,R299,U66,L476,U696,R236,D46,R590,U157,R461,U305,L269,D487,L676,U467,R319,D524,R75,U65,L478,U861,L238,D716,R888,D12,L184,D578,R266,D226,L656,D172,L752,U124,L831,U810,L663,U538,R417,D770,L359,U1,R12,U791,L332,U272,R574,D942,L857,U447,R310,U342,L713,D258,R590,D585,R129,D115,R832,D967,R981,D159,R864,U423,R268,U519,L52,D493,R445,D657,R885,U166,R155,D264,R51,D632,R525,D875,R617,U898,L556,D386,L143,U278,L767,D389,R821,U869,R286,D90,R289,U54,R15,D764,R46,D674,R983,U49,R959,U779,R958,D247,R483,U156,L18,U12,L178,U540,L499,U487,L544,D336,R814,U267,R145,D135,L920,D902,L933,D507,L997,U361,L577,U425,L773,D782,R117,U851,R998,U503,R902,U781,L161,U98,L653,U633,L91,U629,L138,D19,R147,D756,R364,D529,L764,U913,L118,U856,R774,D621,R151,U154,R737,D960,R86,U458,R991,D481,R560,D858,R223,D6,R931,D301,R552,D797,R284,U368,L967,D686,R940,U410,R137,D156,L6,U643,L445,D999,R888,D277,L852,U210,L777,D36,R103,D652,R120,D67,L642,D527,R913,D858,R69,D433,R864,U75,L531,U456,L664,D452,R801,U851,L824,D278,L526,U133,R200,U768,R15,U393,R982,U287,L38,D114,R86,U299,L819,D891,R379,D601,L244
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
272091-815432
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
3,225,1,225,6,6,1100,1,238,225,104,0,1101,11,91,225,1002,121,77,224,101,-6314,224,224,4,224,1002,223,8,223,1001,224,3,224,1,223,224,223,1102,74,62,225,1102,82,7,224,1001,224,-574,224,4,224,102,8,223,223,1001,224,3,224,1,224,223,223,1101,28,67,225,1102,42,15,225,2,196,96,224,101,-4446,224,224,4,224,102,8,223,223,101,6,224,224,1,223,224,223,1101,86,57,225,1,148,69,224,1001,224,-77,224,4,224,102,8,223,223,1001,224,2,224,1,223,224,223,1101,82,83,225,101,87,14,224,1001,224,-178,224,4,224,1002,223,8,223,101,7,224,224,1,223,224,223,1101,38,35,225,102,31,65,224,1001,224,-868,224,4,224,1002,223,8,223,1001,224,5,224,1,223,224,223,1101,57,27,224,1001,224,-84,224,4,224,102,8,223,223,1001,224,7,224,1,223,224,223,1101,61,78,225,1001,40,27,224,101,-89,224,224,4,224,1002,223,8,223,1001,224,1,224,1,224,223,223,4,223,99,0,0,0,677,0,0,0,0,0,0,0,0,0,0,0,1105,0,99999,1105,227,247,1105,1,99999,1005,227,99999,1005,0,256,1105,1,99999,1106,227,99999,1106,0,265,1105,1,99999,1006,0,99999,1006,227,274,1105,1,99999,1105,1,280,1105,1,99999,1,225,225,225,1101,294,0,0,105,1,0,1105,1,99999,1106,0,300,1105,1,99999,1,225,225,225,1101,314,0,0,106,0,0,1105,1,99999,1008,677,226,224,1002,223,2,223,1006,224,329,101,1,223,223,8,226,677,224,102,2,223,223,1005,224,344,101,1,223,223,1107,226,677,224,102,2,223,223,1006,224,359,101,1,223,223,1007,226,226,224,102,2,223,223,1006,224,374,101,1,223,223,7,677,677,224,102,2,223,223,1005,224,389,1001,223,1,223,108,677,677,224,1002,223,2,223,1005,224,404,101,1,223,223,1008,226,226,224,102,2,223,223,1005,224,419,1001,223,1,223,1107,677,226,224,102,2,223,223,1005,224,434,1001,223,1,223,1108,677,677,224,102,2,223,223,1006,224,449,1001,223,1,223,7,226,677,224,102,2,223,223,1005,224,464,101,1,223,223,1008,677,677,224,102,2,223,223,1005,224,479,101,1,223,223,1007,226,677,224,1002,223,2,223,1006,224,494,101,1,223,223,8,677,226,224,1002,223,2,223,1005,224,509,101,1,223,223,1007,677,677,224,1002,223,2,223,1006,224,524,101,1,223,223,107,226,226,224,102,2,223,223,1006,224,539,101,1,223,223,107,226,677,224,102,2,223,223,1005,224,554,1001,223,1,223,7,677,226,224,102,2,223,223,1006,224,569,1001,223,1,223,107,677,677,224,1002,223,2,223,1005,224,584,101,1,223,223,1107,677,677,224,102,2,223,223,1005,224,599,101,1,223,223,1108,226,677,224,102,2,223,223,1006,224,614,101,1,223,223,8,226,226,224,102,2,223,223,1006,224,629,101,1,223,223,108,226,677,224,102,2,223,223,1005,224,644,1001,223,1,223,108,226,226,224,102,2,223,223,1005,224,659,101,1,223,223,1108,677,226,224,102,2,223,223,1006,224,674,1001,223,1,223,4,223,99,226
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,18 @@
|
|||||||
|
plugins {
|
||||||
|
id("kotlin-convention")
|
||||||
|
kotlin("kapt")
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation(project(":utils"))
|
||||||
|
|
||||||
|
kapt(Libs.Micronaut.processor)
|
||||||
|
|
||||||
|
implementation(Libs.Slf4J.api)
|
||||||
|
runtimeOnly(Libs.Slf4J.simple)
|
||||||
|
|
||||||
|
implementation(Libs.eclipseCollections)
|
||||||
|
|
||||||
|
testImplementation(Libs.Jmh.core)
|
||||||
|
kaptTest(Libs.Jmh.processor)
|
||||||
|
}
|
||||||
@@ -1,14 +1,10 @@
|
|||||||
package be.vandewalleh.aoc.days
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
import be.vandewalleh.aoc.utils.input.Day
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
import be.vandewalleh.aoc.utils.input.Input
|
|
||||||
import be.vandewalleh.aoc.utils.input.Lines
|
import be.vandewalleh.aoc.utils.input.Lines
|
||||||
import be.vandewalleh.aoc.utils.input.createDay
|
|
||||||
|
|
||||||
@Day(1)
|
@Day(1)
|
||||||
class Day01(@Lines input: Input<IntArray>) {
|
class Day01(@Lines val items: IntArray) {
|
||||||
private val items = input.value
|
|
||||||
|
|
||||||
fun part1(): Int? {
|
fun part1(): Int? {
|
||||||
items.forEach { a ->
|
items.forEach { a ->
|
||||||
items.forEach { b ->
|
items.forEach { b ->
|
||||||
@@ -31,7 +27,3 @@ class Day01(@Lines input: Input<IntArray>) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun main() = with(createDay<Day01>()) {
|
|
||||||
println(part1())
|
|
||||||
println(part2())
|
|
||||||
}
|
|
||||||
@@ -1,17 +1,15 @@
|
|||||||
package be.vandewalleh.aoc.days
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
import be.vandewalleh.aoc.utils.input.Day
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
import be.vandewalleh.aoc.utils.input.Input
|
|
||||||
import be.vandewalleh.aoc.utils.input.Lines
|
import be.vandewalleh.aoc.utils.input.Lines
|
||||||
import be.vandewalleh.aoc.utils.input.createDay
|
|
||||||
|
|
||||||
data class PasswordEntry(val range: IntRange, val letter: Char, val password: String)
|
|
||||||
|
|
||||||
@Day(2)
|
@Day(2)
|
||||||
class Day02(@Lines input: Input<List<String>>) {
|
class Day02(@Lines input: List<String>) {
|
||||||
|
private data class PasswordEntry(val range: IntRange, val letter: Char, val password: String)
|
||||||
|
|
||||||
private val regex = "^(\\d+)-(\\d+) ([a-z]): (.*)$".toRegex()
|
private val regex = "^(\\d+)-(\\d+) ([a-z]): (.*)$".toRegex()
|
||||||
|
|
||||||
private val passwords = input.value.map {
|
private val passwords = input.map {
|
||||||
val (_, min, max, letter, password) = regex.find(it)!!.groupValues
|
val (_, min, max, letter, password) = regex.find(it)!!.groupValues
|
||||||
PasswordEntry(min.toInt()..max.toInt(), letter[0], password)
|
PasswordEntry(min.toInt()..max.toInt(), letter[0], password)
|
||||||
}
|
}
|
||||||
@@ -22,8 +20,3 @@ class Day02(@Lines input: Input<List<String>>) {
|
|||||||
(pwd[range.first - 1] == letter) xor (pwd[range.last - 1] == letter)
|
(pwd[range.first - 1] == letter) xor (pwd[range.last - 1] == letter)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun main() = with(createDay<Day02>()) {
|
|
||||||
println(part1())
|
|
||||||
println(part2())
|
|
||||||
}
|
|
||||||
@@ -1,17 +1,14 @@
|
|||||||
package be.vandewalleh.aoc.days
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
import be.vandewalleh.aoc.utils.input.Day
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
import be.vandewalleh.aoc.utils.input.Input
|
|
||||||
import be.vandewalleh.aoc.utils.input.Lines
|
import be.vandewalleh.aoc.utils.input.Lines
|
||||||
import be.vandewalleh.aoc.utils.input.createDay
|
|
||||||
|
|
||||||
data class Slope(val x: Int, val y: Int)
|
|
||||||
|
|
||||||
@Day(3)
|
@Day(3)
|
||||||
class Day03(@Lines val input: Input<List<String>>) {
|
class Day03(@Lines val input: List<String>) {
|
||||||
|
private data class Slope(val x: Int, val y: Int)
|
||||||
|
|
||||||
fun part1(slope: Slope = Slope(x = 3, y = 1)): Int {
|
private fun findSlope(slope: Slope): Int {
|
||||||
val grid = input.value
|
val grid = input
|
||||||
var trees = 0
|
var trees = 0
|
||||||
var x = 0
|
var x = 0
|
||||||
var y = 0
|
var y = 0
|
||||||
@@ -28,6 +25,8 @@ class Day03(@Lines val input: Input<List<String>>) {
|
|||||||
return trees
|
return trees
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun part1() = findSlope(Slope(x = 3, y = 1))
|
||||||
|
|
||||||
fun part2(): Long = listOf(
|
fun part2(): Long = listOf(
|
||||||
Slope(x = 1, y = 1),
|
Slope(x = 1, y = 1),
|
||||||
Slope(x = 3, y = 1),
|
Slope(x = 3, y = 1),
|
||||||
@@ -35,11 +34,6 @@ class Day03(@Lines val input: Input<List<String>>) {
|
|||||||
Slope(x = 7, y = 1),
|
Slope(x = 7, y = 1),
|
||||||
Slope(x = 1, y = 2),
|
Slope(x = 1, y = 2),
|
||||||
)
|
)
|
||||||
.map { part1(it).toLong() }
|
.map { findSlope(it).toLong() }
|
||||||
.reduce { acc, trees -> acc * trees }
|
.reduce { acc, trees -> acc * trees }
|
||||||
}
|
}
|
||||||
|
|
||||||
fun main() = with(createDay<Day03>()) {
|
|
||||||
println(part1())
|
|
||||||
println(part2())
|
|
||||||
}
|
|
||||||
@@ -1,18 +1,16 @@
|
|||||||
package be.vandewalleh.aoc.days
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
import be.vandewalleh.aoc.utils.input.Day
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
import be.vandewalleh.aoc.utils.input.Input
|
|
||||||
import be.vandewalleh.aoc.utils.input.Text
|
import be.vandewalleh.aoc.utils.input.Text
|
||||||
import be.vandewalleh.aoc.utils.input.createDay
|
|
||||||
|
|
||||||
typealias Entry = Pair<String, String>
|
private typealias Entry = Pair<String, String>
|
||||||
typealias Entries = List<Entry>
|
private typealias Entries = List<Entry>
|
||||||
|
|
||||||
@Day(4)
|
@Day(4)
|
||||||
class Day04(@Text val input: Input<String>) {
|
class Day04(@Text val input: String) {
|
||||||
|
|
||||||
val entries: List<Entries> = input.value.trim().split("\n\n").map {
|
val entries = input.split("\n\n").map {
|
||||||
it.replace("\n", " ").split(" ").map { it.split(":").let { (k, v) -> k.trim() to v.trim() } }
|
it.split(" ", "\n").map { it.split(":").let { (k, v) -> k to v } }
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun Entries.hasRequiredKeys() = map { it.first }
|
private fun Entries.hasRequiredKeys() = map { it.first }
|
||||||
@@ -20,10 +18,10 @@ class Day04(@Text val input: Input<String>) {
|
|||||||
|
|
||||||
fun part1() = entries.count { it.hasRequiredKeys() }
|
fun part1() = entries.count { it.hasRequiredKeys() }
|
||||||
|
|
||||||
private val hclRegex = "^#[0-9a-f]{6}$".toRegex()
|
private val hclRegex = Regex("#[0-9a-f]{6}")
|
||||||
private val pidRegex = "^[0-9]{9}$".toRegex()
|
private val pidRegex = Regex("[0-9]{9}")
|
||||||
|
|
||||||
private fun Entry.hasValidValues() = let { (k, v) ->
|
private fun Entry.isValid() = let { (k, v) ->
|
||||||
when (k) {
|
when (k) {
|
||||||
"byr" -> v.toInt() in 1920..2002
|
"byr" -> v.toInt() in 1920..2002
|
||||||
"iyr" -> v.toInt() in 2010..2020
|
"iyr" -> v.toInt() in 2010..2020
|
||||||
@@ -40,10 +38,5 @@ class Day04(@Text val input: Input<String>) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun part2() = entries.count { it.hasRequiredKeys() && it.all { it.hasValidValues() } }
|
fun part2() = entries.count { it.hasRequiredKeys() && it.all { it.isValid() } }
|
||||||
}
|
|
||||||
|
|
||||||
fun main() = with(createDay<Day04>()) {
|
|
||||||
println(part1())
|
|
||||||
println(part2())
|
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
import be.vandewalleh.aoc.utils.input.Lines
|
||||||
|
|
||||||
|
@Day(5)
|
||||||
|
class Day05(@Lines val input: List<String>) {
|
||||||
|
|
||||||
|
private val ids = input.map {
|
||||||
|
it.replace("F", "0")
|
||||||
|
.replace("B", "1")
|
||||||
|
.replace("L", "0")
|
||||||
|
.replace("R", "1")
|
||||||
|
.toInt(2)
|
||||||
|
}.sorted()
|
||||||
|
|
||||||
|
fun part1() = ids.last()
|
||||||
|
|
||||||
|
fun part2() = ids.windowed(size = 2, step = 1)
|
||||||
|
.find { (a, b) -> b - a > 1 }!!
|
||||||
|
.first() + 1
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
import be.vandewalleh.aoc.utils.input.Text
|
||||||
|
import org.eclipse.collections.impl.factory.primitive.CharBags
|
||||||
|
|
||||||
|
@Day(6)
|
||||||
|
class Day06(@Text val input: String) {
|
||||||
|
|
||||||
|
private val groups = input.split("\n\n")
|
||||||
|
|
||||||
|
fun part1() = groups.sumBy { it.replace("\n", "").toCharArray().toSet().size }
|
||||||
|
|
||||||
|
fun part2() = groups.sumBy {
|
||||||
|
val group = it.split("\n")
|
||||||
|
val bag = CharBags.mutable.empty()
|
||||||
|
|
||||||
|
group.forEach { chars: String -> chars.forEach { bag.add(it) } }
|
||||||
|
|
||||||
|
bag.selectByOccurrences { group.size == it }.toSet().size()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
import be.vandewalleh.aoc.utils.input.Lines
|
||||||
|
import org.eclipse.collections.api.factory.Stacks
|
||||||
|
import org.eclipse.collections.api.multimap.list.ImmutableListMultimap
|
||||||
|
import org.eclipse.collections.api.stack.MutableStack
|
||||||
|
import org.eclipse.collections.impl.factory.Multimaps
|
||||||
|
|
||||||
|
@Day(7)
|
||||||
|
class Day07(@Lines val input: List<String>) {
|
||||||
|
|
||||||
|
private data class Bag(val count: Int, val color: String)
|
||||||
|
|
||||||
|
private val map: ImmutableListMultimap<String, Bag>
|
||||||
|
|
||||||
|
init {
|
||||||
|
val mutableMap = Multimaps.mutable.list.empty<String, Bag>()
|
||||||
|
|
||||||
|
val colorRegex = "^(\\w+ \\w+)".toRegex()
|
||||||
|
val requirementRegex = "(\\d+) (\\w+ \\w+) bag".toRegex()
|
||||||
|
|
||||||
|
for (line in input) {
|
||||||
|
val outerColor = colorRegex.find(line)!!.groupValues[1]
|
||||||
|
for (match in requirementRegex.findAll(line)) {
|
||||||
|
val (_, count, color) = match.groupValues
|
||||||
|
mutableMap.put(outerColor, Bag(count.toInt(), color))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
map = mutableMap.toImmutable()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun bagSequence(rootColor: String): Sequence<Bag> = sequence {
|
||||||
|
val stack: MutableStack<Bag> = Stacks.mutable.ofAll(map.get(rootColor))
|
||||||
|
while (stack.notEmpty()) {
|
||||||
|
val current = stack.pop().also { yield(it) }
|
||||||
|
map[current.color]?.let {
|
||||||
|
it.forEach { (count, color) ->
|
||||||
|
stack.push(Bag(current.count * count, color))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun part1() = map.keySet().count { bagSequence(it).any { it.color == "shiny gold" } }
|
||||||
|
|
||||||
|
fun part2() = bagSequence("shiny gold").sumBy { it.count }
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
import be.vandewalleh.aoc.utils.input.Lines
|
||||||
|
import org.eclipse.collections.impl.factory.primitive.IntLists
|
||||||
|
import org.eclipse.collections.impl.factory.primitive.IntSets
|
||||||
|
|
||||||
|
@Day(8)
|
||||||
|
class Day08(@Lines val input: List<String>) {
|
||||||
|
|
||||||
|
private val instructions = input.map {
|
||||||
|
val words = it.split(" ")
|
||||||
|
Instruction(Operation.valueOf(words[0].capitalize()), words[1].toInt())
|
||||||
|
}.toTypedArray()
|
||||||
|
|
||||||
|
fun part1() = run(instructions).let {
|
||||||
|
when (it) {
|
||||||
|
is VmResult.Looped -> it.acc
|
||||||
|
is VmResult.Terminated -> it.acc
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun run(instructions: Array<Instruction>): VmResult {
|
||||||
|
var acc = 0
|
||||||
|
var ptr = 0
|
||||||
|
|
||||||
|
val visited = IntSets.mutable.empty()
|
||||||
|
|
||||||
|
while (visited.add(ptr)) {
|
||||||
|
val instruction = instructions[ptr]
|
||||||
|
when (instruction.operation) {
|
||||||
|
Operation.Acc -> {
|
||||||
|
acc += instruction.argument
|
||||||
|
ptr++
|
||||||
|
}
|
||||||
|
Operation.Jmp -> ptr += instruction.argument
|
||||||
|
Operation.Nop -> ptr++
|
||||||
|
}
|
||||||
|
if (ptr !in instructions.indices) {
|
||||||
|
return VmResult.Terminated(acc)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return VmResult.Looped(acc)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun part2(): Int {
|
||||||
|
val possibleMutations = IntLists.mutable.empty()
|
||||||
|
instructions.forEachIndexed { i, e ->
|
||||||
|
if (e.operation == Operation.Jmp || e.operation == Operation.Nop) possibleMutations.add(i)
|
||||||
|
}
|
||||||
|
|
||||||
|
for (index in possibleMutations.toArray()) {
|
||||||
|
val copy = instructions.copyOf().also {
|
||||||
|
val modifiedOperation = if (it[index].operation == Operation.Nop) Operation.Jmp else Operation.Nop
|
||||||
|
it[index] = it[index].copy(operation = modifiedOperation)
|
||||||
|
}
|
||||||
|
|
||||||
|
val res = run(copy)
|
||||||
|
if (res is VmResult.Terminated) return res.acc
|
||||||
|
}
|
||||||
|
|
||||||
|
error("No result found")
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private enum class Operation { Acc, Jmp, Nop }
|
||||||
|
|
||||||
|
private data class Instruction(val operation: Operation, val argument: Int)
|
||||||
|
|
||||||
|
private sealed class VmResult {
|
||||||
|
data class Looped(val acc: Int) : VmResult()
|
||||||
|
data class Terminated(val acc: Int) : VmResult()
|
||||||
|
}
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
import be.vandewalleh.aoc.utils.input.Lines
|
||||||
|
|
||||||
|
@Day(9)
|
||||||
|
class Day09(@Lines val input: LongArray) {
|
||||||
|
|
||||||
|
private var part1Result = 0L
|
||||||
|
|
||||||
|
fun part1(): Long? {
|
||||||
|
for (windowStart in 0 until input.size - 26) {
|
||||||
|
val last = input[windowStart + 25]
|
||||||
|
if (!isValid(windowStart, last)) {
|
||||||
|
part1Result = last
|
||||||
|
return last
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun isValid(windowStart: Int, last: Long): Boolean {
|
||||||
|
for (i in windowStart until windowStart + 25) {
|
||||||
|
for (j in windowStart + 1 until windowStart + 25) {
|
||||||
|
val f = input[i]
|
||||||
|
val s = input[j]
|
||||||
|
if (f + s == last && f != s) return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
fun part2(): Long {
|
||||||
|
var size = 2
|
||||||
|
while (true) {
|
||||||
|
for (startIndex in input.indices) {
|
||||||
|
val lastIndex = input.size - 1 - size
|
||||||
|
if (startIndex + size > lastIndex) break
|
||||||
|
val slice = input.sliceArray(startIndex..startIndex + size)
|
||||||
|
if (slice.sum() == part1Result) return slice.minOrNull()!! + slice.maxOrNull()!!
|
||||||
|
}
|
||||||
|
size++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
import be.vandewalleh.aoc.utils.input.Lines
|
||||||
|
import org.eclipse.collections.api.list.primitive.MutableIntList
|
||||||
|
import org.eclipse.collections.impl.factory.primitive.IntLists
|
||||||
|
import org.eclipse.collections.impl.factory.primitive.IntLongMaps
|
||||||
|
|
||||||
|
@Day(10)
|
||||||
|
class Day10(@Lines val input: IntArray) {
|
||||||
|
|
||||||
|
fun part1(): Int {
|
||||||
|
val sorted = IntLists.mutable.of(0, *input).apply {
|
||||||
|
sortThis()
|
||||||
|
add(last + 3)
|
||||||
|
}.toArray().toList()
|
||||||
|
|
||||||
|
var ones = 0
|
||||||
|
var threes = 0
|
||||||
|
|
||||||
|
sorted.zipWithNext().forEach { (a, b) ->
|
||||||
|
if (a + 1 == b) ones++
|
||||||
|
else if (a + 3 == b) threes++
|
||||||
|
}
|
||||||
|
|
||||||
|
return ones * threes
|
||||||
|
}
|
||||||
|
|
||||||
|
fun part2(): Long {
|
||||||
|
val sorted: MutableIntList = IntLists.mutable.of(*input).apply { sortThis() }
|
||||||
|
|
||||||
|
val map = IntLongMaps.mutable.empty().apply {
|
||||||
|
put(0, 1L)
|
||||||
|
}
|
||||||
|
|
||||||
|
sorted.forEach { i ->
|
||||||
|
map.put(i, map.get(i - 1) + map.get(i - 2) + map.get(i - 3))
|
||||||
|
}
|
||||||
|
|
||||||
|
return map.get(sorted.last)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,116 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
import be.vandewalleh.aoc.utils.input.Lines
|
||||||
|
|
||||||
|
private typealias Seats = Array<CharArray>
|
||||||
|
|
||||||
|
private fun Seats.deepClone(): Seats = map { it.clone() }.toTypedArray()
|
||||||
|
|
||||||
|
private operator fun Seats.get(x: Int, y: Int): Char = this[y][x]
|
||||||
|
private operator fun Seats.set(x: Int, y: Int, value: Char) {
|
||||||
|
this[y][x] = value
|
||||||
|
}
|
||||||
|
|
||||||
|
private operator fun Seats.contains(xy: Pair<Int, Int>): Boolean {
|
||||||
|
val (x, y) = xy
|
||||||
|
return x in 0 until width && y in 0 until height
|
||||||
|
}
|
||||||
|
|
||||||
|
private val Seats.width get() = first().size
|
||||||
|
private val Seats.height get() = size
|
||||||
|
|
||||||
|
private fun Seats.asGridString() = joinToString("\n") { it.joinToString("") }
|
||||||
|
private fun Seats.countOccupied() = sumBy { it.count { it == '#' } }
|
||||||
|
|
||||||
|
@Day(11)
|
||||||
|
class Day11(@Lines val input: List<String>) {
|
||||||
|
|
||||||
|
private val seats: Seats = input.map { it.toCharArray() }.toTypedArray()
|
||||||
|
|
||||||
|
private val directions = listOf(
|
||||||
|
-1 to -1,
|
||||||
|
+0 to -1,
|
||||||
|
+1 to -1,
|
||||||
|
+1 to +0,
|
||||||
|
+1 to +1,
|
||||||
|
+0 to +1,
|
||||||
|
-1 to +1,
|
||||||
|
-1 to +0,
|
||||||
|
)
|
||||||
|
|
||||||
|
private fun countAdjacentOccupiedSeats(x: Int, y: Int, seats: Array<CharArray>): Int =
|
||||||
|
directions.mapNotNull { (dx, dy) ->
|
||||||
|
val xx = x + dx
|
||||||
|
val yy = y + dy
|
||||||
|
|
||||||
|
if (xx to yy in seats) seats[xx, yy]
|
||||||
|
else null
|
||||||
|
}.count { it == '#' }
|
||||||
|
|
||||||
|
private fun countVisibleOccupiedSeats(x: Int, y: Int, seats: Seats): Int {
|
||||||
|
var occupied = 0
|
||||||
|
|
||||||
|
for ((dx, dy) in directions) {
|
||||||
|
var xx = x
|
||||||
|
var yy = y
|
||||||
|
while (true) {
|
||||||
|
xx += dx
|
||||||
|
yy += dy
|
||||||
|
if (xx to yy !in seats) break
|
||||||
|
if (seats[xx, yy] == 'L') break
|
||||||
|
if (seats[xx, yy] == '#') {
|
||||||
|
occupied++
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return occupied
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun findLastRepeating(seats: Seats, next: (Seats) -> Seats): Seats {
|
||||||
|
var previous = seats
|
||||||
|
val set = HashSet<String>() // use strings because Arrays don't implement equals ??
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
val res = next(previous)
|
||||||
|
if (!set.add(res.asGridString())) return res
|
||||||
|
previous = res
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun progress1(previous: Array<CharArray>): Array<CharArray> {
|
||||||
|
val next = previous.deepClone()
|
||||||
|
|
||||||
|
for (x in 0 until seats.width) {
|
||||||
|
for (y in 0 until seats.height) {
|
||||||
|
when (previous[x, y]) {
|
||||||
|
'L' -> if (countAdjacentOccupiedSeats(x, y, previous) == 0) next[x, y] = '#'
|
||||||
|
'#' -> if (countAdjacentOccupiedSeats(x, y, previous) >= 4) next[x, y] = 'L'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return next
|
||||||
|
}
|
||||||
|
|
||||||
|
fun part1() = findLastRepeating(seats, ::progress1).countOccupied()
|
||||||
|
|
||||||
|
private fun progress2(previous: Seats): Array<CharArray> {
|
||||||
|
val next = previous.deepClone()
|
||||||
|
|
||||||
|
for (x in 0 until previous.width) {
|
||||||
|
for (y in 0 until previous.height) {
|
||||||
|
when (previous[x, y]) {
|
||||||
|
'L' -> if (countVisibleOccupiedSeats(x, y, previous) == 0) next[x, y] = '#'
|
||||||
|
'#' -> if (countVisibleOccupiedSeats(x, y, previous) >= 5) next[x, y] = 'L'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return next
|
||||||
|
}
|
||||||
|
|
||||||
|
fun part2() = findLastRepeating(seats, ::progress2).countOccupied()
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,79 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
import be.vandewalleh.aoc.utils.input.Lines
|
||||||
|
import kotlin.math.abs
|
||||||
|
|
||||||
|
@Day(12)
|
||||||
|
class Day12(@Lines val input: List<String>) {
|
||||||
|
|
||||||
|
fun part1(): Int {
|
||||||
|
var x = 0
|
||||||
|
var y = 0
|
||||||
|
var facing = "E"
|
||||||
|
|
||||||
|
val dirs = listOf("N", "E", "S", "W")
|
||||||
|
|
||||||
|
input.forEach {
|
||||||
|
val dir = it.take(1)
|
||||||
|
val steps = it.drop(1).toInt()
|
||||||
|
|
||||||
|
when (dir) {
|
||||||
|
"L" -> repeat(steps / 90) {
|
||||||
|
val i = (dirs.indexOf(facing) + 4 - 1) % 4
|
||||||
|
facing = dirs[i]
|
||||||
|
}
|
||||||
|
"R" -> repeat(steps / 90) {
|
||||||
|
val i = (dirs.indexOf(facing) + 1) % 4
|
||||||
|
facing = dirs[i]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
when (if (dir == "F") facing else dir) {
|
||||||
|
"N" -> y -= steps
|
||||||
|
"S" -> y += steps
|
||||||
|
"W" -> x -= steps
|
||||||
|
"E" -> x += steps
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return abs(x) + abs(y)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun part2(): Int {
|
||||||
|
var x = 0
|
||||||
|
var y = 0
|
||||||
|
|
||||||
|
var waypointX = 10
|
||||||
|
var waypointY = -1
|
||||||
|
|
||||||
|
input.forEach {
|
||||||
|
val dir = it.take(1)
|
||||||
|
val steps = it.drop(1).toInt()
|
||||||
|
|
||||||
|
when (dir) {
|
||||||
|
"L" -> repeat(steps / 90) {
|
||||||
|
val oldY = waypointY
|
||||||
|
waypointY = -waypointX
|
||||||
|
waypointX = oldY
|
||||||
|
}
|
||||||
|
"R" -> repeat(steps / 90) {
|
||||||
|
val oldY = waypointY
|
||||||
|
waypointY = waypointX
|
||||||
|
waypointX = -oldY
|
||||||
|
}
|
||||||
|
"F" -> {
|
||||||
|
x += waypointX * steps
|
||||||
|
y += waypointY * steps
|
||||||
|
}
|
||||||
|
"N" -> waypointY -= steps
|
||||||
|
"S" -> waypointY += steps
|
||||||
|
"W" -> waypointX -= steps
|
||||||
|
"E" -> waypointX += steps
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return abs(x) + abs(y)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
import be.vandewalleh.aoc.utils.input.Lines
|
||||||
|
import kotlin.math.abs
|
||||||
|
|
||||||
|
private data class Bus(val index: Int, val id: Long)
|
||||||
|
|
||||||
|
@Day(13)
|
||||||
|
class Day13(@Lines val input: List<String>) {
|
||||||
|
|
||||||
|
fun part1(): Int {
|
||||||
|
val id = input[0].toInt()
|
||||||
|
|
||||||
|
val (busId, min) = input[1]
|
||||||
|
.splitToSequence(",")
|
||||||
|
.filterNot { it == "x" }
|
||||||
|
.map { it.toInt() }
|
||||||
|
.map { bus -> bus to id / bus }
|
||||||
|
.map { (bus, div) -> bus to bus * (div + 1) }
|
||||||
|
.minByOrNull { it.second }!!
|
||||||
|
|
||||||
|
return busId * abs(min - id)
|
||||||
|
}
|
||||||
|
|
||||||
|
private tailrec fun gcd(a: Long, b: Long): Long = if (b == 0L) a else gcd(b, a % b)
|
||||||
|
private fun lcm(a: Long, b: Long): Long = a / gcd(a, b) * b
|
||||||
|
|
||||||
|
fun part2(): Long {
|
||||||
|
val buses = input[1]
|
||||||
|
.splitToSequence(",")
|
||||||
|
.mapIndexedNotNull { index, bus ->
|
||||||
|
if (bus == "x") null
|
||||||
|
else Bus(index, bus.toLong())
|
||||||
|
}
|
||||||
|
.toList()
|
||||||
|
|
||||||
|
var step = 1L
|
||||||
|
var t = 0L
|
||||||
|
|
||||||
|
for ((i, id) in buses) {
|
||||||
|
while ((t + i) % id != 0L) t += step
|
||||||
|
step = lcm(step, id)
|
||||||
|
}
|
||||||
|
|
||||||
|
return t
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,93 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
import be.vandewalleh.aoc.utils.input.Lines
|
||||||
|
import kotlin.math.pow
|
||||||
|
import org.eclipse.collections.impl.factory.primitive.IntObjectMaps
|
||||||
|
import org.eclipse.collections.impl.factory.primitive.LongIntMaps
|
||||||
|
|
||||||
|
@Day(14)
|
||||||
|
class Day14(@Lines val input: List<String>) {
|
||||||
|
|
||||||
|
private val memRe = "mem\\[(\\d+)] = (.*)$".toRegex()
|
||||||
|
|
||||||
|
private fun Long.toBin36() = toString(2).padStart(length = 36, padChar = '0')
|
||||||
|
|
||||||
|
fun part1(): Long {
|
||||||
|
val mem = IntObjectMaps.mutable.empty<String>()
|
||||||
|
|
||||||
|
var currentMask: String = ""
|
||||||
|
|
||||||
|
for (line in input) {
|
||||||
|
if (line.startsWith("mask")) {
|
||||||
|
currentMask = line.removePrefix("mask = ")
|
||||||
|
} else {
|
||||||
|
val (address, value) = memRe.find(line)!!.destructured
|
||||||
|
val bin = value.toLong().toBin36()
|
||||||
|
|
||||||
|
val result = bin.zip(currentMask)
|
||||||
|
.map { (bin, mask) -> if (mask != 'X') mask else bin }
|
||||||
|
.joinToString("")
|
||||||
|
|
||||||
|
mem.put(address.toInt(), result)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return mem.values()
|
||||||
|
.map { it.dropWhile { it == '0' } }
|
||||||
|
.map { it.toLong(2) }
|
||||||
|
.sum()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun part2(): Long {
|
||||||
|
val mem = LongIntMaps.mutable.empty()
|
||||||
|
|
||||||
|
var currentMask = ""
|
||||||
|
|
||||||
|
for (line in input) {
|
||||||
|
if (line[1] == 'a') {
|
||||||
|
currentMask = line.substring(7)
|
||||||
|
} else {
|
||||||
|
|
||||||
|
val (address, value) = memRe.find(line)!!.destructured.let { (add, value) ->
|
||||||
|
add.toLong().toBin36() to value.toInt()
|
||||||
|
}
|
||||||
|
|
||||||
|
val mutations = generateMutations(currentMask, address)
|
||||||
|
|
||||||
|
for (mutation in mutations) {
|
||||||
|
mem.put(String(mutation).toLong(2), value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return mem.values().sum()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun generateMutations(mask: String, address: String): Array<CharArray> {
|
||||||
|
val mutationCount = mask.count { it == 'X' }.let { 2.0.pow(it.toDouble()).toInt() }
|
||||||
|
val mutations = Array(mutationCount) { CharArray(36) }
|
||||||
|
|
||||||
|
var groups = 1
|
||||||
|
|
||||||
|
for (i in mask.indices) {
|
||||||
|
when (mask[i]) {
|
||||||
|
'X' -> {
|
||||||
|
groups *= 2
|
||||||
|
val groupSize = mutationCount / groups
|
||||||
|
var currentChar = '1'
|
||||||
|
for (b in mutations.indices) {
|
||||||
|
val builder = mutations[b]
|
||||||
|
val flip = b % groupSize == 0
|
||||||
|
if (flip) currentChar = if (currentChar == '0') '1' else '0'
|
||||||
|
builder[i] = currentChar
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'1' -> mutations.forEach { it[i] = '1' }
|
||||||
|
else -> mutations.forEach { it[i] = address[i] }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return mutations
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.input.Csv
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
import kotlin.math.abs
|
||||||
|
import org.eclipse.collections.impl.factory.primitive.IntObjectMaps
|
||||||
|
|
||||||
|
@Day(15)
|
||||||
|
class Day15(@Csv val input: IntArray) {
|
||||||
|
|
||||||
|
private fun run(until: Int): Int {
|
||||||
|
val start = input
|
||||||
|
|
||||||
|
val map = IntObjectMaps.mutable.empty<IntArray>()
|
||||||
|
|
||||||
|
var last = -1
|
||||||
|
|
||||||
|
fun say(round: Int, number: Int) {
|
||||||
|
val lastValues = map.get(number)
|
||||||
|
val values = lastValues
|
||||||
|
?.let { intArrayOf(round, it.maxOrNull()!!) }
|
||||||
|
?: intArrayOf(round)
|
||||||
|
|
||||||
|
map.put(number, values)
|
||||||
|
last = number
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i in 1..until) {
|
||||||
|
if (i <= start.size) {
|
||||||
|
say(i, start[i - 1])
|
||||||
|
} else {
|
||||||
|
val lastValues = map.get(last)
|
||||||
|
if (lastValues?.size ?: 0 < 2) say(i, 0)
|
||||||
|
else say(i, abs(lastValues[0] - lastValues[1]))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return last
|
||||||
|
}
|
||||||
|
|
||||||
|
fun part1() = run(until = 2020)
|
||||||
|
|
||||||
|
fun part2() = run(until = 30000000)
|
||||||
|
}
|
||||||
@@ -0,0 +1,148 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
import be.vandewalleh.aoc.utils.input.Groups
|
||||||
|
import org.eclipse.collections.api.multimap.list.ListMultimap
|
||||||
|
import org.eclipse.collections.api.multimap.list.MutableListMultimap
|
||||||
|
import org.eclipse.collections.api.multimap.set.MutableSetMultimap
|
||||||
|
import org.eclipse.collections.impl.factory.Multimaps
|
||||||
|
import org.eclipse.collections.impl.multimap.list.FastListMultimap
|
||||||
|
|
||||||
|
@Day(16)
|
||||||
|
class Day16(@Groups val input: List<List<String>>) {
|
||||||
|
|
||||||
|
private val rangesGroup = input[0]
|
||||||
|
private val myTicket = input[1][1]
|
||||||
|
private val nearbyTicketsGroup = input[2].drop(1)
|
||||||
|
|
||||||
|
private val rangeRe = "(\\d+)-(\\d+)".toRegex()
|
||||||
|
|
||||||
|
private fun extractRanges(line: String): Sequence<IntRange> = rangeRe.findAll(line)
|
||||||
|
.map {
|
||||||
|
val (min, max) = it.destructured
|
||||||
|
min.toInt()..max.toInt()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun part1(): Int {
|
||||||
|
val minMax = mutableListOf<IntRange>()
|
||||||
|
|
||||||
|
for (line in rangesGroup) {
|
||||||
|
minMax.addAll(extractRanges(line))
|
||||||
|
}
|
||||||
|
|
||||||
|
val nearbyTickets = mutableListOf<Int>()
|
||||||
|
for (line in nearbyTicketsGroup) {
|
||||||
|
line.splitToSequence(",").forEach { nearbyTickets.add(it.toInt()) }
|
||||||
|
}
|
||||||
|
|
||||||
|
val invalid = mutableListOf<Int>()
|
||||||
|
nearbyTickets.forEach { number ->
|
||||||
|
if (minMax.none { number in it }) invalid.add(number)
|
||||||
|
}
|
||||||
|
|
||||||
|
return invalid.sum()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun isTicketValid(ticket: List<Int>, ranges: Iterable<IntRange>): Boolean {
|
||||||
|
for (number in ticket) {
|
||||||
|
if (!ranges.any { number in it }) return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun inRanges(value: Int, ranges: List<IntRange>) = ranges.any { value in it }
|
||||||
|
|
||||||
|
fun part2(): Long {
|
||||||
|
val rangesByName = namedRanges()
|
||||||
|
val validTickets = validTickets(rangesByName)
|
||||||
|
val indexesByCategory = indexesByCategory(rangesByName, validTickets)
|
||||||
|
|
||||||
|
removeDuplicates(indexesByCategory)
|
||||||
|
|
||||||
|
val myTicketValues = myTicket.split(",").map { it.toInt() }
|
||||||
|
|
||||||
|
var mult = 1L
|
||||||
|
indexesByCategory.forEachKeyValue { category, index ->
|
||||||
|
if (category.startsWith("departure")) {
|
||||||
|
mult *= myTicketValues[index]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return mult
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun removeDuplicates(indexesByCategory: MutableSetMultimap<String, Int>) {
|
||||||
|
val toBeRemoved = HashSet<Int>()
|
||||||
|
val queue = ArrayDeque<Int>()
|
||||||
|
|
||||||
|
indexesByCategory.multiValuesView()
|
||||||
|
.toSortedListBy { it.size() }
|
||||||
|
.forEach { it.forEach { if (toBeRemoved.add(it)) queue.add(it) } }
|
||||||
|
|
||||||
|
queue.removeLast()
|
||||||
|
|
||||||
|
val categoriesToRemove = mutableListOf<String>()
|
||||||
|
|
||||||
|
while (queue.isNotEmpty()) {
|
||||||
|
val duplicate = queue.removeFirst()
|
||||||
|
|
||||||
|
categoriesToRemove.clear()
|
||||||
|
|
||||||
|
for (entry in indexesByCategory.keyMultiValuePairsView()) {
|
||||||
|
if (entry.two.size() < 2) continue
|
||||||
|
categoriesToRemove.add(entry.one)
|
||||||
|
}
|
||||||
|
|
||||||
|
for (category in categoriesToRemove) {
|
||||||
|
indexesByCategory.remove(category, duplicate)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun indexesByCategory(
|
||||||
|
rangesByName: ListMultimap<String, IntRange>,
|
||||||
|
validTickets: List<List<Int>>,
|
||||||
|
): MutableSetMultimap<String, Int> {
|
||||||
|
val indexesByCategory = Multimaps.mutable.set.empty<String, Int>()
|
||||||
|
|
||||||
|
for (entry in rangesByName.keyMultiValuePairsView()) {
|
||||||
|
val category = entry.one
|
||||||
|
val ranges = entry.two.toList()
|
||||||
|
|
||||||
|
for (i in validTickets.first().indices) {
|
||||||
|
var allInRange = true
|
||||||
|
for(ticket in validTickets){
|
||||||
|
val current = ticket[i]
|
||||||
|
if(!inRanges(current, ranges)){
|
||||||
|
allInRange = false
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (allInRange) indexesByCategory.put(category, i)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return indexesByCategory
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun validTickets(rangesByName: MutableListMultimap<String, IntRange>): List<List<Int>> {
|
||||||
|
val validTickets = mutableListOf<List<Int>>()
|
||||||
|
val ranges = rangesByName.valuesView().toList()
|
||||||
|
for (line in nearbyTicketsGroup) {
|
||||||
|
val ticket = line.split(",").map { it.toInt() }
|
||||||
|
if (isTicketValid(ticket, ranges)) {
|
||||||
|
validTickets.add(ticket)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return validTickets
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun namedRanges(): MutableListMultimap<String, IntRange> {
|
||||||
|
val rangesByName = FastListMultimap<String, IntRange>()
|
||||||
|
for (line in rangesGroup) {
|
||||||
|
val name = line.substringBefore(":")
|
||||||
|
extractRanges(line).forEach {
|
||||||
|
rangesByName.put(name, it)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return rangesByName
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,87 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
import be.vandewalleh.aoc.utils.input.Lines
|
||||||
|
|
||||||
|
private data class Point(val x: Int, val y: Int, val z: Int)
|
||||||
|
private data class Point4(val x: Int, val y: Int, val z: Int, val blah: Int)
|
||||||
|
|
||||||
|
private enum class State { Active, Inactive }
|
||||||
|
|
||||||
|
@Day(17)
|
||||||
|
class Day17(@Lines val input: List<String>) {
|
||||||
|
|
||||||
|
fun part1(): Int {
|
||||||
|
val grid = parseGrid { x, y -> Point(x, y, 0) }
|
||||||
|
repeat(6) { step(grid, ::neighbours3) }
|
||||||
|
return grid.values.count { it == State.Active }
|
||||||
|
}
|
||||||
|
|
||||||
|
fun part2(): Int {
|
||||||
|
val grid = parseGrid { x, y -> Point4(x, y, 0, 0) }
|
||||||
|
repeat(6) { step(grid, ::neighbours4) }
|
||||||
|
return grid.values.count { it == State.Active }
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun <T> parseGrid(pointFactory: (x: Int, y: Int) -> T): MutableMap<T, State> {
|
||||||
|
val grid = mutableMapOf<T, State>()
|
||||||
|
input.forEachIndexed { index, row ->
|
||||||
|
row.forEachIndexed { col, char ->
|
||||||
|
val state = if (char == '#') State.Active else State.Inactive
|
||||||
|
grid[pointFactory(index, col)] = state
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return grid
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun <T> step(grid: MutableMap<T, State>, neighbours: (T) -> List<T>) {
|
||||||
|
val modifications = mutableMapOf<T, State>()
|
||||||
|
val pointsToConsider = grid.keys.flatMap { neighbours(it) }.toSet()
|
||||||
|
for (point in pointsToConsider) {
|
||||||
|
val neighbours = neighbours(point)
|
||||||
|
val activeNeighboursCount = neighbours.count { grid[it] ?: State.Inactive == State.Active }
|
||||||
|
val state = grid[point] ?: State.Inactive
|
||||||
|
if (state == State.Active && activeNeighboursCount !in 2..3) {
|
||||||
|
modifications[point] = State.Inactive
|
||||||
|
} else if (activeNeighboursCount == 3) {
|
||||||
|
modifications[point] = State.Active
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for ((point, state) in modifications) {
|
||||||
|
grid[point] = state
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun neighbours3(point: Point): List<Point> {
|
||||||
|
val points = mutableListOf<Point>()
|
||||||
|
for (x in point.x - 1..point.x + 1) {
|
||||||
|
for (y in point.y - 1..point.y + 1) {
|
||||||
|
for (z in point.z - 1..point.z + 1) {
|
||||||
|
val generatedPoint = Point(x, y, z)
|
||||||
|
if (generatedPoint != point)
|
||||||
|
points.add(generatedPoint)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
check(points.size == 26) { "Points size was ${points.size}" }
|
||||||
|
return points
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun neighbours4(point: Point4): List<Point4> {
|
||||||
|
val points = mutableListOf<Point4>()
|
||||||
|
for (x in point.x - 1..point.x + 1) {
|
||||||
|
for (y in point.y - 1..point.y + 1) {
|
||||||
|
for (z in point.z - 1..point.z + 1) {
|
||||||
|
for (blah in point.blah - 1..point.blah + 1) {
|
||||||
|
val generatedPoint = Point4(x, y, z, blah)
|
||||||
|
if (generatedPoint != point)
|
||||||
|
points.add(generatedPoint)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
check(points.size == 80) { "Points size was ${points.size}" }
|
||||||
|
return points
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,170 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
import be.vandewalleh.aoc.utils.input.Lines
|
||||||
|
import java.util.*
|
||||||
|
import org.slf4j.Logger
|
||||||
|
import org.slf4j.LoggerFactory
|
||||||
|
|
||||||
|
private enum class Operator { Add, Multiply }
|
||||||
|
|
||||||
|
private operator fun Operator.invoke(a: Long, b: Long) = when (this) {
|
||||||
|
Operator.Add -> a + b
|
||||||
|
Operator.Multiply -> a * b
|
||||||
|
}
|
||||||
|
|
||||||
|
private inline fun Logger.debug(msg: () -> Any) {
|
||||||
|
if (isDebugEnabled) debug(msg().toString())
|
||||||
|
}
|
||||||
|
|
||||||
|
@Day(18)
|
||||||
|
class Day18(@Lines val input: List<String>) {
|
||||||
|
|
||||||
|
private val logger = LoggerFactory.getLogger("Day18")
|
||||||
|
private val lines = input.map { it.replace(" ", "") }
|
||||||
|
|
||||||
|
private fun parseGroups(line: String): Map<Int, List<IntRange>> {
|
||||||
|
var depth = 0
|
||||||
|
val groups = mutableMapOf<Int, MutableList<IntRange>>()
|
||||||
|
val openingPars = Stack<Int>()
|
||||||
|
|
||||||
|
for ((index, char) in line.withIndex()) {
|
||||||
|
when (char) {
|
||||||
|
'(' -> {
|
||||||
|
openingPars.push(index)
|
||||||
|
depth++
|
||||||
|
}
|
||||||
|
')' -> {
|
||||||
|
depth--
|
||||||
|
val group = groups.getOrPut(depth) { mutableListOf() }
|
||||||
|
group.add(openingPars.pop()..index)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return groups.also { logger.debug { it } }
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun solveGroup(group: String, precedence: Boolean) = solveGroup(parseGroup(group), precedence)
|
||||||
|
|
||||||
|
private fun solveGroup(group: Pair<LinkedList<Long>, LinkedList<Operator>>, precedence: Boolean): Long {
|
||||||
|
val (operands, operators) = group
|
||||||
|
logger.debug { operands }
|
||||||
|
logger.debug { operators }
|
||||||
|
|
||||||
|
if (!precedence) {
|
||||||
|
for (i in operators.indices) {
|
||||||
|
val a = operands[i]
|
||||||
|
val b = operands[i + 1]
|
||||||
|
|
||||||
|
val result = operators[i](a, b)
|
||||||
|
|
||||||
|
operands[i + 1] = result
|
||||||
|
}
|
||||||
|
|
||||||
|
return operands.peekLast()
|
||||||
|
} else {
|
||||||
|
|
||||||
|
var i = 0
|
||||||
|
while (operators.any { it == Operator.Add }) {
|
||||||
|
|
||||||
|
val operator = operators[i]
|
||||||
|
|
||||||
|
if (operator == Operator.Add) {
|
||||||
|
val a = operands[i]
|
||||||
|
val b = operands[i + 1]
|
||||||
|
val res = operator(a, b)
|
||||||
|
operands.removeAt(i)
|
||||||
|
operands[i] = res
|
||||||
|
operators.removeAt(i)
|
||||||
|
} else {
|
||||||
|
i++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return operands.reduce { a, b -> Operator.Multiply(a, b) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun parseGroup(group: String): Pair<LinkedList<Long>, LinkedList<Operator>> {
|
||||||
|
val operands = LinkedList<Long>()
|
||||||
|
val operators = LinkedList<Operator>()
|
||||||
|
val operand = StringBuilder()
|
||||||
|
|
||||||
|
for (char in group) {
|
||||||
|
if (char.isDigit()) {
|
||||||
|
operand.append(char)
|
||||||
|
} else {
|
||||||
|
val operator = when (char) {
|
||||||
|
'+' -> Operator.Add
|
||||||
|
'*' -> Operator.Multiply
|
||||||
|
else -> error("Unknown operator $char")
|
||||||
|
}
|
||||||
|
operators.add(operator)
|
||||||
|
operands.add(operand.toString().toLong())
|
||||||
|
operand.clear()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
operands.add(operand.toString().toLong())
|
||||||
|
|
||||||
|
return Pair(operands, operators)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun solveLine(line: String, precedence: Boolean = false): Long {
|
||||||
|
var l = line
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
val groups = parseGroups(l)
|
||||||
|
if (groups.isEmpty()) break
|
||||||
|
|
||||||
|
val highestDepth = groups.keys.maxOrNull()!!
|
||||||
|
val solvableRanges = groups[highestDepth]!!
|
||||||
|
|
||||||
|
val solved = ArrayDeque<Pair<IntRange, Long>>()
|
||||||
|
|
||||||
|
for (range in solvableRanges) {
|
||||||
|
val rangeWithoutPars = range.first + 1 until range.last
|
||||||
|
val answer = solveGroup(l.substring(rangeWithoutPars), precedence)
|
||||||
|
solved.addLast(range to answer)
|
||||||
|
}
|
||||||
|
|
||||||
|
var solution = solved.removeFirst()
|
||||||
|
var inside = false
|
||||||
|
|
||||||
|
val builder = StringBuilder()
|
||||||
|
|
||||||
|
for (i in l.indices) {
|
||||||
|
if (!inside && i in solution.first) {
|
||||||
|
inside = true
|
||||||
|
builder.append(solution.second)
|
||||||
|
} else if (inside && i !in solution.first) {
|
||||||
|
inside = false
|
||||||
|
|
||||||
|
solution = if (solved.isEmpty()) -1..-1 to -1 // avoid null checks..
|
||||||
|
else solved.removeFirst()
|
||||||
|
|
||||||
|
builder.append(l[i])
|
||||||
|
} else if (i !in solution.first) {
|
||||||
|
builder.append(l[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
l = builder.toString()
|
||||||
|
}
|
||||||
|
|
||||||
|
return solveGroup(l, precedence)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun part1() = lines
|
||||||
|
.parallelStream()
|
||||||
|
.map { solveLine(it) }
|
||||||
|
.reduce { t, u -> t + u }
|
||||||
|
.get()
|
||||||
|
|
||||||
|
fun part2() = lines
|
||||||
|
.parallelStream()
|
||||||
|
.map { solveLine(it, precedence = true) }
|
||||||
|
.reduce { t, u -> t + u }
|
||||||
|
.get()
|
||||||
|
}
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
import be.vandewalleh.aoc.utils.input.Groups
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
|
@Day(19)
|
||||||
|
class Day19(@Groups val input: List<List<String>>) {
|
||||||
|
private val rules = input[0]
|
||||||
|
private val messages = input[1]
|
||||||
|
|
||||||
|
sealed class Rule {
|
||||||
|
data class CharRule(val value: Char) : Rule()
|
||||||
|
data class OrRule(val a: List<Int>, val b: List<Int>?) : Rule() {
|
||||||
|
val all get() = listOfNotNull(a, b)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun parseRules(): Map<Int, Rule> {
|
||||||
|
val parsedRules = mutableMapOf<Int, Rule>()
|
||||||
|
rules.forEach {
|
||||||
|
val parts = it.split(":", limit = 2)
|
||||||
|
val index = parts[0].toInt()
|
||||||
|
val rule = if ("\"" !in parts[1]) {
|
||||||
|
val p = parts[1].split('|', limit = 2).map { it.trim().split(" ").mapTo(ArrayList(2)) { it.toInt() } }
|
||||||
|
Rule.OrRule(p[0], if (p.size == 2) p[1] else null)
|
||||||
|
} else {
|
||||||
|
Rule.CharRule(parts[1].trim().replace("\"", "")[0])
|
||||||
|
}
|
||||||
|
parsedRules[index] = rule
|
||||||
|
}
|
||||||
|
return parsedRules
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun matches(input: String, queue: ArrayDeque<Int>, rules: Map<Int, Rule>): Boolean =
|
||||||
|
if (queue.isEmpty()) input.isEmpty()
|
||||||
|
else if (input.isEmpty()) queue.isEmpty()
|
||||||
|
else when (val rule = rules[queue.pop()]!!) {
|
||||||
|
is Rule.CharRule -> input[0] == rule.value && matches(input.drop(1), queue, rules)
|
||||||
|
is Rule.OrRule -> rule.all.any { matches(input, queue.clone().apply { it.asReversed().forEach { addFirst(it) } }, rules) }
|
||||||
|
}
|
||||||
|
|
||||||
|
fun part1(): Int {
|
||||||
|
val rules = parseRules()
|
||||||
|
return messages.count { matches(it, ArrayDeque<Int>().apply { add(0) }, rules) }
|
||||||
|
}
|
||||||
|
|
||||||
|
fun part2(): Int {
|
||||||
|
val rules = parseRules().toMutableMap()
|
||||||
|
rules[8] = Rule.OrRule(listOf(42), listOf(42, 8))
|
||||||
|
rules[11] = Rule.OrRule(listOf(42, 31), listOf(42, 11, 31))
|
||||||
|
return messages.count { matches(it, ArrayDeque<Int>().apply { add(0) }, rules) }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,202 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.days.geometry.Grid
|
||||||
|
import be.vandewalleh.aoc.days.geometry.gridOf
|
||||||
|
import be.vandewalleh.aoc.days.geometry.transformations
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
import be.vandewalleh.aoc.utils.input.Groups
|
||||||
|
import kotlin.math.sqrt
|
||||||
|
|
||||||
|
private typealias Tile = Grid<Char>
|
||||||
|
|
||||||
|
@Day(20)
|
||||||
|
class Day20(@Groups val input: List<List<String>>) {
|
||||||
|
private val tiles: Map<Int, Tile> = input
|
||||||
|
.map { it[0].let { it.substring(5 until it.indexOf(':')).toInt() } to it.drop(1) }
|
||||||
|
.associate { (id, tile) -> id to gridOf(tile) }
|
||||||
|
|
||||||
|
private fun Tile.allEdges() = listOf(edges(), edges().map { it.reversed() }).flatten()
|
||||||
|
|
||||||
|
private fun edgesMatch(a: Tile, b: Tile): Boolean {
|
||||||
|
val edges = b.allEdges()
|
||||||
|
return a.allEdges().any { a -> edges.any { a == it } }
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun combine(tiles: List<Tile>) = sequence {
|
||||||
|
for (i in 0 until tiles.lastIndex) {
|
||||||
|
val a = tiles[i]
|
||||||
|
for (j in i + 1 until tiles.size) {
|
||||||
|
val b = tiles[j]
|
||||||
|
yield(a to b)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun tilesByNeighbourCount(): MutableMap<Int, MutableList<Tile>> {
|
||||||
|
val neighbours = combine(tiles.values.toList())
|
||||||
|
.filter { (a, b) -> edgesMatch(a, b) }
|
||||||
|
.map { it.toList() }
|
||||||
|
.flatten()
|
||||||
|
.groupBy { it }
|
||||||
|
.values
|
||||||
|
|
||||||
|
val map = mutableMapOf<Int, MutableList<Tile>>()
|
||||||
|
for (neighbour in neighbours) {
|
||||||
|
map.computeIfAbsent(neighbour.size) { mutableListOf() }.add(neighbour.first())
|
||||||
|
}
|
||||||
|
return map
|
||||||
|
}
|
||||||
|
|
||||||
|
fun part1() = tilesByNeighbourCount()[2]!!
|
||||||
|
.map { tile -> tiles.entries.find { it.value == tile }!!.key.toLong() }
|
||||||
|
.reduce { acc, id -> acc * id }
|
||||||
|
|
||||||
|
private fun neighboursCount(grid: Grid<*>, x: Int, y: Int): Int {
|
||||||
|
var neighboursCount = 2
|
||||||
|
if (x != 0 && x != grid.lastColumnIndex) neighboursCount++
|
||||||
|
if (y != 0 && y != grid.lastRowIndex) neighboursCount++
|
||||||
|
return neighboursCount
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun isLeftOk(grid: Grid<Tile?>, x: Int, y: Int, candidate: Tile) = grid[x - 1, y]
|
||||||
|
?.let { left -> candidate.firstColumn() == left.lastColumn() }
|
||||||
|
?: true
|
||||||
|
|
||||||
|
private fun isTopOk(grid: Grid<Tile?>, x: Int, y: Int, candidate: Tile) = grid[x, y - 1]
|
||||||
|
?.let { top -> candidate.firstRow() == top.lastRow() }
|
||||||
|
?: true
|
||||||
|
|
||||||
|
private fun isBottomOk(grid: Grid<*>, x: Int, y: Int, candidate: Tile, neighbours: Map<Int, List<Tile>>) =
|
||||||
|
if (y == grid.lastRowIndex) true
|
||||||
|
else neighbours[neighboursCount(grid, x, y + 1)]!!
|
||||||
|
.filterNot { it == candidate }
|
||||||
|
.count { it.transformations().any { candidate.lastColumn() == it.firstColumn() } } == 1
|
||||||
|
|
||||||
|
private fun isRightOk(grid: Grid<*>, x: Int, y: Int, candidate: Tile, neighbours: Map<Int, List<Tile>>) =
|
||||||
|
if (x == grid.lastColumnIndex) true
|
||||||
|
else neighbours[neighboursCount(grid, x + 1, y)]!!
|
||||||
|
.filterNot { it == candidate }
|
||||||
|
.count { it.transformations().any { candidate.lastRow() == it.firstRow() } } == 1
|
||||||
|
|
||||||
|
private fun assembleGrid(): Grid<Tile?> {
|
||||||
|
val size = sqrt(tiles.size.toDouble()).toInt()
|
||||||
|
val grid: Grid<Tile?> = Grid(Array(size) { Array(size) { null } })
|
||||||
|
|
||||||
|
val neighbours: MutableMap<Int, MutableList<Tile>> = tilesByNeighbourCount()
|
||||||
|
|
||||||
|
for (y in 0 until grid.height) {
|
||||||
|
for (x in 0 until grid.width) {
|
||||||
|
val neighboursCount = neighboursCount(grid, x, y)
|
||||||
|
val candidates = neighbours[neighboursCount]!!
|
||||||
|
|
||||||
|
val conditions = mutableListOf<(Tile) -> Boolean>()
|
||||||
|
conditions += { isLeftOk(grid, x, y, it) }
|
||||||
|
conditions += { isTopOk(grid, x, y, it) }
|
||||||
|
|
||||||
|
// why is this condition needed ?
|
||||||
|
if (x == 0 && y == 0) {
|
||||||
|
conditions += { isBottomOk(grid, x, y, it, neighbours) }
|
||||||
|
conditions += { isRightOk(grid, x, y, it, neighbours) }
|
||||||
|
}
|
||||||
|
|
||||||
|
var found: Tile? = null
|
||||||
|
|
||||||
|
outer@ for (candidate in candidates) {
|
||||||
|
for (transform in candidate.transformations()) {
|
||||||
|
if (conditions.all { it(transform) }) {
|
||||||
|
found = transform
|
||||||
|
candidates.remove(candidate)
|
||||||
|
break@outer
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
check(found != null)
|
||||||
|
grid[x, y] = found
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return grid
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun removeGaps(grid: Grid<Tile?>) {
|
||||||
|
for (y in 0 until grid.height) {
|
||||||
|
for (x in 0 until grid.width) {
|
||||||
|
grid[x, y] = removeGaps(grid[x, y]!!)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun removeGaps(tile: Tile): Tile {
|
||||||
|
val oldData: ArrayList<ArrayList<Char>> = tile.data
|
||||||
|
val newData = ArrayList<ArrayList<Char>>(oldData.size - 2)
|
||||||
|
oldData.subList(1, oldData.size - 1).forEach { d ->
|
||||||
|
val l = ArrayList<Char>().apply {
|
||||||
|
addAll(d.subList(1, d.size - 1))
|
||||||
|
}
|
||||||
|
newData.add(l)
|
||||||
|
}
|
||||||
|
return Tile(newData)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun gridToTile(grid: Grid<Tile?>): Tile {
|
||||||
|
val newData = ArrayList<ArrayList<Char>>()
|
||||||
|
for (y in 0 until grid.height) {
|
||||||
|
val row = grid.row(y)
|
||||||
|
for (yy in 0 until row[0]!!.height) {
|
||||||
|
val combinedRow = ArrayList<Char>().also { newData.add(it) }
|
||||||
|
row.forEach { combinedRow.addAll(it!!.row(yy)) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Tile(newData)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun Tile.subGridData(startX: Int, startY: Int, width: Int, height: Int): List<List<Char>> {
|
||||||
|
val newData = ArrayList<ArrayList<Char>>()
|
||||||
|
for (y in startY until startY + height) {
|
||||||
|
val row = ArrayList<Char>().also { newData.add(it) }
|
||||||
|
for (x in startX until startX + width) {
|
||||||
|
row.add(this[x, y]!!)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return newData
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun List<List<Char>>.isMonster(monster: List<List<Char>>): Boolean {
|
||||||
|
val monsterRe = monster.joinToString("") { it.joinToString("") }.replace(" ", ".").toRegex()
|
||||||
|
val str = this.joinToString("") { it.joinToString("") }
|
||||||
|
return monsterRe.matches(str)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun part2(): Int {
|
||||||
|
val grid = assembleGrid()
|
||||||
|
removeGaps(grid)
|
||||||
|
val megaTile = gridToTile(grid)
|
||||||
|
|
||||||
|
val monster: List<List<Char>> = """
|
||||||
|
| # |
|
||||||
|
|# ## ## ###|
|
||||||
|
| # # # # # # |
|
||||||
|
""".trimMargin("|").lines().map { it.toCharArray().dropLast(1) }
|
||||||
|
|
||||||
|
val monsterWidth = monster[0].size
|
||||||
|
val monsterHeight = 3
|
||||||
|
val monsterSquares = monster.flatten().count { it == '#' }
|
||||||
|
val squares = megaTile.data.flatten().count { it == '#' }
|
||||||
|
|
||||||
|
for (g in megaTile.transformations()) {
|
||||||
|
var count = 0
|
||||||
|
for (y in 0 until g.lastRowIndex - monsterHeight) {
|
||||||
|
for (x in 0 until g.lastColumnIndex - monsterWidth) {
|
||||||
|
val subgrid = g.subGridData(x, y, monsterWidth, monsterHeight)
|
||||||
|
if (subgrid.isMonster(monster)) {
|
||||||
|
count++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (count != 0) return squares - (count * monsterSquares)
|
||||||
|
}
|
||||||
|
error("No monsters found")
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
import be.vandewalleh.aoc.utils.input.Lines
|
||||||
|
import org.eclipse.collections.api.factory.Bags
|
||||||
|
import org.eclipse.collections.api.multimap.set.MutableSetMultimap
|
||||||
|
import org.eclipse.collections.impl.factory.Multimaps
|
||||||
|
|
||||||
|
@Day(21)
|
||||||
|
class Day21(@Lines val input: List<String>) {
|
||||||
|
private val foods = input.map { line ->
|
||||||
|
val parOpen = line.indexOf('(')
|
||||||
|
val ingredients = line.substring(0 until parOpen - 1).split(" ")
|
||||||
|
val allergens = line.substring(parOpen + 1 until line.length - 1).removePrefix("contains ").split(", ")
|
||||||
|
ingredients to allergens
|
||||||
|
}
|
||||||
|
|
||||||
|
private val allIngredients = foods.flatMap { it.first }.toSet()
|
||||||
|
private val allAllergens = foods.flatMap { it.second }.toSet()
|
||||||
|
private val dangerousIngredients = dangerousIngredients()
|
||||||
|
|
||||||
|
fun part1(): Int {
|
||||||
|
val occurrences = Bags.mutable.empty<String>()
|
||||||
|
foods.forEach { (ingredients) -> occurrences.addAll(ingredients) }
|
||||||
|
return allIngredients.filter { !dangerousIngredients.containsValue(it) }
|
||||||
|
.map { ingredient -> occurrences.count { it == ingredient } }
|
||||||
|
.sum()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun part2(): String {
|
||||||
|
while (!dangerousIngredients.multiValuesView().all { it.size() == 1 }) {
|
||||||
|
dangerousIngredients.multiValuesView()
|
||||||
|
.filter { it.size() == 1 }
|
||||||
|
.map { it.first() }
|
||||||
|
.forEach { removeMe ->
|
||||||
|
dangerousIngredients.keyMultiValuePairsView()
|
||||||
|
.filter { it.two.size() != 1 && it.two.contains(removeMe) }
|
||||||
|
.forEach { dangerousIngredients.remove(it.one, removeMe) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return dangerousIngredients.keySet().sorted().joinToString(",") { dangerousIngredients.get(it).first() }
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun dangerousIngredients(): MutableSetMultimap<String, String> {
|
||||||
|
val map = Multimaps.mutable.set.empty<String, String>()
|
||||||
|
allAllergens.forEach { map.putAll(it, allIngredients) }
|
||||||
|
|
||||||
|
foods.forEach { (ingredients, allergens) ->
|
||||||
|
allergens.forEach { allergen ->
|
||||||
|
allIngredients.forEach {
|
||||||
|
if (!ingredients.contains(it)) map.remove(allergen, it)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,76 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
import be.vandewalleh.aoc.utils.input.Groups
|
||||||
|
|
||||||
|
private data class PlayedGame(val a: List<Int>, val b: List<Int>)
|
||||||
|
|
||||||
|
@Day(22)
|
||||||
|
class Day22(@Groups val input: List<List<String>>) {
|
||||||
|
private val one = input[0].drop(1).map { it.toInt() }
|
||||||
|
private val two = input[1].drop(1).map { it.toInt() }
|
||||||
|
|
||||||
|
fun part1(): Long {
|
||||||
|
val oneDeque = ArrayDeque(one)
|
||||||
|
val twoDeque = ArrayDeque(two)
|
||||||
|
|
||||||
|
while (oneDeque.isNotEmpty() && twoDeque.isNotEmpty()) {
|
||||||
|
val a = oneDeque.removeFirst()
|
||||||
|
val b = twoDeque.removeFirst()
|
||||||
|
|
||||||
|
if (a > b) {
|
||||||
|
oneDeque.addLast(a)
|
||||||
|
oneDeque.addLast(b)
|
||||||
|
} else {
|
||||||
|
twoDeque.addLast(b)
|
||||||
|
twoDeque.addLast(a)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val deque = if (oneDeque.isEmpty()) twoDeque else oneDeque
|
||||||
|
return deque.score()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun ArrayDeque<Int>.score() =
|
||||||
|
asReversed().mapIndexed { index, value -> (index + 1).toLong() * value.toLong() }.sum()
|
||||||
|
|
||||||
|
fun part2(): Long {
|
||||||
|
val oneDeque = ArrayDeque(one)
|
||||||
|
val twoDeque = ArrayDeque(two)
|
||||||
|
|
||||||
|
val winner = playGame(oneDeque, twoDeque)
|
||||||
|
val deque = if (winner == 1) oneDeque else twoDeque
|
||||||
|
return deque.score()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun playGame(one: ArrayDeque<Int>, two: ArrayDeque<Int>): Int {
|
||||||
|
val playedGames = mutableSetOf<PlayedGame>()
|
||||||
|
|
||||||
|
while (one.isNotEmpty() && two.isNotEmpty()) {
|
||||||
|
if (!playedGames.add(PlayedGame(one.toList(), two.toList()))) return 1
|
||||||
|
|
||||||
|
val a = one.removeFirst()
|
||||||
|
val b = two.removeFirst()
|
||||||
|
|
||||||
|
val winner = when {
|
||||||
|
one.size >= a && two.size >= b -> playGame(
|
||||||
|
ArrayDeque(one.take(a)),
|
||||||
|
ArrayDeque(two.take(b))
|
||||||
|
)
|
||||||
|
a > b -> 1
|
||||||
|
else -> 2
|
||||||
|
}
|
||||||
|
|
||||||
|
if (winner == 1) {
|
||||||
|
one.addLast(a)
|
||||||
|
one.addLast(b)
|
||||||
|
} else {
|
||||||
|
two.addLast(b)
|
||||||
|
two.addLast(a)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return if (one.isEmpty()) 2 else 1
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,111 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
import be.vandewalleh.aoc.utils.input.Text
|
||||||
|
|
||||||
|
@Day(23)
|
||||||
|
class Day23(@Text val input: String) {
|
||||||
|
private val cups = input.toCharArray().map { it.toString().toInt() }
|
||||||
|
|
||||||
|
private fun <T> ringSequence(head: Ring.Node<T>) = generateSequence(head) { it.next }
|
||||||
|
|
||||||
|
class Ring<T>(items: Iterable<T>) {
|
||||||
|
|
||||||
|
class Node<T>(var value: T) {
|
||||||
|
lateinit var next: Node<T>
|
||||||
|
override fun toString() = "Node($value -> ${next.value})"
|
||||||
|
}
|
||||||
|
|
||||||
|
private var last: Node<T>? = null
|
||||||
|
private var first: Node<T>? = null
|
||||||
|
|
||||||
|
init {
|
||||||
|
items.forEach { item ->
|
||||||
|
val node = Node(item)
|
||||||
|
if (first == null) first = node
|
||||||
|
last?.next = node
|
||||||
|
last = node
|
||||||
|
}
|
||||||
|
check(first != null && last != null)
|
||||||
|
last?.next = first!!
|
||||||
|
}
|
||||||
|
|
||||||
|
fun first() = first!!
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun Ring.Node<Int>.cached(size: Int): Array<Ring.Node<Int>> =
|
||||||
|
arrayOfNulls<Ring.Node<Int>>(size + 1).also { array ->
|
||||||
|
array[0] = Ring.Node(-1)
|
||||||
|
ringSequence(this).take(size).forEach { array[it.value] = it }
|
||||||
|
} as Array<Ring.Node<Int>>
|
||||||
|
|
||||||
|
fun part1(): String {
|
||||||
|
var currentNode = Ring(cups).first()
|
||||||
|
val cache = currentNode.cached(cups.size)
|
||||||
|
val max = cups.maxOrNull()!!
|
||||||
|
|
||||||
|
repeat(100) { currentNode = move(max, cache, currentNode) }
|
||||||
|
|
||||||
|
return ringSequence(currentNode)
|
||||||
|
.dropWhile { it.value != 1 }
|
||||||
|
.drop(1)
|
||||||
|
.take(cups.size - 1)
|
||||||
|
.map { it.value }
|
||||||
|
.joinToString("")
|
||||||
|
}
|
||||||
|
|
||||||
|
fun part2(): Long {
|
||||||
|
fun fillCups(): List<Int> {
|
||||||
|
val cups = ArrayList<Int>(1_000_000)
|
||||||
|
cups.addAll(this.cups)
|
||||||
|
val highest = this.cups.maxOrNull()!!
|
||||||
|
|
||||||
|
for (i in 1..1_000_000 - cups.size) {
|
||||||
|
cups.add(highest + i)
|
||||||
|
}
|
||||||
|
|
||||||
|
return cups
|
||||||
|
}
|
||||||
|
|
||||||
|
val size = 1_000_000
|
||||||
|
var currentNode = Ring(fillCups()).first()
|
||||||
|
val cache = currentNode.cached(size)
|
||||||
|
|
||||||
|
repeat(10_000_000) { currentNode = move(max = size, cache, currentNode) }
|
||||||
|
|
||||||
|
val one = cache[1]
|
||||||
|
val a = one.next
|
||||||
|
val b = a.next
|
||||||
|
return a.value.toLong() * b.value.toLong()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun move(max: Int, cache: Array<Ring.Node<Int>>, current: Ring.Node<Int>): Ring.Node<Int> {
|
||||||
|
val a = current.next
|
||||||
|
val b = a.next
|
||||||
|
val c = b.next
|
||||||
|
|
||||||
|
current.next = c.next
|
||||||
|
|
||||||
|
val aa = a.value
|
||||||
|
val bb = b.value
|
||||||
|
val cc = c.value
|
||||||
|
|
||||||
|
val destinationNode: Ring.Node<Int>
|
||||||
|
var i = current.value - 1
|
||||||
|
while (true) {
|
||||||
|
if (i < 1) i = max
|
||||||
|
val value = cache[i].value
|
||||||
|
if (value == aa || value == bb || value == cc) {
|
||||||
|
i--
|
||||||
|
} else {
|
||||||
|
destinationNode = cache[i]
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val destinationNextNode = destinationNode.next
|
||||||
|
destinationNode.next = a
|
||||||
|
c.next = destinationNextNode
|
||||||
|
return current.next
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
import be.vandewalleh.aoc.utils.input.Lines
|
||||||
|
import org.eclipse.collections.api.bag.Bag
|
||||||
|
import org.eclipse.collections.api.bag.MutableBag
|
||||||
|
import org.eclipse.collections.api.factory.Bags
|
||||||
|
|
||||||
|
@Day(24)
|
||||||
|
class Day24(@Lines val input: List<String>) {
|
||||||
|
|
||||||
|
private data class HexPoint(val x: Int, val y: Int, val z: Int) {
|
||||||
|
fun translate(other: HexPoint) = HexPoint(this.x + other.x, this.y + other.y, this.z + other.z)
|
||||||
|
}
|
||||||
|
|
||||||
|
private enum class Direction(vararg coordinates: Int) {
|
||||||
|
E(1, -1, 0),
|
||||||
|
SE(0, -1, 1),
|
||||||
|
SW(-1, 0, 1),
|
||||||
|
W(-1, 1, 0),
|
||||||
|
NW(0, 1, -1),
|
||||||
|
NE(1, 0, -1);
|
||||||
|
|
||||||
|
val coordinates = HexPoint(coordinates[0], coordinates[1], coordinates[2])
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun parseTile(line: String) = "e|se|sw|w|nw|ne".toRegex()
|
||||||
|
.findAll(line)
|
||||||
|
.flatMap { it.groupValues }
|
||||||
|
.map { Direction.valueOf(it.toUpperCase()) }
|
||||||
|
.toList()
|
||||||
|
|
||||||
|
private val tiles = input.map { parseTile(it) }.map {
|
||||||
|
it.map { it.coordinates }.reduce { acc, ints -> acc.translate(ints) }
|
||||||
|
}
|
||||||
|
|
||||||
|
fun part1() = Bags.immutable.ofAll(tiles).selectBlacks().size()
|
||||||
|
|
||||||
|
private fun Bag<HexPoint>.selectBlacks() = selectByOccurrences { it % 2 == 1 }
|
||||||
|
|
||||||
|
private fun HexPoint.adjacents() = Direction.values().map { this.translate(it.coordinates) }
|
||||||
|
|
||||||
|
// black -> odd
|
||||||
|
// white -> even || not in bag -> !in black
|
||||||
|
private fun day(bag: MutableBag<HexPoint>) {
|
||||||
|
val blacks = bag.selectBlacks().toSet()
|
||||||
|
|
||||||
|
val all = (bag + bag.flatMap { it.adjacents() }).toSet()
|
||||||
|
|
||||||
|
for (tile in all) {
|
||||||
|
val adjacents = tile.adjacents()
|
||||||
|
val adjacentBlacks = adjacents.count { it in blacks }
|
||||||
|
val isBlack = tile in blacks
|
||||||
|
|
||||||
|
if (isBlack && (adjacentBlacks == 0 || adjacentBlacks > 2)) bag.setOccurrences(tile, 2)
|
||||||
|
else if (!isBlack && adjacentBlacks == 2) bag.setOccurrences(tile, 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun part2(): Int {
|
||||||
|
val bag = Bags.mutable.ofAll(tiles)
|
||||||
|
repeat(100) { day(bag) }
|
||||||
|
return bag.selectBlacks().size()
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
import be.vandewalleh.aoc.utils.input.Lines
|
||||||
|
|
||||||
|
@Day(25)
|
||||||
|
class Day25(@Lines val input: IntArray) {
|
||||||
|
private val doorPublicKey = input[0]
|
||||||
|
private val cardPublicKey = input[1]
|
||||||
|
|
||||||
|
private fun encryptionKey(loopSize: Int, publicKey: Int) = transformSubjectNumber(loopSize, publicKey)
|
||||||
|
|
||||||
|
private fun transformSubjectNumber(loopSize: Int, subjectNumber: Int): Int {
|
||||||
|
var number = 1L
|
||||||
|
repeat(loopSize) {
|
||||||
|
number *= subjectNumber
|
||||||
|
number %= 20201227
|
||||||
|
}
|
||||||
|
return number.toInt()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun transformSubjectNumberStartingWith(currentNumber: Long, subjectNumber: Int): Long {
|
||||||
|
var number = currentNumber
|
||||||
|
number *= subjectNumber
|
||||||
|
number %= 20201227
|
||||||
|
return number
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun findLoopSize(expectedPublicKey: Long): Int {
|
||||||
|
var computedPublicKey = 1L
|
||||||
|
var loopSize = 0
|
||||||
|
do {
|
||||||
|
computedPublicKey = transformSubjectNumberStartingWith(computedPublicKey, 7)
|
||||||
|
loopSize++
|
||||||
|
} while (computedPublicKey != expectedPublicKey)
|
||||||
|
return loopSize
|
||||||
|
}
|
||||||
|
|
||||||
|
fun part1(): Int {
|
||||||
|
val cardLoopSize = findLoopSize(cardPublicKey.toLong())
|
||||||
|
return encryptionKey(cardLoopSize, doorPublicKey)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.factory.createDay
|
||||||
|
|
||||||
|
fun main() = with(createDay<Day15>()) {
|
||||||
|
println(part1())
|
||||||
|
}
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
@file:Suppress("MemberVisibilityCanBePrivate")
|
||||||
|
|
||||||
|
package be.vandewalleh.aoc.days.geometry
|
||||||
|
|
||||||
|
class Grid<T> {
|
||||||
|
val data: ArrayList<ArrayList<T>> = ArrayList()
|
||||||
|
|
||||||
|
constructor(data: Iterable<Iterable<T>>) {
|
||||||
|
data.forEach {
|
||||||
|
this.data.add(ArrayList(it.toList()))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
constructor(data: Array<Array<T>>) {
|
||||||
|
data.forEach {
|
||||||
|
this.data.add(ArrayList(it.toList()))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val width get() = data[0].size
|
||||||
|
val lastColumnIndex get() = data[0].size - 1
|
||||||
|
|
||||||
|
val height get() = data.size
|
||||||
|
val lastRowIndex get() = data.size - 1
|
||||||
|
|
||||||
|
operator fun get(x: Int, y: Int): T? {
|
||||||
|
if (y !in 0..lastRowIndex) return null
|
||||||
|
val row = data[y]
|
||||||
|
return if (x !in 0..lastColumnIndex) null
|
||||||
|
else row[x]
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun set(x: Int, y: Int, value: T) {
|
||||||
|
data[y][x] = value
|
||||||
|
}
|
||||||
|
|
||||||
|
fun row(y: Int): List<T> = data[y]
|
||||||
|
fun firstRow() = row(0)
|
||||||
|
fun lastRow() = row(height - 1)
|
||||||
|
|
||||||
|
fun column(x: Int): List<T> = data.map { it[x] }
|
||||||
|
fun firstColumn() = column(0)
|
||||||
|
fun lastColumn() = column(width - 1)
|
||||||
|
|
||||||
|
fun edges() = listOf(row(0), column(0), row(lastRowIndex), column(lastColumnIndex))
|
||||||
|
|
||||||
|
override fun toString() = buildString {
|
||||||
|
data.forEach { line ->
|
||||||
|
append(line.joinToString(""))
|
||||||
|
appendLine()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun equals(other: Any?): Boolean {
|
||||||
|
if (this === other) return true
|
||||||
|
if (javaClass != other?.javaClass) return false
|
||||||
|
other as Grid<*>
|
||||||
|
if (data != other.data) return false
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun hashCode() = data.hashCode()
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package be.vandewalleh.aoc.days.geometry
|
||||||
|
|
||||||
|
fun gridOf(lines: List<String>): Grid<Char> =
|
||||||
|
Grid(lines.map { it.toCharArray().toList() })
|
||||||
|
|
||||||
|
fun gridOf(lines: String): Grid<Char> =
|
||||||
|
gridOf(lines.lines())
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
package be.vandewalleh.aoc.days.geometry
|
||||||
|
|
||||||
|
private fun <T> ArrayList<T>.reversed(): ArrayList<T> {
|
||||||
|
val out = ArrayList<T>(this.size)
|
||||||
|
asReversed().forEach { out.add(it) }
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
fun <T> Grid<T>.flipVertically(): Grid<T> = Grid(data.reversed())
|
||||||
|
|
||||||
|
fun <T> Grid<T>.flipHorizontally(): Grid<T> {
|
||||||
|
val out = ArrayList<ArrayList<T>>(height)
|
||||||
|
for (y in 0 until height) {
|
||||||
|
out.add(data[y].reversed())
|
||||||
|
}
|
||||||
|
return Grid(out)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun <T> Grid<T>.rotateRight(): Grid<T> {
|
||||||
|
val out = ArrayList<ArrayList<T>>(width)
|
||||||
|
for (x in 0 until width) {
|
||||||
|
out.add(ArrayList<T>(height))
|
||||||
|
for (y in 0 until height) {
|
||||||
|
out[x].add(data[y][x])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Grid(out).flipHorizontally()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun <T> Grid<T>.rotateLeft(): Grid<T> {
|
||||||
|
val data = flipHorizontally().data
|
||||||
|
val out = ArrayList<ArrayList<T>>(width)
|
||||||
|
for (x in 0 until width) {
|
||||||
|
out.add(ArrayList<T>(height))
|
||||||
|
for (y in 0 until height) {
|
||||||
|
out[x].add(data[y][x])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Grid(out).flipHorizontally()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun <T> Grid<T>.transformations(): Sequence<Grid<T>> = sequence {
|
||||||
|
yield(this@transformations)
|
||||||
|
yield(flipHorizontally())
|
||||||
|
yield(flipVertically())
|
||||||
|
yield(rotateLeft())
|
||||||
|
yield(rotateRight())
|
||||||
|
yield(flipHorizontally().flipVertically())
|
||||||
|
yield(flipVertically().rotateRight())
|
||||||
|
yield(flipVertically().rotateLeft())
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,594 @@
|
|||||||
|
plaid fuchsia bags contain 5 light violet bags, 1 light yellow bag.
|
||||||
|
striped aqua bags contain 2 striped teal bags.
|
||||||
|
clear coral bags contain 2 plaid green bags, 5 mirrored gold bags.
|
||||||
|
dull tan bags contain 4 faded blue bags, 3 faded olive bags, 5 dull salmon bags.
|
||||||
|
plaid green bags contain 3 faded green bags.
|
||||||
|
light tomato bags contain 1 drab chartreuse bag, 1 dotted tomato bag, 3 striped red bags, 2 vibrant violet bags.
|
||||||
|
dim tomato bags contain 4 striped gold bags, 5 bright lavender bags, 1 pale beige bag, 4 pale tan bags.
|
||||||
|
vibrant green bags contain 4 faded teal bags.
|
||||||
|
shiny crimson bags contain 2 dull green bags.
|
||||||
|
vibrant black bags contain 5 dark beige bags, 3 dark bronze bags.
|
||||||
|
light tan bags contain 1 striped tomato bag.
|
||||||
|
vibrant teal bags contain 1 shiny silver bag.
|
||||||
|
pale chartreuse bags contain 2 dotted plum bags.
|
||||||
|
plaid coral bags contain 2 pale green bags, 2 faded tomato bags, 2 dark salmon bags, 1 vibrant magenta bag.
|
||||||
|
dull gray bags contain 1 dark tan bag, 3 dotted tan bags.
|
||||||
|
muted gray bags contain 5 bright indigo bags, 5 dotted purple bags.
|
||||||
|
vibrant red bags contain 4 bright tomato bags, 4 shiny orange bags.
|
||||||
|
faded tan bags contain 1 dull crimson bag, 5 faded red bags.
|
||||||
|
pale magenta bags contain 3 posh chartreuse bags, 4 vibrant purple bags.
|
||||||
|
shiny gray bags contain 2 wavy purple bags.
|
||||||
|
light crimson bags contain 5 clear teal bags.
|
||||||
|
striped turquoise bags contain 3 pale tomato bags, 2 posh teal bags.
|
||||||
|
striped purple bags contain 4 dark silver bags, 4 vibrant gray bags, 2 dim bronze bags, 2 clear aqua bags.
|
||||||
|
muted magenta bags contain 4 striped tomato bags.
|
||||||
|
light teal bags contain 2 faded brown bags, 2 posh purple bags, 1 faded olive bag.
|
||||||
|
clear cyan bags contain 1 clear coral bag, 5 clear aqua bags.
|
||||||
|
dull cyan bags contain 5 wavy crimson bags, 1 pale orange bag.
|
||||||
|
shiny tan bags contain 2 bright red bags, 4 plaid cyan bags.
|
||||||
|
light brown bags contain 3 dim yellow bags, 4 dull orange bags, 1 vibrant yellow bag.
|
||||||
|
pale tan bags contain 2 striped orange bags, 5 dull plum bags.
|
||||||
|
wavy salmon bags contain 2 dark blue bags, 5 dim plum bags.
|
||||||
|
mirrored cyan bags contain 2 plaid turquoise bags, 5 dull plum bags, 3 muted indigo bags, 2 plaid white bags.
|
||||||
|
dark aqua bags contain 3 bright red bags, 2 wavy purple bags, 2 plaid tan bags.
|
||||||
|
wavy purple bags contain 5 wavy brown bags.
|
||||||
|
clear magenta bags contain 4 muted green bags, 3 dull cyan bags, 4 striped teal bags, 2 faded blue bags.
|
||||||
|
bright red bags contain 5 vibrant tomato bags, 2 dull orange bags.
|
||||||
|
pale purple bags contain 3 plaid turquoise bags, 4 light tan bags, 1 faded black bag, 5 light yellow bags.
|
||||||
|
bright orange bags contain 1 mirrored orange bag, 2 faded bronze bags, 1 wavy turquoise bag, 1 bright yellow bag.
|
||||||
|
faded lavender bags contain 1 plaid brown bag.
|
||||||
|
dark salmon bags contain 3 dotted crimson bags, 1 posh bronze bag.
|
||||||
|
mirrored coral bags contain 3 dark red bags, 1 dull fuchsia bag, 2 drab magenta bags, 4 dull indigo bags.
|
||||||
|
clear black bags contain 5 mirrored salmon bags, 3 drab gold bags, 3 muted fuchsia bags.
|
||||||
|
faded fuchsia bags contain 1 shiny silver bag, 2 posh orange bags, 5 plaid bronze bags.
|
||||||
|
dotted red bags contain 4 faded yellow bags, 5 dull brown bags, 3 clear red bags.
|
||||||
|
light purple bags contain 2 plaid magenta bags, 3 vibrant coral bags, 2 wavy black bags.
|
||||||
|
faded beige bags contain no other bags.
|
||||||
|
dull fuchsia bags contain 3 dim lavender bags, 1 dull aqua bag, 2 pale fuchsia bags.
|
||||||
|
wavy olive bags contain 5 dotted cyan bags, 1 dull lime bag.
|
||||||
|
dim teal bags contain 1 dull green bag.
|
||||||
|
dull orange bags contain 5 striped tomato bags, 5 drab blue bags, 5 faded blue bags, 2 pale brown bags.
|
||||||
|
muted brown bags contain 3 dotted orange bags, 1 bright tan bag.
|
||||||
|
vibrant coral bags contain 2 wavy turquoise bags.
|
||||||
|
clear aqua bags contain 5 posh bronze bags, 5 dim orange bags, 5 posh chartreuse bags.
|
||||||
|
dull plum bags contain 4 drab tan bags.
|
||||||
|
wavy tomato bags contain 4 wavy cyan bags, 1 bright silver bag, 3 dotted gray bags, 1 dark tomato bag.
|
||||||
|
shiny fuchsia bags contain 1 dotted silver bag, 5 dull lime bags, 3 drab teal bags.
|
||||||
|
pale fuchsia bags contain 3 pale beige bags.
|
||||||
|
plaid plum bags contain 4 dotted plum bags, 1 mirrored brown bag, 3 dim yellow bags, 2 vibrant bronze bags.
|
||||||
|
posh green bags contain 5 plaid indigo bags, 1 wavy red bag, 5 dim indigo bags, 4 wavy indigo bags.
|
||||||
|
muted aqua bags contain 3 bright tan bags, 3 dull yellow bags, 1 faded blue bag.
|
||||||
|
mirrored white bags contain 5 dark coral bags, 1 plaid red bag, 4 dull violet bags, 5 clear gray bags.
|
||||||
|
dotted aqua bags contain 4 drab aqua bags, 3 faded tomato bags.
|
||||||
|
bright indigo bags contain 4 faded tan bags, 3 clear turquoise bags, 1 plaid indigo bag, 4 bright gray bags.
|
||||||
|
posh silver bags contain 5 striped red bags, 3 faded blue bags, 3 dim plum bags, 3 vibrant beige bags.
|
||||||
|
bright olive bags contain 3 dull silver bags, 5 drab tomato bags.
|
||||||
|
muted beige bags contain 1 drab crimson bag.
|
||||||
|
shiny beige bags contain 3 clear blue bags.
|
||||||
|
wavy brown bags contain 2 striped coral bags, 2 light purple bags.
|
||||||
|
wavy black bags contain 4 faded beige bags, 2 striped red bags, 2 pale brown bags, 3 dull yellow bags.
|
||||||
|
faded salmon bags contain 1 light indigo bag, 5 plaid cyan bags, 2 pale salmon bags.
|
||||||
|
dark gold bags contain 1 mirrored plum bag, 2 dark tomato bags, 5 dull green bags, 2 light lime bags.
|
||||||
|
mirrored lavender bags contain 5 muted brown bags, 1 shiny blue bag, 5 dull blue bags, 3 wavy indigo bags.
|
||||||
|
wavy beige bags contain 3 mirrored purple bags, 3 posh yellow bags, 4 plaid green bags.
|
||||||
|
striped fuchsia bags contain 5 drab bronze bags, 4 posh tomato bags, 1 drab maroon bag, 1 dim beige bag.
|
||||||
|
faded blue bags contain 1 striped tomato bag, 3 dark olive bags, 2 drab tan bags.
|
||||||
|
drab gray bags contain 1 posh teal bag.
|
||||||
|
dim cyan bags contain 4 dark fuchsia bags, 3 wavy maroon bags, 5 posh silver bags, 4 posh chartreuse bags.
|
||||||
|
dotted purple bags contain 3 wavy white bags.
|
||||||
|
shiny brown bags contain 5 light silver bags, 4 light turquoise bags, 4 posh bronze bags.
|
||||||
|
vibrant tomato bags contain 3 dotted cyan bags, 3 posh teal bags, 1 clear magenta bag, 5 dull lime bags.
|
||||||
|
dark bronze bags contain 2 vibrant maroon bags, 2 mirrored olive bags.
|
||||||
|
wavy silver bags contain 4 striped magenta bags, 3 dim fuchsia bags.
|
||||||
|
striped yellow bags contain 5 faded black bags, 5 light beige bags, 1 vibrant beige bag, 2 mirrored beige bags.
|
||||||
|
faded chartreuse bags contain 4 clear gray bags, 5 dotted gray bags.
|
||||||
|
faded tomato bags contain 5 faded gray bags, 4 faded fuchsia bags, 3 drab teal bags.
|
||||||
|
dull gold bags contain 1 dark plum bag, 4 striped black bags.
|
||||||
|
muted turquoise bags contain 1 mirrored bronze bag, 5 shiny aqua bags, 1 clear plum bag.
|
||||||
|
dotted lime bags contain 1 dark black bag, 5 pale brown bags.
|
||||||
|
vibrant violet bags contain 5 faded lime bags, 1 pale fuchsia bag, 5 dull plum bags.
|
||||||
|
faded black bags contain 2 striped teal bags, 5 faded beige bags, 4 wavy black bags, 1 striped lavender bag.
|
||||||
|
drab teal bags contain 1 clear gold bag, 4 muted crimson bags, 1 light teal bag.
|
||||||
|
dull purple bags contain 1 posh crimson bag, 2 clear blue bags.
|
||||||
|
dotted teal bags contain 2 dark tan bags.
|
||||||
|
dark red bags contain 3 dotted cyan bags, 3 posh red bags, 2 bright red bags, 3 faded magenta bags.
|
||||||
|
light black bags contain 5 dull yellow bags.
|
||||||
|
light salmon bags contain 3 faded beige bags.
|
||||||
|
dull brown bags contain 1 light indigo bag, 4 mirrored yellow bags, 5 faded silver bags.
|
||||||
|
dark black bags contain 5 dull yellow bags, 3 dull lime bags, 5 posh aqua bags.
|
||||||
|
faded crimson bags contain 3 light fuchsia bags, 5 muted chartreuse bags.
|
||||||
|
drab yellow bags contain 5 drab indigo bags, 2 shiny brown bags, 4 muted lime bags.
|
||||||
|
muted tomato bags contain 3 posh salmon bags, 2 plaid indigo bags, 5 striped aqua bags.
|
||||||
|
pale teal bags contain 2 muted red bags, 5 mirrored brown bags, 4 mirrored tan bags.
|
||||||
|
posh violet bags contain 4 posh tomato bags.
|
||||||
|
dim plum bags contain 1 faded magenta bag, 5 drab silver bags, 1 pale brown bag.
|
||||||
|
light fuchsia bags contain 2 dotted silver bags, 3 dotted lavender bags, 3 shiny gold bags, 5 clear magenta bags.
|
||||||
|
vibrant orange bags contain 5 shiny blue bags, 5 dull maroon bags.
|
||||||
|
shiny white bags contain 5 mirrored yellow bags, 2 pale fuchsia bags, 4 shiny turquoise bags.
|
||||||
|
drab green bags contain 1 mirrored lavender bag, 3 posh tan bags.
|
||||||
|
faded silver bags contain 5 vibrant coral bags, 3 striped lavender bags, 4 dotted cyan bags, 5 plaid turquoise bags.
|
||||||
|
faded gold bags contain 4 faded magenta bags.
|
||||||
|
dark coral bags contain 3 light maroon bags, 1 drab silver bag.
|
||||||
|
striped olive bags contain 4 dotted maroon bags, 3 wavy brown bags, 1 wavy crimson bag, 5 shiny silver bags.
|
||||||
|
wavy lavender bags contain 3 mirrored yellow bags, 5 shiny crimson bags, 4 dark indigo bags.
|
||||||
|
bright fuchsia bags contain 2 vibrant green bags, 5 drab blue bags.
|
||||||
|
dotted turquoise bags contain 3 striped red bags.
|
||||||
|
drab black bags contain 1 faded tan bag.
|
||||||
|
pale silver bags contain 1 faded yellow bag, 1 drab tan bag, 5 muted salmon bags, 3 shiny white bags.
|
||||||
|
striped magenta bags contain 4 dark turquoise bags, 4 shiny blue bags, 3 shiny crimson bags.
|
||||||
|
dotted beige bags contain 2 mirrored black bags, 2 faded brown bags, 1 bright red bag, 2 clear coral bags.
|
||||||
|
clear maroon bags contain 5 bright bronze bags.
|
||||||
|
shiny olive bags contain 2 dull blue bags.
|
||||||
|
pale violet bags contain 1 light purple bag, 1 pale tomato bag, 4 plaid aqua bags, 4 light magenta bags.
|
||||||
|
dotted white bags contain 3 bright purple bags, 4 dull orange bags, 2 plaid salmon bags.
|
||||||
|
plaid blue bags contain 5 faded blue bags, 4 muted green bags, 4 bright bronze bags.
|
||||||
|
mirrored lime bags contain 1 faded green bag, 4 striped black bags, 1 mirrored purple bag.
|
||||||
|
wavy violet bags contain 1 muted bronze bag.
|
||||||
|
light silver bags contain 2 dull cyan bags, 1 drab tan bag.
|
||||||
|
dark tomato bags contain 1 vibrant tomato bag, 1 striped tomato bag.
|
||||||
|
wavy teal bags contain 5 wavy red bags, 2 drab brown bags, 1 posh olive bag.
|
||||||
|
dim green bags contain 2 striped teal bags, 1 drab blue bag.
|
||||||
|
wavy crimson bags contain no other bags.
|
||||||
|
mirrored aqua bags contain 3 posh tan bags, 5 muted teal bags, 3 light violet bags.
|
||||||
|
light cyan bags contain 4 vibrant chartreuse bags, 1 faded lime bag, 2 drab purple bags, 2 shiny white bags.
|
||||||
|
shiny gold bags contain 4 drab blue bags, 4 posh purple bags, 2 drab silver bags, 4 wavy turquoise bags.
|
||||||
|
plaid chartreuse bags contain 5 mirrored olive bags, 2 vibrant orange bags, 2 shiny purple bags.
|
||||||
|
dim yellow bags contain 1 faded green bag, 4 wavy fuchsia bags.
|
||||||
|
pale turquoise bags contain 1 drab turquoise bag.
|
||||||
|
clear red bags contain 1 pale bronze bag, 4 drab tan bags.
|
||||||
|
shiny teal bags contain 3 bright aqua bags.
|
||||||
|
dotted tomato bags contain 3 dotted orange bags, 5 light silver bags, 2 dull green bags, 5 wavy chartreuse bags.
|
||||||
|
striped tan bags contain 1 light turquoise bag, 2 dotted salmon bags, 4 shiny orange bags, 2 clear red bags.
|
||||||
|
dim bronze bags contain 1 wavy gold bag.
|
||||||
|
posh crimson bags contain 4 posh aqua bags.
|
||||||
|
plaid salmon bags contain 2 dull tan bags.
|
||||||
|
mirrored salmon bags contain 2 muted aqua bags, 5 muted salmon bags.
|
||||||
|
striped blue bags contain 3 wavy white bags, 4 drab blue bags, 1 drab chartreuse bag, 4 dull orange bags.
|
||||||
|
pale red bags contain 1 striped red bag.
|
||||||
|
muted black bags contain 4 faded gold bags.
|
||||||
|
clear orange bags contain 2 faded red bags.
|
||||||
|
mirrored maroon bags contain 2 plaid tan bags.
|
||||||
|
dull aqua bags contain 4 pale gold bags.
|
||||||
|
posh coral bags contain 3 striped gold bags.
|
||||||
|
posh purple bags contain 4 pale orange bags, 5 dull salmon bags, 2 striped teal bags.
|
||||||
|
muted tan bags contain 3 clear coral bags, 4 pale salmon bags.
|
||||||
|
mirrored orange bags contain 5 pale bronze bags.
|
||||||
|
striped teal bags contain no other bags.
|
||||||
|
dark blue bags contain no other bags.
|
||||||
|
clear bronze bags contain 4 vibrant gray bags.
|
||||||
|
light magenta bags contain 4 dim green bags.
|
||||||
|
drab coral bags contain 5 dotted chartreuse bags, 4 vibrant crimson bags, 2 muted green bags.
|
||||||
|
drab brown bags contain 2 dull tomato bags, 5 vibrant bronze bags.
|
||||||
|
bright coral bags contain 1 posh plum bag, 1 wavy gold bag, 2 drab lavender bags, 2 muted lavender bags.
|
||||||
|
dim white bags contain 4 shiny aqua bags.
|
||||||
|
plaid bronze bags contain 4 drab tan bags, 3 plaid salmon bags, 4 striped coral bags.
|
||||||
|
faded teal bags contain 1 vibrant white bag, 5 wavy purple bags.
|
||||||
|
drab turquoise bags contain 3 pale tomato bags, 1 bright indigo bag.
|
||||||
|
muted white bags contain 3 striped brown bags, 1 light blue bag.
|
||||||
|
clear crimson bags contain 1 dark magenta bag.
|
||||||
|
shiny magenta bags contain 4 wavy tomato bags, 4 shiny bronze bags, 4 vibrant coral bags, 5 bright lime bags.
|
||||||
|
bright magenta bags contain 3 wavy brown bags.
|
||||||
|
bright tomato bags contain 4 vibrant fuchsia bags, 1 clear aqua bag.
|
||||||
|
wavy coral bags contain 4 striped gold bags, 1 light purple bag, 4 vibrant purple bags.
|
||||||
|
muted indigo bags contain 2 posh purple bags, 2 light gold bags, 3 striped lavender bags.
|
||||||
|
clear violet bags contain 2 wavy cyan bags, 5 pale brown bags, 4 faded magenta bags, 2 bright purple bags.
|
||||||
|
dull white bags contain 4 wavy olive bags, 3 mirrored olive bags, 3 faded magenta bags, 4 dull green bags.
|
||||||
|
dull magenta bags contain 4 dim beige bags.
|
||||||
|
dotted blue bags contain 4 posh beige bags, 1 pale purple bag, 4 shiny red bags.
|
||||||
|
dotted lavender bags contain 3 posh purple bags.
|
||||||
|
light white bags contain 4 striped lavender bags.
|
||||||
|
dark turquoise bags contain 5 light teal bags.
|
||||||
|
faded turquoise bags contain 5 striped violet bags, 4 dull crimson bags, 2 dim purple bags, 1 light silver bag.
|
||||||
|
striped chartreuse bags contain 3 pale white bags, 3 dim fuchsia bags.
|
||||||
|
pale gold bags contain 2 clear teal bags, 3 wavy turquoise bags, 5 light gold bags.
|
||||||
|
posh blue bags contain 4 muted yellow bags, 1 dull crimson bag, 3 wavy violet bags, 5 mirrored fuchsia bags.
|
||||||
|
dotted gray bags contain 3 wavy fuchsia bags.
|
||||||
|
plaid magenta bags contain 3 plaid black bags.
|
||||||
|
pale beige bags contain 1 pale white bag, 2 dim salmon bags, 5 mirrored gold bags.
|
||||||
|
striped bronze bags contain 2 dull yellow bags, 2 dark blue bags.
|
||||||
|
dark lime bags contain 2 pale magenta bags, 4 clear cyan bags.
|
||||||
|
bright turquoise bags contain 2 light white bags, 3 plaid salmon bags, 2 clear aqua bags, 5 dull silver bags.
|
||||||
|
posh salmon bags contain 1 drab turquoise bag.
|
||||||
|
muted bronze bags contain 1 pale bronze bag, 3 clear maroon bags.
|
||||||
|
faded coral bags contain 1 clear gray bag, 5 plaid gray bags, 3 bright silver bags, 4 posh yellow bags.
|
||||||
|
mirrored gray bags contain 1 dark coral bag, 2 plaid blue bags, 4 mirrored coral bags, 1 mirrored olive bag.
|
||||||
|
vibrant olive bags contain 5 pale chartreuse bags, 4 plaid green bags, 4 dark coral bags.
|
||||||
|
dotted magenta bags contain 4 light chartreuse bags, 3 plaid indigo bags, 2 dull tan bags.
|
||||||
|
light violet bags contain 2 muted green bags.
|
||||||
|
dim fuchsia bags contain 5 dim tan bags, 5 faded black bags, 1 drab white bag.
|
||||||
|
dotted black bags contain 3 bright gold bags, 2 faded gold bags.
|
||||||
|
striped indigo bags contain 3 posh aqua bags.
|
||||||
|
posh cyan bags contain 5 dull fuchsia bags.
|
||||||
|
vibrant turquoise bags contain 2 muted chartreuse bags, 2 clear magenta bags, 5 drab chartreuse bags.
|
||||||
|
mirrored magenta bags contain 1 dull lime bag.
|
||||||
|
mirrored violet bags contain 2 posh magenta bags, 1 plaid white bag, 4 wavy turquoise bags, 5 dull salmon bags.
|
||||||
|
pale tomato bags contain 4 wavy maroon bags, 3 clear aqua bags, 2 striped lavender bags.
|
||||||
|
clear fuchsia bags contain 5 dark cyan bags, 1 plaid cyan bag.
|
||||||
|
drab orange bags contain 3 mirrored purple bags, 1 striped orange bag.
|
||||||
|
bright blue bags contain 1 bright cyan bag, 4 plaid green bags.
|
||||||
|
muted chartreuse bags contain 4 faded beige bags, 3 faded green bags.
|
||||||
|
plaid teal bags contain 2 mirrored orange bags, 5 plaid plum bags.
|
||||||
|
light blue bags contain 4 faded silver bags, 3 light turquoise bags, 2 dim aqua bags, 5 posh silver bags.
|
||||||
|
bright tan bags contain 4 striped coral bags, 1 dark fuchsia bag.
|
||||||
|
shiny black bags contain 1 light green bag.
|
||||||
|
plaid violet bags contain 1 faded magenta bag, 1 shiny bronze bag, 2 vibrant tomato bags.
|
||||||
|
posh bronze bags contain 4 shiny gold bags, 1 bright yellow bag, 1 dull cyan bag.
|
||||||
|
light red bags contain 3 dotted black bags, 5 pale coral bags.
|
||||||
|
striped red bags contain no other bags.
|
||||||
|
clear tan bags contain 2 faded brown bags, 1 bright brown bag, 2 bright gold bags.
|
||||||
|
dull turquoise bags contain 5 mirrored yellow bags, 3 wavy red bags, 5 faded purple bags, 4 clear green bags.
|
||||||
|
plaid yellow bags contain 4 dark red bags, 3 dull tomato bags, 5 faded violet bags.
|
||||||
|
dotted gold bags contain 2 dotted lime bags, 2 faded gray bags, 3 clear coral bags.
|
||||||
|
dull bronze bags contain 2 pale red bags, 3 dim indigo bags.
|
||||||
|
shiny green bags contain 2 pale red bags, 1 mirrored silver bag, 4 bright lime bags, 5 pale indigo bags.
|
||||||
|
bright black bags contain 2 striped plum bags, 1 clear black bag, 4 clear olive bags.
|
||||||
|
bright gold bags contain 3 wavy cyan bags, 1 dotted magenta bag, 1 muted salmon bag, 4 light maroon bags.
|
||||||
|
muted violet bags contain 5 wavy cyan bags, 4 dim tan bags, 1 posh gray bag, 5 vibrant brown bags.
|
||||||
|
dim turquoise bags contain 1 pale tomato bag, 2 dotted silver bags, 5 mirrored coral bags.
|
||||||
|
drab lime bags contain 5 shiny gold bags.
|
||||||
|
wavy bronze bags contain 1 shiny red bag, 4 dotted cyan bags.
|
||||||
|
vibrant purple bags contain 4 drab chartreuse bags, 4 dotted yellow bags.
|
||||||
|
plaid purple bags contain 2 drab beige bags, 3 pale aqua bags, 3 muted magenta bags.
|
||||||
|
faded brown bags contain 3 faded beige bags, 1 light chartreuse bag, 4 mirrored gold bags.
|
||||||
|
pale lavender bags contain 1 mirrored tomato bag, 5 wavy maroon bags, 4 wavy lime bags.
|
||||||
|
posh fuchsia bags contain 5 posh orange bags.
|
||||||
|
drab fuchsia bags contain 1 dim plum bag, 1 dark coral bag, 3 dark red bags.
|
||||||
|
striped crimson bags contain 5 pale orange bags, 5 faded beige bags, 5 faded brown bags.
|
||||||
|
wavy lime bags contain 5 dull crimson bags.
|
||||||
|
vibrant fuchsia bags contain 2 wavy white bags.
|
||||||
|
vibrant plum bags contain 4 dim salmon bags, 2 plaid tan bags, 3 dull blue bags.
|
||||||
|
muted cyan bags contain 3 striped beige bags.
|
||||||
|
clear teal bags contain 2 wavy aqua bags, 3 dotted plum bags.
|
||||||
|
dark maroon bags contain 1 light violet bag, 3 clear plum bags, 5 dotted fuchsia bags, 2 vibrant tomato bags.
|
||||||
|
dull black bags contain 5 muted olive bags.
|
||||||
|
light yellow bags contain 1 dull white bag, 5 dark aqua bags, 3 light purple bags, 4 dim green bags.
|
||||||
|
pale bronze bags contain 1 wavy aqua bag.
|
||||||
|
plaid red bags contain 5 pale plum bags, 2 muted brown bags, 2 dull bronze bags.
|
||||||
|
dim gray bags contain 2 muted lavender bags.
|
||||||
|
plaid gray bags contain 5 muted aqua bags.
|
||||||
|
vibrant blue bags contain 4 light tomato bags, 1 plaid beige bag.
|
||||||
|
clear blue bags contain 5 clear plum bags, 5 drab chartreuse bags.
|
||||||
|
dotted green bags contain 5 plaid white bags, 5 vibrant turquoise bags, 1 drab silver bag.
|
||||||
|
dull crimson bags contain 3 mirrored yellow bags, 3 posh red bags, 3 faded brown bags.
|
||||||
|
striped maroon bags contain 1 shiny magenta bag, 2 light brown bags, 4 dull green bags.
|
||||||
|
dark yellow bags contain 4 faded silver bags, 5 shiny lavender bags, 4 dim crimson bags, 2 plaid bronze bags.
|
||||||
|
pale indigo bags contain 4 plaid salmon bags, 3 striped purple bags, 5 pale magenta bags, 1 dotted lime bag.
|
||||||
|
faded maroon bags contain 5 light silver bags, 5 dim bronze bags, 4 faded tan bags, 5 striped crimson bags.
|
||||||
|
pale green bags contain 4 vibrant white bags.
|
||||||
|
muted maroon bags contain 2 light black bags, 2 mirrored fuchsia bags.
|
||||||
|
pale yellow bags contain 2 dull bronze bags, 4 bright maroon bags, 5 wavy cyan bags, 4 dotted lavender bags.
|
||||||
|
posh white bags contain 3 mirrored turquoise bags, 3 shiny aqua bags, 2 striped blue bags, 4 faded coral bags.
|
||||||
|
wavy orange bags contain 4 wavy crimson bags, 2 bright brown bags, 3 bright magenta bags, 1 dotted gold bag.
|
||||||
|
dark beige bags contain 3 muted white bags.
|
||||||
|
dotted salmon bags contain 5 dim bronze bags, 5 striped orange bags.
|
||||||
|
dotted fuchsia bags contain 1 striped red bag, 4 bright purple bags.
|
||||||
|
pale cyan bags contain 1 dull blue bag.
|
||||||
|
mirrored purple bags contain 5 light turquoise bags, 2 faded silver bags.
|
||||||
|
drab violet bags contain 1 vibrant turquoise bag, 2 muted chartreuse bags, 5 pale bronze bags.
|
||||||
|
wavy gray bags contain 1 dark purple bag, 4 muted green bags.
|
||||||
|
wavy magenta bags contain 5 dark white bags, 4 vibrant black bags, 4 muted coral bags.
|
||||||
|
pale plum bags contain 5 mirrored brown bags, 2 pale red bags.
|
||||||
|
light plum bags contain 4 dark tomato bags, 4 wavy gold bags.
|
||||||
|
pale aqua bags contain 1 striped red bag, 2 dim crimson bags, 3 mirrored orange bags.
|
||||||
|
muted green bags contain 1 mirrored yellow bag.
|
||||||
|
bright purple bags contain 5 light violet bags, 5 clear magenta bags, 1 faded lime bag.
|
||||||
|
dark green bags contain 2 shiny aqua bags.
|
||||||
|
dark orange bags contain 3 striped coral bags.
|
||||||
|
dotted chartreuse bags contain 1 bright lime bag, 1 light olive bag, 4 muted red bags, 1 posh chartreuse bag.
|
||||||
|
shiny chartreuse bags contain 1 bright salmon bag, 1 plaid indigo bag.
|
||||||
|
clear gold bags contain 5 dull lime bags, 4 shiny brown bags, 1 dull plum bag, 4 dull salmon bags.
|
||||||
|
shiny salmon bags contain 2 muted salmon bags, 2 dotted lavender bags.
|
||||||
|
striped cyan bags contain 3 drab tan bags, 5 dotted cyan bags, 1 posh aqua bag, 1 plaid magenta bag.
|
||||||
|
dark plum bags contain 1 clear orange bag, 2 striped black bags.
|
||||||
|
vibrant magenta bags contain 1 plaid tan bag, 3 muted bronze bags, 3 bright chartreuse bags.
|
||||||
|
clear beige bags contain 4 muted tan bags, 1 clear turquoise bag, 4 mirrored turquoise bags, 2 bright silver bags.
|
||||||
|
drab lavender bags contain 1 dotted cyan bag, 4 clear plum bags.
|
||||||
|
shiny coral bags contain 2 drab beige bags.
|
||||||
|
light bronze bags contain 2 mirrored plum bags, 2 light black bags.
|
||||||
|
vibrant yellow bags contain 4 vibrant coral bags, 5 mirrored olive bags, 1 light lime bag, 2 muted crimson bags.
|
||||||
|
vibrant salmon bags contain 4 faded beige bags, 2 faded olive bags, 1 pale brown bag.
|
||||||
|
dim tan bags contain 3 faded beige bags, 4 light tan bags.
|
||||||
|
vibrant silver bags contain 1 dark tomato bag.
|
||||||
|
striped salmon bags contain 5 faded brown bags.
|
||||||
|
shiny purple bags contain 1 pale lavender bag, 3 plaid black bags, 1 drab indigo bag.
|
||||||
|
light turquoise bags contain 4 dark silver bags.
|
||||||
|
dark chartreuse bags contain 5 dark silver bags.
|
||||||
|
mirrored indigo bags contain 5 mirrored gold bags, 1 dotted white bag.
|
||||||
|
faded olive bags contain 1 pale brown bag, 3 faded beige bags, 2 light chartreuse bags.
|
||||||
|
mirrored black bags contain 5 posh purple bags.
|
||||||
|
clear green bags contain 2 dark magenta bags, 5 faded gold bags, 4 striped teal bags, 4 dark purple bags.
|
||||||
|
bright beige bags contain 3 light olive bags, 3 wavy orange bags, 4 dotted lavender bags.
|
||||||
|
plaid brown bags contain 4 dull lavender bags, 3 drab gold bags.
|
||||||
|
vibrant chartreuse bags contain 1 bright bronze bag, 5 wavy crimson bags.
|
||||||
|
posh aqua bags contain 5 muted green bags, 2 dim green bags, 1 dim crimson bag, 1 posh red bag.
|
||||||
|
vibrant gold bags contain 5 wavy chartreuse bags, 3 drab gold bags, 2 striped blue bags, 3 posh yellow bags.
|
||||||
|
posh tan bags contain 1 shiny chartreuse bag, 2 drab bronze bags.
|
||||||
|
bright violet bags contain 1 pale lavender bag, 5 mirrored olive bags, 1 posh turquoise bag.
|
||||||
|
faded lime bags contain 5 pale brown bags, 4 faded black bags, 1 faded beige bag.
|
||||||
|
vibrant gray bags contain 3 vibrant chartreuse bags, 3 bright purple bags.
|
||||||
|
dull silver bags contain 5 pale tomato bags, 5 shiny turquoise bags, 2 mirrored yellow bags.
|
||||||
|
pale maroon bags contain 3 posh red bags, 1 plaid bronze bag, 5 striped red bags.
|
||||||
|
dull lavender bags contain 4 vibrant violet bags, 1 bright yellow bag, 3 bright aqua bags.
|
||||||
|
light aqua bags contain 5 vibrant turquoise bags.
|
||||||
|
striped violet bags contain 4 drab silver bags, 3 posh magenta bags, 3 wavy turquoise bags.
|
||||||
|
bright green bags contain 3 drab teal bags.
|
||||||
|
light coral bags contain 5 dotted violet bags, 4 pale chartreuse bags.
|
||||||
|
muted salmon bags contain 4 vibrant turquoise bags, 5 clear chartreuse bags, 1 dark fuchsia bag, 5 bright bronze bags.
|
||||||
|
wavy cyan bags contain 4 dim orange bags, 1 dull orange bag, 4 plaid indigo bags, 4 dim salmon bags.
|
||||||
|
shiny red bags contain 1 dim blue bag, 4 clear plum bags.
|
||||||
|
vibrant beige bags contain 3 posh red bags.
|
||||||
|
shiny maroon bags contain 3 striped tomato bags, 2 faded lime bags.
|
||||||
|
shiny aqua bags contain 3 bright yellow bags.
|
||||||
|
bright aqua bags contain 5 wavy lavender bags, 4 striped coral bags, 5 dotted cyan bags, 3 drab cyan bags.
|
||||||
|
dim olive bags contain 2 posh blue bags, 5 vibrant violet bags, 3 drab brown bags, 1 dull purple bag.
|
||||||
|
shiny silver bags contain 5 dim green bags, 4 dull cyan bags.
|
||||||
|
dim brown bags contain 1 wavy brown bag, 3 drab black bags.
|
||||||
|
dotted brown bags contain 3 drab crimson bags, 1 shiny red bag.
|
||||||
|
striped coral bags contain 4 striped red bags, 1 dotted cyan bag.
|
||||||
|
dotted plum bags contain 3 faded lime bags, 2 striped lavender bags, 2 wavy crimson bags, 2 faded brown bags.
|
||||||
|
light gold bags contain 1 light silver bag, 3 posh teal bags, 3 dark orange bags, 4 bright bronze bags.
|
||||||
|
dark tan bags contain 5 drab black bags, 2 plaid cyan bags, 3 faded yellow bags, 1 dim blue bag.
|
||||||
|
posh olive bags contain 4 drab olive bags, 5 dull tan bags, 1 wavy chartreuse bag, 5 muted magenta bags.
|
||||||
|
dull red bags contain 1 vibrant teal bag, 4 dim salmon bags, 1 bright violet bag, 1 dark lavender bag.
|
||||||
|
plaid turquoise bags contain 3 faded green bags, 5 wavy crimson bags.
|
||||||
|
plaid cyan bags contain 2 dull yellow bags, 2 dotted cyan bags, 1 light chartreuse bag, 2 faded green bags.
|
||||||
|
dull indigo bags contain 2 faded silver bags.
|
||||||
|
pale brown bags contain no other bags.
|
||||||
|
striped plum bags contain 5 dull lime bags, 2 muted white bags, 3 striped teal bags.
|
||||||
|
dotted coral bags contain 4 faded silver bags, 2 wavy aqua bags, 2 light chartreuse bags, 5 posh indigo bags.
|
||||||
|
mirrored beige bags contain 1 plaid black bag, 2 plaid tan bags, 2 pale bronze bags.
|
||||||
|
vibrant cyan bags contain 4 wavy beige bags, 1 shiny orange bag.
|
||||||
|
wavy fuchsia bags contain 5 pale maroon bags, 3 drab violet bags, 2 shiny orange bags.
|
||||||
|
drab silver bags contain 2 dark blue bags, 3 light chartreuse bags, 3 mirrored gold bags.
|
||||||
|
wavy turquoise bags contain 5 posh red bags, 4 striped teal bags.
|
||||||
|
bright cyan bags contain 4 bright silver bags, 1 muted gray bag, 5 faded aqua bags, 3 wavy aqua bags.
|
||||||
|
wavy green bags contain 4 clear violet bags, 4 dark olive bags, 2 clear magenta bags, 1 mirrored black bag.
|
||||||
|
mirrored gold bags contain 2 dark olive bags.
|
||||||
|
wavy gold bags contain 4 plaid indigo bags.
|
||||||
|
dotted yellow bags contain 3 dull orange bags, 2 faded green bags.
|
||||||
|
light beige bags contain 4 dull cyan bags.
|
||||||
|
bright crimson bags contain 1 faded tan bag, 1 faded chartreuse bag, 5 vibrant brown bags.
|
||||||
|
dotted bronze bags contain 5 striped white bags.
|
||||||
|
mirrored yellow bags contain 3 wavy crimson bags, 4 dark olive bags, 5 drab tan bags.
|
||||||
|
plaid lavender bags contain 1 light tomato bag, 5 dull blue bags, 2 wavy indigo bags, 3 bright gray bags.
|
||||||
|
drab purple bags contain 3 dotted plum bags, 5 drab olive bags, 1 drab tan bag, 3 dark black bags.
|
||||||
|
shiny lime bags contain 2 plaid bronze bags, 1 shiny gold bag.
|
||||||
|
drab chartreuse bags contain 2 bright bronze bags, 4 light teal bags, 1 mirrored yellow bag.
|
||||||
|
bright plum bags contain 3 drab turquoise bags.
|
||||||
|
light orange bags contain 1 shiny lavender bag, 2 dark fuchsia bags, 1 muted olive bag, 4 wavy olive bags.
|
||||||
|
striped beige bags contain 4 dull crimson bags, 5 dotted fuchsia bags.
|
||||||
|
wavy chartreuse bags contain 2 bright salmon bags, 5 faded green bags, 1 mirrored black bag.
|
||||||
|
striped tomato bags contain no other bags.
|
||||||
|
plaid aqua bags contain 1 light magenta bag, 3 pale white bags, 3 clear blue bags, 4 dull crimson bags.
|
||||||
|
plaid tan bags contain 3 dull green bags, 1 light silver bag, 5 dim orange bags, 1 dark blue bag.
|
||||||
|
dotted cyan bags contain 2 wavy black bags, 3 striped teal bags.
|
||||||
|
dull green bags contain 1 plaid magenta bag, 3 dull plum bags, 4 dim green bags.
|
||||||
|
faded purple bags contain 5 mirrored cyan bags, 1 dull beige bag, 4 vibrant purple bags.
|
||||||
|
dotted maroon bags contain 1 vibrant beige bag, 3 plaid magenta bags.
|
||||||
|
faded aqua bags contain 4 plaid gold bags, 1 plaid yellow bag, 2 bright lime bags.
|
||||||
|
pale lime bags contain 1 light blue bag.
|
||||||
|
dark indigo bags contain 1 light gold bag.
|
||||||
|
shiny orange bags contain 2 plaid black bags, 2 faded brown bags, 4 plaid indigo bags.
|
||||||
|
muted olive bags contain 1 wavy chartreuse bag.
|
||||||
|
muted purple bags contain 4 dotted silver bags.
|
||||||
|
plaid black bags contain 3 drab silver bags.
|
||||||
|
striped lavender bags contain 5 wavy crimson bags.
|
||||||
|
posh chartreuse bags contain 5 drab chartreuse bags.
|
||||||
|
clear purple bags contain 3 faded green bags, 2 bright gold bags.
|
||||||
|
dark crimson bags contain 4 plaid teal bags, 4 muted cyan bags.
|
||||||
|
clear silver bags contain 3 pale beige bags, 2 mirrored tomato bags.
|
||||||
|
dotted indigo bags contain 2 dark plum bags, 2 clear magenta bags, 3 light olive bags.
|
||||||
|
dull chartreuse bags contain 2 light turquoise bags, 3 drab brown bags.
|
||||||
|
bright brown bags contain 4 light purple bags, 1 vibrant coral bag.
|
||||||
|
dim salmon bags contain 2 dull salmon bags.
|
||||||
|
muted lime bags contain 4 muted violet bags, 5 shiny white bags.
|
||||||
|
vibrant lime bags contain 2 mirrored bronze bags, 1 dotted crimson bag, 5 dim yellow bags, 2 mirrored gold bags.
|
||||||
|
muted silver bags contain 1 striped orange bag, 3 drab purple bags.
|
||||||
|
mirrored bronze bags contain 4 dull bronze bags.
|
||||||
|
light olive bags contain 4 mirrored olive bags, 2 dim lime bags, 1 clear magenta bag.
|
||||||
|
vibrant tan bags contain 2 shiny teal bags.
|
||||||
|
posh red bags contain 2 bright bronze bags, 5 striped teal bags, 5 faded beige bags, 4 faded olive bags.
|
||||||
|
faded red bags contain 4 striped lavender bags, 4 posh red bags.
|
||||||
|
mirrored brown bags contain 3 dim salmon bags, 4 drab chartreuse bags, 1 wavy tomato bag.
|
||||||
|
dark gray bags contain 1 muted tan bag, 4 faded blue bags, 2 dim chartreuse bags.
|
||||||
|
dark white bags contain 4 vibrant lime bags, 4 pale olive bags.
|
||||||
|
striped silver bags contain 4 dim cyan bags.
|
||||||
|
clear salmon bags contain 5 pale magenta bags, 1 mirrored salmon bag.
|
||||||
|
pale white bags contain 5 wavy crimson bags, 4 plaid indigo bags, 5 striped crimson bags, 3 drab violet bags.
|
||||||
|
vibrant indigo bags contain 1 mirrored gold bag, 1 striped turquoise bag, 3 posh beige bags.
|
||||||
|
drab aqua bags contain 5 faded crimson bags, 3 wavy gold bags, 3 striped tomato bags.
|
||||||
|
clear brown bags contain 5 bright lavender bags.
|
||||||
|
posh indigo bags contain 5 mirrored red bags, 5 clear coral bags.
|
||||||
|
posh black bags contain 4 dim fuchsia bags, 5 muted olive bags, 3 mirrored red bags.
|
||||||
|
shiny lavender bags contain 2 muted aqua bags, 3 striped black bags, 3 wavy salmon bags, 3 mirrored purple bags.
|
||||||
|
vibrant bronze bags contain 1 bright tan bag, 5 faded beige bags, 5 pale red bags, 1 plaid cyan bag.
|
||||||
|
clear chartreuse bags contain 2 shiny gold bags, 1 wavy turquoise bag, 2 muted crimson bags.
|
||||||
|
drab tan bags contain no other bags.
|
||||||
|
posh gold bags contain 5 dotted beige bags, 1 striped crimson bag, 5 drab purple bags, 1 bright gray bag.
|
||||||
|
clear olive bags contain 3 dark tomato bags.
|
||||||
|
dim aqua bags contain 4 wavy black bags, 5 clear chartreuse bags, 5 clear aqua bags.
|
||||||
|
pale coral bags contain 2 shiny orange bags, 5 dark black bags, 3 vibrant coral bags.
|
||||||
|
drab blue bags contain 5 dull salmon bags.
|
||||||
|
vibrant white bags contain 2 mirrored yellow bags.
|
||||||
|
faded indigo bags contain 5 clear aqua bags.
|
||||||
|
posh turquoise bags contain 1 light purple bag, 4 mirrored salmon bags.
|
||||||
|
dotted orange bags contain 5 dark blue bags, 1 shiny lavender bag, 2 dim plum bags, 3 clear violet bags.
|
||||||
|
muted crimson bags contain 4 wavy crimson bags, 1 light magenta bag, 3 clear plum bags.
|
||||||
|
dim coral bags contain 1 vibrant red bag, 2 vibrant magenta bags.
|
||||||
|
mirrored plum bags contain 5 light olive bags.
|
||||||
|
dull violet bags contain 2 dim aqua bags.
|
||||||
|
faded violet bags contain 5 clear violet bags, 5 muted indigo bags, 3 clear red bags, 1 posh tan bag.
|
||||||
|
vibrant crimson bags contain 1 shiny crimson bag.
|
||||||
|
muted plum bags contain 3 drab beige bags, 4 posh maroon bags.
|
||||||
|
dim orange bags contain 5 bright salmon bags.
|
||||||
|
dim blue bags contain 1 mirrored black bag, 3 faded blue bags.
|
||||||
|
mirrored tan bags contain 5 plaid plum bags.
|
||||||
|
pale crimson bags contain 4 dim green bags, 2 pale fuchsia bags.
|
||||||
|
bright white bags contain 2 drab gold bags, 2 shiny maroon bags, 5 mirrored lime bags.
|
||||||
|
dim indigo bags contain 1 mirrored cyan bag, 1 wavy purple bag, 1 drab brown bag.
|
||||||
|
dotted violet bags contain 4 bright teal bags, 2 vibrant plum bags.
|
||||||
|
wavy indigo bags contain 2 drab silver bags, 1 muted chartreuse bag, 1 drab aqua bag, 3 mirrored teal bags.
|
||||||
|
dark cyan bags contain 1 muted magenta bag, 3 vibrant violet bags, 4 mirrored aqua bags, 5 drab violet bags.
|
||||||
|
posh maroon bags contain 5 muted chartreuse bags, 4 dark olive bags.
|
||||||
|
drab tomato bags contain 2 plaid tan bags, 2 posh purple bags, 2 posh beige bags.
|
||||||
|
wavy tan bags contain 5 light cyan bags, 5 muted brown bags, 5 mirrored coral bags, 5 light chartreuse bags.
|
||||||
|
faded bronze bags contain 4 dotted magenta bags.
|
||||||
|
pale blue bags contain 5 pale purple bags.
|
||||||
|
dim magenta bags contain 5 posh aqua bags, 5 dim crimson bags, 4 wavy gold bags, 2 shiny orange bags.
|
||||||
|
dark fuchsia bags contain 2 drab silver bags.
|
||||||
|
wavy white bags contain 4 vibrant turquoise bags, 2 clear violet bags, 1 dull salmon bag.
|
||||||
|
drab maroon bags contain 3 pale tomato bags, 2 dim chartreuse bags, 5 mirrored orange bags, 4 drab violet bags.
|
||||||
|
muted fuchsia bags contain 4 muted bronze bags, 4 plaid brown bags, 1 faded white bag.
|
||||||
|
plaid gold bags contain 3 vibrant bronze bags, 5 striped chartreuse bags.
|
||||||
|
faded green bags contain 2 dull cyan bags, 5 posh purple bags.
|
||||||
|
light indigo bags contain 5 mirrored tomato bags.
|
||||||
|
striped white bags contain 5 clear plum bags.
|
||||||
|
posh magenta bags contain 5 wavy crimson bags, 3 striped coral bags.
|
||||||
|
drab olive bags contain 4 striped orange bags.
|
||||||
|
plaid indigo bags contain 1 plaid turquoise bag.
|
||||||
|
dark brown bags contain 2 faded tan bags, 5 wavy green bags.
|
||||||
|
faded cyan bags contain 2 bright violet bags, 3 mirrored salmon bags.
|
||||||
|
dim lavender bags contain 2 mirrored fuchsia bags, 3 pale magenta bags, 2 dotted tan bags, 4 posh bronze bags.
|
||||||
|
dull maroon bags contain 3 dark silver bags, 5 dim plum bags.
|
||||||
|
dull teal bags contain 3 pale green bags.
|
||||||
|
shiny yellow bags contain 4 dotted fuchsia bags.
|
||||||
|
mirrored crimson bags contain 5 dotted plum bags.
|
||||||
|
drab beige bags contain 3 faded orange bags, 3 dark orange bags, 4 clear orange bags.
|
||||||
|
dull olive bags contain 2 vibrant bronze bags, 4 shiny chartreuse bags.
|
||||||
|
wavy red bags contain 2 wavy brown bags, 1 wavy olive bag, 3 striped cyan bags.
|
||||||
|
light gray bags contain 1 pale salmon bag, 2 plaid bronze bags, 5 dull yellow bags.
|
||||||
|
faded gray bags contain 4 muted green bags, 5 faded red bags, 3 muted magenta bags, 5 bright magenta bags.
|
||||||
|
drab indigo bags contain 1 posh gold bag, 2 dull lime bags, 1 pale orange bag.
|
||||||
|
bright yellow bags contain 4 posh red bags, 4 shiny gold bags.
|
||||||
|
drab bronze bags contain 4 dark indigo bags.
|
||||||
|
striped gold bags contain 3 faded yellow bags, 2 mirrored tomato bags, 1 bright lime bag.
|
||||||
|
muted gold bags contain 4 dim violet bags.
|
||||||
|
plaid olive bags contain 3 wavy fuchsia bags.
|
||||||
|
bright gray bags contain 4 bright bronze bags, 1 plaid white bag, 1 pale bronze bag.
|
||||||
|
clear turquoise bags contain 2 mirrored purple bags, 2 light gold bags, 4 dim cyan bags, 5 wavy olive bags.
|
||||||
|
wavy plum bags contain 4 bright yellow bags.
|
||||||
|
dull blue bags contain 4 dotted lavender bags.
|
||||||
|
posh gray bags contain 4 faded blue bags, 2 dull brown bags, 1 clear cyan bag.
|
||||||
|
pale black bags contain 5 dim cyan bags, 4 bright white bags.
|
||||||
|
wavy blue bags contain 3 faded olive bags, 5 bright lavender bags, 1 wavy black bag, 2 posh magenta bags.
|
||||||
|
posh beige bags contain 2 light cyan bags, 1 wavy violet bag, 1 muted olive bag.
|
||||||
|
clear plum bags contain 3 dull cyan bags.
|
||||||
|
drab cyan bags contain 5 plaid green bags.
|
||||||
|
vibrant aqua bags contain 5 posh maroon bags.
|
||||||
|
dim silver bags contain 5 shiny gold bags, 5 posh magenta bags, 1 light white bag.
|
||||||
|
posh brown bags contain 4 plaid salmon bags, 2 vibrant blue bags, 2 posh olive bags.
|
||||||
|
dark teal bags contain 1 faded brown bag.
|
||||||
|
clear white bags contain 5 vibrant tan bags, 5 light purple bags, 3 posh tan bags, 4 faded beige bags.
|
||||||
|
dim maroon bags contain 2 plaid chartreuse bags, 1 dim gray bag, 2 drab gold bags, 5 light white bags.
|
||||||
|
dull salmon bags contain 5 striped teal bags, 3 dark blue bags, 3 drab tan bags, 5 wavy crimson bags.
|
||||||
|
dull coral bags contain 1 faded red bag, 2 shiny teal bags, 3 bright gray bags, 1 pale brown bag.
|
||||||
|
dark violet bags contain 1 clear cyan bag, 4 mirrored beige bags, 2 vibrant turquoise bags.
|
||||||
|
vibrant maroon bags contain 1 muted magenta bag, 3 muted olive bags, 2 shiny turquoise bags.
|
||||||
|
posh orange bags contain 5 dark black bags, 3 pale maroon bags, 5 dull plum bags.
|
||||||
|
clear indigo bags contain 4 faded tan bags, 3 clear orange bags, 1 vibrant aqua bag.
|
||||||
|
clear gray bags contain 4 dull salmon bags, 5 dark magenta bags.
|
||||||
|
shiny turquoise bags contain 4 muted green bags, 4 vibrant beige bags, 5 mirrored cyan bags, 4 striped blue bags.
|
||||||
|
pale salmon bags contain 1 dark silver bag, 4 dim green bags.
|
||||||
|
striped gray bags contain 3 dark lavender bags.
|
||||||
|
dull yellow bags contain 2 dark blue bags, 4 striped tomato bags, 2 striped red bags, 3 pale brown bags.
|
||||||
|
posh yellow bags contain 1 dull green bag, 1 dull plum bag.
|
||||||
|
plaid white bags contain 3 plaid turquoise bags, 4 dotted cyan bags, 3 shiny gold bags, 5 clear plum bags.
|
||||||
|
faded orange bags contain 1 dull silver bag, 4 clear gray bags, 1 posh tomato bag, 2 wavy yellow bags.
|
||||||
|
dim violet bags contain 4 drab silver bags, 1 dull yellow bag, 3 faded blue bags.
|
||||||
|
light green bags contain 3 drab gold bags, 4 wavy purple bags.
|
||||||
|
dark magenta bags contain 2 light gold bags, 5 drab violet bags.
|
||||||
|
dark purple bags contain 5 plaid beige bags.
|
||||||
|
mirrored blue bags contain 2 plaid tan bags.
|
||||||
|
dim lime bags contain 1 dotted beige bag, 2 striped white bags, 5 dim blue bags, 5 wavy blue bags.
|
||||||
|
bright chartreuse bags contain 3 clear orange bags.
|
||||||
|
vibrant brown bags contain 3 mirrored violet bags, 5 dull green bags, 2 pale magenta bags.
|
||||||
|
drab salmon bags contain 4 muted magenta bags.
|
||||||
|
muted teal bags contain 5 dark black bags, 5 light gold bags.
|
||||||
|
striped lime bags contain 1 dim orange bag.
|
||||||
|
plaid crimson bags contain 4 dim teal bags, 3 dull salmon bags.
|
||||||
|
posh plum bags contain 5 pale gray bags.
|
||||||
|
light maroon bags contain 4 drab violet bags, 2 faded brown bags, 2 striped black bags, 3 striped coral bags.
|
||||||
|
pale gray bags contain 1 dark aqua bag, 3 mirrored tomato bags.
|
||||||
|
light chartreuse bags contain no other bags.
|
||||||
|
dim crimson bags contain 5 faded blue bags, 1 dark blue bag, 2 striped teal bags.
|
||||||
|
dim beige bags contain 5 wavy silver bags, 1 wavy orange bag, 1 dim lime bag, 2 mirrored lime bags.
|
||||||
|
bright teal bags contain 1 dull violet bag, 1 faded beige bag, 3 faded orange bags.
|
||||||
|
striped green bags contain 2 drab gold bags, 5 posh olive bags, 4 light indigo bags, 1 clear yellow bag.
|
||||||
|
striped black bags contain 4 striped crimson bags, 1 pale red bag.
|
||||||
|
plaid beige bags contain 3 pale tomato bags.
|
||||||
|
drab plum bags contain 4 striped coral bags, 3 dotted crimson bags.
|
||||||
|
plaid orange bags contain 4 bright aqua bags.
|
||||||
|
wavy maroon bags contain 1 dim orange bag, 1 dim violet bag, 4 posh chartreuse bags, 5 plaid tan bags.
|
||||||
|
dim purple bags contain 1 mirrored black bag, 1 plaid plum bag, 4 striped teal bags, 1 posh aqua bag.
|
||||||
|
mirrored red bags contain 2 shiny salmon bags, 3 bright salmon bags, 1 vibrant salmon bag.
|
||||||
|
striped brown bags contain 3 light lime bags, 1 drab black bag, 2 dull white bags, 5 drab lavender bags.
|
||||||
|
dim red bags contain 2 mirrored black bags.
|
||||||
|
clear lavender bags contain 5 pale fuchsia bags.
|
||||||
|
bright bronze bags contain 2 striped teal bags, 4 clear plum bags, 3 dim crimson bags, 5 faded black bags.
|
||||||
|
shiny violet bags contain 2 dark gold bags, 3 posh maroon bags.
|
||||||
|
bright lime bags contain 2 clear magenta bags, 3 dark blue bags, 4 striped lavender bags, 1 dull crimson bag.
|
||||||
|
mirrored silver bags contain 1 vibrant tomato bag, 4 dull salmon bags, 5 plaid green bags, 4 wavy brown bags.
|
||||||
|
dotted olive bags contain 5 faded beige bags.
|
||||||
|
posh tomato bags contain 2 faded purple bags.
|
||||||
|
posh teal bags contain 2 drab tan bags, 3 striped red bags, 3 dull salmon bags, 1 striped lavender bag.
|
||||||
|
shiny tomato bags contain 3 posh indigo bags.
|
||||||
|
dotted crimson bags contain 1 pale gray bag.
|
||||||
|
shiny indigo bags contain 1 pale beige bag.
|
||||||
|
plaid lime bags contain 1 light maroon bag.
|
||||||
|
mirrored turquoise bags contain 5 faded bronze bags.
|
||||||
|
drab crimson bags contain 1 vibrant plum bag.
|
||||||
|
dim black bags contain 3 muted tan bags, 3 drab silver bags, 4 dull white bags.
|
||||||
|
faded yellow bags contain 5 faded black bags.
|
||||||
|
faded white bags contain 2 wavy lavender bags, 1 shiny orange bag.
|
||||||
|
plaid tomato bags contain 2 shiny brown bags, 3 clear red bags.
|
||||||
|
drab white bags contain 5 dark yellow bags.
|
||||||
|
mirrored tomato bags contain 2 light gold bags, 1 mirrored gold bag, 4 dim plum bags.
|
||||||
|
plaid maroon bags contain 2 mirrored lime bags, 3 plaid salmon bags, 2 shiny chartreuse bags.
|
||||||
|
drab gold bags contain 1 dim plum bag, 2 mirrored violet bags.
|
||||||
|
muted orange bags contain 3 mirrored lime bags, 1 muted maroon bag, 5 drab violet bags, 2 posh green bags.
|
||||||
|
mirrored fuchsia bags contain 3 dim plum bags, 2 muted olive bags, 2 wavy white bags, 1 dotted cyan bag.
|
||||||
|
plaid silver bags contain 3 pale violet bags, 5 striped purple bags, 5 dull purple bags.
|
||||||
|
dotted silver bags contain 2 vibrant coral bags.
|
||||||
|
shiny cyan bags contain 4 mirrored teal bags, 4 faded magenta bags, 4 bright lime bags, 1 vibrant teal bag.
|
||||||
|
clear yellow bags contain 1 muted brown bag, 5 wavy lime bags.
|
||||||
|
muted red bags contain 5 muted coral bags, 2 light violet bags, 2 muted indigo bags, 4 dotted tan bags.
|
||||||
|
dull beige bags contain 5 plaid black bags, 2 pale white bags, 2 light violet bags, 1 pale crimson bag.
|
||||||
|
vibrant lavender bags contain 3 dark chartreuse bags, 4 bright lavender bags.
|
||||||
|
posh lime bags contain 1 shiny cyan bag, 4 dotted blue bags, 3 mirrored chartreuse bags.
|
||||||
|
shiny blue bags contain 1 dotted magenta bag.
|
||||||
|
muted yellow bags contain 4 plaid salmon bags, 4 dull tomato bags.
|
||||||
|
muted blue bags contain 5 wavy magenta bags, 3 vibrant gray bags.
|
||||||
|
dotted tan bags contain 1 wavy green bag, 1 dim plum bag.
|
||||||
|
drab red bags contain 2 dark olive bags, 5 mirrored tan bags, 3 dull coral bags, 4 plaid yellow bags.
|
||||||
|
dull tomato bags contain 2 clear aqua bags, 2 dark fuchsia bags, 2 light teal bags.
|
||||||
|
bright salmon bags contain 5 dark blue bags.
|
||||||
|
pale olive bags contain 1 light violet bag, 3 shiny bronze bags, 2 dotted magenta bags, 4 posh silver bags.
|
||||||
|
mirrored teal bags contain 4 posh chartreuse bags, 5 vibrant bronze bags.
|
||||||
|
mirrored chartreuse bags contain 3 striped olive bags, 3 mirrored maroon bags, 5 faded black bags, 3 pale plum bags.
|
||||||
|
pale orange bags contain 4 mirrored gold bags, 3 faded brown bags, 2 dark olive bags.
|
||||||
|
dark olive bags contain no other bags.
|
||||||
|
faded plum bags contain 5 bright green bags, 5 shiny beige bags, 2 vibrant indigo bags, 1 mirrored orange bag.
|
||||||
|
drab magenta bags contain 5 dark fuchsia bags, 5 striped salmon bags.
|
||||||
|
dark lavender bags contain 5 mirrored red bags, 4 vibrant aqua bags, 2 dotted tan bags.
|
||||||
|
shiny bronze bags contain 2 clear aqua bags, 2 dull salmon bags, 1 plaid turquoise bag, 3 plaid bronze bags.
|
||||||
|
faded magenta bags contain 2 mirrored gold bags, 5 dim orange bags.
|
||||||
|
light lavender bags contain 3 striped magenta bags, 5 light yellow bags.
|
||||||
|
clear tomato bags contain 3 dark bronze bags, 5 plaid aqua bags, 2 faded lime bags, 2 bright salmon bags.
|
||||||
|
clear lime bags contain 1 mirrored lavender bag, 3 bright silver bags, 3 pale teal bags.
|
||||||
|
light lime bags contain 4 dim crimson bags, 2 vibrant tomato bags, 4 posh red bags.
|
||||||
|
wavy yellow bags contain 3 muted chartreuse bags, 3 drab teal bags, 4 striped tomato bags.
|
||||||
|
dark silver bags contain 5 posh magenta bags, 1 plaid black bag, 3 faded brown bags.
|
||||||
|
bright maroon bags contain 5 dotted turquoise bags, 3 wavy silver bags, 2 dotted lime bags.
|
||||||
|
striped orange bags contain 5 striped coral bags, 3 posh teal bags.
|
||||||
|
bright silver bags contain 3 mirrored violet bags, 5 striped gold bags, 1 striped white bag, 4 clear chartreuse bags.
|
||||||
|
mirrored olive bags contain 4 light silver bags, 1 muted crimson bag.
|
||||||
|
dim gold bags contain 3 clear magenta bags.
|
||||||
|
shiny plum bags contain 5 muted olive bags, 5 dark turquoise bags, 2 dull green bags, 1 plaid magenta bag.
|
||||||
|
mirrored green bags contain 5 striped magenta bags, 1 light lime bag, 2 dim cyan bags.
|
||||||
|
wavy aqua bags contain 4 dull tan bags, 5 vibrant beige bags.
|
||||||
|
posh lavender bags contain 4 muted black bags.
|
||||||
|
dull lime bags contain 2 plaid black bags.
|
||||||
|
dim chartreuse bags contain 4 bright red bags.
|
||||||
|
muted lavender bags contain 5 faded red bags, 5 drab brown bags, 5 clear bronze bags.
|
||||||
|
muted coral bags contain 4 clear red bags, 3 vibrant maroon bags.
|
||||||
|
bright lavender bags contain 4 striped blue bags.
|
||||||
@@ -0,0 +1,649 @@
|
|||||||
|
acc +7
|
||||||
|
acc +23
|
||||||
|
acc +41
|
||||||
|
jmp +173
|
||||||
|
acc -17
|
||||||
|
acc +42
|
||||||
|
acc +31
|
||||||
|
jmp +349
|
||||||
|
jmp +1
|
||||||
|
jmp +252
|
||||||
|
nop +574
|
||||||
|
jmp +298
|
||||||
|
acc +45
|
||||||
|
acc +7
|
||||||
|
jmp +338
|
||||||
|
nop +5
|
||||||
|
nop +528
|
||||||
|
jmp +547
|
||||||
|
jmp +313
|
||||||
|
jmp +387
|
||||||
|
acc +43
|
||||||
|
acc +48
|
||||||
|
acc +38
|
||||||
|
jmp +45
|
||||||
|
jmp +438
|
||||||
|
acc +15
|
||||||
|
acc +21
|
||||||
|
acc +25
|
||||||
|
acc +25
|
||||||
|
jmp +168
|
||||||
|
jmp -5
|
||||||
|
acc +49
|
||||||
|
acc +43
|
||||||
|
jmp +99
|
||||||
|
acc -8
|
||||||
|
acc +16
|
||||||
|
acc -7
|
||||||
|
jmp +513
|
||||||
|
jmp +484
|
||||||
|
jmp +270
|
||||||
|
nop +422
|
||||||
|
acc -4
|
||||||
|
nop +242
|
||||||
|
jmp +1
|
||||||
|
jmp +11
|
||||||
|
nop +122
|
||||||
|
nop +263
|
||||||
|
acc +2
|
||||||
|
jmp +474
|
||||||
|
jmp +501
|
||||||
|
nop +38
|
||||||
|
acc -7
|
||||||
|
acc +0
|
||||||
|
nop +85
|
||||||
|
jmp +496
|
||||||
|
acc +11
|
||||||
|
acc -13
|
||||||
|
acc +40
|
||||||
|
acc +29
|
||||||
|
jmp +519
|
||||||
|
jmp +409
|
||||||
|
acc +41
|
||||||
|
jmp +1
|
||||||
|
acc -17
|
||||||
|
jmp +16
|
||||||
|
nop +485
|
||||||
|
acc -7
|
||||||
|
jmp +58
|
||||||
|
acc +16
|
||||||
|
acc +1
|
||||||
|
jmp +123
|
||||||
|
jmp +157
|
||||||
|
acc +43
|
||||||
|
jmp +422
|
||||||
|
jmp +1
|
||||||
|
acc -19
|
||||||
|
acc +48
|
||||||
|
jmp +80
|
||||||
|
jmp +500
|
||||||
|
jmp -59
|
||||||
|
acc +34
|
||||||
|
acc +11
|
||||||
|
jmp +75
|
||||||
|
nop +467
|
||||||
|
acc -16
|
||||||
|
acc +9
|
||||||
|
acc +32
|
||||||
|
jmp -69
|
||||||
|
acc -13
|
||||||
|
jmp +422
|
||||||
|
jmp +96
|
||||||
|
acc -10
|
||||||
|
acc -19
|
||||||
|
jmp -68
|
||||||
|
acc +31
|
||||||
|
nop +102
|
||||||
|
acc +25
|
||||||
|
jmp +140
|
||||||
|
acc +34
|
||||||
|
acc +45
|
||||||
|
acc -9
|
||||||
|
acc -17
|
||||||
|
jmp -34
|
||||||
|
nop +262
|
||||||
|
jmp +236
|
||||||
|
acc +0
|
||||||
|
acc +32
|
||||||
|
jmp +269
|
||||||
|
acc +16
|
||||||
|
jmp +1
|
||||||
|
jmp +382
|
||||||
|
jmp -39
|
||||||
|
acc +45
|
||||||
|
nop +166
|
||||||
|
nop +408
|
||||||
|
acc +10
|
||||||
|
jmp +379
|
||||||
|
jmp +1
|
||||||
|
acc +44
|
||||||
|
jmp +249
|
||||||
|
nop +334
|
||||||
|
acc +36
|
||||||
|
nop +442
|
||||||
|
acc +5
|
||||||
|
jmp +440
|
||||||
|
acc +0
|
||||||
|
acc +44
|
||||||
|
jmp +432
|
||||||
|
acc +48
|
||||||
|
acc +4
|
||||||
|
acc +50
|
||||||
|
jmp +355
|
||||||
|
acc +31
|
||||||
|
jmp +1
|
||||||
|
acc +46
|
||||||
|
nop -74
|
||||||
|
jmp +33
|
||||||
|
jmp +91
|
||||||
|
nop +463
|
||||||
|
acc +41
|
||||||
|
nop -2
|
||||||
|
jmp +132
|
||||||
|
acc +41
|
||||||
|
acc +43
|
||||||
|
acc +28
|
||||||
|
jmp -65
|
||||||
|
acc -17
|
||||||
|
acc +33
|
||||||
|
jmp +183
|
||||||
|
acc +11
|
||||||
|
jmp +181
|
||||||
|
jmp +450
|
||||||
|
acc -18
|
||||||
|
acc -2
|
||||||
|
acc +44
|
||||||
|
nop +416
|
||||||
|
jmp +108
|
||||||
|
acc -18
|
||||||
|
acc +12
|
||||||
|
acc -1
|
||||||
|
acc -19
|
||||||
|
jmp +321
|
||||||
|
acc +50
|
||||||
|
acc -17
|
||||||
|
jmp +1
|
||||||
|
nop +161
|
||||||
|
jmp -41
|
||||||
|
jmp +52
|
||||||
|
jmp +84
|
||||||
|
acc +11
|
||||||
|
acc +19
|
||||||
|
acc +40
|
||||||
|
jmp +293
|
||||||
|
acc +29
|
||||||
|
jmp +1
|
||||||
|
jmp +311
|
||||||
|
nop +91
|
||||||
|
acc +1
|
||||||
|
acc +0
|
||||||
|
acc +16
|
||||||
|
jmp -42
|
||||||
|
acc +0
|
||||||
|
acc -16
|
||||||
|
acc +41
|
||||||
|
nop +348
|
||||||
|
jmp -39
|
||||||
|
nop -114
|
||||||
|
nop +320
|
||||||
|
acc +46
|
||||||
|
acc -1
|
||||||
|
jmp +55
|
||||||
|
nop +278
|
||||||
|
jmp -94
|
||||||
|
acc +47
|
||||||
|
jmp +365
|
||||||
|
acc +44
|
||||||
|
jmp -58
|
||||||
|
jmp +1
|
||||||
|
jmp +114
|
||||||
|
acc -13
|
||||||
|
acc -5
|
||||||
|
acc +12
|
||||||
|
jmp +183
|
||||||
|
nop +237
|
||||||
|
acc +26
|
||||||
|
acc +49
|
||||||
|
acc +1
|
||||||
|
jmp -189
|
||||||
|
acc +7
|
||||||
|
acc +2
|
||||||
|
jmp -190
|
||||||
|
acc -17
|
||||||
|
acc +18
|
||||||
|
acc -1
|
||||||
|
jmp -47
|
||||||
|
nop -39
|
||||||
|
acc -18
|
||||||
|
nop +354
|
||||||
|
jmp +264
|
||||||
|
acc +46
|
||||||
|
jmp +179
|
||||||
|
acc +22
|
||||||
|
acc +24
|
||||||
|
jmp +309
|
||||||
|
acc +45
|
||||||
|
acc -9
|
||||||
|
jmp -206
|
||||||
|
jmp +34
|
||||||
|
nop +254
|
||||||
|
acc +9
|
||||||
|
acc +32
|
||||||
|
jmp +391
|
||||||
|
acc +9
|
||||||
|
acc +20
|
||||||
|
acc +7
|
||||||
|
acc +48
|
||||||
|
jmp -85
|
||||||
|
acc +27
|
||||||
|
acc -3
|
||||||
|
jmp +146
|
||||||
|
acc -12
|
||||||
|
acc +37
|
||||||
|
acc +23
|
||||||
|
jmp +1
|
||||||
|
jmp +48
|
||||||
|
acc +46
|
||||||
|
jmp +99
|
||||||
|
acc -12
|
||||||
|
acc -2
|
||||||
|
acc +49
|
||||||
|
jmp +1
|
||||||
|
jmp +293
|
||||||
|
jmp +1
|
||||||
|
acc +38
|
||||||
|
jmp +13
|
||||||
|
jmp -215
|
||||||
|
jmp -145
|
||||||
|
acc +7
|
||||||
|
nop +73
|
||||||
|
nop +189
|
||||||
|
jmp +167
|
||||||
|
jmp +332
|
||||||
|
acc +29
|
||||||
|
jmp -146
|
||||||
|
jmp +198
|
||||||
|
acc +10
|
||||||
|
jmp +342
|
||||||
|
acc +31
|
||||||
|
jmp -136
|
||||||
|
acc +16
|
||||||
|
acc +33
|
||||||
|
acc +26
|
||||||
|
jmp -48
|
||||||
|
acc +14
|
||||||
|
jmp +91
|
||||||
|
acc -15
|
||||||
|
nop +274
|
||||||
|
acc -2
|
||||||
|
jmp -75
|
||||||
|
acc +14
|
||||||
|
acc +21
|
||||||
|
acc +4
|
||||||
|
jmp +332
|
||||||
|
jmp -243
|
||||||
|
acc +25
|
||||||
|
acc -5
|
||||||
|
jmp +250
|
||||||
|
acc -17
|
||||||
|
acc +32
|
||||||
|
acc +28
|
||||||
|
acc +34
|
||||||
|
jmp -80
|
||||||
|
acc +23
|
||||||
|
acc +30
|
||||||
|
acc +10
|
||||||
|
nop -98
|
||||||
|
jmp -205
|
||||||
|
acc -16
|
||||||
|
acc -15
|
||||||
|
acc +49
|
||||||
|
acc +15
|
||||||
|
jmp +11
|
||||||
|
nop +97
|
||||||
|
acc -2
|
||||||
|
acc +31
|
||||||
|
jmp +1
|
||||||
|
jmp -130
|
||||||
|
acc +25
|
||||||
|
jmp +129
|
||||||
|
nop -231
|
||||||
|
jmp +274
|
||||||
|
jmp -280
|
||||||
|
acc +0
|
||||||
|
acc -14
|
||||||
|
acc +8
|
||||||
|
nop -224
|
||||||
|
jmp +328
|
||||||
|
acc +6
|
||||||
|
acc +29
|
||||||
|
acc +9
|
||||||
|
jmp -229
|
||||||
|
acc +8
|
||||||
|
jmp -284
|
||||||
|
acc +4
|
||||||
|
acc +0
|
||||||
|
jmp -200
|
||||||
|
acc +18
|
||||||
|
acc +33
|
||||||
|
jmp -76
|
||||||
|
acc -2
|
||||||
|
jmp +139
|
||||||
|
nop -70
|
||||||
|
acc -6
|
||||||
|
acc +9
|
||||||
|
jmp -25
|
||||||
|
nop +21
|
||||||
|
acc +37
|
||||||
|
acc +15
|
||||||
|
acc +45
|
||||||
|
jmp +130
|
||||||
|
acc +45
|
||||||
|
acc -5
|
||||||
|
jmp -86
|
||||||
|
acc -15
|
||||||
|
jmp +55
|
||||||
|
nop -305
|
||||||
|
acc +24
|
||||||
|
jmp -275
|
||||||
|
jmp +1
|
||||||
|
acc +31
|
||||||
|
acc -19
|
||||||
|
jmp -148
|
||||||
|
acc +27
|
||||||
|
jmp +279
|
||||||
|
acc +11
|
||||||
|
jmp +253
|
||||||
|
acc +17
|
||||||
|
nop -1
|
||||||
|
acc -15
|
||||||
|
jmp -57
|
||||||
|
acc +12
|
||||||
|
acc +10
|
||||||
|
acc -7
|
||||||
|
acc +18
|
||||||
|
jmp -100
|
||||||
|
acc +39
|
||||||
|
jmp -180
|
||||||
|
jmp +155
|
||||||
|
acc -14
|
||||||
|
acc -10
|
||||||
|
acc -14
|
||||||
|
nop -202
|
||||||
|
jmp -267
|
||||||
|
acc +11
|
||||||
|
acc +0
|
||||||
|
jmp -130
|
||||||
|
acc +19
|
||||||
|
acc -18
|
||||||
|
jmp +166
|
||||||
|
jmp +61
|
||||||
|
jmp +13
|
||||||
|
acc -2
|
||||||
|
jmp +1
|
||||||
|
acc +19
|
||||||
|
jmp -160
|
||||||
|
acc +23
|
||||||
|
jmp +1
|
||||||
|
acc +37
|
||||||
|
acc +40
|
||||||
|
jmp +86
|
||||||
|
acc +17
|
||||||
|
acc -18
|
||||||
|
jmp -195
|
||||||
|
acc +11
|
||||||
|
nop -149
|
||||||
|
acc -13
|
||||||
|
jmp +41
|
||||||
|
acc -16
|
||||||
|
jmp -30
|
||||||
|
acc +34
|
||||||
|
acc +13
|
||||||
|
acc +38
|
||||||
|
jmp +46
|
||||||
|
acc -13
|
||||||
|
acc +34
|
||||||
|
jmp -273
|
||||||
|
acc -9
|
||||||
|
acc -8
|
||||||
|
acc +23
|
||||||
|
acc +8
|
||||||
|
jmp +82
|
||||||
|
acc +3
|
||||||
|
acc +43
|
||||||
|
nop +137
|
||||||
|
jmp -46
|
||||||
|
acc -15
|
||||||
|
acc +41
|
||||||
|
acc +25
|
||||||
|
acc +3
|
||||||
|
jmp -208
|
||||||
|
acc +0
|
||||||
|
jmp -169
|
||||||
|
acc +20
|
||||||
|
acc +12
|
||||||
|
jmp -221
|
||||||
|
acc -14
|
||||||
|
jmp +96
|
||||||
|
acc +47
|
||||||
|
acc +25
|
||||||
|
acc +7
|
||||||
|
jmp +141
|
||||||
|
acc -19
|
||||||
|
jmp -294
|
||||||
|
acc +28
|
||||||
|
jmp -94
|
||||||
|
acc +35
|
||||||
|
jmp +33
|
||||||
|
jmp -349
|
||||||
|
acc -17
|
||||||
|
jmp +193
|
||||||
|
jmp +1
|
||||||
|
acc -16
|
||||||
|
jmp -169
|
||||||
|
jmp +1
|
||||||
|
nop -258
|
||||||
|
acc +44
|
||||||
|
nop -13
|
||||||
|
jmp -330
|
||||||
|
jmp +189
|
||||||
|
acc +20
|
||||||
|
acc +31
|
||||||
|
nop +35
|
||||||
|
acc +42
|
||||||
|
jmp +64
|
||||||
|
acc +9
|
||||||
|
nop -406
|
||||||
|
acc -14
|
||||||
|
jmp +1
|
||||||
|
jmp +74
|
||||||
|
acc +34
|
||||||
|
acc +0
|
||||||
|
jmp -285
|
||||||
|
jmp -422
|
||||||
|
nop -338
|
||||||
|
jmp +47
|
||||||
|
nop -445
|
||||||
|
jmp -145
|
||||||
|
jmp +1
|
||||||
|
jmp -116
|
||||||
|
acc +41
|
||||||
|
acc +44
|
||||||
|
acc +34
|
||||||
|
jmp -146
|
||||||
|
acc +44
|
||||||
|
jmp -434
|
||||||
|
acc +44
|
||||||
|
acc +34
|
||||||
|
jmp -185
|
||||||
|
acc -17
|
||||||
|
nop -187
|
||||||
|
nop -5
|
||||||
|
jmp -96
|
||||||
|
nop -20
|
||||||
|
jmp -199
|
||||||
|
acc +33
|
||||||
|
jmp -229
|
||||||
|
nop +50
|
||||||
|
jmp -263
|
||||||
|
acc -5
|
||||||
|
acc -4
|
||||||
|
acc +16
|
||||||
|
jmp -340
|
||||||
|
jmp -77
|
||||||
|
nop -71
|
||||||
|
jmp -168
|
||||||
|
acc -18
|
||||||
|
nop -447
|
||||||
|
nop -479
|
||||||
|
jmp -118
|
||||||
|
acc +49
|
||||||
|
nop -35
|
||||||
|
jmp -264
|
||||||
|
acc +21
|
||||||
|
jmp -76
|
||||||
|
acc +25
|
||||||
|
acc +46
|
||||||
|
jmp -339
|
||||||
|
jmp -382
|
||||||
|
nop -54
|
||||||
|
nop -169
|
||||||
|
jmp -208
|
||||||
|
acc -8
|
||||||
|
jmp -395
|
||||||
|
acc -8
|
||||||
|
acc +45
|
||||||
|
nop -312
|
||||||
|
jmp +92
|
||||||
|
jmp -31
|
||||||
|
acc +45
|
||||||
|
acc +42
|
||||||
|
nop -259
|
||||||
|
jmp -169
|
||||||
|
nop -255
|
||||||
|
nop -69
|
||||||
|
acc +47
|
||||||
|
acc +35
|
||||||
|
jmp -428
|
||||||
|
acc +15
|
||||||
|
acc +47
|
||||||
|
acc +50
|
||||||
|
acc +13
|
||||||
|
jmp -491
|
||||||
|
jmp -386
|
||||||
|
acc +32
|
||||||
|
acc +36
|
||||||
|
jmp -73
|
||||||
|
acc +22
|
||||||
|
acc +0
|
||||||
|
acc +35
|
||||||
|
jmp -531
|
||||||
|
acc +21
|
||||||
|
nop -365
|
||||||
|
acc +16
|
||||||
|
jmp +89
|
||||||
|
acc +50
|
||||||
|
jmp -467
|
||||||
|
acc +42
|
||||||
|
nop -167
|
||||||
|
acc +39
|
||||||
|
jmp -481
|
||||||
|
acc -13
|
||||||
|
acc +49
|
||||||
|
acc +8
|
||||||
|
acc -11
|
||||||
|
jmp -47
|
||||||
|
acc +22
|
||||||
|
acc +23
|
||||||
|
nop +14
|
||||||
|
jmp +56
|
||||||
|
jmp -57
|
||||||
|
acc +0
|
||||||
|
acc +45
|
||||||
|
acc -12
|
||||||
|
jmp -339
|
||||||
|
acc +41
|
||||||
|
jmp -286
|
||||||
|
acc +24
|
||||||
|
acc -14
|
||||||
|
acc +7
|
||||||
|
nop -481
|
||||||
|
jmp -539
|
||||||
|
acc +14
|
||||||
|
jmp -511
|
||||||
|
acc +1
|
||||||
|
acc -14
|
||||||
|
jmp +1
|
||||||
|
acc -12
|
||||||
|
jmp -123
|
||||||
|
acc -17
|
||||||
|
acc +11
|
||||||
|
jmp -16
|
||||||
|
nop -148
|
||||||
|
acc -14
|
||||||
|
jmp -485
|
||||||
|
nop -258
|
||||||
|
nop -123
|
||||||
|
acc +22
|
||||||
|
jmp -359
|
||||||
|
nop -527
|
||||||
|
nop -443
|
||||||
|
acc +43
|
||||||
|
jmp +1
|
||||||
|
jmp -406
|
||||||
|
acc +39
|
||||||
|
acc +13
|
||||||
|
acc +3
|
||||||
|
acc -5
|
||||||
|
jmp -585
|
||||||
|
acc +41
|
||||||
|
acc +26
|
||||||
|
jmp -83
|
||||||
|
acc +30
|
||||||
|
acc +8
|
||||||
|
acc +36
|
||||||
|
jmp -150
|
||||||
|
acc +36
|
||||||
|
acc +43
|
||||||
|
jmp -305
|
||||||
|
acc +10
|
||||||
|
acc +33
|
||||||
|
jmp -188
|
||||||
|
nop -285
|
||||||
|
acc -4
|
||||||
|
jmp -385
|
||||||
|
acc -1
|
||||||
|
jmp +1
|
||||||
|
nop -23
|
||||||
|
jmp -471
|
||||||
|
acc +24
|
||||||
|
acc +16
|
||||||
|
acc +29
|
||||||
|
jmp -114
|
||||||
|
nop -471
|
||||||
|
acc +4
|
||||||
|
nop -360
|
||||||
|
nop -294
|
||||||
|
jmp -220
|
||||||
|
acc -18
|
||||||
|
acc +21
|
||||||
|
acc +10
|
||||||
|
acc +0
|
||||||
|
jmp -166
|
||||||
|
jmp -192
|
||||||
|
acc +37
|
||||||
|
acc +24
|
||||||
|
nop -198
|
||||||
|
jmp -425
|
||||||
|
acc -19
|
||||||
|
acc +43
|
||||||
|
jmp -608
|
||||||
|
acc +17
|
||||||
|
acc +32
|
||||||
|
acc +0
|
||||||
|
jmp -424
|
||||||
|
acc +50
|
||||||
|
acc +46
|
||||||
|
nop -555
|
||||||
|
acc -16
|
||||||
|
jmp +1
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,93 @@
|
|||||||
|
47
|
||||||
|
99
|
||||||
|
115
|
||||||
|
65
|
||||||
|
10
|
||||||
|
55
|
||||||
|
19
|
||||||
|
73
|
||||||
|
80
|
||||||
|
100
|
||||||
|
71
|
||||||
|
110
|
||||||
|
64
|
||||||
|
135
|
||||||
|
49
|
||||||
|
3
|
||||||
|
1
|
||||||
|
98
|
||||||
|
132
|
||||||
|
2
|
||||||
|
38
|
||||||
|
118
|
||||||
|
66
|
||||||
|
116
|
||||||
|
104
|
||||||
|
87
|
||||||
|
79
|
||||||
|
114
|
||||||
|
40
|
||||||
|
37
|
||||||
|
44
|
||||||
|
97
|
||||||
|
4
|
||||||
|
140
|
||||||
|
60
|
||||||
|
86
|
||||||
|
56
|
||||||
|
133
|
||||||
|
7
|
||||||
|
146
|
||||||
|
85
|
||||||
|
111
|
||||||
|
134
|
||||||
|
53
|
||||||
|
121
|
||||||
|
77
|
||||||
|
117
|
||||||
|
21
|
||||||
|
12
|
||||||
|
81
|
||||||
|
145
|
||||||
|
129
|
||||||
|
107
|
||||||
|
93
|
||||||
|
22
|
||||||
|
48
|
||||||
|
11
|
||||||
|
54
|
||||||
|
92
|
||||||
|
78
|
||||||
|
67
|
||||||
|
20
|
||||||
|
138
|
||||||
|
125
|
||||||
|
57
|
||||||
|
96
|
||||||
|
26
|
||||||
|
147
|
||||||
|
124
|
||||||
|
34
|
||||||
|
74
|
||||||
|
143
|
||||||
|
13
|
||||||
|
28
|
||||||
|
126
|
||||||
|
50
|
||||||
|
29
|
||||||
|
70
|
||||||
|
39
|
||||||
|
63
|
||||||
|
41
|
||||||
|
91
|
||||||
|
32
|
||||||
|
84
|
||||||
|
144
|
||||||
|
27
|
||||||
|
139
|
||||||
|
33
|
||||||
|
88
|
||||||
|
72
|
||||||
|
23
|
||||||
|
103
|
||||||
|
16
|
||||||
@@ -0,0 +1,93 @@
|
|||||||
|
LLLLLLLLLL.LLLL.LLLLLLL.LLLLL.LLLLLLLLLLLLLLLLLLLLLL.LL.LLLLLLLLLLL.LLLLLL.LL.LLLL.LLLLLL.LLLLLLL
|
||||||
|
LL.LLLLLLL.LLLLLLLLLLLL.LLLLL.LLLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLL.LL.LLLL.LLLLLL.LLLLLLL
|
||||||
|
LLLLLL.LLLLLLLLLLLLLLLL.LLL.L.LLLLLLLL.LLLL.LLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLL.LLLL.L.LLLLLLL
|
||||||
|
LLLLLLLLLL.LLLL.LLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLL
|
||||||
|
LLLLLLLLLLLLLLL.LLLLLLL.LLLLL.LLLLLL.L.LLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL
|
||||||
|
LLLLLLLLLL.LLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLL.LLLLLLL
|
||||||
|
LLLLLLLLLL.LLLL.LLLLLLL.LLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLL.LLLLLL.LLLLLLL
|
||||||
|
LLLLLLLLLL.LLLL.LLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLL
|
||||||
|
L.L....L...L..LLLLLL.L.LLL..L...L.....L.L...L..L.LL.....L..L..LL...L........L..LLLLLLL.L......L..
|
||||||
|
LLLLLLLLLL.LLLLLLLL.LLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
|
||||||
|
LLLLLLLLLLLLLLLLLLLLLLL.LLLL..LLLLLLLL.LL.LLLLLLL.LLLLLLLLLLLLLL.LL.LLLLLLLLLLLLLL.LLLLLLLLLLLLLL
|
||||||
|
LLL.LLLLLL.LLLL.LLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLL.L.LLLLLLL.LLLLLLLLLLLLLL
|
||||||
|
LLLLLLLLLLLLLLL..L.LLLL.LLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLL
|
||||||
|
LLLLLLL.LLLLLLL.LLLLLLL.LLLLL.LLL.LLLLLLLLLLLL.LLLLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLL
|
||||||
|
LLLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLL
|
||||||
|
LLLLLLLLLL.LLLL.LLLLLLLLLL.LL.LLLLLLLL.LLLLLLLL...LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLL
|
||||||
|
LLLLLLLLLLLLL.LLLLLLLLL.LLLLL.LLLLLLL..LLLLLL.LLLLLLLLLLL.LLLLLL.LLLLLLLLL.LL.LLLLLLLLLLLLLLLLLLL
|
||||||
|
..L...L..LL.L....LL.L...LLLL......L...L....L...L.L...L..L..L...L.....L..L...................LLL.L
|
||||||
|
LLLLLLLLLLLL.LLLLLLL.LL.LLLLL.LLLLLLLL.LLLLLLLLL.LLLLL..LLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLL
|
||||||
|
LLLLLLLLLL.LLLL.LLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLL.LL.LLLL.LLLLLL.LLLLLLL
|
||||||
|
LLLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLL.L.LLLLLLLLLLLL.LLLLLLL
|
||||||
|
LLLLLLLLLLLLLLL.LLLLLLL.LLLLL.LLLLLLLLLLLLLLLLLL.LLLLLL.L.LLLLLL.LLLLLLLLLLL.LLLL..LLLLLL.LLLLLLL
|
||||||
|
LLLLLLLLLL.LLLL.LLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLL.LL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLL
|
||||||
|
LL..LL.....LLL......LL.........L...L..L......L.....LL........LLLL.....L..................LL....L.
|
||||||
|
LLLLLLLLLL.LLLL.LLLLLLL.LLLLL.LLLLLLLL.LLLLLLLLL.L.LLLLLLLLLLLLL.LLLLL.LLLLLLLLLL.LLLLLLL.LLLLLLL
|
||||||
|
LLLLLLLLLLLLLLLLLLL.LLL.LLL.L.LLLLLLLLLLLLLLLLLL.LL.L.L.LLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLL
|
||||||
|
LL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLL.LLL.LL.LLLLLL.
|
||||||
|
LLLLLLLLLL.LLLL.LLLLLLL.LLLLL.LLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLL.LLLLLLL
|
||||||
|
.LLLLLLLLLLLL.L.LLLLLLL.LLLLL.LLLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLL
|
||||||
|
...L..L...L.....L....LL..L.....L.L..L...LLLL..L....LL.L....L.L.L......LL...L...L..LLLL.L..L......
|
||||||
|
LLLLLLLLLL.LLLLLLLLLLLL.LLLLL.LLLLLLLL.LLLL.LLLLLLLLLLL.LLLLLL...LLL.LLLLL.LLL.LLL.LLLLL..LLLLLLL
|
||||||
|
LLLLLLLLLL.LLLL.LLLLLLL.LLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLL.LLLLLLLLLL.LLLLLLL
|
||||||
|
LLLLLLLLLLLLLLLLLLLLLLL.LLLLL.LLLLLLLLLLLLLLLLLLLLLLL.L.LLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLL
|
||||||
|
LLLLLLLLLL.LLLL.LLLLLLLLLLLLL.LLLLLLLL.LL.LL.LLL.LLLLL..LLLLLLLL.LLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLL
|
||||||
|
L.LLLLLLLLLLL.L..LLLLLL.LLLLL.LLLLLLLL..LLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLL
|
||||||
|
.L....LL....L......LLL...L..L..L.L.L.LLL.L.L........L....L..LL......L......L.L..LLLL.L.L..L......
|
||||||
|
LLLLLLLLLL.LLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLL..LLLLLLL..LL.LLLLLLLLLL
|
||||||
|
LLLLLLLLLLLLLLLLLLLLLLL.LLLLL.LLLLLLLL.LLLL.LLLL.LLLLLL.LLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLL
|
||||||
|
LLLLLLLLLL..LLL.LLLLL.L.LL.LL.LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLL
|
||||||
|
LLLLL.LLLLLLLLL.LLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLL.L.LLLLLLLLL.LLLLL.L.LLLLLLLLLLLLLL
|
||||||
|
LLLLLL.....L......L.......L..L.LLL...L.L...LLL....L.......L.L..L...LL....LL.L...L...LLL.L...L..LL
|
||||||
|
LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLL
|
||||||
|
LLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLL.L.LLLLL
|
||||||
|
LLLLLLLLLLLLLLL.LL.LLLL.LLLLL.LLLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLL
|
||||||
|
LLLLLLLLLLLLLLLLLLLLLLL.LLLLL.LLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLL.LL.LLLLLLLLLLLLLLLLLLLLLL
|
||||||
|
....L..L.L.L...L.....L...LLL.....L.......L..LLL.LL...L.....L..L.L...L.L.L...LL...LL.L....LL.....L
|
||||||
|
LLLLLLLLLL.LLLL.LLLLLLL.LLLLL.LLLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLLLL.LLLLLLLLLL.LLL.LLL
|
||||||
|
LLL.LLLLLL.LLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLL.LLLLLLLL.LL.LLLLLLLLLLLLLLL.LLLLLLLLLL.LLLLLL.LLLLLLL
|
||||||
|
LLLLLLLLLL.LLLL.LLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLL.L.LLLLLLLLLLL.LLLLLL.LLLLLL..LLLLLLLLLLLLLL
|
||||||
|
LL.LLLLLLLLLLLL.LLLLLLL.LLLLL.LLLLLLLLLLLLLLLLLL.LLLLLL.LL.LLLL..LLLLLLLLL.LLLLLLL.LLLLLL.LLLLLLL
|
||||||
|
LLLLLLLLLL.LLLL.LLLL.LL.LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLL.L.LLLLL
|
||||||
|
LLL.LLLLLL.LLLL.LLLLLLL.LLLLL.LLLLLLLL.LLLLLLLLL.LL.LLLLLL..LLLL.LLLLLLLLL.LLLLLLL.LLLLLLLLL.LL.L
|
||||||
|
LLLLLLLLLL.LLLL.LLLLLLL.LLLLL.LLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLL
|
||||||
|
......L......LLL......L.LL...L..L.L.L..L.L.......L.L....L..LL.......L......L.....L.LLLLLL...L...L
|
||||||
|
LLLLLLLLLLLLLLL.LLLLLLL.LLLLL.LLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLLLL..L.L.LLLLL
|
||||||
|
LLLLLLLLLLLLLLL.LLLLLLL.LLLL.LLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLL.LLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLL
|
||||||
|
LLLLLLLLLL.LLLL.LLLLL.L.LLL.L.LLLLLLLL.LLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLL
|
||||||
|
LLLLLLLLLL.LLLL.LL.LLLL.LLLLL.LLLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLL..LLLLL.LLLLLLL
|
||||||
|
LL.LLLLLLLLLLLL.LLLLLLL.LLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLL
|
||||||
|
.LLLLL.LLL.LLLLLLLLLLLL.LLLLL.LLLLLLLL.LLLLLL.LL.LLLLLLLLLLLL.LL.LLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLL
|
||||||
|
LLLLLLLLLL.LLLL.LLLLLLLLLLLLL.LLLLLLLL.LLL.LL.L.LLLL.L.LLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLL
|
||||||
|
LLLLLLLLLL.LLLLLLLLLLLL.LLLL..LLL.LLLL.LLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLL
|
||||||
|
LLLLLLLLLLLLLLLLLLLL.LL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.L.L.LLLLLLL.L.LLLLL.LLLLLL.LLLLLLL
|
||||||
|
.L....L...L..LL.....L.LL...L.L..LLL...L..L..L..L..L.LLLLL....LLLL.........L..L..L..L..L...LL....L
|
||||||
|
LLLLLLLLLL.LLLL.LLLLLLL.LLLL..LLLLLLLLLLLLLLLLL..L.LLLL.LLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLL.LLLLLLL
|
||||||
|
LLLLLLLLLLLLLLL.LLLLLLL.LLLLL.LLLLLLLL.LLLLLLL.L.LLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLL.LLLLLL.LLLLLLL
|
||||||
|
LLLLL.LLLL.LLLL.LLLLLLL.LLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL..LLLL
|
||||||
|
LLLLLLLLLL.LLLL.LLLLLLL.LLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL
|
||||||
|
LL.LLLLLLLLLLLL.LLLLLLL.LLLLL.LLLL.L.L.LLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLL.LLLLLLL
|
||||||
|
LLLLL.LLLL.LLLL.LLLLLLL.LLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLL.LLLLLL.LLLLLLL
|
||||||
|
..L.L...L.L........L.......L......LLLLL......L.LLL.LL.........L.L....L..L.L.L...L..LL.L......LL..
|
||||||
|
LLLLLLLLLL.LL.L.LLLLLLL.LLLLL.LLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLL.LLLLLLL
|
||||||
|
LLLLLLLLLL.LLLL.LLLLLLLLL.LLL.LLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLL.LL.LLLLLLL.LLLLLL.LLLLLLL
|
||||||
|
LLL.LLLLLLLLL.L.LLLLLLL.LLLLLLLLLLLL.L.LLLLLLLL..LLLLLLLLLLLLLLL.LLLL.LLLLLLLLLL.L.LLLLLLLLLLLLL.
|
||||||
|
LLLLLLLLLLLLLLL.LLLLLLL.LLLLL.LLLLLLLLLLLLLLL.LL.LLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
|
||||||
|
LLLLLLLLLL.LLLL.LLLLLLL.LLLLL.LLLLLLLL.LLLLLLLLL.LLLLLL.L.LLLLLL.LL.LLLLLL.LLLLLLL.LL.LLL.LLLLLLL
|
||||||
|
LLLLLLLLLLLLLLLLLLLLLLL.LL.LL.LLLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLL
|
||||||
|
LLLLLLLLLL.LLLLLLLLLL.L.LLLLL.LLLLLLLL.LLLLLLLLL.LLL.LL.LLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLL
|
||||||
|
LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLL.LLLLLL.LL.LLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLL
|
||||||
|
LLLLLLLL.L.LLLL.LLLLLLL.LLLL..LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLL.LLLL.LL
|
||||||
|
.....LL.L...L..L.L..LL.L.......L...L...LLL.L.L..L.LL.L...LL..L.LL.LLL......LL.L..L.LL......L.....
|
||||||
|
LLL.LLLLLL.LLLLLLLLLLLL.LLLLLL..LLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLLLLL.LLLLLLLL..L
|
||||||
|
LLLLLLLLLL.LLLL.LLLLL.L.LLLLL.LLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLL.L..LLLLLL.LLLLLLL.LLLLL.LLLLLLLL
|
||||||
|
LLLLLLLLLL.LLL..LLLLLLL.LLLLL.LLLLLLLL.LLLLLLL.LLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLL
|
||||||
|
LLLLLLLLLL.LLLLLLLLLLLL.LLLLL.LLLLLLLL.LLLLLLLLLLLLLLL..LLLLLL.LLLLLLLLL.L.LLLLL.LLLLLLLL.LLLLLLL
|
||||||
|
LLLLLLLLLL.LLLL.LLLLLLL.LLLLL.LLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLL.LLLLLLL
|
||||||
|
LLLLLLLLLLLLLLL.LLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLLLLLLL.LL.LLL.LLLLLLLLL.LLLLLLLLLL.LLLLLLL
|
||||||
|
LLLLLLLLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLL
|
||||||
|
LL.LLLLLLLLLLLL.LLLLLLL.LLLL..LLLLLLL..LLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLL
|
||||||
|
LLLLLLLL.L.LLLLLLLLLLLL.LLLLLLLLLLLLL..LLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLL.LLLLLLL
|
||||||
|
LLLLLLLL.LLLLLLLLLLLLLL.LLLLL.LLLLLLLLLL.LLLLLLL.LLLLLL.LLLLLL.L.LLLLLLLLL.LLLLLLL.LL.LLL.LLLLLLL
|
||||||
|
LLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLL
|
||||||
|
LLLLLLLLLLLLLLL.LLLLLLL.LLLLL.LLLLL.LLLLL.LLLLLL.L.LLLL.LLLLLLLL.LLLLLLLLLLLLLLLLL.LLL.LL.LLLLLL.
|
||||||
@@ -0,0 +1,770 @@
|
|||||||
|
F47
|
||||||
|
W2
|
||||||
|
S5
|
||||||
|
R180
|
||||||
|
R90
|
||||||
|
N3
|
||||||
|
F44
|
||||||
|
W1
|
||||||
|
N3
|
||||||
|
F77
|
||||||
|
S5
|
||||||
|
L270
|
||||||
|
F39
|
||||||
|
N3
|
||||||
|
L90
|
||||||
|
F83
|
||||||
|
W4
|
||||||
|
R270
|
||||||
|
E2
|
||||||
|
F98
|
||||||
|
N3
|
||||||
|
R180
|
||||||
|
N3
|
||||||
|
F54
|
||||||
|
N1
|
||||||
|
W4
|
||||||
|
R90
|
||||||
|
N1
|
||||||
|
L90
|
||||||
|
S2
|
||||||
|
E4
|
||||||
|
N4
|
||||||
|
W2
|
||||||
|
R90
|
||||||
|
F42
|
||||||
|
W3
|
||||||
|
S4
|
||||||
|
L90
|
||||||
|
E5
|
||||||
|
F6
|
||||||
|
R180
|
||||||
|
N4
|
||||||
|
E5
|
||||||
|
R180
|
||||||
|
E3
|
||||||
|
N3
|
||||||
|
F27
|
||||||
|
L90
|
||||||
|
S4
|
||||||
|
L180
|
||||||
|
E4
|
||||||
|
F52
|
||||||
|
E2
|
||||||
|
N1
|
||||||
|
R90
|
||||||
|
E3
|
||||||
|
S4
|
||||||
|
F76
|
||||||
|
R270
|
||||||
|
W2
|
||||||
|
R90
|
||||||
|
S2
|
||||||
|
R90
|
||||||
|
F79
|
||||||
|
S1
|
||||||
|
L180
|
||||||
|
F81
|
||||||
|
E3
|
||||||
|
F79
|
||||||
|
L90
|
||||||
|
S3
|
||||||
|
L180
|
||||||
|
F52
|
||||||
|
S5
|
||||||
|
L90
|
||||||
|
N4
|
||||||
|
W2
|
||||||
|
F65
|
||||||
|
N2
|
||||||
|
W1
|
||||||
|
R90
|
||||||
|
F25
|
||||||
|
W4
|
||||||
|
L90
|
||||||
|
S2
|
||||||
|
R90
|
||||||
|
N1
|
||||||
|
F13
|
||||||
|
W1
|
||||||
|
N1
|
||||||
|
F71
|
||||||
|
N3
|
||||||
|
L90
|
||||||
|
W4
|
||||||
|
R90
|
||||||
|
F91
|
||||||
|
W5
|
||||||
|
N3
|
||||||
|
W3
|
||||||
|
S3
|
||||||
|
F58
|
||||||
|
W4
|
||||||
|
N5
|
||||||
|
W3
|
||||||
|
F42
|
||||||
|
S4
|
||||||
|
E5
|
||||||
|
N3
|
||||||
|
F14
|
||||||
|
L180
|
||||||
|
E5
|
||||||
|
L270
|
||||||
|
F55
|
||||||
|
N3
|
||||||
|
R90
|
||||||
|
R90
|
||||||
|
S4
|
||||||
|
F55
|
||||||
|
W2
|
||||||
|
N1
|
||||||
|
W5
|
||||||
|
R180
|
||||||
|
F8
|
||||||
|
E3
|
||||||
|
L270
|
||||||
|
N2
|
||||||
|
F12
|
||||||
|
N2
|
||||||
|
R90
|
||||||
|
W1
|
||||||
|
R90
|
||||||
|
W2
|
||||||
|
L90
|
||||||
|
S2
|
||||||
|
F75
|
||||||
|
L90
|
||||||
|
S4
|
||||||
|
E3
|
||||||
|
F82
|
||||||
|
L90
|
||||||
|
L90
|
||||||
|
F42
|
||||||
|
N4
|
||||||
|
E5
|
||||||
|
F67
|
||||||
|
R90
|
||||||
|
E3
|
||||||
|
F64
|
||||||
|
E4
|
||||||
|
R90
|
||||||
|
F42
|
||||||
|
S4
|
||||||
|
F85
|
||||||
|
W5
|
||||||
|
S5
|
||||||
|
R90
|
||||||
|
F35
|
||||||
|
R270
|
||||||
|
W5
|
||||||
|
F67
|
||||||
|
R90
|
||||||
|
S5
|
||||||
|
R180
|
||||||
|
S1
|
||||||
|
F13
|
||||||
|
N4
|
||||||
|
W5
|
||||||
|
S2
|
||||||
|
F31
|
||||||
|
L90
|
||||||
|
E2
|
||||||
|
F39
|
||||||
|
R90
|
||||||
|
F3
|
||||||
|
W4
|
||||||
|
N2
|
||||||
|
F14
|
||||||
|
E2
|
||||||
|
F80
|
||||||
|
L180
|
||||||
|
F52
|
||||||
|
N3
|
||||||
|
E2
|
||||||
|
F98
|
||||||
|
W2
|
||||||
|
F29
|
||||||
|
R180
|
||||||
|
E2
|
||||||
|
L90
|
||||||
|
W4
|
||||||
|
N3
|
||||||
|
W1
|
||||||
|
S2
|
||||||
|
W1
|
||||||
|
N5
|
||||||
|
F6
|
||||||
|
E5
|
||||||
|
E1
|
||||||
|
W2
|
||||||
|
R90
|
||||||
|
S3
|
||||||
|
F92
|
||||||
|
L90
|
||||||
|
E5
|
||||||
|
F55
|
||||||
|
L90
|
||||||
|
S3
|
||||||
|
R90
|
||||||
|
S2
|
||||||
|
L90
|
||||||
|
N1
|
||||||
|
E5
|
||||||
|
F50
|
||||||
|
L90
|
||||||
|
N4
|
||||||
|
F9
|
||||||
|
L90
|
||||||
|
N4
|
||||||
|
L90
|
||||||
|
R90
|
||||||
|
R180
|
||||||
|
E3
|
||||||
|
F57
|
||||||
|
L90
|
||||||
|
S5
|
||||||
|
R180
|
||||||
|
S3
|
||||||
|
E4
|
||||||
|
F41
|
||||||
|
W5
|
||||||
|
N4
|
||||||
|
W2
|
||||||
|
N2
|
||||||
|
R90
|
||||||
|
S2
|
||||||
|
W1
|
||||||
|
F83
|
||||||
|
R180
|
||||||
|
W1
|
||||||
|
R90
|
||||||
|
W1
|
||||||
|
F17
|
||||||
|
F20
|
||||||
|
S1
|
||||||
|
E5
|
||||||
|
F13
|
||||||
|
N5
|
||||||
|
F8
|
||||||
|
F81
|
||||||
|
E2
|
||||||
|
S4
|
||||||
|
F7
|
||||||
|
W2
|
||||||
|
F86
|
||||||
|
N2
|
||||||
|
L90
|
||||||
|
N5
|
||||||
|
L180
|
||||||
|
E2
|
||||||
|
R90
|
||||||
|
E3
|
||||||
|
S3
|
||||||
|
N4
|
||||||
|
W2
|
||||||
|
F64
|
||||||
|
L90
|
||||||
|
F81
|
||||||
|
L90
|
||||||
|
E4
|
||||||
|
F1
|
||||||
|
E3
|
||||||
|
L90
|
||||||
|
W5
|
||||||
|
L90
|
||||||
|
N3
|
||||||
|
F28
|
||||||
|
F3
|
||||||
|
F100
|
||||||
|
E5
|
||||||
|
N5
|
||||||
|
F32
|
||||||
|
R90
|
||||||
|
W1
|
||||||
|
R90
|
||||||
|
S3
|
||||||
|
W1
|
||||||
|
W5
|
||||||
|
N3
|
||||||
|
F27
|
||||||
|
R90
|
||||||
|
W2
|
||||||
|
R180
|
||||||
|
W3
|
||||||
|
W2
|
||||||
|
N2
|
||||||
|
E2
|
||||||
|
S1
|
||||||
|
R90
|
||||||
|
W3
|
||||||
|
F51
|
||||||
|
E5
|
||||||
|
N4
|
||||||
|
W3
|
||||||
|
S5
|
||||||
|
R90
|
||||||
|
F91
|
||||||
|
S3
|
||||||
|
W1
|
||||||
|
S4
|
||||||
|
R270
|
||||||
|
N5
|
||||||
|
W4
|
||||||
|
F94
|
||||||
|
R90
|
||||||
|
N4
|
||||||
|
L90
|
||||||
|
N4
|
||||||
|
R90
|
||||||
|
F35
|
||||||
|
E3
|
||||||
|
F6
|
||||||
|
S4
|
||||||
|
F98
|
||||||
|
E2
|
||||||
|
L180
|
||||||
|
W4
|
||||||
|
N5
|
||||||
|
F42
|
||||||
|
S3
|
||||||
|
W3
|
||||||
|
N1
|
||||||
|
R90
|
||||||
|
S5
|
||||||
|
E3
|
||||||
|
S3
|
||||||
|
F47
|
||||||
|
S1
|
||||||
|
F19
|
||||||
|
W5
|
||||||
|
R90
|
||||||
|
F17
|
||||||
|
R90
|
||||||
|
N4
|
||||||
|
R90
|
||||||
|
F57
|
||||||
|
E2
|
||||||
|
F73
|
||||||
|
W3
|
||||||
|
F52
|
||||||
|
F98
|
||||||
|
R90
|
||||||
|
N1
|
||||||
|
F88
|
||||||
|
N2
|
||||||
|
E4
|
||||||
|
S4
|
||||||
|
R90
|
||||||
|
E2
|
||||||
|
R90
|
||||||
|
N5
|
||||||
|
F75
|
||||||
|
L180
|
||||||
|
F61
|
||||||
|
E2
|
||||||
|
S4
|
||||||
|
N4
|
||||||
|
W1
|
||||||
|
N3
|
||||||
|
E2
|
||||||
|
N3
|
||||||
|
F44
|
||||||
|
E3
|
||||||
|
L180
|
||||||
|
N4
|
||||||
|
F16
|
||||||
|
E2
|
||||||
|
S1
|
||||||
|
L180
|
||||||
|
R90
|
||||||
|
W5
|
||||||
|
F65
|
||||||
|
S5
|
||||||
|
F31
|
||||||
|
E3
|
||||||
|
L90
|
||||||
|
N5
|
||||||
|
E4
|
||||||
|
S5
|
||||||
|
E4
|
||||||
|
S4
|
||||||
|
R90
|
||||||
|
F70
|
||||||
|
R90
|
||||||
|
W4
|
||||||
|
L90
|
||||||
|
N3
|
||||||
|
W1
|
||||||
|
L90
|
||||||
|
S3
|
||||||
|
L90
|
||||||
|
F91
|
||||||
|
L180
|
||||||
|
S3
|
||||||
|
R90
|
||||||
|
N5
|
||||||
|
L90
|
||||||
|
S5
|
||||||
|
W2
|
||||||
|
F18
|
||||||
|
E3
|
||||||
|
F19
|
||||||
|
N1
|
||||||
|
F70
|
||||||
|
R90
|
||||||
|
E3
|
||||||
|
S4
|
||||||
|
F46
|
||||||
|
N2
|
||||||
|
S3
|
||||||
|
W2
|
||||||
|
S4
|
||||||
|
F7
|
||||||
|
L90
|
||||||
|
E4
|
||||||
|
R90
|
||||||
|
F78
|
||||||
|
S1
|
||||||
|
F4
|
||||||
|
L90
|
||||||
|
W3
|
||||||
|
F78
|
||||||
|
E5
|
||||||
|
L270
|
||||||
|
F86
|
||||||
|
E3
|
||||||
|
F82
|
||||||
|
L90
|
||||||
|
F32
|
||||||
|
R90
|
||||||
|
E4
|
||||||
|
L90
|
||||||
|
E4
|
||||||
|
L90
|
||||||
|
E3
|
||||||
|
F63
|
||||||
|
N4
|
||||||
|
E4
|
||||||
|
L90
|
||||||
|
F70
|
||||||
|
R180
|
||||||
|
F30
|
||||||
|
R180
|
||||||
|
F40
|
||||||
|
N5
|
||||||
|
R90
|
||||||
|
W4
|
||||||
|
F16
|
||||||
|
L180
|
||||||
|
S1
|
||||||
|
W1
|
||||||
|
R180
|
||||||
|
F12
|
||||||
|
W3
|
||||||
|
L90
|
||||||
|
F93
|
||||||
|
S2
|
||||||
|
L270
|
||||||
|
F36
|
||||||
|
L90
|
||||||
|
W2
|
||||||
|
N2
|
||||||
|
F3
|
||||||
|
W2
|
||||||
|
L180
|
||||||
|
L90
|
||||||
|
F24
|
||||||
|
S1
|
||||||
|
W5
|
||||||
|
R90
|
||||||
|
E4
|
||||||
|
L180
|
||||||
|
E1
|
||||||
|
S1
|
||||||
|
L90
|
||||||
|
F94
|
||||||
|
L90
|
||||||
|
F55
|
||||||
|
N2
|
||||||
|
E5
|
||||||
|
F33
|
||||||
|
E3
|
||||||
|
L90
|
||||||
|
N2
|
||||||
|
L90
|
||||||
|
S2
|
||||||
|
R90
|
||||||
|
F67
|
||||||
|
W4
|
||||||
|
F79
|
||||||
|
E1
|
||||||
|
E5
|
||||||
|
F5
|
||||||
|
S5
|
||||||
|
R180
|
||||||
|
F5
|
||||||
|
E2
|
||||||
|
E5
|
||||||
|
N4
|
||||||
|
W5
|
||||||
|
N4
|
||||||
|
W5
|
||||||
|
E2
|
||||||
|
L90
|
||||||
|
F2
|
||||||
|
L90
|
||||||
|
N4
|
||||||
|
E3
|
||||||
|
N3
|
||||||
|
R90
|
||||||
|
F92
|
||||||
|
N5
|
||||||
|
F83
|
||||||
|
L90
|
||||||
|
F85
|
||||||
|
R90
|
||||||
|
W5
|
||||||
|
S2
|
||||||
|
L90
|
||||||
|
E1
|
||||||
|
F34
|
||||||
|
E3
|
||||||
|
L180
|
||||||
|
W3
|
||||||
|
R90
|
||||||
|
F29
|
||||||
|
W4
|
||||||
|
L90
|
||||||
|
F34
|
||||||
|
W1
|
||||||
|
S4
|
||||||
|
E2
|
||||||
|
S1
|
||||||
|
W2
|
||||||
|
W5
|
||||||
|
L90
|
||||||
|
E5
|
||||||
|
N4
|
||||||
|
R180
|
||||||
|
N2
|
||||||
|
W5
|
||||||
|
R90
|
||||||
|
F42
|
||||||
|
W3
|
||||||
|
N2
|
||||||
|
L90
|
||||||
|
F79
|
||||||
|
W2
|
||||||
|
F16
|
||||||
|
N5
|
||||||
|
E3
|
||||||
|
F52
|
||||||
|
F55
|
||||||
|
L90
|
||||||
|
F42
|
||||||
|
L90
|
||||||
|
W4
|
||||||
|
S2
|
||||||
|
E5
|
||||||
|
L90
|
||||||
|
S4
|
||||||
|
F34
|
||||||
|
N5
|
||||||
|
N1
|
||||||
|
L180
|
||||||
|
L90
|
||||||
|
E2
|
||||||
|
L90
|
||||||
|
W3
|
||||||
|
L90
|
||||||
|
F16
|
||||||
|
E2
|
||||||
|
F96
|
||||||
|
N3
|
||||||
|
E1
|
||||||
|
F34
|
||||||
|
R180
|
||||||
|
S2
|
||||||
|
F17
|
||||||
|
W1
|
||||||
|
L270
|
||||||
|
F7
|
||||||
|
W2
|
||||||
|
N1
|
||||||
|
F33
|
||||||
|
N4
|
||||||
|
F2
|
||||||
|
N5
|
||||||
|
R180
|
||||||
|
F10
|
||||||
|
W3
|
||||||
|
L90
|
||||||
|
S3
|
||||||
|
E2
|
||||||
|
S1
|
||||||
|
F85
|
||||||
|
N2
|
||||||
|
F1
|
||||||
|
R180
|
||||||
|
F10
|
||||||
|
N4
|
||||||
|
W3
|
||||||
|
S2
|
||||||
|
R180
|
||||||
|
N4
|
||||||
|
W3
|
||||||
|
S2
|
||||||
|
S4
|
||||||
|
L90
|
||||||
|
E5
|
||||||
|
N1
|
||||||
|
F34
|
||||||
|
S4
|
||||||
|
W2
|
||||||
|
W5
|
||||||
|
F62
|
||||||
|
S5
|
||||||
|
E5
|
||||||
|
S4
|
||||||
|
F100
|
||||||
|
L90
|
||||||
|
W2
|
||||||
|
F20
|
||||||
|
S2
|
||||||
|
E1
|
||||||
|
R180
|
||||||
|
F88
|
||||||
|
N5
|
||||||
|
F85
|
||||||
|
N2
|
||||||
|
R90
|
||||||
|
N1
|
||||||
|
E5
|
||||||
|
F83
|
||||||
|
R90
|
||||||
|
W1
|
||||||
|
R90
|
||||||
|
E1
|
||||||
|
F11
|
||||||
|
E3
|
||||||
|
F54
|
||||||
|
N5
|
||||||
|
L180
|
||||||
|
F54
|
||||||
|
R90
|
||||||
|
S2
|
||||||
|
E3
|
||||||
|
L90
|
||||||
|
E3
|
||||||
|
N5
|
||||||
|
R90
|
||||||
|
W1
|
||||||
|
S5
|
||||||
|
R270
|
||||||
|
F91
|
||||||
|
E3
|
||||||
|
F52
|
||||||
|
W1
|
||||||
|
F36
|
||||||
|
W1
|
||||||
|
N5
|
||||||
|
F53
|
||||||
|
E1
|
||||||
|
R180
|
||||||
|
N3
|
||||||
|
F12
|
||||||
|
L90
|
||||||
|
S5
|
||||||
|
F99
|
||||||
|
S1
|
||||||
|
R90
|
||||||
|
S4
|
||||||
|
R90
|
||||||
|
S1
|
||||||
|
W1
|
||||||
|
N2
|
||||||
|
L270
|
||||||
|
W5
|
||||||
|
F78
|
||||||
|
S2
|
||||||
|
R90
|
||||||
|
F37
|
||||||
|
W5
|
||||||
|
R90
|
||||||
|
E3
|
||||||
|
S2
|
||||||
|
E4
|
||||||
|
L90
|
||||||
|
S3
|
||||||
|
W4
|
||||||
|
F83
|
||||||
|
L180
|
||||||
|
S3
|
||||||
|
R90
|
||||||
|
F57
|
||||||
|
W1
|
||||||
|
S1
|
||||||
|
L180
|
||||||
|
W2
|
||||||
|
N1
|
||||||
|
R180
|
||||||
|
N1
|
||||||
|
L180
|
||||||
|
W3
|
||||||
|
S3
|
||||||
|
R180
|
||||||
|
E4
|
||||||
|
F77
|
||||||
|
N5
|
||||||
|
S3
|
||||||
|
W1
|
||||||
|
N4
|
||||||
|
F4
|
||||||
|
N5
|
||||||
|
F64
|
||||||
|
W1
|
||||||
|
R90
|
||||||
|
N2
|
||||||
|
W5
|
||||||
|
L90
|
||||||
|
N3
|
||||||
|
L90
|
||||||
|
F8
|
||||||
|
L90
|
||||||
|
F3
|
||||||
|
S5
|
||||||
|
F95
|
||||||
|
R90
|
||||||
|
W2
|
||||||
|
F15
|
||||||
|
L270
|
||||||
|
F49
|
||||||
|
R180
|
||||||
|
S3
|
||||||
|
F15
|
||||||
|
N5
|
||||||
|
L180
|
||||||
|
S2
|
||||||
|
F71
|
||||||
|
S5
|
||||||
|
F56
|
||||||
|
W1
|
||||||
|
F22
|
||||||
|
F90
|
||||||
|
E5
|
||||||
|
F68
|
||||||
|
N4
|
||||||
|
R180
|
||||||
|
N5
|
||||||
|
E4
|
||||||
|
F52
|
||||||
|
E5
|
||||||
|
L90
|
||||||
|
E3
|
||||||
|
F69
|
||||||
|
W4
|
||||||
|
S3
|
||||||
|
L90
|
||||||
|
N4
|
||||||
|
R90
|
||||||
|
F19
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
1000511
|
||||||
|
29,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,37,x,x,x,x,x,409,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,17,13,19,x,x,x,23,x,x,x,x,x,x,x,353,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,41
|
||||||
@@ -0,0 +1,559 @@
|
|||||||
|
mask = 001X11X1X010X1X1010XX10X100101011000
|
||||||
|
mem[43398] = 563312
|
||||||
|
mem[51673] = 263978
|
||||||
|
mem[18028] = 544304215
|
||||||
|
mask = X0100001101XX11100010XX110XX11111000
|
||||||
|
mem[24151] = 2013
|
||||||
|
mem[15368] = 19793
|
||||||
|
mem[45005] = 478
|
||||||
|
mem[1842] = 190808161
|
||||||
|
mem[36033] = 987
|
||||||
|
mem[26874] = 102
|
||||||
|
mask = 00X0000110110X000110010101XX0X010001
|
||||||
|
mem[9507] = 7
|
||||||
|
mem[50019] = 16475608
|
||||||
|
mem[4334] = 129799
|
||||||
|
mem[37373] = 182640
|
||||||
|
mem[28170] = 534617265
|
||||||
|
mem[6432] = 354252
|
||||||
|
mem[36752] = 834628
|
||||||
|
mask = 10100000101101100110X001X0X001100X10
|
||||||
|
mem[36664] = 30481
|
||||||
|
mem[6532] = 103013119
|
||||||
|
mem[45659] = 15629
|
||||||
|
mem[19533] = 167227
|
||||||
|
mem[40461] = 344193233
|
||||||
|
mem[6217] = 26713310
|
||||||
|
mask = X0XX010100110101X0001101X11100X100X0
|
||||||
|
mem[38530] = 6202
|
||||||
|
mem[53032] = 13775
|
||||||
|
mem[39333] = 1003152
|
||||||
|
mem[3932] = 1240562
|
||||||
|
mem[59246] = 12638
|
||||||
|
mask = 0X1X010100X001X0011000X10000011X11X1
|
||||||
|
mem[51007] = 43736089
|
||||||
|
mem[32553] = 977
|
||||||
|
mem[5131] = 323347526
|
||||||
|
mem[21451] = 176282356
|
||||||
|
mem[22857] = 118
|
||||||
|
mem[50924] = 217
|
||||||
|
mask = 001111X110100X11X100000011110111X100
|
||||||
|
mem[3954] = 3854
|
||||||
|
mem[19628] = 6778501
|
||||||
|
mem[29233] = 104
|
||||||
|
mem[18456] = 135287
|
||||||
|
mem[10018] = 379
|
||||||
|
mem[14384] = 969770374
|
||||||
|
mask = 0X1X000110X1X10001100110100X01000001
|
||||||
|
mem[25112] = 62086
|
||||||
|
mem[22964] = 2379583
|
||||||
|
mem[45021] = 1429003
|
||||||
|
mask = X010XX11X0110110011XX000011000110001
|
||||||
|
mem[17265] = 180092
|
||||||
|
mem[36033] = 495818745
|
||||||
|
mem[28455] = 7765821
|
||||||
|
mask = 01000X0110110001100X01X1111000XXX001
|
||||||
|
mem[395] = 37390
|
||||||
|
mem[6432] = 962
|
||||||
|
mem[10247] = 130364
|
||||||
|
mem[10136] = 529
|
||||||
|
mem[62469] = 62129
|
||||||
|
mask = 00001100X010X110011X0000111X0X100XX1
|
||||||
|
mem[8811] = 206575
|
||||||
|
mem[37066] = 41
|
||||||
|
mem[53499] = 1505104
|
||||||
|
mem[22863] = 59636084
|
||||||
|
mem[50013] = 45392
|
||||||
|
mem[29757] = 1343911
|
||||||
|
mask = 001000011010X10X10000001XX011X000010
|
||||||
|
mem[23068] = 8829046
|
||||||
|
mem[49194] = 614470096
|
||||||
|
mask = XX1X000110X101100X101100X01101X00X11
|
||||||
|
mem[62870] = 3995829
|
||||||
|
mem[61328] = 18642
|
||||||
|
mem[50232] = 70531300
|
||||||
|
mem[48827] = 17923
|
||||||
|
mem[12416] = 530017
|
||||||
|
mem[33496] = 181946
|
||||||
|
mask = 00100X0110XX00011X00000X101100X10100
|
||||||
|
mem[64825] = 5590
|
||||||
|
mem[55315] = 3210
|
||||||
|
mem[532] = 92226
|
||||||
|
mask = 00X0XX0000100110011010X0X00XX101011X
|
||||||
|
mem[35112] = 1037772
|
||||||
|
mem[46051] = 5636
|
||||||
|
mem[32440] = 5415168
|
||||||
|
mem[6812] = 64661
|
||||||
|
mask = XX1111110010110X010XXX0010X0110XX001
|
||||||
|
mem[2313] = 14107547
|
||||||
|
mem[57582] = 3420940
|
||||||
|
mask = 0X100X01101X011101001001111101110X1X
|
||||||
|
mem[1584] = 1309601
|
||||||
|
mem[45021] = 142440
|
||||||
|
mem[52855] = 22177947
|
||||||
|
mask = 001X1X11XX101101010010X01X00X100X000
|
||||||
|
mem[51649] = 224687001
|
||||||
|
mem[30137] = 16118
|
||||||
|
mem[49157] = 1286
|
||||||
|
mask = 0011010X001X0101110X01000X11011X0100
|
||||||
|
mem[8527] = 483
|
||||||
|
mem[23222] = 60397
|
||||||
|
mem[47303] = 4597311
|
||||||
|
mask = 1010001110X00X0010000X100X0X01011100
|
||||||
|
mem[61912] = 65321
|
||||||
|
mem[28793] = 217
|
||||||
|
mem[3216] = 2226
|
||||||
|
mem[15267] = 196
|
||||||
|
mem[12210] = 634690438
|
||||||
|
mask = XX100001100101011XX000001X0X00X10X10
|
||||||
|
mem[52112] = 232196
|
||||||
|
mem[5131] = 8215922
|
||||||
|
mem[21390] = 97675
|
||||||
|
mem[60773] = 295919
|
||||||
|
mem[10967] = 188393052
|
||||||
|
mem[30137] = 40094772
|
||||||
|
mask = 01100X00001X0111X11001011X000X1010X0
|
||||||
|
mem[47036] = 8270917
|
||||||
|
mem[26111] = 3884
|
||||||
|
mem[48992] = 3941
|
||||||
|
mem[21396] = 9612429
|
||||||
|
mask = X01X01X0100X101001XX00001X1101X00110
|
||||||
|
mem[47036] = 785762
|
||||||
|
mem[20586] = 91901152
|
||||||
|
mem[38530] = 338166139
|
||||||
|
mem[29577] = 753085
|
||||||
|
mask = X01001010001011100X01XX010010011X000
|
||||||
|
mem[50548] = 31352881
|
||||||
|
mem[17969] = 264
|
||||||
|
mem[12532] = 122897915
|
||||||
|
mask = 100X0X011011110001001XX0100110010101
|
||||||
|
mem[7092] = 488918089
|
||||||
|
mem[5131] = 2146748
|
||||||
|
mem[13662] = 1422934
|
||||||
|
mem[54353] = 299758672
|
||||||
|
mem[17622] = 15998
|
||||||
|
mem[12416] = 48024869
|
||||||
|
mem[15520] = 925305185
|
||||||
|
mask = X010000100X1000X1000X10010X010100010
|
||||||
|
mem[49608] = 17989
|
||||||
|
mem[5478] = 192384
|
||||||
|
mem[7958] = 729
|
||||||
|
mask = 0010X001X1100X1X1X000100XX10100X1100
|
||||||
|
mem[47164] = 170643
|
||||||
|
mem[1049] = 151435402
|
||||||
|
mem[24631] = 47998921
|
||||||
|
mask = 101001XX0X1X010110011101000110110111
|
||||||
|
mem[39780] = 29719
|
||||||
|
mem[20606] = 714268
|
||||||
|
mem[40889] = 367330023
|
||||||
|
mem[6414] = 28304231
|
||||||
|
mem[63401] = 1417
|
||||||
|
mask = 1X10010X00X10101100X010110X1100X1001
|
||||||
|
mem[38445] = 392
|
||||||
|
mem[14087] = 19086
|
||||||
|
mem[36110] = 7609
|
||||||
|
mem[61683] = 24000
|
||||||
|
mem[55077] = 2975
|
||||||
|
mem[2109] = 446867
|
||||||
|
mask = 011000011X010X0X1X100110100001X1XX10
|
||||||
|
mem[32849] = 150162
|
||||||
|
mem[22563] = 3985
|
||||||
|
mem[10602] = 225990962
|
||||||
|
mask = 00X00X01X00001X1X0000X00101100100110
|
||||||
|
mem[43197] = 134523909
|
||||||
|
mem[65396] = 266246531
|
||||||
|
mem[54292] = 263069
|
||||||
|
mem[7677] = 99022189
|
||||||
|
mem[16568] = 15208393
|
||||||
|
mask = 1X100X011X1000111000XX1100011X00X0X1
|
||||||
|
mem[2877] = 1577
|
||||||
|
mem[39731] = 1276
|
||||||
|
mem[10602] = 844609393
|
||||||
|
mem[13447] = 4710
|
||||||
|
mask = 0010X00110XX0101100X00XX100110X10100
|
||||||
|
mem[10466] = 93198549
|
||||||
|
mem[21290] = 624
|
||||||
|
mem[2948] = 51676784
|
||||||
|
mem[23734] = 6032
|
||||||
|
mem[29894] = 48902591
|
||||||
|
mem[271] = 60066
|
||||||
|
mask = 1011000110X1011X001X11110100110111X0
|
||||||
|
mem[1843] = 1562
|
||||||
|
mem[1049] = 9936
|
||||||
|
mem[14474] = 305948608
|
||||||
|
mem[40634] = 680784423
|
||||||
|
mem[9394] = 12344199
|
||||||
|
mask = 000011X000100X10011X000X001100X10X10
|
||||||
|
mem[37198] = 9587
|
||||||
|
mem[40486] = 15533376
|
||||||
|
mem[28252] = 1625
|
||||||
|
mem[59079] = 166206
|
||||||
|
mask = 0010010110110XXXXX0X0001100100000X00
|
||||||
|
mem[40119] = 168760390
|
||||||
|
mem[63012] = 1016
|
||||||
|
mem[6964] = 13134
|
||||||
|
mem[6116] = 19700991
|
||||||
|
mem[60039] = 492285
|
||||||
|
mask = 10X000011X10001X100000111X10000101X0
|
||||||
|
mem[532] = 16484832
|
||||||
|
mem[48228] = 18188385
|
||||||
|
mem[65048] = 14886349
|
||||||
|
mem[29631] = 1088356
|
||||||
|
mask = 0100X00110110X00XXX010110X11X111100X
|
||||||
|
mem[24637] = 561045
|
||||||
|
mem[62166] = 62287574
|
||||||
|
mem[395] = 1350
|
||||||
|
mem[46447] = 15165
|
||||||
|
mask = 01101XX100110X1X11001X0X0X0X01011110
|
||||||
|
mem[29481] = 88712206
|
||||||
|
mem[8052] = 965421
|
||||||
|
mask = X0X0010100X1X101101X111010X11010X10X
|
||||||
|
mem[27388] = 41257883
|
||||||
|
mem[22151] = 2499234
|
||||||
|
mem[17067] = 1210879
|
||||||
|
mask = 00100001X0X10X0110000000101XX001010X
|
||||||
|
mem[148] = 43621
|
||||||
|
mem[23734] = 243862817
|
||||||
|
mask = 101000XX1010001110000X1X00011X0X0100
|
||||||
|
mem[19226] = 7783454
|
||||||
|
mem[47036] = 32167689
|
||||||
|
mem[54708] = 28465363
|
||||||
|
mem[25775] = 13654
|
||||||
|
mem[38159] = 226030009
|
||||||
|
mem[33886] = 22797977
|
||||||
|
mem[47934] = 34738195
|
||||||
|
mask = 1010000110110111000101011X0XX1X111X1
|
||||||
|
mem[8015] = 1639518
|
||||||
|
mem[32888] = 89628061
|
||||||
|
mem[19414] = 3293870
|
||||||
|
mem[45803] = 3055
|
||||||
|
mem[2849] = 517315
|
||||||
|
mem[7103] = 1807237
|
||||||
|
mask = 0010010X1X110111011010001X010X10X110
|
||||||
|
mem[32337] = 14059
|
||||||
|
mem[7162] = 22418419
|
||||||
|
mem[62068] = 491160015
|
||||||
|
mem[52514] = 62411508
|
||||||
|
mem[21998] = 16113734
|
||||||
|
mem[14899] = 4165873
|
||||||
|
mask = 01000101101001100110XX01011XX0X00XX0
|
||||||
|
mem[63651] = 706
|
||||||
|
mem[27388] = 269141496
|
||||||
|
mem[16791] = 90544
|
||||||
|
mem[58514] = 2084386
|
||||||
|
mem[6512] = 82029923
|
||||||
|
mask = XX100X0X1011011X0110X00000011X10XX10
|
||||||
|
mem[25492] = 51834825
|
||||||
|
mem[39104] = 11018
|
||||||
|
mem[31518] = 5721690
|
||||||
|
mask = X01001X0101101110X10010111X11X110000
|
||||||
|
mem[16817] = 43478591
|
||||||
|
mem[49714] = 32182
|
||||||
|
mem[7715] = 20391
|
||||||
|
mem[36282] = 511726
|
||||||
|
mem[2709] = 58604
|
||||||
|
mask = 10100001101000XX10001001X110001101X0
|
||||||
|
mem[21290] = 96121933
|
||||||
|
mem[4581] = 935753770
|
||||||
|
mem[10322] = 214308733
|
||||||
|
mem[22563] = 955
|
||||||
|
mem[21998] = 174320
|
||||||
|
mask = 001X010010XXXX10011010010XX01X0X0100
|
||||||
|
mem[27908] = 10394
|
||||||
|
mem[58731] = 17043901
|
||||||
|
mem[12207] = 89277
|
||||||
|
mem[50189] = 70951683
|
||||||
|
mem[40310] = 1070062397
|
||||||
|
mask = X11001X11010X1100110X101X0100X0X01X0
|
||||||
|
mem[48661] = 35809
|
||||||
|
mem[6512] = 466
|
||||||
|
mem[22172] = 9259291
|
||||||
|
mask = 001X0001X001010XX001000010X1001X1111
|
||||||
|
mem[45021] = 7965
|
||||||
|
mem[10414] = 132450
|
||||||
|
mask = X11001111X10111001X001010X001X00011X
|
||||||
|
mem[22734] = 23954922
|
||||||
|
mem[18333] = 522531412
|
||||||
|
mem[21084] = 2928539
|
||||||
|
mask = 0010000X00110101XX0XX111100100100110
|
||||||
|
mem[10793] = 30167743
|
||||||
|
mem[54236] = 15119211
|
||||||
|
mem[46526] = 34600696
|
||||||
|
mask = X010010100X10101X0011X0010000X1XXXX1
|
||||||
|
mem[40874] = 107825637
|
||||||
|
mem[12207] = 5066
|
||||||
|
mem[64061] = 12594443
|
||||||
|
mem[14677] = 104815480
|
||||||
|
mem[47294] = 27328513
|
||||||
|
mem[36871] = 99385
|
||||||
|
mem[55732] = 3825863
|
||||||
|
mask = 0010X10X101X011101X000011X1100110000
|
||||||
|
mem[39282] = 9472566
|
||||||
|
mem[19564] = 55941
|
||||||
|
mem[8527] = 26084
|
||||||
|
mem[10265] = 130187
|
||||||
|
mem[6432] = 865842
|
||||||
|
mem[20931] = 1702
|
||||||
|
mask = 00110X0010X01X1001101X0000XX1XX0110X
|
||||||
|
mem[54465] = 11299
|
||||||
|
mem[13022] = 487449
|
||||||
|
mask = 00100XXX101101101101111010X100100000
|
||||||
|
mem[20710] = 1510193
|
||||||
|
mem[1742] = 2963920
|
||||||
|
mem[15368] = 241191
|
||||||
|
mem[48928] = 8865
|
||||||
|
mask = 0X10XX0100X10X011000X01101X0X1101110
|
||||||
|
mem[33496] = 157963055
|
||||||
|
mem[10527] = 1744363
|
||||||
|
mem[25912] = 24812738
|
||||||
|
mem[53894] = 65229499
|
||||||
|
mem[27656] = 195539
|
||||||
|
mem[56053] = 84622
|
||||||
|
mem[58013] = 503836980
|
||||||
|
mask = 00X0000X10X1011X0X10110011111X000011
|
||||||
|
mem[21324] = 100568910
|
||||||
|
mem[11832] = 25433857
|
||||||
|
mem[15696] = 65297
|
||||||
|
mask = 00100X010011010110XX01X11XX1001X0111
|
||||||
|
mem[1742] = 5701
|
||||||
|
mem[50038] = 1734
|
||||||
|
mem[3338] = 10181349
|
||||||
|
mem[64950] = 715735117
|
||||||
|
mem[3094] = 6261
|
||||||
|
mask = 01XX01001010X1X101XX000010X111110XX0
|
||||||
|
mem[30706] = 34032209
|
||||||
|
mem[57669] = 953918
|
||||||
|
mem[2368] = 18511
|
||||||
|
mem[58246] = 14197924
|
||||||
|
mem[12602] = 3821248
|
||||||
|
mem[37932] = 73626
|
||||||
|
mask = 00X0000110X000011XX0000011100X000000
|
||||||
|
mem[44726] = 577645454
|
||||||
|
mem[31822] = 2444199
|
||||||
|
mask = X0100X01X110001X1X0000X01010X0X00111
|
||||||
|
mem[40204] = 167462
|
||||||
|
mem[13234] = 334
|
||||||
|
mem[55553] = 649450
|
||||||
|
mem[18698] = 152213289
|
||||||
|
mem[56964] = 1004699
|
||||||
|
mem[17434] = 557
|
||||||
|
mask = 0X1000011111XX01X01XX10X0100000000X1
|
||||||
|
mem[54363] = 171716
|
||||||
|
mem[27133] = 813977
|
||||||
|
mem[25112] = 478238
|
||||||
|
mem[2734] = 2300
|
||||||
|
mem[23972] = 7597
|
||||||
|
mask = 0110X1X1X011011XX10010X11100X1111X00
|
||||||
|
mem[21998] = 2245
|
||||||
|
mem[39814] = 10501801
|
||||||
|
mem[16186] = 807
|
||||||
|
mask = X010000110100001100X0011X11000XX0010
|
||||||
|
mem[21976] = 1290104
|
||||||
|
mem[45127] = 1447
|
||||||
|
mem[19564] = 679
|
||||||
|
mem[8927] = 40098844
|
||||||
|
mem[43124] = 2060353
|
||||||
|
mem[17227] = 11511
|
||||||
|
mask = X110X00110X10101111000X0000X10111110
|
||||||
|
mem[25530] = 23237
|
||||||
|
mem[55910] = 1785756
|
||||||
|
mem[38723] = 1821559
|
||||||
|
mem[30849] = 4089
|
||||||
|
mem[532] = 661
|
||||||
|
mask = 0X10010XX01X011X011000011X01X1X001X0
|
||||||
|
mem[17212] = 6523
|
||||||
|
mem[37424] = 480
|
||||||
|
mem[40862] = 449969985
|
||||||
|
mem[28474] = 40994780
|
||||||
|
mem[21577] = 36128
|
||||||
|
mem[39066] = 7501680
|
||||||
|
mask = X100X101100X01X001101001X11001111110
|
||||||
|
mem[35142] = 186426
|
||||||
|
mem[28005] = 1296725
|
||||||
|
mem[57552] = 433183
|
||||||
|
mem[26566] = 56636
|
||||||
|
mem[4581] = 1646680
|
||||||
|
mem[35799] = 2658
|
||||||
|
mask = 001011010001X00110X00X10000001011X10
|
||||||
|
mem[13674] = 62138919
|
||||||
|
mem[63552] = 11168
|
||||||
|
mem[11669] = 56357099
|
||||||
|
mask = 101000XX1010XX0010000X10XX1100010010
|
||||||
|
mem[22434] = 34054009
|
||||||
|
mem[19261] = 856
|
||||||
|
mem[24828] = 7024
|
||||||
|
mem[34924] = 648168
|
||||||
|
mem[22917] = 9557844
|
||||||
|
mask = 10100X0X1011111100X1010000000111100X
|
||||||
|
mem[63552] = 11477437
|
||||||
|
mem[23072] = 8131648
|
||||||
|
mem[19002] = 1064
|
||||||
|
mem[23946] = 183
|
||||||
|
mem[2440] = 1277
|
||||||
|
mask = X0100001101X000X100001001X1X00110110
|
||||||
|
mem[55553] = 49381
|
||||||
|
mem[25631] = 41125881
|
||||||
|
mem[62633] = 590643
|
||||||
|
mask = 0X1000011001010001XX11X0010100000000
|
||||||
|
mem[10466] = 506832
|
||||||
|
mem[23072] = 5583
|
||||||
|
mem[45005] = 8337603
|
||||||
|
mem[59216] = 7005456
|
||||||
|
mask = 0XXX000111111001X0100100001000000100
|
||||||
|
mem[19928] = 48311172
|
||||||
|
mem[22974] = 815
|
||||||
|
mem[34266] = 13786112
|
||||||
|
mem[1742] = 9648313
|
||||||
|
mem[1094] = 162
|
||||||
|
mem[55709] = 31320282
|
||||||
|
mask = 0XX0000110100XX1X001001001X001000001
|
||||||
|
mem[22346] = 340600
|
||||||
|
mem[39104] = 935807
|
||||||
|
mem[64441] = 570
|
||||||
|
mem[56853] = 3313
|
||||||
|
mem[22434] = 1892025
|
||||||
|
mask = 01X000X1X0110XXXX1100110000X00101000
|
||||||
|
mem[26813] = 23072664
|
||||||
|
mem[9142] = 282783543
|
||||||
|
mem[29807] = 14754
|
||||||
|
mem[56288] = 62827
|
||||||
|
mask = 01X0010X1XX001X001X010X011100100X100
|
||||||
|
mem[47774] = 352023
|
||||||
|
mem[5938] = 132498542
|
||||||
|
mem[24828] = 8444211
|
||||||
|
mem[55829] = 238313735
|
||||||
|
mask = 0010010100X101X10XX0X10X110100XX1X00
|
||||||
|
mem[1908] = 30255
|
||||||
|
mem[40461] = 1524854
|
||||||
|
mem[21752] = 3313
|
||||||
|
mem[38177] = 164
|
||||||
|
mem[32888] = 20182288
|
||||||
|
mem[17656] = 2560835
|
||||||
|
mask = 01000101101XX11X0110X10X0000X1XX0000
|
||||||
|
mem[18028] = 6424701
|
||||||
|
mem[11832] = 73576
|
||||||
|
mem[18812] = 15408
|
||||||
|
mask = X010X00XXXX1X1100100X1101X1111110010
|
||||||
|
mem[31868] = 1008118155
|
||||||
|
mem[16970] = 560
|
||||||
|
mem[6414] = 659729
|
||||||
|
mask = 00100X0110X1010001X0XXX1X00100100X00
|
||||||
|
mem[60039] = 1335434
|
||||||
|
mem[22051] = 4352989
|
||||||
|
mem[23413] = 8881
|
||||||
|
mem[5131] = 3574
|
||||||
|
mem[31132] = 1822377
|
||||||
|
mem[59227] = 3565275
|
||||||
|
mem[55044] = 629
|
||||||
|
mask = 101001010001X101100X1XX01X01100X1111
|
||||||
|
mem[2119] = 6096
|
||||||
|
mem[25137] = 4534409
|
||||||
|
mem[34466] = 2697336
|
||||||
|
mem[24201] = 506176
|
||||||
|
mem[25286] = 110343
|
||||||
|
mask = 0XX00001101100011000010X101X0X11X100
|
||||||
|
mem[29807] = 25323
|
||||||
|
mem[12207] = 27513971
|
||||||
|
mem[9003] = 1398544
|
||||||
|
mem[28341] = 50817018
|
||||||
|
mem[30137] = 115
|
||||||
|
mem[42114] = 67247621
|
||||||
|
mask = 0000X1000010X1X0011010111X0X01X11X10
|
||||||
|
mem[48228] = 2010329
|
||||||
|
mem[45718] = 71839
|
||||||
|
mem[33886] = 136902
|
||||||
|
mem[51771] = 2015
|
||||||
|
mask = X000000110X101000100000010010X0011X0
|
||||||
|
mem[4243] = 33894587
|
||||||
|
mem[64857] = 8145
|
||||||
|
mem[45718] = 97465094
|
||||||
|
mem[53834] = 3359009
|
||||||
|
mask = 0010X101000101011X0X01X0101000000001
|
||||||
|
mem[24012] = 379049
|
||||||
|
mem[39780] = 26758
|
||||||
|
mem[59983] = 495835
|
||||||
|
mem[37409] = 1160
|
||||||
|
mem[52514] = 6321
|
||||||
|
mem[27459] = 147
|
||||||
|
mem[41942] = 217105
|
||||||
|
mask = 00100001100101011X101X0X10111XX10000
|
||||||
|
mem[17846] = 10118006
|
||||||
|
mem[59737] = 2963
|
||||||
|
mem[34644] = 35114650
|
||||||
|
mem[13172] = 143244
|
||||||
|
mem[5938] = 51096
|
||||||
|
mem[44123] = 3352
|
||||||
|
mask = 001000X1101101X001X001XX00110101X0X0
|
||||||
|
mem[38177] = 2168495
|
||||||
|
mem[11075] = 7671
|
||||||
|
mem[47735] = 2437651
|
||||||
|
mem[57709] = 103925776
|
||||||
|
mem[9577] = 253960744
|
||||||
|
mem[61912] = 713476954
|
||||||
|
mem[10466] = 509335816
|
||||||
|
mask = 0X10X00110010100011000001X01001X0001
|
||||||
|
mem[46526] = 985771
|
||||||
|
mem[63247] = 474051554
|
||||||
|
mem[22968] = 581
|
||||||
|
mem[29811] = 4967030
|
||||||
|
mem[57544] = 438283695
|
||||||
|
mem[7042] = 308851
|
||||||
|
mask = 001XXX010011X10XX100010X1100X0010100
|
||||||
|
mem[22856] = 10167
|
||||||
|
mem[25967] = 196716
|
||||||
|
mem[17344] = 30111
|
||||||
|
mem[3954] = 21193
|
||||||
|
mask = 011000XX1101000X00X00101001111000000
|
||||||
|
mem[45718] = 22050
|
||||||
|
mem[4315] = 28856671
|
||||||
|
mem[3954] = 1669054
|
||||||
|
mask = XXX000011X11X1000XX011X100X100010101
|
||||||
|
mem[25208] = 62883413
|
||||||
|
mem[40039] = 460470
|
||||||
|
mem[27976] = 317910
|
||||||
|
mem[6549] = 3697104
|
||||||
|
mem[34078] = 112
|
||||||
|
mem[62178] = 479428706
|
||||||
|
mask = 0110000111X1X0X1X0100100XXX001XX0010
|
||||||
|
mem[532] = 4184102
|
||||||
|
mem[25575] = 20376
|
||||||
|
mem[59465] = 35723765
|
||||||
|
mem[32827] = 2041066
|
||||||
|
mem[21963] = 519238
|
||||||
|
mem[56441] = 22508
|
||||||
|
mask = X0100001101101000100000X0011X01000X0
|
||||||
|
mem[34078] = 36026
|
||||||
|
mem[12451] = 602257
|
||||||
|
mask = 10X0010100X1X10110010010100X0X100011
|
||||||
|
mem[52291] = 3349730
|
||||||
|
mem[51550] = 12311148
|
||||||
|
mem[27235] = 986707194
|
||||||
|
mem[7958] = 2162
|
||||||
|
mem[36824] = 3705422
|
||||||
|
mask = 011X0X0111010000X110000X1X01XX0XX100
|
||||||
|
mem[21004] = 1994888
|
||||||
|
mem[10900] = 11111
|
||||||
|
mem[24854] = 1327
|
||||||
|
mem[45320] = 1739644
|
||||||
|
mem[29894] = 1918
|
||||||
|
mem[62034] = 165719
|
||||||
|
mask = 1XX10X10100X1010X1000100X0X10X001X00
|
||||||
|
mem[54431] = 68179
|
||||||
|
mem[48498] = 269569
|
||||||
|
mem[25492] = 53144423
|
||||||
|
mem[24130] = 510
|
||||||
|
mem[9579] = 22225
|
||||||
|
mask = 0X00X101101011X00110X0001001010011X0
|
||||||
|
mem[54156] = 597982
|
||||||
|
mem[3020] = 27476
|
||||||
|
mem[18748] = 105524
|
||||||
|
mem[37066] = 28361301
|
||||||
|
mem[43484] = 19990814
|
||||||
|
mem[18698] = 635178
|
||||||
|
mask = X0100001101000X1100X0110XX11111X1000
|
||||||
|
mem[44272] = 88008
|
||||||
|
mem[11075] = 919
|
||||||
|
mem[41491] = 2905
|
||||||
|
mem[4898] = 32296
|
||||||
|
mem[10607] = 10054
|
||||||
|
mem[28252] = 31037
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
0,1,5,10,3,12,19
|
||||||
@@ -0,0 +1,263 @@
|
|||||||
|
departure location: 45-535 or 550-961
|
||||||
|
departure station: 45-278 or 294-974
|
||||||
|
departure platform: 46-121 or 138-965
|
||||||
|
departure track: 38-149 or 173-949
|
||||||
|
departure date: 34-223 or 248-957
|
||||||
|
departure time: 32-64 or 79-952
|
||||||
|
arrival location: 49-879 or 905-968
|
||||||
|
arrival station: 47-306 or 323-973
|
||||||
|
arrival platform: 46-823 or 834-971
|
||||||
|
arrival track: 30-464 or 486-963
|
||||||
|
class: 40-350 or 372-965
|
||||||
|
duration: 47-414 or 423-950
|
||||||
|
price: 45-507 or 526-956
|
||||||
|
route: 42-779 or 799-970
|
||||||
|
row: 26-865 or 872-955
|
||||||
|
seat: 43-724 or 739-970
|
||||||
|
train: 25-914 or 926-958
|
||||||
|
type: 33-205 or 218-965
|
||||||
|
wagon: 43-101 or 118-951
|
||||||
|
zone: 45-844 or 858-970
|
||||||
|
|
||||||
|
your ticket:
|
||||||
|
173,191,61,199,101,179,257,79,193,223,139,97,83,197,251,53,89,149,181,59
|
||||||
|
|
||||||
|
nearby tickets:
|
||||||
|
949,764,551,379,767,144,556,835,638,591,653,872,198,825,690,527,260,396,873,333
|
||||||
|
438,627,99,622,408,671,695,561,695,121,706,144,55,985,566,706,255,595,680,407
|
||||||
|
879,876,665,928,874,436,766,328,620,267,995,54,430,503,86,936,489,305,64,688
|
||||||
|
613,812,756,258,341,765,91,551,859,379,447,842,148,501,293,766,93,532,939,406
|
||||||
|
349,340,670,248,813,557,249,949,506,656,100,19,204,409,944,659,777,843,712,801
|
||||||
|
438,52,529,556,672,115,570,633,820,770,603,837,260,251,723,621,381,182,494,431
|
||||||
|
948,673,202,330,552,258,406,184,177,239,774,185,638,386,834,608,835,636,805,92
|
||||||
|
573,643,267,378,178,821,442,141,872,826,565,626,667,860,405,610,407,688,705,695
|
||||||
|
818,724,446,459,145,373,859,346,702,441,446,753,320,426,664,177,619,712,739,342
|
||||||
|
607,499,226,80,719,682,556,486,346,221,597,936,573,84,760,671,395,413,454,768
|
||||||
|
743,504,830,195,413,698,93,375,565,695,947,636,602,681,436,265,614,604,632,706
|
||||||
|
463,353,944,569,175,535,616,452,141,621,84,335,302,275,550,438,173,617,843,645
|
||||||
|
685,400,777,752,839,86,180,754,231,450,342,341,440,57,271,202,494,591,223,707
|
||||||
|
838,147,937,451,96,265,488,345,334,871,767,450,340,576,816,335,143,445,339,379
|
||||||
|
502,566,121,743,99,909,876,265,204,799,566,387,672,102,713,559,773,770,571,609
|
||||||
|
428,712,575,759,708,272,629,862,569,856,402,82,424,837,336,643,841,944,603,436
|
||||||
|
273,987,944,534,862,943,267,741,562,327,193,838,822,933,860,933,459,811,622,383
|
||||||
|
423,937,320,374,801,942,490,257,646,724,558,507,198,601,713,719,667,260,585,948
|
||||||
|
404,679,328,916,688,615,345,688,556,146,452,306,89,742,808,141,816,85,938,457
|
||||||
|
180,335,648,810,119,202,393,268,921,177,92,462,605,615,248,599,394,303,269,599
|
||||||
|
941,261,695,643,381,830,753,705,84,694,305,61,556,256,599,653,388,566,626,759
|
||||||
|
148,340,708,139,625,680,713,695,583,356,182,457,458,95,841,496,591,347,392,670
|
||||||
|
534,434,615,686,348,621,832,275,380,667,811,590,389,585,528,652,862,617,778,535
|
||||||
|
81,653,435,681,584,455,261,928,121,863,263,807,599,593,691,320,495,329,879,380
|
||||||
|
739,632,692,639,702,94,274,910,707,758,196,934,490,189,169,333,807,396,448,719
|
||||||
|
590,588,570,617,910,928,304,663,531,470,203,505,277,669,841,593,668,693,338,671
|
||||||
|
938,259,221,406,579,390,619,327,824,601,502,529,573,912,930,396,940,139,501,819
|
||||||
|
633,326,149,590,618,581,583,195,755,678,746,717,527,326,557,775,330,518,807,192
|
||||||
|
438,722,427,758,324,251,757,753,297,300,438,304,588,633,254,823,835,766,977,195
|
||||||
|
335,430,937,298,266,258,331,551,747,644,575,120,373,629,652,583,777,131,804,941
|
||||||
|
427,663,220,864,378,80,945,695,7,584,679,375,566,176,300,631,932,558,639,681
|
||||||
|
577,644,678,146,396,443,94,488,670,691,260,931,834,755,577,395,420,94,57,664
|
||||||
|
660,574,799,666,748,858,393,603,120,391,561,138,631,578,463,344,382,747,699,102
|
||||||
|
676,866,348,927,187,452,615,943,52,752,749,707,699,615,840,563,653,271,844,223
|
||||||
|
573,453,587,838,260,802,768,303,382,817,429,486,586,184,502,156,486,486,816,203
|
||||||
|
433,285,809,588,756,504,121,598,265,273,666,769,799,405,218,189,221,191,681,712
|
||||||
|
612,63,678,529,775,684,531,838,617,572,555,386,628,272,765,603,23,393,743,753
|
||||||
|
775,704,877,81,597,529,579,699,527,662,652,456,801,863,94,335,679,820,415,714
|
||||||
|
714,306,176,652,492,446,325,580,647,149,554,708,504,327,624,245,702,506,843,756
|
||||||
|
173,294,877,499,714,200,253,808,661,664,14,879,146,533,693,527,424,660,274,204
|
||||||
|
564,434,116,585,801,617,764,860,376,185,639,698,863,620,753,253,253,182,93,491
|
||||||
|
685,559,336,773,906,568,936,270,938,397,95,264,95,119,266,21,250,709,528,591
|
||||||
|
174,57,400,298,350,799,139,603,686,586,601,663,527,248,560,613,838,742,698,225
|
||||||
|
335,275,260,293,142,266,611,685,400,840,337,584,276,770,698,191,665,668,685,50
|
||||||
|
706,97,296,848,85,63,600,191,120,490,905,776,581,435,265,530,602,61,596,646
|
||||||
|
327,663,656,436,773,760,255,609,655,452,439,490,254,939,327,815,600,235,507,811
|
||||||
|
334,58,143,417,630,455,454,390,327,339,906,494,739,188,260,842,298,740,680,662
|
||||||
|
398,346,388,443,680,563,666,666,438,764,559,926,909,948,437,72,493,809,397,381
|
||||||
|
176,272,305,197,346,610,179,253,506,413,174,506,647,689,338,570,873,929,317,820
|
||||||
|
553,946,409,562,258,398,187,429,819,104,909,571,534,266,739,258,643,60,601,379
|
||||||
|
678,905,187,870,253,184,489,414,690,184,175,741,197,626,388,204,612,637,219,259
|
||||||
|
346,665,800,614,94,264,658,811,374,640,666,295,449,976,563,696,695,675,527,694
|
||||||
|
821,387,760,379,635,251,51,911,54,543,710,808,453,873,746,326,258,306,411,764
|
||||||
|
186,487,378,937,559,575,382,931,664,697,534,576,715,940,984,628,409,651,676,665
|
||||||
|
502,393,59,176,760,326,106,378,96,573,344,174,652,294,650,703,402,297,185,52
|
||||||
|
834,433,613,554,764,839,493,752,185,254,388,83,769,621,623,17,607,330,529,690
|
||||||
|
818,21,649,258,186,258,775,449,454,912,61,603,578,578,410,603,770,254,535,269
|
||||||
|
757,615,389,650,749,630,560,257,269,822,412,740,759,941,59,835,522,462,494,531
|
||||||
|
570,764,174,296,499,867,277,700,820,380,663,718,756,462,496,564,562,698,265,147
|
||||||
|
500,680,271,610,396,820,250,827,87,768,671,906,706,865,300,560,815,691,745,907
|
||||||
|
385,346,945,504,411,291,566,530,677,685,95,659,393,692,683,822,553,640,753,204
|
||||||
|
492,821,178,186,488,140,411,739,135,582,445,776,222,699,656,633,879,807,591,428
|
||||||
|
635,931,935,304,84,634,416,670,611,773,64,821,570,389,504,671,927,773,333,906
|
||||||
|
807,626,617,932,187,402,581,640,693,551,458,583,444,126,695,711,221,327,835,947
|
||||||
|
679,750,506,101,705,335,568,615,550,388,497,940,861,260,714,776,333,993,388,753
|
||||||
|
197,656,802,589,341,993,378,390,347,403,927,593,928,673,747,554,680,775,342,639
|
||||||
|
639,76,742,603,424,219,754,458,257,350,186,805,193,764,390,627,749,342,433,439
|
||||||
|
629,704,941,304,637,860,661,388,139,404,945,647,573,840,886,149,667,382,399,747
|
||||||
|
588,195,763,438,835,707,220,268,838,574,402,980,372,347,92,205,261,86,681,86
|
||||||
|
266,739,816,2,585,701,841,600,590,497,204,743,383,810,140,617,864,770,705,300
|
||||||
|
62,673,949,391,765,184,305,528,101,192,708,275,561,649,606,527,687,315,197,633
|
||||||
|
433,419,644,531,626,534,300,263,265,257,618,303,631,194,675,684,694,669,861,721
|
||||||
|
692,764,408,248,459,176,691,179,252,618,685,456,431,119,948,334,104,433,581,85
|
||||||
|
333,341,627,766,620,263,720,118,690,914,641,204,189,722,197,912,612,65,930,906
|
||||||
|
711,387,815,619,202,592,613,221,765,403,715,939,844,715,537,204,176,683,656,746
|
||||||
|
91,927,559,933,197,406,641,658,391,199,339,272,383,932,829,196,739,755,720,430
|
||||||
|
864,603,696,455,752,374,703,98,508,119,756,331,758,396,600,258,842,191,350,526
|
||||||
|
633,121,659,428,179,562,715,821,404,260,587,760,570,707,711,566,570,642,824,560
|
||||||
|
774,22,878,300,676,763,95,931,268,574,82,490,218,937,602,940,665,97,60,566
|
||||||
|
223,632,412,385,909,707,336,937,808,743,775,705,99,984,380,384,585,99,337,724
|
||||||
|
947,709,610,646,665,593,278,755,556,606,189,679,403,377,677,84,392,108,638,651
|
||||||
|
262,424,498,429,623,385,496,138,696,693,258,454,273,868,533,834,257,100,459,99
|
||||||
|
817,56,51,544,631,258,101,384,841,906,637,681,772,189,305,181,200,608,839,932
|
||||||
|
141,409,907,665,54,177,349,173,4,448,843,717,380,253,598,140,570,820,502,948
|
||||||
|
184,920,382,142,342,530,612,431,196,710,101,704,398,862,612,377,173,876,218,757
|
||||||
|
811,800,437,212,756,425,584,616,384,119,839,334,934,600,534,178,86,624,532,711
|
||||||
|
938,334,603,142,54,695,5,874,779,700,632,99,942,223,661,579,807,707,614,602
|
||||||
|
665,296,52,621,320,434,570,506,687,908,905,714,185,683,758,617,644,82,95,716
|
||||||
|
656,685,176,452,385,195,375,87,814,290,52,683,413,456,457,656,143,634,174,659
|
||||||
|
756,765,269,251,263,616,715,637,760,454,533,489,52,251,418,306,202,838,180,198
|
||||||
|
877,557,220,115,249,774,63,97,348,119,940,444,486,616,926,82,256,585,619,772
|
||||||
|
758,337,98,360,296,453,739,807,390,634,497,820,381,179,349,714,676,256,765,60
|
||||||
|
50,619,639,941,571,66,267,454,561,379,143,452,554,393,759,149,148,875,397,640
|
||||||
|
274,523,275,683,384,620,94,811,79,839,776,589,507,194,430,331,95,606,631,88
|
||||||
|
165,121,84,575,201,409,82,800,401,52,301,493,325,691,503,336,555,774,706,251
|
||||||
|
576,119,938,333,462,449,339,382,266,808,145,763,459,810,910,342,640,199,617,520
|
||||||
|
408,762,183,409,763,59,333,932,323,59,560,703,306,856,269,652,298,98,488,587
|
||||||
|
344,948,221,749,835,316,779,860,56,205,723,712,553,346,721,305,494,338,186,819
|
||||||
|
184,773,66,619,554,807,120,437,774,645,272,89,710,378,659,403,253,533,396,715
|
||||||
|
610,579,565,758,336,817,690,406,289,724,618,200,188,486,529,488,841,582,101,671
|
||||||
|
14,325,750,801,182,263,858,550,710,391,633,768,265,601,910,687,429,689,337,402
|
||||||
|
200,653,645,875,527,382,348,424,909,810,186,426,60,682,90,83,121,595,116,834
|
||||||
|
305,300,686,769,590,90,764,551,426,863,381,506,721,612,627,323,177,4,704,529
|
||||||
|
416,277,175,662,688,698,437,586,777,425,533,858,222,60,140,719,493,558,695,768
|
||||||
|
863,268,739,653,512,779,437,248,300,451,195,874,436,772,332,589,183,746,94,756
|
||||||
|
621,97,575,770,327,803,659,397,346,907,720,862,770,436,520,694,445,691,810,553
|
||||||
|
436,642,811,221,758,406,362,442,501,374,684,53,660,146,205,383,677,597,430,201
|
||||||
|
926,439,650,266,578,486,189,819,539,760,872,560,910,589,821,605,694,142,762,180
|
||||||
|
499,436,417,535,718,674,698,174,696,96,440,490,304,199,406,559,185,328,573,685
|
||||||
|
92,803,711,603,721,185,450,676,809,132,569,427,596,248,745,498,574,388,879,667
|
||||||
|
253,339,295,805,61,620,140,376,332,712,94,841,528,621,686,756,307,610,255,533
|
||||||
|
175,429,628,629,407,260,647,276,619,666,820,145,611,380,750,21,91,629,62,445
|
||||||
|
580,750,665,742,935,591,405,643,195,295,592,773,455,545,449,347,701,912,143,380
|
||||||
|
698,948,527,822,713,52,683,671,759,767,684,184,817,392,983,60,396,599,907,342
|
||||||
|
138,630,6,583,526,401,187,945,836,690,841,531,563,910,408,779,644,660,683,374
|
||||||
|
280,669,596,815,346,497,740,493,596,767,675,248,817,222,860,457,938,435,121,120
|
||||||
|
144,631,771,437,616,745,668,604,142,862,550,324,570,345,124,622,93,59,619,79
|
||||||
|
393,442,549,374,222,447,601,753,373,455,440,582,751,435,596,691,187,686,179,347
|
||||||
|
298,616,59,623,447,51,909,755,71,709,701,406,697,373,875,754,573,332,754,767
|
||||||
|
709,201,430,81,608,688,939,496,569,260,711,935,943,304,87,617,744,165,487,626
|
||||||
|
294,446,946,700,392,880,758,687,656,751,395,407,266,443,61,629,820,458,434,179
|
||||||
|
648,669,942,695,587,813,803,254,173,633,376,14,574,702,711,654,761,740,297,597
|
||||||
|
435,774,935,592,779,494,635,406,573,723,994,139,772,562,707,637,839,635,380,82
|
||||||
|
413,630,657,637,328,614,574,741,687,445,413,777,202,244,200,682,506,644,348,806
|
||||||
|
575,712,119,720,695,920,679,300,488,583,933,410,555,762,90,192,138,252,556,95
|
||||||
|
813,457,628,648,696,403,382,806,338,183,344,146,799,315,497,401,328,63,747,198
|
||||||
|
622,652,329,198,710,442,178,754,817,744,675,819,815,922,764,659,934,582,61,302
|
||||||
|
392,533,619,311,299,593,707,876,331,714,590,447,690,753,463,914,526,822,698,655
|
||||||
|
665,754,602,614,646,594,550,619,560,393,428,747,634,271,274,339,627,826,909,585
|
||||||
|
942,809,614,568,815,344,514,779,927,580,564,909,347,838,403,752,618,566,530,443
|
||||||
|
692,820,746,88,640,933,118,183,586,744,745,268,616,250,581,639,615,858,386,984
|
||||||
|
87,631,934,841,613,249,691,97,336,886,270,613,634,692,669,257,558,399,306,93
|
||||||
|
930,717,669,275,189,258,703,272,602,718,530,331,218,660,271,834,653,836,408,421
|
||||||
|
383,804,698,441,417,403,940,858,700,875,770,198,714,435,569,486,487,177,80,949
|
||||||
|
202,142,864,348,426,537,204,615,681,676,933,178,816,396,175,769,423,766,879,593
|
||||||
|
592,309,804,638,197,759,426,577,441,409,928,571,800,506,275,768,689,333,932,937
|
||||||
|
509,607,248,556,575,424,435,942,490,678,563,677,374,295,629,666,252,337,578,745
|
||||||
|
827,754,62,747,686,627,671,98,708,686,407,599,835,205,805,534,741,201,384,189
|
||||||
|
623,434,15,496,89,655,146,190,816,63,423,496,635,948,910,934,81,641,437,614
|
||||||
|
495,52,634,181,376,500,680,57,497,717,14,679,148,406,661,452,906,264,526,401
|
||||||
|
97,188,330,948,374,251,633,639,434,777,913,529,679,605,76,625,550,939,762,445
|
||||||
|
859,675,304,473,427,261,640,196,647,350,686,58,202,908,912,174,447,590,275,401
|
||||||
|
372,748,687,696,381,201,569,676,147,516,338,428,394,148,391,338,819,766,707,585
|
||||||
|
769,449,505,602,814,644,272,945,773,424,444,811,417,709,100,862,596,628,450,346
|
||||||
|
426,228,424,384,257,681,383,639,554,551,701,942,95,100,842,396,909,609,626,622
|
||||||
|
397,589,766,277,459,819,85,807,295,488,449,399,339,532,378,420,144,750,841,145
|
||||||
|
683,626,645,75,265,267,773,550,595,604,328,747,262,647,201,590,201,906,932,445
|
||||||
|
618,932,345,435,532,276,277,532,813,459,764,327,979,388,634,914,452,396,391,64
|
||||||
|
668,53,721,716,591,433,265,190,763,327,693,926,648,84,98,863,770,621,638,977
|
||||||
|
685,834,490,686,402,768,575,741,930,582,724,389,551,22,838,665,627,460,590,261
|
||||||
|
225,384,397,667,843,411,673,56,120,697,220,623,376,101,305,185,807,698,637,599
|
||||||
|
687,375,914,602,806,372,491,560,608,573,80,758,632,932,599,610,327,695,944,987
|
||||||
|
676,637,860,718,698,193,71,187,684,335,596,340,673,81,860,630,877,340,948,273
|
||||||
|
249,716,674,400,553,567,698,505,834,85,424,597,706,581,740,3,100,804,652,274
|
||||||
|
837,836,437,872,220,502,375,643,328,490,0,662,267,648,222,344,399,555,944,946
|
||||||
|
121,717,463,643,406,261,391,646,181,641,336,651,86,275,494,607,353,84,384,434
|
||||||
|
650,252,13,259,334,840,601,249,199,607,258,629,259,678,611,100,696,339,765,56
|
||||||
|
449,692,80,752,778,675,496,940,934,98,189,552,679,629,110,277,192,399,696,739
|
||||||
|
190,589,432,913,606,839,121,82,358,384,701,760,618,927,838,912,139,937,326,328
|
||||||
|
935,276,427,859,504,758,716,753,276,935,672,457,937,800,192,356,101,679,699,757
|
||||||
|
249,830,752,560,801,199,594,722,875,637,99,579,740,762,58,710,149,657,218,605
|
||||||
|
935,949,653,453,949,930,802,501,768,275,905,500,177,217,298,768,423,655,187,568
|
||||||
|
608,87,296,220,982,200,676,661,147,931,496,600,333,683,192,462,691,400,812,198
|
||||||
|
770,435,844,907,402,186,706,433,532,656,696,837,688,774,218,826,575,324,441,874
|
||||||
|
680,679,223,459,803,100,300,577,636,751,383,879,404,621,646,306,827,400,413,808
|
||||||
|
805,991,623,83,626,615,505,682,757,491,941,295,266,487,807,221,526,914,686,193
|
||||||
|
694,622,82,566,187,944,390,431,433,659,837,937,345,513,504,179,306,324,610,601
|
||||||
|
660,456,823,760,914,52,773,272,251,815,412,683,266,819,119,111,683,593,487,426
|
||||||
|
101,278,712,51,187,710,270,598,219,940,612,182,389,999,341,325,626,302,770,572
|
||||||
|
913,537,624,602,584,928,630,862,275,179,803,913,928,805,530,388,445,593,629,294
|
||||||
|
111,668,811,864,632,261,929,306,451,665,503,439,88,817,570,874,838,555,304,349
|
||||||
|
692,263,255,192,739,621,768,262,318,373,459,487,680,704,799,583,428,447,705,834
|
||||||
|
306,406,813,692,107,89,177,597,711,223,408,862,628,603,582,176,142,83,248,657
|
||||||
|
395,566,620,663,335,557,385,599,341,810,459,706,805,873,305,875,262,418,613,553
|
||||||
|
840,563,100,626,823,186,600,668,945,314,323,442,99,705,684,638,859,564,669,583
|
||||||
|
714,334,464,911,406,196,683,931,62,301,98,743,450,416,182,860,197,840,634,599
|
||||||
|
774,948,146,893,944,775,339,655,120,176,650,277,712,707,81,140,377,573,487,630
|
||||||
|
685,697,143,167,668,773,946,423,859,766,266,696,375,580,264,640,615,807,148,302
|
||||||
|
584,124,649,752,220,202,449,935,97,189,64,762,927,432,432,714,80,914,426,188
|
||||||
|
836,176,180,839,740,420,54,946,934,149,384,603,743,564,678,662,720,377,461,821
|
||||||
|
443,837,385,124,374,267,555,746,459,823,935,586,180,659,632,662,660,934,530,949
|
||||||
|
940,874,96,101,801,227,948,553,589,744,698,656,272,278,276,626,337,452,764,702
|
||||||
|
430,558,528,533,618,710,321,277,761,937,277,205,914,405,765,779,435,306,119,624
|
||||||
|
176,843,763,380,908,190,931,769,327,491,333,463,89,172,838,349,809,675,505,632
|
||||||
|
437,764,275,681,911,752,634,340,621,55,491,400,555,751,143,385,575,552,551,357
|
||||||
|
749,179,843,429,61,669,426,709,624,74,264,333,631,934,808,196,200,944,526,176
|
||||||
|
368,195,441,183,251,699,705,802,295,770,762,819,254,203,669,578,298,600,89,660
|
||||||
|
376,178,807,375,628,691,685,299,683,333,824,447,506,305,779,778,62,874,182,303
|
||||||
|
536,744,502,769,182,299,184,344,803,619,504,86,769,638,811,836,745,597,614,626
|
||||||
|
451,430,651,761,60,844,118,591,776,165,451,573,772,839,96,652,878,807,676,930
|
||||||
|
526,589,622,768,773,259,304,262,261,54,249,555,426,865,120,520,54,706,430,323
|
||||||
|
97,844,261,260,633,739,761,805,179,178,566,754,330,911,311,58,698,101,276,741
|
||||||
|
564,379,453,342,193,676,99,278,443,278,325,257,487,744,299,538,606,335,438,761
|
||||||
|
740,97,612,392,272,264,724,252,117,708,818,562,810,675,196,372,749,454,499,560
|
||||||
|
779,990,410,448,696,391,672,441,146,581,554,694,768,383,405,692,675,776,936,342
|
||||||
|
219,140,563,457,455,326,608,755,720,680,56,412,459,687,925,98,183,802,841,740
|
||||||
|
322,81,594,687,52,61,427,173,626,673,863,945,174,594,200,688,770,876,768,553
|
||||||
|
815,611,595,454,441,681,526,297,942,301,447,426,100,755,191,645,203,374,276,77
|
||||||
|
86,385,659,621,584,684,51,816,347,499,603,488,396,67,432,342,687,816,94,260
|
||||||
|
437,778,345,504,574,862,609,843,667,251,704,84,258,457,647,429,875,743,814,833
|
||||||
|
676,672,942,197,505,390,568,719,931,947,276,120,824,188,594,808,563,876,775,909
|
||||||
|
762,752,940,230,341,118,623,404,716,120,768,101,834,176,755,486,141,184,577,767
|
||||||
|
721,676,437,454,391,303,810,220,191,178,937,190,56,714,455,299,82,368,802,740
|
||||||
|
60,462,575,865,250,172,931,347,53,54,813,81,295,452,561,937,776,81,705,669
|
||||||
|
670,772,676,945,432,522,347,489,620,680,749,194,384,637,201,613,605,630,562,529
|
||||||
|
99,599,660,263,304,431,427,101,323,863,426,462,83,649,243,385,497,759,777,93
|
||||||
|
433,608,512,425,329,530,602,945,173,875,638,494,770,670,940,836,262,702,659,873
|
||||||
|
453,391,428,348,907,687,462,324,941,381,613,204,395,896,946,381,779,810,841,705
|
||||||
|
265,905,560,54,681,765,682,88,568,273,939,493,57,266,342,6,612,633,550,337
|
||||||
|
930,534,204,753,934,846,569,682,745,934,403,906,272,677,719,776,754,534,556,173
|
||||||
|
486,809,755,763,441,396,689,415,385,490,145,304,271,204,375,344,800,92,872,694
|
||||||
|
489,425,688,573,743,564,295,652,257,707,267,173,758,365,739,265,684,527,860,655
|
||||||
|
299,646,180,52,697,721,766,574,151,762,376,182,407,196,80,873,188,329,248,448
|
||||||
|
431,381,779,393,223,575,408,858,616,415,85,707,749,264,489,390,597,779,185,937
|
||||||
|
457,168,219,54,90,119,744,332,52,862,941,818,554,703,820,464,742,554,331,914
|
||||||
|
809,529,444,455,91,11,843,862,428,632,707,195,571,747,905,187,328,864,393,629
|
||||||
|
295,720,375,80,928,551,683,567,418,341,685,632,711,98,218,811,622,583,487,382
|
||||||
|
804,113,92,442,296,669,390,218,691,263,492,643,80,669,501,329,566,803,191,879
|
||||||
|
805,609,749,808,563,141,612,724,266,666,678,491,566,687,940,338,704,544,528,501
|
||||||
|
556,879,356,876,607,183,577,811,344,586,616,767,622,865,859,497,429,580,776,254
|
||||||
|
130,276,393,927,190,455,908,329,676,818,572,204,760,801,146,946,205,95,579,139
|
||||||
|
423,862,374,93,685,844,101,811,461,81,617,175,643,287,271,179,180,101,595,774
|
||||||
|
256,89,407,563,759,665,844,563,932,91,406,597,685,389,658,348,81,295,251,309
|
||||||
|
189,743,376,86,333,394,593,773,562,589,668,646,565,477,669,196,581,297,652,98
|
||||||
|
769,807,569,559,976,651,266,86,258,934,334,635,560,761,61,188,497,680,571,823
|
||||||
|
931,752,461,705,394,128,764,569,297,932,450,665,59,440,694,710,753,627,559,388
|
||||||
|
775,631,390,87,772,654,561,145,401,917,175,912,693,64,766,606,590,427,701,688
|
||||||
|
594,740,203,748,461,294,822,642,96,610,907,805,647,582,359,719,632,377,748,943
|
||||||
|
65,561,677,645,495,99,223,592,596,402,385,746,328,392,583,336,487,684,304,935
|
||||||
|
260,679,451,176,596,581,938,679,456,762,464,859,565,715,820,752,530,928,248,15
|
||||||
|
218,529,596,297,876,651,557,659,506,562,341,96,3,564,199,400,503,647,707,182
|
||||||
|
613,195,929,818,823,808,265,63,498,686,583,97,88,650,866,640,141,461,594,119
|
||||||
|
219,873,720,388,835,143,205,602,339,576,448,388,255,731,558,305,644,672,303,255
|
||||||
|
526,652,256,520,263,182,263,686,382,581,250,255,559,500,248,566,807,273,622,944
|
||||||
|
464,802,408,702,829,299,397,414,403,565,407,412,759,503,565,59,652,758,650,427
|
||||||
|
602,57,873,828,564,554,565,435,303,590,323,388,138,528,94,350,175,634,410,63
|
||||||
|
254,500,57,86,984,253,751,822,202,395,181,719,812,940,625,640,615,749,437,610
|
||||||
|
326,631,940,409,753,368,438,202,553,446,592,876,818,684,617,843,753,575,800,695
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
##..#.#.
|
||||||
|
#####.##
|
||||||
|
#######.
|
||||||
|
#..#..#.
|
||||||
|
#.#...##
|
||||||
|
..#....#
|
||||||
|
....#..#
|
||||||
|
..##.#..
|
||||||
@@ -0,0 +1,372 @@
|
|||||||
|
6 + (3 + 6 + 5 * 4) * (4 + 3) * 8 + 6 + 6
|
||||||
|
7 + 6 + (9 + 4 * (8 + 7 * 8 + 2 * 7 * 9) * 9 + 5 + 3) + 6 + (7 + 5 + 7 * 9 + 9) * ((4 + 9 * 3 * 4 * 3) + 6 * 8)
|
||||||
|
3 + (6 + 4 * (8 + 4 * 3 + 8) * 7 + 5 + 4) * 3 * 2 + 5 + 4
|
||||||
|
2 * 4 + 4 + (5 * 9 + 3 + 9) * 6 * 2
|
||||||
|
3 * 7 + 4 + 6 * ((8 * 9 * 2 * 9) + (9 + 3 * 6) + (3 + 4 * 8 + 2) * 2) * 2
|
||||||
|
(9 * 2 * 7 * 5) * (6 + 3 * 3 * 3) + 5 + 9
|
||||||
|
(7 * 2) + ((7 * 3 * 7 + 2) * 3)
|
||||||
|
2 + ((4 * 8) + 6 * (3 + 5) * 4 * (6 * 7) * 4) * 8 + (7 * 5 * (8 * 3 * 8) * 5) + 6 * 2
|
||||||
|
(2 * 4 + (4 * 2 * 2 + 3 + 8 * 5)) * (3 * 4 + 6 + 7 * 5) * 5 * 5 + 6 * 7
|
||||||
|
4 * 8
|
||||||
|
5 * (5 + (3 + 2 + 7 * 6)) + 4
|
||||||
|
(8 * 2) * 8 * 9 * 7 + (9 * 6 * 6 + 4) + 2
|
||||||
|
2 * (3 * 8 + (3 + 5) + 4) * 7 + 8 + 3
|
||||||
|
6 * 2 * 5 * 9 * 4
|
||||||
|
(5 + 5 + 5 * 2 + 3 + 8) * 5 * 2 + 9 + (8 + 8)
|
||||||
|
5 + 6 + 3 * (2 * (4 + 9 + 7 * 8) * 9 + 4 + 8) * (5 * 7 * 9 * 5 * (3 + 2 * 6 * 4))
|
||||||
|
3 + (2 * 4) + 8 * (3 + 5) + 9 * 8
|
||||||
|
((4 * 7 + 5 * 2 * 3 + 9) + 4 + 6 * 9 + 6 + (6 + 9)) * 4
|
||||||
|
2 + (2 + (2 * 6 * 3 + 2 * 6)) * 9 * 7 + (7 + 7 + 2) + 5
|
||||||
|
7 + 4 * 4 * 4 * 8 * 7
|
||||||
|
6 * (5 * (8 * 8 + 7) * (6 + 5 + 6 * 3 * 2) + 4) * 9 * 2 + 7
|
||||||
|
(8 + 8 * (6 * 3 * 2 * 8 * 5) * (2 * 3 * 5 + 2 * 6)) + 5 + 4 * (4 * (7 * 9 + 8 * 6) * 7 * 9)
|
||||||
|
9 * (2 + 7 + 3 + 7 * 9) + 3 + 6 + 7 + 4
|
||||||
|
9 * 9 * (4 + 8 + (9 * 8 + 6 + 2 + 6 + 3) * 4 * 9 + 5)
|
||||||
|
6 + 9 + 2 * ((6 + 9 + 5) + 8 + 6 + 5 + 5 + 6) + 7 * 8
|
||||||
|
((3 * 2 * 5 + 3) + 8 + 7 + 9 + 2 * 8) * 9
|
||||||
|
7 + 4 + 8 * 4 + 4 + (4 * (7 + 8 + 6 * 6 + 2) + (7 + 9 + 7 + 4) * 9 + 9 * 5)
|
||||||
|
8 * 8 * (2 + 9 * 3 * 5) + ((4 * 5 + 3 + 8 * 6 + 3) * 5 + 2 * (6 + 8 + 6) + 4) * 2
|
||||||
|
((3 + 4 * 2 * 9 * 2) + (8 * 3 + 7) * 7 + 6 + (4 * 7) * 5) + ((2 * 8 + 5 + 7 * 8 * 9) + 7 + 6 * 5)
|
||||||
|
6 + 4
|
||||||
|
2 + (6 * 9 + 8 + 2) * ((7 * 5) + 6 * 9 * 7 * 7) + 3 + 6
|
||||||
|
((6 * 8 * 7 * 2 * 6) * 9 + 6 * (6 * 8) + 9) + 3 + 9
|
||||||
|
9 + (8 * 9 * 9) + (4 + 8 * (2 + 9 + 4) + (3 + 9 * 4 * 5 * 8 * 3) * 9 + 2)
|
||||||
|
3 * 2 * (3 + (4 + 3 + 3 * 5) * 4 + 3 * 8)
|
||||||
|
2 * 5 + ((3 * 9 + 6 + 7) + (2 * 6 * 4 * 2 * 5 * 7)) * 5
|
||||||
|
3 + 8 * 9 * ((3 + 4) + 2 + 9 * (4 * 4) + 3) + 3 + (5 + 3 + 5)
|
||||||
|
(4 + 4 * 7 * (3 + 4) * 2) * 8 + (4 + 8 * 9 * 9 + 4) + 2
|
||||||
|
(3 + 7 + 9 * 6 * (8 * 4 + 6 + 4 + 5 + 7) * (3 + 9)) + 3 + 2 * 4 + 7 + 8
|
||||||
|
(3 * 4 * 9) * 2 + 4 + 6 + 2 * ((8 + 2 + 5) + 5)
|
||||||
|
4 * ((3 + 9 * 2 + 4) + 6 * 9 + 6 * 5 * 3) * 9 + 7 * (9 * 9)
|
||||||
|
(8 * 4 + 3) + 7 * 6 * 4 * 3 * ((6 + 5) * 6 * 2 * 6)
|
||||||
|
5 * (7 * 5 * (7 + 2 + 6 * 5 + 8) + 3 * 2) * 2 + 3
|
||||||
|
7 * 9 + (4 + 8 + 7) * 3 * (9 + (8 * 2 * 7 + 8 * 7 * 6) + 3 * 8 * 9)
|
||||||
|
8 * 3 + (2 + 9 + 8 * 5) * 8 * 2 + (4 * 8 * 7 + 5)
|
||||||
|
5 + 4 + (2 + 3) * 9 + (3 * 7 * 9 + 3) * 4
|
||||||
|
4 + (8 * 8 * 5 * 4)
|
||||||
|
9 * 9 + (5 + (9 * 5 * 2 * 5)) * 9
|
||||||
|
(3 * (6 * 7 * 8) + 4 * 4 + (2 * 2 * 9 * 4)) * 7 * 4
|
||||||
|
4 + (8 * (7 * 6 * 2 * 9) + 5 * (3 * 7 + 6 * 7) * 7 * 8) + (2 + 2 * 4 + (8 + 5 + 5 * 3 + 2 + 5) + (2 * 9))
|
||||||
|
2 * 7 * (3 * 8 + 2 * 7) * 2 + 8 + 8
|
||||||
|
3 + (2 * 8 + 2) + 9
|
||||||
|
((6 * 3 * 4 * 9 * 7 * 4) + 2 + (7 * 6 * 3 + 6) * 9 + (5 + 3 + 5 + 7)) + 6 + 8 + 3
|
||||||
|
4 * 6 + (9 + 6 * 4 * 9 + (5 + 3 + 5) + 4) * 2 + 8 + 9
|
||||||
|
(7 + 2 * (4 * 5 + 5 * 3) * 8) * 4 * 2 + 7 + ((6 + 8 * 8 + 2 * 4 + 5) + (9 + 3))
|
||||||
|
6 + 6 + 9 + 9 + (4 + (2 + 4 + 8 + 3 + 3) * 8 + 3 * 2) * 3
|
||||||
|
5 * (4 + 4 + 4 * 7 * 4) + 7 * 4
|
||||||
|
5 * ((5 * 8 * 9 + 2 + 8) * 6 + (5 + 3) * 4 + 8 + 3) * 8
|
||||||
|
5 + (2 * 7 + 2 * 6 * 3) + (2 * 3 * (3 + 6 * 9)) * 4
|
||||||
|
((4 + 6 * 3) + 6) * 6
|
||||||
|
3 * 4 + (9 + (4 * 9 * 9 + 6 * 2) + 4 * 9 + 2) * 3
|
||||||
|
7 * 9 * 9 + 7 * 3 + 9
|
||||||
|
6 + 2 * 4 + ((9 + 5) + 4)
|
||||||
|
(7 * 2 * 6) * 6 + (5 * 3) + ((7 * 4) + (2 * 8 + 6 + 9) * (7 + 4) + 8 + (2 + 7 + 6 * 3 * 7) * 3) * 3 + 2
|
||||||
|
7 * (7 * 3) * 7 + (6 * 2 + (8 + 6 + 5 + 8 * 4 + 9) + 4 * 2)
|
||||||
|
(6 + (9 * 4 * 9 + 9 * 7)) * (4 * 5 + 6 + 2 + 6 + 9) * 6
|
||||||
|
((6 * 7 * 3) * 6 * 9) + (8 * 4 * 8) * 3 * 9 * 6
|
||||||
|
5 * 6 * 6
|
||||||
|
9 + (3 * 8 * (5 + 9 * 4)) * (5 * 2 + 4 * 6 * 3)
|
||||||
|
(8 * 5 * 2) * (8 * 3) + 4 * 6
|
||||||
|
((8 * 8 + 3 * 5 + 6) * 8 * 5) * 5
|
||||||
|
(3 + 5 * 7 * (2 + 4 + 3) + (5 + 4 + 7 * 3 + 9) + 6) * 3
|
||||||
|
7 + 2 * 7 + ((6 * 9) + 2 + 9 * 2 * 5) + 2 + 7
|
||||||
|
5 * (5 + 8 * 3 + 9) * 4 * 9 * 2
|
||||||
|
(9 * 3 * 3 * 9 + 5 * 9) + 8 * ((2 * 7 + 5 * 3) + 8 * 9 + (6 * 6 + 9) * 6) + (8 + 6 * 7 * 9)
|
||||||
|
8 * ((2 * 4 + 6 * 6 + 9) + 7 * 4) * 6 + 5
|
||||||
|
3 * 9 * 8 + (4 + (2 * 7 * 6) * 9) + 7 + 9
|
||||||
|
2 * (6 + 5 * 7 * (8 + 8 * 9 + 9 + 3 * 8) + (6 * 6) * 4) + 5 * 7 + 3
|
||||||
|
6 + 2 + (3 + 7 + 8 * 2)
|
||||||
|
(9 + 2 + 6 * (9 * 9 * 7 * 5 * 6 + 6) + (2 * 2 * 5 * 7)) + 3 + 4
|
||||||
|
2 + 8 * 5 + (5 + 4 + 7 * 3 * 6 * 9) * 5 * 9
|
||||||
|
(4 * (2 * 6 * 8) * 9 * 9 + 6) * 8 * 9 + 6 * 4 + 5
|
||||||
|
4 * 4 * 4 * 4 + 5
|
||||||
|
(2 * 2 + 3 + 2 + 7 + 6) * (4 * 7 + (2 * 5))
|
||||||
|
3 * 7 + 8 + 9 + 7 + 9
|
||||||
|
((2 + 6) + 4) * (8 * 5 * 3 + (5 * 4 * 3 * 9) * (4 * 9 * 2 + 2 + 5 + 9) + 8) + 2
|
||||||
|
5 + 6 * (3 + (3 + 8 + 5) + 7 + 6 + 5) + 9 + 9
|
||||||
|
(9 + 3) + 3
|
||||||
|
9 * (3 + 3 * (8 * 7) * 8) * (6 * 8) + 4 + ((4 * 2 + 6 + 5) + 8)
|
||||||
|
(4 * (6 * 8 + 3 * 3 * 9 * 6) + 6) * 5 * 3
|
||||||
|
6 + 4 + 4
|
||||||
|
(5 * 9 + (6 + 2 + 6) + 5 + 2 + 9) + (6 * 8) + (2 * 5)
|
||||||
|
(4 * (4 * 3 * 2 * 4) + 5 + 6) + 4 * 9 * (4 + (9 + 7) * 8) * 6 * 9
|
||||||
|
4 * 3 + 5 * 2 * (2 * 8 * (6 + 8 * 7)) + 6
|
||||||
|
7 + 4 * 8 * 4 * (6 * 5 * 2 + 8 * 7)
|
||||||
|
8 * 2 * (7 + 6 + (4 * 7 + 8 * 5 * 2) + (3 * 7) * 8) * 8 * 4
|
||||||
|
(7 * 9 + 4 * 2 + 6 * 7) + (8 + 7) * 9 * 9 * 6
|
||||||
|
(6 * 8 + 5 + 9 * 2 * 3) * 4 * 4 * ((7 + 7) * 8 * 3 + (9 * 2 + 7) * 2 + 3)
|
||||||
|
3 * ((2 + 8 + 9 * 4 * 5 * 4) * 5 + 8 + 8) + 5 + 5 * 2
|
||||||
|
4 * 4 * (6 * 4 * (5 + 2 + 9 + 5 * 8)) * 6
|
||||||
|
9 + 4 + (7 * 3 * 4 + 9) + (8 + 2 * 9 * (2 + 9 * 2 * 7 + 7)) + (5 + 4 + (9 + 8) * 4 + 7) * 6
|
||||||
|
(3 + 5 + 4 + (2 * 3 + 7 + 2 + 2 + 5)) * (6 + 3 * 5 + (9 + 2 + 4 + 5)) + 7 * 8 * 6
|
||||||
|
4 + 3 + ((2 + 9 * 3 * 5 + 9 + 7) + (3 + 3 * 8 + 2 + 6) * 4 + 5) * 8 + 6 + 2
|
||||||
|
4 * 9
|
||||||
|
5 + (2 + (5 * 6 * 3 + 9) * (8 + 7) + 9 + 4) * 4 + 2 + 3
|
||||||
|
(6 + 6) + 8 + 4 * (3 * 9 * 7 * 9 * 8) * 4 * 8
|
||||||
|
(5 + 7 + 8 + 5 * 4) + 4 * 6 + (2 * 4 + 8 + 9 + 2)
|
||||||
|
(9 + 2 * (2 + 3) + 5 * 3) * 2
|
||||||
|
7 + 9 + 3 + 3 + (4 * 9 + (6 * 5 + 8 * 9) + 7 + 4) * 4
|
||||||
|
6 + (2 * (5 + 8 * 3 + 5 + 7 * 2) * 8) * ((2 + 9) * 6)
|
||||||
|
7 * (3 + 2 + (9 + 9 + 7 + 5 * 7 * 9) + 4)
|
||||||
|
(5 + 6) + 8 * 5 * 6
|
||||||
|
8 + (2 + 7 + 4 + 6 + (5 * 7 + 6 + 2 * 5 * 6)) * 3 * 2
|
||||||
|
(5 * 4 * 4) * ((8 * 3) + 7 * 6 * (7 * 6 * 3 + 8)) * 5 + (5 * 9 + 2 * (3 + 6 + 9 * 5 * 9 + 2) + 2 + 6)
|
||||||
|
3 + 9 * 3 + 7 + 6
|
||||||
|
((9 * 7 + 7) * 2 + 8) * 6
|
||||||
|
(7 + 8 + (3 + 9) + 7 * 8 + 8) + 6
|
||||||
|
(4 + 5 + 5 + 3 * 9) * 7 + 9 * 7 + 8 * 5
|
||||||
|
8 * 5 * (8 * 6 * 2 + 4 * 3)
|
||||||
|
2 + 2 * (6 + (4 + 5 * 7)) + (9 + (4 + 5 * 8 * 2) * 3 + 2)
|
||||||
|
3 + 6 * ((9 + 9 * 7 * 5) + 7 * 5 * 8 * 4 + 6) * 3 + 2
|
||||||
|
8 + ((5 * 5 + 3) + 9) + 4 + 8
|
||||||
|
8 + (9 + (2 + 4 + 3 + 4) + (8 * 5 + 9 + 4)) * (4 * (3 * 7)) + 3 * 3
|
||||||
|
9 + 4 + ((5 + 9) + 2) * 6 + ((3 + 9 + 7) * 3 + 2 * 6 + 9 * (7 + 9 + 3 + 3))
|
||||||
|
6 * (8 + 5 * 3 * 8 + 3 * 2) * 5
|
||||||
|
8 + 5 + ((7 + 2 * 3 + 7) * (9 * 5) * 3 + 2) * 3
|
||||||
|
9 + 6 * 8 * ((4 * 5 * 4 * 8 + 8) + (9 + 9 * 7 + 6 * 5) + 6 * 6) * 2 + 3
|
||||||
|
4 + 8 + (6 + 5 * 4 * 2 + 2 * 5) + ((2 * 9 + 8 + 7) + (4 * 5) + 6)
|
||||||
|
((9 * 5 * 7 + 4 * 7) + (7 * 4 + 2 + 2) + 8 * 9 * 7 * 6) * (9 * (5 * 4 * 4 + 3)) + 8 * (5 + (5 + 8 + 7) * 4 * (9 + 8 + 6) * 3) * 2 * 6
|
||||||
|
((3 + 6 + 6 + 4 + 5 * 6) + 5 * (5 * 7 + 9 * 4) + (4 + 2 * 6)) + 3 + (8 + 4 + 5 + 4 * 4 * 8) + (7 * 3 * 4)
|
||||||
|
6 + (3 * 3 + 8 + 2) + ((6 + 7 * 3) + 9 + 7 * 3 * 4 * 4) * 6 * 6
|
||||||
|
7 + (6 * 4 * 3 + 7 + 8 * 7) * 3 + 8
|
||||||
|
8 * 9 * 6 + 9 * 3 * (8 * (8 * 5 + 5) + 4 * (5 + 5) + (9 + 2 + 2 * 5 + 3 + 5))
|
||||||
|
9 + 2 * 2 + (4 * 2) + 7
|
||||||
|
3 + 3 * (3 + 2 * 2 + 3) + (9 + 6 + (6 + 3 + 9) * 6 * 4 * (3 + 4 * 8 * 7 + 9 + 5)) + 9
|
||||||
|
((2 * 8 + 8 * 4 * 3) + 4 + 7 + (5 * 5 + 8 + 6)) * 6 + 4 * ((4 * 3 * 8 + 2 * 9) * 4 * 8)
|
||||||
|
(4 + 9 + (3 * 5 * 5)) + 4 + (3 * 4 + 4 + 2 + 6) + 7 * 5 + 8
|
||||||
|
(2 * (2 + 3 + 2) + (3 * 8 + 6)) * 9 * 2 * 9 * 9 + 9
|
||||||
|
5 * (9 + 4) * 4 + (3 + 7 + 9) + 5
|
||||||
|
4 * 5 + (7 * 6 + 7 + 5) * (6 + 2) + 7 * 4
|
||||||
|
3 * 6 + 3 + (6 + 7 * 2 * 4) + (9 + (7 + 8 + 7) * 6 * 9 + 6 * (6 * 8 * 8 + 5)) + 2
|
||||||
|
5 * 2 + ((9 + 7 * 2) * (9 + 2 + 3 * 2) * 7)
|
||||||
|
((4 + 8 + 2 + 3 + 6 * 3) * 8 + (7 * 9 * 5 + 3 * 2) * (7 * 7 * 9 * 2 * 5) * 3) + 8
|
||||||
|
9 * 3 * (6 * 2 * 6 * 4 * (3 * 9) + 2) + 4
|
||||||
|
2 * (6 * 9 + (9 * 2)) * 4
|
||||||
|
9 + 7 + 7 * 7 * (7 + (9 * 9 * 2 + 4 + 9) * (3 + 4 + 2 + 9) + 6)
|
||||||
|
4 * 6 + (3 * (2 * 5 + 4 * 3 + 4) + 6 + (5 + 9 * 7) * 9 + 3) * (3 * 3 * 7 * 7) * 8 + (5 * 6 + 4)
|
||||||
|
4 + 7
|
||||||
|
((7 + 5 * 8 + 6 * 3 * 9) * 3 + (5 * 9 * 3 * 2)) + (5 * 6 * 4 * 2) * 7 * 4 + 5 * 6
|
||||||
|
(2 + 9 + 2 * 7) + 6 + 3 + 9 + 7
|
||||||
|
((6 * 5 + 2) + 4 * 7 + 4 * (7 * 4 * 2 + 4) * 7) * 3 + 4
|
||||||
|
5 + (2 * 3 + (9 * 8 * 9)) + 7 * (6 + 7 + 2)
|
||||||
|
4 * 5 * 8 + 6 * ((4 * 7) * 8 * 8 + 7 * 8 + 2)
|
||||||
|
8 + ((8 * 2 * 6) * 9 * (9 + 2 + 9 + 4 * 3 * 7) + 5) * 2 * 8 + 8
|
||||||
|
((8 + 4 * 2 + 4) * 5 * 4 + 4 + 8 + 5) * 4 * 6 + 3 + 4 * 4
|
||||||
|
6 + 7 * 6 + (6 + 6 + 2)
|
||||||
|
((4 * 9 * 9 + 8) * 6 * 9 + 6) + 2 + 8 * 8 * ((4 * 9 + 6 * 7 + 5) * 4 * 7) * 7
|
||||||
|
6 + 5 + (8 + (2 * 8 * 6 * 3) * 4) + (8 + 2) + 2
|
||||||
|
(9 * 6) + 5 * 2 * (8 + 5 + 6 + 7) * 4
|
||||||
|
9 + (8 * (2 * 4) + 6) * 8 * 4
|
||||||
|
9 + 6 + (3 + 2 * 8)
|
||||||
|
3 + 9 * 2 + 7 + 4
|
||||||
|
((7 * 9 + 3 + 3) + 5 + (4 * 7 + 9 + 4 + 2)) * 3 + ((9 * 6 * 8 + 5 + 7) + 5 + (4 + 8) + 2 * 4) + 3 * 5
|
||||||
|
6 * (9 + (4 * 7 + 9 * 7 * 6 + 9) + 6 + (4 + 7 + 3 * 4 * 6) + 4 + (5 + 2 * 5)) + ((8 + 7 * 3 + 6 * 4 * 7) * 3) + 5 + 9
|
||||||
|
((7 + 5) + 9 + 8 * 5) * 6 + 3 * 7 + 2 * 3
|
||||||
|
(9 + (5 + 8 * 9) * 9) + 3 + 6
|
||||||
|
9 + 7 * 5 * 8 * (2 + 4)
|
||||||
|
6 + 3 * 7 + (3 * 5 + 8 * 7 * (4 * 8 * 5 + 9 * 6 * 4)) * 3
|
||||||
|
5 * (4 * 2 * 5 + 6 * 7 * (3 * 9 * 9 + 4 + 2)) + 9
|
||||||
|
(5 * 7 + (8 * 4 * 4 * 4 + 5) + (9 + 9) * 5 * (3 + 6 + 7 * 9 + 6)) * 4 + 6 + 4 + ((7 * 4 + 7 + 2 + 7 + 2) * 5)
|
||||||
|
(4 * 3 + 5) + 2
|
||||||
|
(4 * 4 * (9 * 7)) + (4 * 5 * (3 + 9 * 3 * 2)) * (5 * 7 * 4 * 6)
|
||||||
|
2 + 5 * (7 + 2 + 8 + (2 * 9) + 7 + 7) + 2 + 6
|
||||||
|
((9 * 5 * 3 + 7 + 7 * 8) + (6 * 3 + 4 * 8) + 4 * 9 + 9) + 9
|
||||||
|
8 + 2 * (9 + (7 * 7 * 3) + 2) + (6 + 5 * (3 + 6 * 9) * 6 + 3)
|
||||||
|
((4 + 8 * 6 * 9 * 2 + 3) + 8 * (7 * 7 * 8 * 6) + 9) * (2 + 6 * 9) + 6 + 4
|
||||||
|
6 * 5 + 8 * 7 * (3 + 4 * 7)
|
||||||
|
7 * 5 * (5 * 7 + (2 * 7 * 6) + (6 * 3) * 9 + (4 * 7 * 6 + 7 * 7 * 3))
|
||||||
|
8 + 7 * 3 + (4 + 6 * (4 * 4 + 9 * 7) * 6 + 8 * 2) * 8 * (8 * 3 + 3 + 6)
|
||||||
|
2 + 6 + ((6 + 2 * 3 + 2 + 2 + 6) + 3 + 5 + 7)
|
||||||
|
((9 * 7) + 8 * (9 * 3 * 9 + 8) * 2 + 7 * (6 + 7 + 4 + 6 * 3)) + 7 * 4 + 7
|
||||||
|
5 + ((8 + 6) * 7 * 9 + (4 * 5 + 5) * (5 + 3) * 7) + 3
|
||||||
|
4 + ((5 + 4 * 5) + 2 * 6 + 5)
|
||||||
|
6 + 6 * 8 + (3 * 8 * 2 * (5 + 3)) + 6 + ((3 * 7) + 9 + 7 + 7 + 6 * 7)
|
||||||
|
(2 * (4 * 7) + 6 + 8 * 3 + 7) + 8 * 6 * (3 + (3 + 4) * 2 * 3 * (4 * 5 * 2 * 2 * 6)) * 8 * 4
|
||||||
|
6 + (8 * 3 + (3 + 9 * 6)) + 2 * 4
|
||||||
|
3 * (2 * 9 * 3 + 3) * 5 * 6
|
||||||
|
6 * 5 * 3 * 3 * (6 + 7 + 9 + 8)
|
||||||
|
9 + 2 * 8 * 6 + ((9 * 9) + (3 * 4 + 4 + 4 * 9 * 7) + 5 + 4 + 9 + 9)
|
||||||
|
3 + 9 * 5 * 8 * 5
|
||||||
|
5 + 3 * 7 + 9
|
||||||
|
9 * ((4 + 4 * 6 + 5) + 3) * (4 + 3)
|
||||||
|
(3 * 6 * (8 * 6 * 5) + 2 * 3 + 4) + 6 + 8
|
||||||
|
6 + (4 * 8) * 3 + 5 + 2
|
||||||
|
2 + (2 * (7 + 6) * (5 + 3 + 2) * 2 + (7 * 9)) * ((5 + 9 + 2 * 8 + 8) + 9 + 8) + 9 + 6
|
||||||
|
((5 * 8 * 4) * 6) + 4 * 4
|
||||||
|
6 * 2 * (3 + 4 + 3) * (5 * 4 * 7) * (2 + 4 * 2 + 8)
|
||||||
|
6 + 9 * (2 * 7 + (4 * 5 + 7 * 6 + 7 + 8) + 4 + 5)
|
||||||
|
((4 + 6 * 2 * 4) + 2 + 4 * 3) * 9 * 5 * 9
|
||||||
|
6 + (3 + (5 + 4 * 2 * 3) + 6) + ((8 + 4 * 8 * 5 * 4 * 4) + 5 * (6 * 6 * 9 * 9) * 3 + 3)
|
||||||
|
7 * 8 * (7 + 8 * 2 + 6) * 9
|
||||||
|
5 + 3 + 4
|
||||||
|
4 + (3 * 6)
|
||||||
|
9 * (2 * 6 * 2 + 4 * 5 + (2 + 4 + 6 + 3 * 4 * 5)) * 4 * (8 * 7 * 6)
|
||||||
|
6 * (9 * 5 * 9 * 4 + 4)
|
||||||
|
(8 * 7 + 8 * 9 + 2) + 4
|
||||||
|
6 + (7 * 6 + 8 + 2 * 3 * 8) * 8 + 4 * 2
|
||||||
|
((4 * 8 * 7 + 8) * 9) + (9 + 5) + 4 + 2
|
||||||
|
4 + 9 + (5 + 3) + 4 * (9 * (4 * 7 * 5 * 2) * 8) * 3
|
||||||
|
5 + 3 * 5 + 6 * 7 + (2 + 7 + (7 + 7 + 9 + 2 * 4 * 6) * 6 * 8 * 8)
|
||||||
|
(6 * 4 * 8) * 9 + 7 + 2
|
||||||
|
3 * (5 + 5 + 2 + 6 + 3) + 5
|
||||||
|
((2 + 6) + 3) * 7 + 3 * 8 + 2 * (7 + 4 * 4)
|
||||||
|
4 * 6 * 8 + (7 * 2 * (5 * 7) * 3 * (2 * 4 + 6 * 4 * 2)) + 2 + 9
|
||||||
|
7 + (9 * 4 * 5 * 8) * (4 * 2 + 7 * 2 * 3 * 7) * 3 * 2 * 9
|
||||||
|
4 + 6 * 8 * 4 * (2 * 8) + 4
|
||||||
|
4 * (8 + (9 + 3) * 4) + 2
|
||||||
|
(6 + 7 * 5 + (8 * 4 * 5 + 7 + 8 * 8) + 9) + (4 + (6 * 8 * 6 * 3 + 9) + 4 + 2) + ((9 + 4 + 8 * 7 * 9 + 2) * 2 + 2 * 2 * (2 * 6 + 9)) + 6
|
||||||
|
8 + ((5 * 5 + 3 + 2 + 5 * 6) * 6 * (2 + 9 + 8) + 5 + (7 + 6 + 4) + 9)
|
||||||
|
(4 * 5 * 9 + 8 + 8 * 5) * 2 * (7 * 9 * 3 + 3) + (2 + 5 * 5 * 3 + 4) + 5 + 7
|
||||||
|
(2 + 8 + (5 + 7 + 2 * 9)) * ((8 + 6 + 8 * 2 * 3 + 4) * 3) * 2 * 9
|
||||||
|
((2 + 7 + 6) + 2 * (3 + 6 * 6 * 5 * 2 * 7) * 3 + 8) + 3 + 7 * 6
|
||||||
|
5 * 5 + 7 + 3 + 6 * 2
|
||||||
|
4 + 9 * (9 + 6 + 6) * 7 * 9 * 8
|
||||||
|
((8 + 5 * 8 * 4) * 5) * (8 * 7 * (4 + 5 + 4 + 3 * 3))
|
||||||
|
(9 * (8 * 9 + 9 * 6 + 5 * 8) + 3 * 9 * (5 + 6 + 6 * 4 * 4 * 6)) + 4 * 6 + 8
|
||||||
|
6 + (9 * 8 * (8 * 3 * 3 * 7))
|
||||||
|
(7 + 7 + 6 + 8 * 3 + 9) * 4 + 9
|
||||||
|
7 + 2 + 3 + (8 + 5 + (7 * 7 + 8) * 9 + 7) * (2 + 5 * (4 * 8 + 2 * 5 * 7) * 3 * 9)
|
||||||
|
((3 + 7 + 4 + 9) + 5 + 6 * 3 + 3 * 8) * 2 * ((9 + 5 * 9 * 5) * 3 + (3 * 5 * 7 * 2)) * 9 * 5
|
||||||
|
6 + 4 * 9 + (3 + (5 * 3 + 5) * (3 * 8 * 2 * 5)) + (4 + 9 * 4 * 8 * 7 * 4) + 2
|
||||||
|
9 + (6 * 8 * 4 * (7 + 4 * 5 * 3 + 5 * 5) + (2 * 7 * 7 * 8))
|
||||||
|
(8 + (9 + 8 * 6 + 2) * 7 * (6 + 2 * 6 + 6 + 4 + 7) * 9) * 5 + 3
|
||||||
|
4 * 4 * (2 + 8 + (4 + 5 * 4)) * (6 * (2 * 3 + 7) * 7 + 9 + 8) + 3 * 3
|
||||||
|
4 * ((9 + 7) * (7 + 2 + 5 + 2 * 4 * 2) * (3 * 7 * 6 + 5 + 9 + 2) * (6 + 9 * 2 * 5 * 8 + 6) + 5 + 8)
|
||||||
|
(6 * 5 + 9 + 6) + 2
|
||||||
|
2 + 2 * 5 * (3 * 9 + 2 * (6 * 5)) * 8 + (7 + 6)
|
||||||
|
2 + (2 + 5 * 9 + (5 + 3 + 8 * 2 + 2) * 4) * (8 * 2 * 2 + 3 + 5 + 8) * 4 + 3
|
||||||
|
4 * 9 + (7 * 6 + 2 * (6 + 2 + 9) + 2 * 3)
|
||||||
|
(5 * 2) * (4 + (9 * 9 + 9) * 9 + 6 + 6) * (6 * 8 * 7 + 7) + 9 + 3 + 2
|
||||||
|
(4 + 2 * 2 * 8 + (3 + 7) * 7) * 8 * 9
|
||||||
|
(3 + (8 * 2 + 6) + 5) * 9
|
||||||
|
2 + 2 * 4 + (7 + 3 * 9) * 5 * 6
|
||||||
|
7 + (4 + 8 * (3 * 7 * 3 + 9) * 9) + 2 * (4 + 8) + 5
|
||||||
|
2 * 5 + (4 * 9) * 7 + 5
|
||||||
|
7 * 3 * (8 + 2 * (9 * 6) * 8 + 6 * 9) * 9
|
||||||
|
9 * (9 + 6 * 2 * (9 + 4 + 8) + 4 * (5 * 8 * 4 + 6 * 6 * 9))
|
||||||
|
3 + 7 + ((9 * 6 + 2 * 9 + 6) + 3 + 2)
|
||||||
|
(3 + (7 + 4 * 3 + 6 + 7) + (5 * 3) * 8 + 7 + 5) * 2
|
||||||
|
(8 * 5) * 8 * 3
|
||||||
|
9 * 2 + 9 * 9 * ((3 + 8 + 6 + 5) + 5 + 2 * 2) * 2
|
||||||
|
(5 * 4 + (7 * 8 * 2 * 5 * 5 + 2) * 3) * 2 * 7 * (7 * (4 * 8 + 8 + 4 * 6))
|
||||||
|
7 + 3 * (8 + 7 + 2 + 4 + (2 * 7 + 3 + 9) * 5)
|
||||||
|
4 + 5 + 4 + 5
|
||||||
|
8 + 6 * (3 + 8 * 2 * 7 * 9 + 4) + 8
|
||||||
|
(9 * 3 * 9 * (3 + 2 + 7 + 5)) + 4
|
||||||
|
4 + 4 + (4 * 4) + 3
|
||||||
|
6 + 3 * (3 + 3) + 7 * 2 + (8 * 8 + 7 + 8 + 4 * 4)
|
||||||
|
4 + 9 * 6 + (2 * 9) * 3 + 6
|
||||||
|
4 + 8 + 8 + 2 * ((2 * 7 * 7 + 8 + 4 * 3) * 3 + 8 * 9 * 4)
|
||||||
|
(2 * 6 + 7 + (2 * 4 * 5 * 2 * 6) + 7 + (6 * 3 + 3 + 7 * 8)) * 8 + 3 * 8
|
||||||
|
3 * 7 * 3 * 5
|
||||||
|
((4 * 9 * 5 + 3 + 4) * 4) * 7 + 3 + 5
|
||||||
|
9 * (2 + 5) + 2
|
||||||
|
3 * 3 * (8 * 7 + (2 * 9 + 4 + 2 * 9 * 6) + 9) * 2 + 5 + (5 * 8)
|
||||||
|
7 + ((3 + 2) * 5 + 6 * 3 + 4 + 5) + (4 * 5 * 9 * 7) + 4
|
||||||
|
4 + 4 + 7 + 7 * (3 * 9 + 2 + 4 + 2 * 6) + (6 + 8 * 6 + 9)
|
||||||
|
4 * 2 * (4 * 3 * (7 + 2 * 6)) * (6 * (2 + 5 + 7) + 8) + 2
|
||||||
|
(3 + 7) * (9 * 7 + 8 + 2) * (8 * 9 + (7 * 7 + 6 * 2 * 6) + (7 + 7 * 6)) + 9 * 7 + 2
|
||||||
|
5 + 9 * ((9 * 2 + 5 + 8) + 7 * 7 + 5) + ((3 + 2 * 8 + 8 * 6 + 8) + 4 * 2 * 3 + 9) + (3 * 2 + (6 * 3 + 3 + 6 * 5 * 7) + (2 * 3 * 5 * 9))
|
||||||
|
(8 * 9 + 9 + 3 + 3 * 6) * 8 * 8 * 4
|
||||||
|
(3 + 4 + 6) + 8 + 4
|
||||||
|
(4 + 2 + (6 + 2 + 4)) + 7 + 2
|
||||||
|
(3 * 3 + 5 + 5 * 2) + 9 * ((5 * 9) + (9 + 7 + 2 * 9 + 4 * 9) + 3) * ((3 * 2 + 3 * 7 * 6) * (7 * 3 * 4 * 6 + 3)) + 6
|
||||||
|
2 * (2 + 9 * 7) + 2 * 8 * 4 * 7
|
||||||
|
2 + 6 * (2 * 9 + (4 + 2 + 4 * 5 + 6 + 6) + (5 * 5 * 8) + (8 + 3 + 7 * 8)) * 5 + 9
|
||||||
|
(8 + 3 + (6 + 7 + 4 * 9 * 9 + 3)) * 8 * 2 + (5 * 6 + 6 + 6 * 5 + 4)
|
||||||
|
(5 * 5 + 2 * 8 * 5) + (8 * 5 * (9 * 3 * 8 * 9)) * 6 + 5 + 4 + 4
|
||||||
|
8 + 4 + (2 * 2 * (8 + 2 * 8 + 2 * 9)) + 6 + 3
|
||||||
|
3 * 9 * (8 + (7 + 3 + 4 + 5 * 7) + (7 * 5 + 9)) * ((6 * 7 * 6 + 8 + 5) * 6 + (7 + 4) * 5 + (6 + 6 + 3 + 8 + 5) + 2) + ((2 * 7 + 9 * 5 + 3) * (8 * 6 * 2 * 3) + 6 * 9 + 4 + 5) + (6 * 5)
|
||||||
|
4 + 4 * 2 + (9 + 3 * (5 * 6 * 4 * 5 + 4))
|
||||||
|
6 + 2 * 6 + 7 + 9 * (8 * 4)
|
||||||
|
(3 + (5 + 4 * 4 + 8 + 4 + 5) + 8 + 8 + 3 * 8) + 9
|
||||||
|
3 * (7 + 4 * (7 + 2 + 6)) * 5
|
||||||
|
6 * (5 * 3 * (7 * 3 * 7 + 9 * 5 * 8))
|
||||||
|
4 + 7 * 6 + 5 + 6 * 7
|
||||||
|
(7 + 9 * (4 * 3 + 2 + 3 * 4 * 6) * 2) * 6 * (5 + 8)
|
||||||
|
3 + ((9 * 6 + 6 * 4) + (9 * 9 + 9 + 7 * 3) + 3 * 8) * 7
|
||||||
|
(9 * 2 + 2) * (3 + 9 * 3 * 5 * 7)
|
||||||
|
5 + 2 + 9 + (6 * (6 + 4 * 4 + 9) + (8 * 4 + 5 * 3 * 9)) + 9 * 5
|
||||||
|
8 + (4 + 9 * (7 + 3 * 6 * 5 + 9 + 7) + (3 * 6)) + 5 * 6 + 6
|
||||||
|
(7 * (8 + 3 * 3 + 7)) * 9 * (6 + 9) + 3
|
||||||
|
5 * ((6 + 7 + 9 + 3 * 2 + 3) + (3 + 5 * 5 + 3 + 9)) + 3 * 7 + 6 + (7 + 4 + (3 * 3) * 5)
|
||||||
|
8 + 6 + ((9 + 8 + 3 * 6 * 9) * 3) * 8 + 7 * 9
|
||||||
|
7 + (8 + 3 * 6 * 8 * 8 * 3) * 5 * ((3 * 6 * 2 * 7 * 7 + 4) * 5)
|
||||||
|
(2 + 2 * (3 + 6) * (8 + 5) + (8 * 6 + 7) * 9) + 6 + 8 * 9
|
||||||
|
7 + 7 + (4 + 2 + 4 + 6 * 5 + (8 * 6)) * 9
|
||||||
|
7 * 3 + 7 + ((9 + 7) + 6 * (5 + 9 * 8 + 6 + 5 * 4) * 8 * 3 + 3)
|
||||||
|
(2 + (2 + 9 + 2)) + 2 + 8
|
||||||
|
2 + 2 * (5 * (8 * 4 * 7 + 3 * 5) + 6) * ((9 + 3 * 2 + 5 + 8) * 2 * 9 + 2) * (3 + 9 + 4 * 5)
|
||||||
|
7 * 8 * 2 * 8 * 9 + (4 + (5 * 6 * 8 * 9 + 7))
|
||||||
|
6 + 2 + 7 * (6 + 7 + 6 * 8 + 9) * 3
|
||||||
|
6 + 6 * 7 * (4 * 9 * 9 + 7 + 4 + 9) + 9
|
||||||
|
(9 * 9 + 6 * 6 + 3) * 3 * 2 + (3 * 8 + 8 + 4)
|
||||||
|
9 + 6 + (9 + 3 + (7 + 5 + 2 + 3))
|
||||||
|
5 * 4 + (2 + 2)
|
||||||
|
((7 + 7 * 6 + 2) + 7) + 8 * 7
|
||||||
|
6 + (5 * 2) * 9 + 8 + 7 + 8
|
||||||
|
9 * 8 + 3 * (4 + 8 + 8 + 5 + 9)
|
||||||
|
4 * (2 * 8 + 8 + (5 + 5 * 3 * 5 + 2) + 9 * (8 * 6 + 2 + 2)) + 9 * (6 + 6 * 3 + 8) * 4 + 7
|
||||||
|
(3 * 6 + (4 * 9 * 2 * 4 * 8)) + (3 * 5 + 7) + ((9 * 5 + 5 * 2) + 9 + 8 * 7 + 3)
|
||||||
|
5 + (3 + 9 + 6 + 2 + (6 + 4 * 2))
|
||||||
|
(9 * 5 * (9 * 9) + 8 * 7) + 2 * 7 * 3 + 3
|
||||||
|
(9 * 5 + 6 * 7 + 4) * ((3 * 2 * 9 * 4 + 4 + 6) + 2 * 4 + 4 + 9 * 7) * 2 + (8 + 8 * 6 * 8)
|
||||||
|
6 + ((5 * 9) * 4 * 5 + (4 * 3 * 7) * (5 + 3 * 3 * 8 + 4 * 4)) + (5 + (6 + 3) * 2 + 8 * 2 + 3) + 3 * 3
|
||||||
|
8 + (3 * 8 + 5 + 6 + (3 + 4) + 8) * 2
|
||||||
|
9 + 2
|
||||||
|
(8 + 2) * 2 * 2 + ((9 * 9 * 4 * 5 * 5 * 3) * 2) + (4 * 3 * 8 + 9 + (8 * 3 * 7 + 4 * 8 * 5))
|
||||||
|
6 * 7 + (8 * 5 * 8 * 7 + 7) * 9 + 3 * 7
|
||||||
|
3 * 5 * 7 + 8
|
||||||
|
(3 + 2 + (8 + 9 * 9 + 6 * 8 + 6) * 3 * 6 + 6) + 4
|
||||||
|
3 + 8 + 4 * (4 + 7) * (5 + (3 + 9 + 6) * 7)
|
||||||
|
((4 + 5 * 8 * 5) * 8 * 5) * (2 * 4 * 9 * 4) * 6
|
||||||
|
(8 + 3 * 5) * 2 + 2 * 4 * 8 * 6
|
||||||
|
8 * 7 * (4 * 7 + (4 * 3 * 4 + 3 * 7) + 2 * (6 * 6 + 6 + 4 + 7 + 2))
|
||||||
|
6 + 9 * 5 + 4
|
||||||
|
5 * 6 * 8 * ((6 + 9 * 2 * 8 + 5 + 8) + 3 + 6)
|
||||||
|
4 * ((4 + 7 * 9 + 9 + 3) * (2 * 4) * 6 + (5 + 9 + 7) + 5) * (8 + 2 + 8 * 5 + (6 + 7 * 7 * 6)) * 2 + (7 * 8)
|
||||||
|
(7 * 3 + 4 * (9 + 2 + 6 + 6 * 4 + 2) * 4) * 6 * 2 * 2
|
||||||
|
3 * (4 * 8 * 3 + 8 * 6 * 2)
|
||||||
|
(3 * 3 + 8 * 4 * 4 + (6 + 3)) * 2 * 7 + 5 + 2 * 4
|
||||||
|
9 * 3 * (4 * 7 * 9 * (2 * 4 + 9 * 2) * 2) * 7
|
||||||
|
5 + (4 * (6 + 5 * 9 + 6 * 7 * 3) + (7 + 2 + 2 * 9 + 2 + 2) * 3) * 4 * 6 + 2
|
||||||
|
7 * (6 * 6 * 7 * 2 + 8 + 8) + 7 + 8 + 7 * (9 + 3 + 4 * 4 + 4 * 8)
|
||||||
|
8 + 2 * (4 + (2 * 3 * 8 * 4 * 3))
|
||||||
|
6 * (6 * 4 + (5 * 7 * 8 * 2 + 4 * 9) * 2) * 9 + 3 + (3 + 7 * 5 + 3)
|
||||||
|
3 * 7 * 5
|
||||||
|
7 + (2 * 5 + 5)
|
||||||
|
6 * (5 * 9 + 5) * (8 + 7) * ((8 * 8 + 4 + 5) * (2 * 2 * 7 + 4 + 2) + 5) * 3 * 3
|
||||||
|
4 * 2 * 2 + ((4 * 7 * 8 + 9 + 2) + 6 * 4 + 3) * (4 + 3 + 3 * 9 * (8 + 6 * 8 + 3 + 9) * 3) * 8
|
||||||
|
8 * 9 * 8 + (9 * 7 * 2 + 7) + 4 * (6 + (8 + 3 + 5) * 5 * 3 + 6 * 9)
|
||||||
|
((4 + 4 + 5 * 8 + 9 * 4) * 8 * 9 + 6 * 9 * 8) + 4 + ((9 * 2 * 7 + 5 + 3 + 6) + 3 * 4) * 8
|
||||||
|
4 * (3 + 4 + 8 * 6 + 8 * 7) + 3 * 9 * 8 * 8
|
||||||
|
(4 + 8) + ((7 + 3 * 9) * 5 * 8 * 4)
|
||||||
|
3 * 9 + ((5 + 4 + 8 + 9) + 5 + 5 + 8 + 5)
|
||||||
|
8 * (9 * 3 * (9 * 8 + 6 + 3) * 8 + 6)
|
||||||
|
(5 + (3 * 7 + 6 + 9 * 7) + 8) + 2 * 3 * 7 + 2
|
||||||
|
8 + 3 + 8 + ((3 + 6 + 8 + 2) + (4 * 9 * 7 + 5) + 6 * 2)
|
||||||
|
(7 + 5 + 6 + (6 * 9 + 8 + 8 + 2 + 5) * 4 * (9 * 4 * 8)) + (8 + 5 * 3 * (2 + 8) + 7) + 8
|
||||||
|
2 + (3 + (6 + 9 + 9 * 5 + 2) + 9)
|
||||||
|
((4 * 9 + 4 + 7) + 6) * 5
|
||||||
|
2 * 3 + (7 + 5 + 9 + (9 + 9 + 8 + 5 * 8 * 7))
|
||||||
|
7 * (4 + 4 * 7) * 4 + 2
|
||||||
|
3 * (4 * 6) * 2 + 4
|
||||||
|
2 * ((5 * 8 * 8 * 4) + 8 * 6 * 3 * 3)
|
||||||
|
6 + (2 * (8 + 4) * 3 + 8 * 4) + ((3 * 9 + 6 * 4 * 8 + 3) + 9 * 9 + 3 + 3 + 2) * 4 + 6
|
||||||
|
3 + 6 * 6 + (6 + 9 + 7 + 2) + 9
|
||||||
|
(5 * 5 * (2 + 2 + 9 + 8)) + 7
|
||||||
|
(5 * 7 * 6 + 9) * (6 + 4 + 9 + 6 * (8 * 2 * 2 + 5 * 9) + 6)
|
||||||
|
9 * 7 + (2 * 2 * 8 + 9 * 7 * (8 + 4 * 8 + 4)) + (8 + 6 + 6)
|
||||||
|
6 + ((3 + 9 * 4 + 7) * 3 * 8 + 4 + (3 + 3 * 6 + 6 + 8 * 5)) * 8 * 8 * 3 + 3
|
||||||
|
5 + 3 + 6 + (2 + 3 * 9 + 2 * 8 * 8) + (6 * 6 * 5 * 6 + 6)
|
||||||
|
(6 + 2 * 8 * 6 * 7) * 6 + 6 + 6
|
||||||
|
(3 + (6 + 9 + 3 + 3 * 4) * 8 + 6 + 7 * 8) + (2 + 8 + 9 * 9 * 7) + 4
|
||||||
|
2 + 7 + 2 + 3 + ((4 * 5 + 4 * 3 * 3 + 7) * 4 + 8 + 9 + (2 + 7 + 2 * 5 + 3) + 9) * 6
|
||||||
|
(7 * (6 * 5 + 2 * 6 * 2)) + 9 + 6 + ((8 + 4) * 5 * 3 + 5 * 8) * ((5 * 5) + (8 + 4 * 5) * 8 + 4 + 2)
|
||||||
|
((4 * 6 + 2 * 5 + 8) * 9 * 3) + 3 + 5 + 3
|
||||||
|
5 * 5 + (2 * 9 * 9 * 6) + 3 * 8
|
||||||
|
3 + 7 * 2
|
||||||
|
9 * (5 + 6 + 2 + (8 * 8 + 9 + 8 + 4 * 6))
|
||||||
|
(9 + 2 * 7 * 2 + 5) + (4 + 6 * 3) + ((6 * 4 + 4 * 2 + 5) + 8 + 6 * 6)
|
||||||
|
3 + (7 * (2 + 5 * 5 * 4 * 4 + 7) * 4 * 4)
|
||||||
|
8 + 3 * ((3 * 7 * 3 + 4 * 5) * (6 + 8 + 9 * 7 + 6) * 9 + 5 * (5 + 4 + 4 + 4))
|
||||||
@@ -0,0 +1,536 @@
|
|||||||
|
107: 18 | 47
|
||||||
|
116: 1 18 | 111 47
|
||||||
|
21: 45 47 | 110 18
|
||||||
|
20: 2 47 | 76 18
|
||||||
|
44: 47 47 | 18 107
|
||||||
|
2: 47 18 | 107 47
|
||||||
|
113: 51 47 | 35 18
|
||||||
|
80: 18 22 | 47 44
|
||||||
|
110: 18 18 | 47 107
|
||||||
|
1: 22 18 | 112 47
|
||||||
|
77: 47 7 | 18 113
|
||||||
|
16: 121 47 | 2 18
|
||||||
|
66: 91 18 | 58 47
|
||||||
|
86: 12 18 | 78 47
|
||||||
|
72: 18 76 | 47 121
|
||||||
|
46: 47 68 | 18 82
|
||||||
|
131: 66 18 | 75 47
|
||||||
|
108: 84 18 | 24 47
|
||||||
|
27: 22 47 | 110 18
|
||||||
|
53: 108 18 | 122 47
|
||||||
|
90: 77 47 | 37 18
|
||||||
|
6: 18 29 | 47 52
|
||||||
|
10: 76 18 | 44 47
|
||||||
|
43: 47 39 | 18 130
|
||||||
|
106: 18 112 | 47 110
|
||||||
|
89: 97 47 | 51 18
|
||||||
|
84: 112 18
|
||||||
|
91: 74 47 | 110 18
|
||||||
|
114: 18 47 | 107 18
|
||||||
|
105: 26 18 | 118 47
|
||||||
|
18: "b"
|
||||||
|
19: 2 47 | 22 18
|
||||||
|
15: 34 47 | 2 18
|
||||||
|
111: 110 47 | 22 18
|
||||||
|
94: 47 95 | 18 57
|
||||||
|
34: 107 107
|
||||||
|
60: 47 114 | 18 121
|
||||||
|
62: 44 47 | 45 18
|
||||||
|
50: 38 47 | 103 18
|
||||||
|
61: 18 44 | 47 110
|
||||||
|
87: 112 107
|
||||||
|
8: 42
|
||||||
|
31: 18 49 | 47 25
|
||||||
|
57: 18 20 | 47 60
|
||||||
|
103: 18 67 | 47 40
|
||||||
|
39: 18 45 | 47 22
|
||||||
|
128: 112 18 | 13 47
|
||||||
|
5: 45 47 | 44 18
|
||||||
|
13: 18 18
|
||||||
|
3: 47 10 | 18 80
|
||||||
|
11: 42 31
|
||||||
|
124: 22 18
|
||||||
|
88: 18 18 | 47 18
|
||||||
|
54: 32 18 | 129 47
|
||||||
|
63: 81 18 | 86 47
|
||||||
|
49: 18 132 | 47 105
|
||||||
|
102: 10 18 | 120 47
|
||||||
|
93: 18 44 | 47 34
|
||||||
|
65: 107 2
|
||||||
|
132: 83 47 | 14 18
|
||||||
|
125: 18 43 | 47 71
|
||||||
|
109: 47 22 | 18 76
|
||||||
|
117: 18 112 | 47 22
|
||||||
|
59: 47 22 | 18 13
|
||||||
|
75: 18 109 | 47 27
|
||||||
|
4: 47 90 | 18 69
|
||||||
|
48: 18 65 | 47 115
|
||||||
|
24: 18 2 | 47 44
|
||||||
|
42: 47 50 | 18 4
|
||||||
|
96: 106 47 | 16 18
|
||||||
|
101: 111 47 | 91 18
|
||||||
|
58: 47 76 | 18 73
|
||||||
|
79: 47 73 | 18 22
|
||||||
|
12: 47 34 | 18 88
|
||||||
|
25: 33 47 | 55 18
|
||||||
|
130: 18 114 | 47 44
|
||||||
|
83: 126 18 | 102 47
|
||||||
|
45: 47 18
|
||||||
|
9: 41 18 | 62 47
|
||||||
|
78: 112 18 | 45 47
|
||||||
|
14: 3 47 | 85 18
|
||||||
|
97: 47 45 | 18 22
|
||||||
|
22: 18 47
|
||||||
|
41: 18 22 | 47 112
|
||||||
|
112: 18 47 | 18 18
|
||||||
|
68: 21 18 | 19 47
|
||||||
|
121: 47 47 | 18 18
|
||||||
|
119: 22 47
|
||||||
|
129: 47 5 | 18 39
|
||||||
|
30: 73 18 | 2 47
|
||||||
|
98: 34 18 | 45 47
|
||||||
|
40: 18 70 | 47 9
|
||||||
|
7: 64 47 | 79 18
|
||||||
|
115: 121 47 | 44 18
|
||||||
|
32: 19 47 | 30 18
|
||||||
|
73: 18 47 | 47 18
|
||||||
|
35: 18 76 | 47 45
|
||||||
|
95: 93 18 | 72 47
|
||||||
|
52: 28 47 | 124 18
|
||||||
|
126: 59 18 | 92 47
|
||||||
|
26: 104 18 | 89 47
|
||||||
|
81: 47 98 | 18 127
|
||||||
|
0: 8 11
|
||||||
|
64: 112 47
|
||||||
|
71: 47 119 | 18 117
|
||||||
|
74: 47 47
|
||||||
|
82: 47 120 | 18 17
|
||||||
|
56: 74 47 | 88 18
|
||||||
|
123: 88 47 | 76 18
|
||||||
|
33: 6 18 | 63 47
|
||||||
|
104: 80 18 | 128 47
|
||||||
|
99: 98 18 | 23 47
|
||||||
|
38: 94 18 | 53 47
|
||||||
|
36: 47 110 | 18 74
|
||||||
|
37: 47 48 | 18 101
|
||||||
|
70: 61 47 | 87 18
|
||||||
|
55: 47 54 | 18 131
|
||||||
|
23: 2 47 | 112 18
|
||||||
|
122: 10 47 | 64 18
|
||||||
|
120: 88 18 | 112 47
|
||||||
|
28: 18 112 | 47 73
|
||||||
|
51: 47 74 | 18 110
|
||||||
|
17: 47 88 | 18 22
|
||||||
|
127: 18 73 | 47 45
|
||||||
|
69: 125 18 | 46 47
|
||||||
|
92: 2 47 | 114 18
|
||||||
|
29: 117 18 | 56 47
|
||||||
|
67: 18 96 | 47 116
|
||||||
|
85: 18 36 | 47 15
|
||||||
|
100: 18 123 | 47 12
|
||||||
|
47: "a"
|
||||||
|
118: 100 47 | 99 18
|
||||||
|
76: 47 47 | 47 18
|
||||||
|
|
||||||
|
bbbbbbbbbaaaabbaababbabbaaabbbabbbbaaabb
|
||||||
|
babaabbaabbbbaababbaabbabaababba
|
||||||
|
baabbaaabbabbbbaaabababb
|
||||||
|
bbbbababbaabbbabbabaaaaaaabbbbbbabbabbbaabbbbbbbbbaaaaab
|
||||||
|
bbbbbabbbbbbaaabbaaaaaba
|
||||||
|
baabbabbbaabbbabbaabbabbababaaab
|
||||||
|
bbabbbbaabbabaaababbbbbbbbbabaab
|
||||||
|
aaababbaabbaaabbbbbbbabbbaaaabbaabbabbabaababbaa
|
||||||
|
aabbbabbaaaaaaabbbabbaba
|
||||||
|
baabaaaabbbababbbbaabbbb
|
||||||
|
bbbbabababbbbabbbbbbbbba
|
||||||
|
babbaababbbbababaabaababbbabbbbbaabaaabb
|
||||||
|
baabbbabaabbabbbaaaaabba
|
||||||
|
baabbabbbbaabbbabbbaaabb
|
||||||
|
aaaaabbaababaabaabbabbbbbabbabaabbaaabbb
|
||||||
|
babbaabaaabbbbbbbbbbbabbaabbaaabbaaaaabbabbaabaabaaabbbaaabaaabb
|
||||||
|
aaabaaabbaaaaabbabaaaaababbabaaababbaabaabbaaaabaaaabaaaaaaabbaaababbbbb
|
||||||
|
baaababbbaabaaaaaaaaaaaabbababaababaaaaabaaabaaa
|
||||||
|
abaaaaabbbaababababaaaba
|
||||||
|
abbaabbabaaabbabaaaaaabaababbabbbbbbabbaabaabbbb
|
||||||
|
baabbabaaaaabbabbaaaaaabaababaab
|
||||||
|
abbaabbabbaabaaaabbaaabbabbaaababaaaaaaa
|
||||||
|
abaaaaabbbbaabbabbbbbbaaaaaaababbbbbbaaa
|
||||||
|
aabbaaabaaaaaabababaabab
|
||||||
|
bbbabbaaaaabaaaaaabbbbaa
|
||||||
|
abbaaababbaaaabbaabaaabbbaaaabbbbbbbaaaaabbbbabaabaabbab
|
||||||
|
aaaaaaaaaababbabbbabbaba
|
||||||
|
abbaaaaabbbabbbaabbaaabbabbbbaabbabbabbbabaababbbbabaaba
|
||||||
|
babaaaaabaabbaaabbaabaaababababa
|
||||||
|
bababaabbaaaabbabbbabbbabaabbaaaabbaaababbbbbbaaaaababaa
|
||||||
|
aabaabbababbbabaaaaaaaabababaaaababbabaabbaaaaabbbbbbaab
|
||||||
|
baaabbbbaaabbaabaaaaabaaababbaabaaababbabaababbb
|
||||||
|
abaabbbaaabbabbabaaababbbbabbaaaabaaaabb
|
||||||
|
abbaababbaaaaabbbbaaabbb
|
||||||
|
aabbabbabbaaaaaabbbaaabb
|
||||||
|
baabbbabbabbaababbabbbbabaabbbabbbbabbbaabbabbaababbbbbaabbababbaababaab
|
||||||
|
abbaabaabaaabbbbbaaabbabababbabbbaabbabbaaabbaaababbbababbbbbaaa
|
||||||
|
aabbbaabbbbababbbabaabaa
|
||||||
|
baabbaaaabbbaababaabbabbabbbbbaabababaaabaabbbbaaababbbb
|
||||||
|
abbabababbbbbabbababbbaaaaaaabbbaabababb
|
||||||
|
baaabbabbbbaababbbaaaabb
|
||||||
|
aabaaaaaaaaaaabbbabbbabbaaabbbab
|
||||||
|
abbaabbababbbbaabaaaabbaababbabbaaabbbbabbbaaabbbbaaaabb
|
||||||
|
baaabbabbbaabaabbbabbaba
|
||||||
|
abbbbbaaabababbbbbbabbbb
|
||||||
|
aaabbabbbbaabbbabbaaabbb
|
||||||
|
babbbbaaabaaabbaabaaaaabbabbaaab
|
||||||
|
aaabbabaabbaababaabbbbbbbabaaaba
|
||||||
|
baaaaabbababbbbabbbbabbbababaaaa
|
||||||
|
abbaaaabaabbbaabbabbbbab
|
||||||
|
bbbaabbaabaaaaaaababbbbaabbaaaaabbaaabbabbabbbaa
|
||||||
|
baabbbabaabaabbaababbabbbbaaaaaaaabbbaabbbabbbaa
|
||||||
|
babaabbabbbbaabaabababbbaabaababbbbaabbb
|
||||||
|
aabbbabbbaaaaaababbaaaaaaabbaaabbabbabbaaabbaaba
|
||||||
|
aaabababababbbabbbaabaabaaababbaabbbaabbbbaaaaba
|
||||||
|
aaabaaababbaababbbbabbab
|
||||||
|
baaabbabbaabaaabaaaababbabbbabba
|
||||||
|
abbbabaaaabbbaaaabaabbabbbaabbbbaaabaabb
|
||||||
|
abbbbabbabbaababbbbbbbaabaaabbbbabaabababbbaaaabaabbaaba
|
||||||
|
baabbababbbabaaaaabbbaab
|
||||||
|
aaaabbaabbaabbbbaabbaaaabbabbabaabaaababbaabaabababbaabbbabbbaabaabbbabbbabaaabb
|
||||||
|
abaaaaabbabbaaaabbabbbaa
|
||||||
|
baaabbbbababbbaaaababbabbabbaababbabbbabbbbbaaaa
|
||||||
|
aaaababbabaaaaabbbaabaabbababbbbaabbaaabbbbaaabbbabbbaaaababbaba
|
||||||
|
abbaaabbbbbbaaabaaaaaababbbbbaaa
|
||||||
|
aaaaabbababbaabaabaaaaaababbbaabaaaabbaa
|
||||||
|
bababaabbbbbaaababbaaaaaaabbbbabaaaaabbbaabbbaaa
|
||||||
|
bbaabbaaaabaaabbaabbaaaabbabaaaabaabbbab
|
||||||
|
aabbaaabbaabaaaaaaaababbbabaabbaaaababbb
|
||||||
|
abbbaabaabbaabbbaaaababa
|
||||||
|
abbaaabbaabaaaabaababbbb
|
||||||
|
baabababbbbaaabaaabbabababbbabba
|
||||||
|
abaaabbaaaabbabaabbaaabbaaaaaaaaabbbaababaababbaaabaaaaaabbbabaa
|
||||||
|
abbbbbabaabbaaabaaaaaabb
|
||||||
|
abbaabbaabbbbaabbbaabaababbbbbaaababbbbb
|
||||||
|
aaabbababaaabbabbbaaabbb
|
||||||
|
baaababaababaabbbbbaabaa
|
||||||
|
bbbaababbbaaabbaaaaabbabbabbbbab
|
||||||
|
bbaabaaaaaababbabbaaaaab
|
||||||
|
aaabaaabbabbabbabbaaaaba
|
||||||
|
babbabababbbbabbaabbbaba
|
||||||
|
ababaabbbaabbaababbaabababbbabbbabbbbaabbababaaababbbabbbbbabbbb
|
||||||
|
abbbbabbaababbababbbbbaaabababbbaabaaababbbaaabb
|
||||||
|
babaabbbababaabaabaaabbbbaabbbaa
|
||||||
|
bbbbabbbbbababaabbbbaaabbaabababbbbbabaabaaaaaaa
|
||||||
|
aabbabaaaaabaaabaaaaabab
|
||||||
|
abababaaabbabaaabbaaabbababbbbaaaaaababbbabbbaaa
|
||||||
|
abbaaaaabbabbbbaaabaabbabbaabaababbaaabaaababaaa
|
||||||
|
aabbbabbababaabbababaabbaaabbbab
|
||||||
|
baaaaabbbbbbbbaaabbbbbabaabaababaaaabaab
|
||||||
|
abaaaaaaaaabbababbabababaabbbabbbbaabbababbbaaab
|
||||||
|
baabaaaaabbaaaabbbbabaaabbababababbbbbba
|
||||||
|
baabaaababababaaaabbabaaaabaabababaaaabb
|
||||||
|
bbaaabbaaaabaaababbbbabbaababaaa
|
||||||
|
babaabbaabbbbaabbbaaabbabbaabbbbbabbbaaa
|
||||||
|
bbaaaaaaabbaaaaaababbaaaababbbabbbbaaaabbaabababababbabbbbbbaabbaaababbbbbbbbbab
|
||||||
|
aabaababbabbaaaaabaaaaabbababbaa
|
||||||
|
aaabbaabaabaabaabbbaababaabaabaabbaabaabbaaabbaa
|
||||||
|
abaaabbabbbabbaabbbbbabbabaababbababbaaa
|
||||||
|
bbabaaaaaababababbababba
|
||||||
|
aaabbabbbabbbbbbabbaabbbbbbaababbaabaaabababbbbbabbabbaa
|
||||||
|
aabbbbabbabbabaabababbaa
|
||||||
|
aabaaabaaaabaaaabbabbbbaaaabbbbb
|
||||||
|
aaaabbabbbabbbbbbaaababaaaaabbabaaaaabab
|
||||||
|
baabbbabaaabbabbbbababba
|
||||||
|
bbbabbbaabbaabaabbabababbbbababbabaaabbababbabbbabbbaaaabbaaababbaababaa
|
||||||
|
abbaabbbbaaabbabbaaaaaaa
|
||||||
|
aabaaabaaaaaaaaaaaaaaabb
|
||||||
|
babbaaaabbabaaaaaaaaabbaabbbbaabbbabbbbbbbbaaaaa
|
||||||
|
aabbaabbbaaaaabbabbbbbba
|
||||||
|
baaaaabbaaabaaaaabaabbaa
|
||||||
|
bbaabaabbaabbbabbabbbaabbbabbbaababaabab
|
||||||
|
aaabbabababaabbabaaababaaaabbabbbbabbaabbabbbbba
|
||||||
|
bbaaabbabaaababbabaaaaaabaabbbaa
|
||||||
|
bbbbbabbabbbbbabbbbababa
|
||||||
|
abaabbbabaabbabababaabaa
|
||||||
|
babbabaaaaaababbbaaaaabbababbabbbbbbbabbbbbbabaa
|
||||||
|
aaaababbabbbbbaabbbbaaabbaaabbbbaabbbbbababbaabababbbaaa
|
||||||
|
babaaaaaabbbabbbaabaabbabaaabbbbbabababbbaabbbaabbaabbaa
|
||||||
|
ababbaabbbbbbabbbabaaabbabaabaabbababbbbabbbbaab
|
||||||
|
abaaaaaaaaaaaabaabbbbaabbababbbbbaaabbaa
|
||||||
|
bbbaabbabbbabbaaaaabbabbbaaaabbaaabaabbb
|
||||||
|
aaaaaaabaaabaaabaabbaaabbbabbbabaaaabaaababbbaaa
|
||||||
|
aabbbbababbaaababababaabaababbba
|
||||||
|
bbabbbbbbabaabbbbabbababaaaaabaabbaaabaabbbabbabababbaaa
|
||||||
|
babaabbaabbabbabbabbabaaabbabaab
|
||||||
|
bbbabbbaabbaaabbaabaaabaaababbaa
|
||||||
|
abbbabbbababababbaaabbab
|
||||||
|
abbaaaaababbababaaaaaabaaabaaabb
|
||||||
|
aaaaaabaabbaaabaaabaabbabbabbaab
|
||||||
|
aabababaaabaaababaabaabbaababaabbaabaaba
|
||||||
|
bbababaabaabababaabaaaabbaaabaab
|
||||||
|
aabbbbabbaaabababbabaabb
|
||||||
|
bbbbbbaaaabbbbabbabaaaababbbbbba
|
||||||
|
ababbbbabaabaaaaababbbbaabbaaaabbbabbaaa
|
||||||
|
abbaaabbaabbaabbaaaababbbaabaabbaabbbbbabababaaabbaaababbbabaaab
|
||||||
|
aaaaaaabbaaaaabbabaabaabbbbbbbabbbbbaaaabbbabbbb
|
||||||
|
babbabbaaaaaaaaabbbaaabb
|
||||||
|
aaabaaaaaaaaaabaabbabaaabaaababbbbbabaaaabbbaaba
|
||||||
|
aabbaaabbaabbabbbbabbaaa
|
||||||
|
aabbbaabaabbbbbaabbaaababbaabbbabbbabbbb
|
||||||
|
bbbabbbabbababababababbbabbababb
|
||||||
|
aaaaaaabaabbabaaababbbbb
|
||||||
|
bbabababbbbabbaabaaabbababbaaaaabbaaabaa
|
||||||
|
bbabbbbaaabbaabbabaabbaa
|
||||||
|
aaabbaabaabaabbaabbaababaabbbaabaabaabbababbabababaaabbbbbabaababaaaababbbbbbbbabababbba
|
||||||
|
abababaaabbaabbabbbbaaaa
|
||||||
|
abaabbbaaabbbabaabababbbabaaaaabbaaaaabaaabbabbbbaaaaaabbabbabab
|
||||||
|
baabababaabbaabbbbababba
|
||||||
|
abbaaabbabbaabaabbabbaab
|
||||||
|
baabbaababaabaababaaabab
|
||||||
|
abaabaaaaaababbabbabbaba
|
||||||
|
baaabbbbbbbbbbababaabbab
|
||||||
|
babaaabbaabaabbaabbabababababbba
|
||||||
|
aaababbaaabaabaabbbabbbababbbaabaabbbaaa
|
||||||
|
aabbaaaaababbbbaababbaaa
|
||||||
|
babaaaabbbabbbbababbbabb
|
||||||
|
bbbaabbabbbaabbabbabbbaa
|
||||||
|
babaaaaaabbaabbabbaabaabbbbbbabbbbaaabbabababaaaaaabbbbb
|
||||||
|
babbaaaabbbbababbaabbbabbaaabaabbaabbbba
|
||||||
|
bbbbbbaabaaababaababbaabababbbab
|
||||||
|
abbabbbbaabbbbaaabbbaabbbbabbabb
|
||||||
|
bbbabaaaaabbaaabbabababb
|
||||||
|
abbaabababbbbaababbabbabbabbaaaaaaaaabaaaaaabaab
|
||||||
|
aabbabaabbababaaaaabbababbaabaaabaaaaaaa
|
||||||
|
bbbbaabbbbbababaabbbabaaaabababb
|
||||||
|
baabbabbaabaaabaaabaaabababaabab
|
||||||
|
baabaaaaaabbaaabbbabababbabbbbbbbbbbaaaa
|
||||||
|
aaaaaaababaabbbabbaabbbaaaaabaababbbaaababbbaabaabbbbbbbababbababaabbaab
|
||||||
|
abbabbbbbbbbbabbababaaaa
|
||||||
|
babbbaabaabbbbabbaabbaabbbbabbaabbabbaab
|
||||||
|
ababaabbbbaabaabaaabbabbbaaaaaaa
|
||||||
|
baaaaaabaabbaaababbbbabbabaaababbbaaaaba
|
||||||
|
bbbbabbaaabbbaabbaaaabab
|
||||||
|
ababbbaaabbabbabbbbabbab
|
||||||
|
abababaaaaabbabbbbabaaba
|
||||||
|
aaaaabbabbabbbababbbabba
|
||||||
|
aabbbbbabbabababaabbaaabaaaaabbbbbbaaaab
|
||||||
|
bbbabaaabbbabbbaaaabbababbbbbaba
|
||||||
|
aaabaaababbbaababaabbbaa
|
||||||
|
aaaababbbbbbbbabaabbaabbabbbabbbbababaaabbbaabbbbabbbbab
|
||||||
|
aabaabbabaabababbabaabbaaaaaabab
|
||||||
|
abbaabababaabaaababbbbaaaabbaaba
|
||||||
|
bbabababbaabaabbababbaaa
|
||||||
|
babaaaabbaabababbbbaabbaaaabaaabbababbaaaaaabbaabbbaaaaa
|
||||||
|
bbbabbbababbbbbbbaaaabaa
|
||||||
|
bbbbabbaababbbaabbabbbbabbabaaaaaabaababababaababbaababbbbbbaaaa
|
||||||
|
baabbbbaaaabbbabababbaba
|
||||||
|
aabbbbabbbbbababbbababbbababbaaaabbbbaaa
|
||||||
|
aabbaaabbbabababbbbabbbabaabbaaababbaaababababba
|
||||||
|
baabaabbbaabaaababbbbaabbaaaaababababbbabaaabbbbbaababababaaaaaa
|
||||||
|
bababbbbaabaaaababbaaabbbabaabab
|
||||||
|
babaabbbaaaabbbaaaaabbbbabbbaaaabbabbaba
|
||||||
|
abaaaaabbbbabbaabbbbbbabaaabaabb
|
||||||
|
ababaababbaabaabababbaba
|
||||||
|
baabaaaabaabbabbbbabaaaababbaaab
|
||||||
|
aaaabbbabbbbbbabbbabbabb
|
||||||
|
bbbbbbabbabbaaaaabaaabbabaaababbaabbbaaa
|
||||||
|
bbbbbabbbbbaababbabababb
|
||||||
|
aaabbaababababaababaaabbabaaabbb
|
||||||
|
baabaabbaaaaabbabaabaaaaabaaabab
|
||||||
|
bbbbbbababbbbaababbabbabbbbaabaa
|
||||||
|
abaabbabbabaababbbbbbbbabbbbbbaaabbbaabaabbbbbbbbbbbaaab
|
||||||
|
abaabababaabbabbbbbbabbabaaabaab
|
||||||
|
bbabbbababbaabbaababbbbaabbaabbbbbaabaabbabaababbbababbbbaababaa
|
||||||
|
abbaaaaaaaaabbbaabbabaaaabbaaaaaababbabaaaaabaabaabababb
|
||||||
|
aaaaabbaaaabbbbaaaabbbbaaaababbababbbaabbaababbababaaabaaabaaabbbbaaaaab
|
||||||
|
aabaabbaaabaaabaaabababb
|
||||||
|
aaabbabbabaaaaabbbbbababaaaabaaa
|
||||||
|
baababababbbbabbabbabaaaaabaaabbaaababbb
|
||||||
|
ababbbbaabbaabbaabbbbaaa
|
||||||
|
aaaabbabbbabaaaaaabaabbb
|
||||||
|
bbbbabbaaaaaabbabbbababa
|
||||||
|
aaaaaabbbabaaababaaabbaaabaabbbabaaababbbbabaabaaababaabaaaaaaaaabbbaaaababaabaa
|
||||||
|
baabbbababbbbbaabaabaaaaaaabaabb
|
||||||
|
abbabbabbbbbabbbaaaaabbabaaabbaa
|
||||||
|
baabaaababaabaabbaabbabbaaaaaaababbabaaaaababbba
|
||||||
|
baaabbabaaaaabaaabbabbbaaababbba
|
||||||
|
aabbaaababaabaaababbaabaaababbabbabbbbabbbaaaabb
|
||||||
|
baabbaaabaabbaababbbbaba
|
||||||
|
aaaaabaabbaaabbaaabaaaabbaabbaaaaabaaabb
|
||||||
|
bbaababaabaaabbababababb
|
||||||
|
bbabbabbbbaaaaaaaaaabaabbbaaabaabbabbabbbbbbabbbabbbaaaabaababbbbabbbbabababbaab
|
||||||
|
aaabbbbabaabaaaaaaabbbab
|
||||||
|
baabbbabbbbabbaaabaaabab
|
||||||
|
bbaaabbabaabababaabbabbabbaaabaa
|
||||||
|
ababbbaaababaabbbabaaaabbababbbbbaaaaaba
|
||||||
|
baabbaaaabaababaaabababb
|
||||||
|
aababbabbbababababbbbbaabaabbaaaaaaabaaabbaaaaba
|
||||||
|
aaaaaaabbaabaaaaababababbabbaaabaaabaaba
|
||||||
|
abbaabbbaabbbabbaaabbaaa
|
||||||
|
baabbaabbbbababbbaaaaabbbbabbabb
|
||||||
|
aaaaabbababbaaaaabaaabbaabaabbbabaababaa
|
||||||
|
aabbabbbbbbbabbbbbbbbbba
|
||||||
|
abababbbaaaaaaabaabbabbaabbbbaaa
|
||||||
|
abababbbaabaaababbaababaabbabbaa
|
||||||
|
baabbaabaaaaaaaaaaabaaba
|
||||||
|
ababbbaabbbbababbbaaaaab
|
||||||
|
baaabbabaaabaaabaaaabbbbbaaaaaba
|
||||||
|
bbaaabbabbabaaaabbaaaaaaababaabbbabaaaba
|
||||||
|
abaabbbaabaaabaaaabbbbbbbaaabaabaababbba
|
||||||
|
bbbbabaabbbbbaababaaaaabaaabbabbbabababbbaabbaaa
|
||||||
|
abaabaabaaaaabaababaabbbbbaabaaaaaababbb
|
||||||
|
aabbbbbaaabbbbabaabaaababbbbbbabbbbaabbbbaabbbaa
|
||||||
|
abaabbbaabaaaaaaaaaabaaa
|
||||||
|
baabbbababbbaababbabaaba
|
||||||
|
babbbaaaaabbbababbababbabbababab
|
||||||
|
baaabbababbbabbbabbbbbba
|
||||||
|
abbaaaaaabaabaabaaabbbbaabbababbababbaaa
|
||||||
|
abbaaaabbaaabbababbaababaaaababbbabbaabb
|
||||||
|
baabaaabaaabaaabbaabababbaabaaba
|
||||||
|
ababbbbaabbaaabbbbaababaaaaabbbbabbababb
|
||||||
|
baabbabbbbabbbbabaabbababbbbababbaaaaaababababba
|
||||||
|
abaabaaaabbaaaababbaaaabababbbaaababbabaabaabababbbbbaab
|
||||||
|
abbbbbabbaaaaaabbabaaaaabaaabbbbbaabababaaababaaabbbabab
|
||||||
|
baabaaabbabbabababbaaabbbabbabbabbbbbabbbabbbaaabaaaabab
|
||||||
|
babbabaaaaaabbbbabaaaaabaabbbabbabbaaaaaaababbba
|
||||||
|
babbbabaabbbaaaababaabaa
|
||||||
|
aaabbabbbabbabaaabbbbabbabbababbabbbabba
|
||||||
|
abbaaaabaaabaaabbaabbabaaaababbabaaabbbbbababbaaabbabaab
|
||||||
|
aabbabaabaaaaabbaabbbaabbabaabab
|
||||||
|
baaaaabbbbaaaaaaabbbbbabbbbbbbbbaababbbbbbbaabaa
|
||||||
|
bbababaaabbaabaabbabababbabaabbbabbaaaaaabbbabbb
|
||||||
|
aaaabbabbbaabaabaaaaaaaaabbbbbaaaaabbbababbbaaaa
|
||||||
|
abbabbbbbbbbabababaabbab
|
||||||
|
babaabbabbbbabbabaaabbbbbbababbaaaabbbabbabaaabaabbabaab
|
||||||
|
bbababaaaabbbabbbbababbb
|
||||||
|
baabbbababbaabaabbbbababbababbbbabbbabab
|
||||||
|
baabaaaabbbbbbababbabbaa
|
||||||
|
babaaaaaaabbbaabbbbbbbaabaabaaabaaaaabbbabaaabbb
|
||||||
|
aaababbaaaaabbbbbbabbbba
|
||||||
|
aabbbaabbbabaaaaaabababaabbbabbbbbaaabaabbbaaaba
|
||||||
|
abbbabbbbabaaabbbbbbababababbbbb
|
||||||
|
abbbbaabaaaabbbaaaabbbbaaaaaabab
|
||||||
|
ababbbbaaabaaabaababaaab
|
||||||
|
aaaaaaabbbbaababbaabababaabababaabbbbabb
|
||||||
|
aabaaaabbaabaaabbaaaaaabbababbbaababaaaa
|
||||||
|
aabbabbabaaaaabbaaabbbab
|
||||||
|
bbbbbabbbbbbbbabbbabbaba
|
||||||
|
aabaababaaaabbabbbbaabbaabaaabaabbabababbbaabbbbbaaaabaa
|
||||||
|
babbabbabbbaababaabbbbbbabbaaabaabbabbbaabbbbbbb
|
||||||
|
aabbaaabaababbababaaabab
|
||||||
|
abaaabaaaababbabbbbbbbabbbaaaaaaabbabbaaaaabbbbb
|
||||||
|
babbbbbbbbaabaaabbbbbaba
|
||||||
|
aababbaaaaabababbababbbaabbbabaa
|
||||||
|
abbbbbaaabbbbaabaaaabbbbababbbabbbaabbaa
|
||||||
|
aabbabbaaabaaabaaaaabbabaabbaabbabbbbbabbaabbbba
|
||||||
|
baabbbabbabbaababbbbabbb
|
||||||
|
aaaaaaabaabaaaaabbbbbbbbaaabbabbbabaabababababbb
|
||||||
|
bbabbbabbabaaaabbaabbbabaaaabbbabaabbabbbbabbabbabbbaabbbaabaabaaababaaa
|
||||||
|
bbaabaabaabbaaaaabaabaaaaabaabbbbababbaa
|
||||||
|
bbbababbabaaaaabbbbabbab
|
||||||
|
abbbabbbaabbbaabbbbbabbababaaabbabbbbbaabbaabbbbabbababbabbbbbbb
|
||||||
|
babbabbaaababbabbbbabbbaaaabaaababbaabaaabababab
|
||||||
|
bbabaaaabbbabbbaababbabbaababbaa
|
||||||
|
abbbbabbabbaaaaaaaababaa
|
||||||
|
bbbababbabbaaabbaabbabbbbbbabbbbaaaabbaa
|
||||||
|
abbabbbbbbbaababbaabaabbbbabababbaaaaaaabbbbbababbabaabb
|
||||||
|
aaaaaababaaabbaaabaaaabb
|
||||||
|
babbababbabbbaaababbbabbbbbabaab
|
||||||
|
aaabaaabbabaabbbbababaabaabbbbbaaabababb
|
||||||
|
aabbbbbaabbbbabbbbbbababaaaaabbaabbabbabbaaabbbbbbabbabb
|
||||||
|
abbabaaababaabbaaabbaaabbaaaababbbbbbbba
|
||||||
|
bbbbbbabababababbbabbbabbaaaaabbabaaaabaabaaaababababbaa
|
||||||
|
abbaabaaaabbabbbabaababaababaabbbbbbbaba
|
||||||
|
abbabbbbbabbaababbbaabaa
|
||||||
|
abbaababbababaabbbaaabbaababbbaaabaaabaabbaaabbb
|
||||||
|
bababaabaaaababbbbaaaaaaaaaaabab
|
||||||
|
bbbbabbbbaabbabababbabbb
|
||||||
|
abbaaaabaaaaaabaabaaabaaabbbbaaabbabaaba
|
||||||
|
bababbbbaaaaaababaabbabbbbaabbab
|
||||||
|
abbaaabbababaabaabaabbab
|
||||||
|
aabaaaabaabbabbabbbababa
|
||||||
|
aaaaabbabbbbbbaaaaabbabaaaaaaaaaabbbbabbaabbabbabbabbbaaaaabaabb
|
||||||
|
bbbbbaaaabababbababbbaabbabbbbaaaabaabaabaabaaababbaabababbabbbb
|
||||||
|
abaabaabaabbbbbbaaaaabab
|
||||||
|
aabbabaaababababbbbaabbaabbbbbaabbabbaabaabaaabbbaabbbaa
|
||||||
|
abaaaaaaabbaababbbbbbabbbbaabbab
|
||||||
|
babbabaabaaabbbbabbabbaa
|
||||||
|
aabaaaabababaabaaabbaabbabbbabababbbbbbb
|
||||||
|
aabbaaaaaaabaaaaabbbbabbbaabbbababbaaababbaaababbbaabbbb
|
||||||
|
aaabbbbabbbbbbbbbbaaabab
|
||||||
|
aabbbabbbaabaabbaaaaaababbabbbbbbbbaabbb
|
||||||
|
bbbababbbababaabaabababb
|
||||||
|
aabaabaaaaaabbabbaabbaabaaababab
|
||||||
|
babbbaababaaabbaabbaaabbbbbababa
|
||||||
|
baabbaabbbaaaaaaaaaabbabbabbbaabbabaaabbbbaabbbbbbbaabaaaabaaabbabbabbaa
|
||||||
|
abbaababbabaaaaababbbaba
|
||||||
|
bbabababaaaaabaababaaaba
|
||||||
|
aaaaaababaaaaabbaabbaaabaaaaababababbaba
|
||||||
|
babbbbbbaabbaaaabbbbaabb
|
||||||
|
ababaabbbbaabbbaababbbbb
|
||||||
|
bbbabbbaaaabbaabbabbbbaa
|
||||||
|
aabababaabbaaabbabaaaaba
|
||||||
|
baabaaabaabbabbabbbbbaaa
|
||||||
|
bbbbbbbbbbbabbaabbabbbbabaabbaab
|
||||||
|
babbaabaaabaabaaabaabbbabbabbbaa
|
||||||
|
ababbbbaaaaaabbaabbaaaabbbaababaabbabbabbbbabbabaaaaababbaaabaab
|
||||||
|
aaaabbabbaaabbabababababbaababaa
|
||||||
|
aaabaaabbabbaaaaaaabaaaabbbbbbbaaaabaabababbbabbabaaaababbbbabaa
|
||||||
|
babaaaaaabbaabbbbbababaababababb
|
||||||
|
bbabbbabbbaabaaaabaaabbabbbbbbba
|
||||||
|
abaabaaaaabaabaaababaabaababbabbbbababbb
|
||||||
|
bbaabababbbaababaaabbbbaabaaaaaaabaaabbb
|
||||||
|
aabaabbaabbbbbaabaaaaaabbaabbababbaaabbaaabbabab
|
||||||
|
baabaabbaaaaaaabbaaaabab
|
||||||
|
baaabbababbabbbbaabbabab
|
||||||
|
aabbbbbbbaabbababaabababbabababbababbaaa
|
||||||
|
bbabbbbbbaabbabbabaaaaaabbbbaabb
|
||||||
|
aabbaaaaaabbaaaaaababbbb
|
||||||
|
bbbbabbababbabaaababbbbaabaaaaba
|
||||||
|
bbbbbbaaababaabaabbbbaababbbbbabbababbaa
|
||||||
|
aaaabbbaaababababbbaaabaabaaabbbbabaaaabaabbbaaa
|
||||||
|
bbabbbabbbbbbbbbababaabaabbbabaabbaababb
|
||||||
|
aababababbabaaaaababaaaa
|
||||||
|
babbaabbbaaaababbbaabaaababbabaaaabaabaaabbaabbabbabbbbbabbbbbab
|
||||||
|
aaabbabbaaaaabbaaabbbaabaaabaabb
|
||||||
|
abbbaababbbababbaabbbbbbababbbab
|
||||||
|
bbbabaabbaaaaaabbbbbbaababbaaabaabbabbbbaaaabbaa
|
||||||
|
aaabaaabababbaabababaaab
|
||||||
|
bbbbaabaaabbbaabaababbabaabaaaabaaaabbaaaabaaabb
|
||||||
|
aaaaaaaababaaaaababbbaabaaaaabbababbbbba
|
||||||
|
abbababbbbbaaaababbaaababaaabaababbabaaabbbbbabaababbabbaaabbabaabaabaab
|
||||||
|
aaabaaaabbabaaaaababaabaabbaaaaaaababbabbababaaa
|
||||||
|
baabbabbabababababbabbbbbabbabbb
|
||||||
|
abaaabbaabbbaababbbbaaabbbbbbabbaabaababbbbaaaba
|
||||||
|
ababbaabaabbabbababaaaabbaaaabbabbaabaababbbaabbbabbbbabbbbbaabb
|
||||||
|
baabbbabaabaabbaabbbbaaa
|
||||||
|
abababaaaaabaaaabbbbbabbbbaababb
|
||||||
|
ababababbaaabbabababaabbabbaabbbbaaabbababbbbbbb
|
||||||
|
abaaabbabbaabbbabbaabababbaaabbb
|
||||||
|
babbabaabaaababababbbbaabaaaaaabababbbaabaabaaba
|
||||||
|
babaaaaaababaabbabaabaabababaabbbbbbabbbaabbaababaababbaaababbbbbbbababa
|
||||||
|
baabaabbaabaaabaaabbaabbabbabbabbbaaaaaaabbbabab
|
||||||
|
bbbaabbababbaaaabbaaabbb
|
||||||
|
aabaabaabbbbaaababbabaaaababbabbbbbabbbaabaaabbbbbaaabbbaababaab
|
||||||
|
aaababbbbaababbbbabbaabbabbabaababaababb
|
||||||
|
bbababaabbbbabbaaabbabbbababababaabbaaabababaaaa
|
||||||
|
bababaababbaaabbaaaabbaa
|
||||||
|
abbbaabaaabaabbbaabbbababbbbabbaabaabaaaaabbbabaaaaaabbb
|
||||||
|
aabaabbabbabbbbbbbaaaaab
|
||||||
|
bbbabbabbbbaabbbabbbabab
|
||||||
|
bbaaabbaabaaaaaabbaaabbb
|
||||||
|
aaaaabaabbabaaaababbbabb
|
||||||
|
aaaaaaaaabbabbbbbbabbbbbaababbaa
|
||||||
|
bbbbbbabbbbbabbbabaaabab
|
||||||
|
abaabbbaabaababaaaaaaaababaaaababbbbaaaa
|
||||||
|
babbbaabbabaaabbbaabbaabbbbabaaaaaabaaaabbbbababbbaabbbbbbbbbaab
|
||||||
|
aabbbaabaaaabbbbaaababbabababaabbbbbbbbbbbbababbbbbbaaaaabaaabbbaababaaabbaaaaabbbbaabaa
|
||||||
|
aaaababbaabbabaaabbabbbaaabbaabbbbabbbbaabbabbaa
|
||||||
|
bbaabbaabbbaaaaaaabaaabb
|
||||||
|
babaabbbababaabaabaaaaaaababbabbababaabbabbbbaba
|
||||||
|
aaabbabababaaaaabbabaaaaaaaaaaabbbbbaabaaaabbbabbbbbbaab
|
||||||
|
aaaaaaaaababbaabaababbaa
|
||||||
|
bbabaaaabbaaaaaaaabbbbbbaabaaaaa
|
||||||
|
abbabaaaabababaabaabababbaaabaab
|
||||||
|
abababbbaababbabbbbbbbbbabbbbabbaababbabbbaabbabbbabbbaabababbab
|
||||||
|
babbbbaaabaabbbaaaabbaaa
|
||||||
|
bbbbbbaabbaabaaaabbaaabbbbbabbbbbbbabaab
|
||||||
|
babbaabaabbabbabbaababaa
|
||||||
|
abbaabbabaabbaaaabaaaabb
|
||||||
|
babaaaabbabbbbbbaaaabbaabbbabbababbbbaba
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,49 @@
|
|||||||
|
chsprq bdghf dtpcd djtblr kggl cvdvd jzlht lkdg nd szvsg drv ptn mhjg dnlsjr rhvglf fmgg prkpfnh tfdl bcthd lmxc hjpv rsvlb hgmq xsvjb cqgqxq vsvmt ccd sqdsxhb vpzhpnx dlj dvqsf mmr bmtn vgqd zfrn zffphr nlmsj xxhf rfdxph ggqlkpr cmfj bfkm stcctv rlnsc snngn xzb zjfb qdccb qxrm jlhv vfpmcdc gbnj srhmt lfrq blcb jcnglmz bhrjc qmvzln nllmj zqhxc xpk drchk pbhthx qks dgvqv tcph (contains fish, wheat, shellfish)
|
||||||
|
cvdvd lkdg dgvqv czd mjnjq kxkzv bdghf xzb xsxkj bfjlcv sbkq gsmvb cvrzmd prspxdl pbhthx sqdsxhb ppfmb zffphr chmmqq htfvt ccd szd qks qthvbf prkpfnh xdlhgf rqhp fmgg mxqht mdpqq phh xrstpzc chxkn vgqd qmvzln prg vfpmcdc fsgj zgfr cqgqxq hfl csnfnl pcg ghrnk hmrh kdkrhr qldrh rsvlb lczvhs xsvjb qsndg rlnsc djtblr ffpq snngn zbs dvqsf qsvfk hmcc blgxsl (contains dairy)
|
||||||
|
bmtn ptn pmvgd zffphr cfjqbs chmmqq prkpfnh jzlht mxqht xzb blgxsl pdzqrqq pbhthx vpzhpnx fmgg xpk prg mjnjq kggl mhjg mmr fmgnz msdgp dnlsjr zgcrp bdghf ctfdj dgvqv snngn ghrnk tfdqg hctzvvc ddbss xmnqb htfvt sqdsxhb zbs ccd xsxkj jfzd djtblr tltxb ktgqdf cspz qdms jtl mdrn rvmx jsxqj kdtr xrstpzc cfzcl lkdg zjfb nrsb rsvlb (contains shellfish, dairy, wheat)
|
||||||
|
dgvqv xrstpzc prspxdl ptbvs kfl vsvmt dsjrv tbfmsnj cvrzmd chsprq jlhv vpzhpnx zjfb pmvgd qklrs kdkrhr kvtlklq jsxqj ptn vgqd sbkq lkdg fmgg sqdsxhb zfrn pbhthx drv txnxdd bdghf rsvlb hjpv cfjqbs csnfnl sdvc chmmqq cspz xdjz fqpjl zrlpbh tnhjq vtjmvd nrsb rnpjxc mdpqq bfkm rfdxph lzbfz ppfmb dptx fmgnz bhrjc qldrh qksrp dtpcd zspn qdms kdtr jzlht xzb nrgcrd (contains soy, eggs, shellfish)
|
||||||
|
zspn dnlsjr bmtn rdnvlt dlj blgxsl qthvbf qsndg dptx rsvlb bqdbr rlnsc bsnvm cfzcl kggl lcgdsp ffpq sqdsxhb mppxj hmcc pbhthx qxrm csnfnl mpnd fmgnz qdgdsg qklrs blcb cpp ctfdj cfkdn ktgqdf dvqsf jsxqj xtnz cfjqbs zbs sbkq gsmvb hgmq jcnglmz cvdvd kbfqvxf kfl cmfj lkdg pdzqrqq dgvqv xdlhgf qks ndfmx hfl tbfmsnj hmrh xlttl ppfmb zgcrp tsqp djtblr zdkgvxk drvxr xsvjb bbztv qmvzln cqgqxq ptbvs (contains soy)
|
||||||
|
ktgqdf hnnk fqpjl phh hmrh dnlsjr lkdg qdccb bmtn pbhthx lzbfz nxlq msdgp chmmqq rsvlb kfl vpzhpnx ccd szd bdghf mbbz hfl vbdsgx dvh lcnnf vtjmvd drchk cvrzmd bhpn bqdbr xpk qsndg fmgg snngn qksrp dgvqv csnfnl hgmq fsgj jtl zfrn cfzcl bbztv tsqp drv kxkzv xmnqb mpnd xzb chxkn qks rfdxph prkpfnh gsmvb nrsb htfvt qthvbf pcg xdrm ctfdj dxqbf zdkgvxk dlj kggl srhmt drvxr fbj sdvc tfdqg dxn jfzd cqgqxq cspz fmgnz ndfmx bplgpn rnpjxc (contains wheat, dairy)
|
||||||
|
blcb sqdsxhb lkdg kdkrhr nd phh sdvc qldrh zspn jcnglmz qsndg lzbfz xdrm rsvlb kbfqvxf cspz gdg xmnqb qxrm chxkn xtnz cvrzmd chmmqq fmgg dxqbf mdpqq vpzhpnx ccg mbbz rdnvlt zjfb ssjpd bqdbr qdgdsg jsxqj fktqdh kvtlklq dnlsjr tcph cmfj tfdl qtkbvr qgxj qphl zrlpbh stcctv rqhp qmvzln fbj prspxdl xzb dgvqv kfl mhjg jtl csnfnl ccd dvqsf dvh vtjmvd vgqd lmxc fsgj zqhxc tsqp zffphr (contains wheat)
|
||||||
|
stcctv fsgj sqdsxhb hctzvvc mxqht tcph bdghf dnlsjr rfdxph vpzhpnx rhvglf ctfdj czd nlmsj bhpn bmtn vgqd ppfmb xzb msdgp kfl dvqsf sbkq bcthd qdgdsg csnfnl dptx cpp zgfr jcnglmz pcg vfpmcdc hnnk gsmvb qdccb xsvjb rnpjxc zdkgvxk jtl gdg nrsb dcmpb rhqfkmn jgnxfn cvdvd dgvqv mdrn zbs hcgh kxkzv tfdqg dxqbf pmvgd hjpv hmcc srhmt szvsg ssjpd xdrm lcnnf zrlpbh pbhthx tvkvmms ptbvs nrgcrd lkdg (contains fish, sesame)
|
||||||
|
hctzvvc drvxr dxqbf vsvmt cqgqxq rfdxph zgfr dvh kpbg lkdg vtjmvd tfdqg dgvqv hcgh jzktf chxkn jlhv dnlsjr chmmqq jtl cfjqbs xzb fmgnz ghrnk prspxdl dxn dlj bplgpn hmcc xdjz bfkm szd qgxj zspn hnnk srhmt hgmq fktqdh xrstpzc szvsg mjnjq xmnqb sqdsxhb qdccgvb zrlpbh gbnj ptn ffpq sbkq bhpn ddbss rsvlb lmfccx qklrs rnpjxc cfzcl phh xsvjb qthvbf zdkgvxk czd bdghf tvkvmms fsgj prkpfnh rrjt ptbvs mxqht csnfnl qxrm rhqfkmn xtnz kbfqvxf gjbfmm rqhp bmtn bhrjc drv ktgqdf zffphr hjpv cspz (contains wheat)
|
||||||
|
nd prg djtblr lrgxlct mppxj zgcrp lkdg kvtlklq zrlpbh rdnvlt rnpjxc xmnqb hctzvvc jfzd tnhjq fsgj vpzhpnx zdkgvxk ctfdj cspz phh zffphr xxhf gjbfmm jsxqj mpnd ggqlkpr qldrh chxkn fqpjl mbbz qdccb pbhthx ktgqdf hfl drchk cvdvd pcg ccg bsnvm nxlq prkpfnh csnfnl jtl qdccgvb jgnxfn tltxb nrgcrd ftzgp sqdsxhb sdvc bfjlcv xzb bfkm bbztv tbfmsnj dnlsjr drv rsvlb qdms cmfj chsprq bcthd drvxr dtpcd kggl ndfmx xdjz qksrp lczvhs gbnj lcnnf vfpmcdc dptx zqhxc qklrs (contains eggs)
|
||||||
|
bhrjc lkdg vtjmvd ffpq cvrzmd ndfmx djtblr sqdsxhb nxlq gsmvb hfl chsprq dvqsf csnfnl ccd fsgj cqgqxq qklrs xzb qxrm gjbfmm ktgqdf xmnqb zspn tbfmsnj hctzvvc lczvhs kggl bhpn rhqfkmn tfdl ssjpd msdgp txnxdd nd blcb kbfqvxf gdg ghrnk dcmpb kvtlklq phh rlnsc qtkbvr dlj qphl tnhjq zbs mppxj stcctv dnlsjr xtnz jtl zffphr xdlhgf vbdsgx rsvlb hhxrrr blgxsl zgfr dgvqv xdjz jfzd chmmqq bsnvm czd lfrq (contains wheat, eggs)
|
||||||
|
tvkvmms xzb fbj rhqfkmn qdgdsg rrhsh sqdsxhb tfdqg qxrm rqhp ctfdj qthvbf tfdl czd zbs nlmsj xpk cmfj qtkbvr blgxsl vfpmcdc gbnj prkpfnh zqhxc cfkdn mhjg bsnvm fmgg xmnqb qdms dnlsjr rsvlb hgmq csnfnl dgvqv hjpv dxqbf bmtn pbhthx stcctv qks (contains nuts, wheat)
|
||||||
|
szvsg zrlpbh xsvjb ktgqdf bbztv xxhf bcthd qklrs ctfdj sqdsxhb xzb lkdg txnxdd sdvc pbhthx mbbz cpp dsjrv xdrm mdrn hmcc rdnvlt xdjz mhjg ptn kdkrhr rrjt xdlhgf qdccb rsvlb qmvzln qdccgvb jzktf zfrn lczvhs kfl dnlsjr xmnqb csnfnl bdghf ppfmb (contains nuts)
|
||||||
|
jgnxfn zdkgvxk prg dxqbf mxqht kdkrhr mhjg pbhthx dgvqv tcph zffphr cfzcl qthvbf xxhf bfjlcv hmrh mdpqq ccd cspz mppxj nllmj lkdg qmvzln zgfr fmgg qtkbvr bmtn hhxrrr nxlq xzb ccg dptx sqdsxhb gdg gjbfmm prkpfnh ktgqdf qdccb tvkvmms mbbz qks lrgxlct dnlsjr cfkdn bfkm ppjrrm csnfnl rhqfkmn lzbfz jzktf szvsg (contains dairy, fish)
|
||||||
|
fktqdh zspn gjbfmm bmtn ccd hfl ftzgp zrlpbh bhrjc lfrq rrjt rvmx pbhthx sbkq jfzd zdkgvxk xdjz srhmt sqdsxhb dlj rsvlb qmvzln vbdsgx drvxr xmnqb sdvc mbbz bplgpn blgxsl hnnk zgfr ptn hcgh xlttl dnlsjr qthvbf lzbfz qtkbvr rnpjxc qsndg ktgqdf dtpcd gdg kfl csnfnl rdnvlt zjfb tbfmsnj ddbss dptx gsmvb lcnnf szd bqdbr lczvhs cmfj drv tqgd kvtlklq mmr ctfdj zgcrp prspxdl fsgj zffphr ccg blcb qdms jlhv xzb dgvqv zqhxc (contains sesame)
|
||||||
|
sqdsxhb tfdl dgvqv xpk xzb csnfnl ftzgp mbbz xrstpzc nlmsj rvmx ccg fmgg xlttl dtpcd qphl nrgcrd rdnvlt lxfbmt dnlsjr drv fbj bfjlcv htfvt lkdg nllmj lcgdsp cvrzmd qthvbf hmcc hfl prkpfnh dvqsf hhxrrr cpp kbfqvxf xsvjb kvtlklq rqhp pcg lmxc jgnxfn nd lrgxlct ppjrrm djtblr sbkq ffpq qdms prspxdl qxrm zffphr cspz chxkn rlnsc pbhthx tsqp nrsb mpnd xxhf (contains dairy, eggs)
|
||||||
|
dsjrv zbs zfrn lkdg hfl tfdqg lcnnf rrjt cvrzmd qdgdsg tvkvmms hcgh fmgg dxn ptbvs xsvjb xzb gsmvb nrsb rsvlb zrlpbh hmrh vbdsgx prg bbztv zspn pmvgd srhmt cfzcl ppjrrm rrhsh cmfj rhvglf csnfnl prkpfnh hmcc mppxj pbhthx dtpcd mbbz zffphr rfdxph dnlsjr sdvc sqdsxhb ktgqdf (contains soy, eggs)
|
||||||
|
htfvt rsvlb qthvbf txnxdd cpp jtl bbztv lrgxlct chmmqq qdccgvb bfjlcv zffphr xzb jgnxfn hctzvvc dvqsf kpbg rnpjxc dgvqv lzbfz zspn zfrn sqdsxhb blcb jzktf xdlhgf dxqbf pdzqrqq ftzgp xpk sdvc djtblr kxkzv xdrm pbhthx csnfnl qsvfk snngn jlhv vgqd vpzhpnx jcnglmz nd lxfbmt drv mpnd cmfj cspz pcg bfkm dnlsjr qphl qks bsnvm bcthd (contains eggs, fish, shellfish)
|
||||||
|
kbfqvxf tnhjq kggl vfpmcdc prg zfrn jcnglmz tvkvmms fmgg rsvlb zdkgvxk qsndg vgqd tltxb ndfmx dgvqv bmtn gjbfmm dnlsjr dxqbf szd lxfbmt drvxr sqdsxhb rfdxph nrsb ppjrrm mdpqq zjfb pbhthx bhrjc rqhp qmvzln vbdsgx ccg csnfnl blcb hcgh mmr cfkdn gsmvb xzb (contains wheat, fish, shellfish)
|
||||||
|
nrsb jfzd lcnnf rsvlb bdghf cvdvd cpp ggqlkpr xpk xlttl hjpv cvrzmd mdpqq mhjg htfvt ftzgp zffphr djtblr rfdxph qxrm pmvgd fmgg tbfmsnj bqdbr qgxj hmrh nllmj qdms sbkq qphl lczvhs stcctv drv lfrq fsgj xtnz dnlsjr csnfnl gjbfmm vtjmvd ccg qdccb phh lcgdsp prkpfnh hctzvvc tsqp qldrh jzktf tvkvmms dgvqv pbhthx chsprq ktgqdf mmr hmcc xsxkj sqdsxhb dxqbf xzb cqgqxq jlhv mdrn blgxsl bplgpn szvsg ctfdj ptn bcthd ddbss kdtr zrlpbh fbj gbnj qsndg kdkrhr gsmvb tfdl (contains nuts)
|
||||||
|
cmfj jzktf rdnvlt ftzgp qtkbvr lcgdsp prspxdl htfvt drv rrhsh qdccgvb zdkgvxk msdgp vfpmcdc fsgj nd lmxc zgcrp cfkdn dxn tltxb mmr dlj nlmsj bfkm hcgh dsjrv qgxj hjpv vsvmt lzbfz xxhf zspn qdccb xzb drvxr pcg dnlsjr chsprq kxkzv lfrq tfdl gsmvb csnfnl ccg pbhthx blcb lkdg dvqsf sqdsxhb xdjz lcnnf dptx xsxkj jlhv gdg rrjt dxqbf dgvqv (contains shellfish)
|
||||||
|
tsqp jgnxfn rvmx rhvglf szd qdccgvb gjbfmm rdnvlt xpk ssjpd fmgnz bqdbr vbdsgx fmgg pbhthx dvqsf ptbvs blcb kbfqvxf bfjlcv hjpv msdgp gbnj kfl vfpmcdc cfjqbs pmvgd fktqdh csnfnl xzb qdccb qdms ffpq bhrjc lrgxlct rhqfkmn ggqlkpr jlhv qklrs mxqht tvkvmms kpbg prkpfnh mmr nxlq nrgcrd chsprq djtblr rlnsc ccd sqdsxhb drchk vpzhpnx cfkdn mppxj lkdg ktgqdf cpp prg srhmt xdlhgf kdkrhr xmnqb rqhp qthvbf zrlpbh gsmvb lxfbmt ndfmx sdvc ddbss xlttl dnlsjr hhxrrr tfdl qxrm qphl dxn rsvlb tbfmsnj qksrp bdghf xdjz qgxj xsvjb mpnd qks jzlht (contains dairy, soy, shellfish)
|
||||||
|
txnxdd kdtr szvsg xsvjb bbztv lkdg vsvmt bqdbr qdccgvb blcb sqdsxhb stcctv xzb jtl qphl csnfnl nrgcrd mjnjq lcnnf xlttl zgfr gdg vbdsgx drchk mhjg bhrjc mxqht fqpjl rrjt nrsb lmxc qks dvh pbhthx kggl jcnglmz dnlsjr dtpcd hhxrrr vpzhpnx fsgj tnhjq ktgqdf rsvlb tqgd rrhsh kpbg chsprq gbnj dptx ghrnk msdgp qdms hmrh kvtlklq mdrn zbs tltxb zfrn nlmsj zspn kdkrhr xsxkj ppjrrm cqgqxq lrgxlct kfl jgnxfn (contains sesame, dairy)
|
||||||
|
jzlht lmfccx gdg bqdbr cmfj jlhv bcthd ccd lzbfz vpzhpnx hnnk fktqdh zfrn chxkn bfjlcv xmnqb chsprq ssjpd qklrs qdms ccg hhxrrr kggl vbdsgx nrgcrd xzb cfkdn mppxj lkdg lfrq dnlsjr ffpq bsnvm xsvjb dgvqv qphl rhqfkmn dptx rsvlb szvsg dcmpb mdpqq bfkm rvmx dxqbf zrlpbh bdghf cvdvd drvxr kdkrhr stcctv qdgdsg htfvt lmxc tsqp bmtn xdjz pbhthx blgxsl dtpcd ndfmx qdccgvb zbs tcph drv rrhsh tbfmsnj djtblr qsvfk bbztv sbkq prg kpbg sqdsxhb (contains dairy)
|
||||||
|
zgcrp dsjrv blcb kfl bqdbr rvmx jsxqj ssjpd lmxc rnpjxc rsvlb kvtlklq zffphr zfrn qthvbf czd mbbz ndfmx xpk chsprq nrsb vsvmt dcmpb cvrzmd lczvhs nxlq gbnj rrjt bplgpn pbhthx hjpv ffpq rlnsc xzb fmgnz dnlsjr blgxsl csnfnl zqhxc hcgh sqdsxhb ccg tsqp fbj rdnvlt mxqht vtjmvd dgvqv xxhf chxkn zspn (contains shellfish)
|
||||||
|
sqdsxhb ghrnk bfkm rdnvlt bbztv hgmq kdtr rvmx cvrzmd rqhp dxqbf ptn kbfqvxf vpzhpnx dcmpb xdjz pbhthx qphl qdms jfzd pcg ffpq ctfdj hfl dnlsjr qmvzln zspn lfrq ggqlkpr bfjlcv cpp tnhjq bmtn csnfnl mbbz qdgdsg fmgnz ptbvs jzlht mdpqq qdccb ccg rnpjxc msdgp kdkrhr lcnnf gbnj jgnxfn xzb snngn qgxj qklrs bhpn czd kpbg rsvlb dsjrv ftzgp zqhxc hmrh fmgg phh szvsg prg jcnglmz ddbss zrlpbh djtblr tfdl pdzqrqq qks vsvmt nrsb xxhf fqpjl jzktf xdlhgf bcthd qdccgvb zfrn dgvqv chmmqq chsprq chxkn (contains shellfish, fish, eggs)
|
||||||
|
dgvqv qthvbf kfl bsnvm dvqsf nd qdccb ssjpd lczvhs lkdg xdjz vbdsgx vgqd cfzcl kdkrhr cvrzmd kxkzv csnfnl bfkm xmnqb qsvfk fsgj ktgqdf vtjmvd bhrjc ggqlkpr gbnj dnlsjr vpzhpnx hmrh hgmq ftzgp rsvlb drvxr jgnxfn qdccgvb snngn ccd rrhsh sqdsxhb lmfccx lmxc zgfr ppjrrm jcnglmz nrsb bdghf xzb ptn ddbss xpk (contains wheat, eggs, shellfish)
|
||||||
|
dvqsf prg xdrm fqpjl fktqdh qdccb nrgcrd xpk lkdg bmtn ndfmx ghrnk szvsg pbhthx qklrs mdrn djtblr zfrn chxkn nlmsj srhmt jsxqj gdg jtl qmvzln blgxsl hfl sqdsxhb lrgxlct drvxr lfrq rfdxph jzlht ccg vsvmt csnfnl hmrh xzb jcnglmz mppxj rlnsc tltxb rdnvlt fmgg vfpmcdc ccd dgvqv hhxrrr mpnd rrjt zjfb pmvgd tsqp dvh ggqlkpr vbdsgx tfdl gjbfmm dnlsjr tbfmsnj zdkgvxk qxrm mhjg (contains fish)
|
||||||
|
tnhjq ffpq vgqd hgmq qdccb vtjmvd mppxj kvtlklq xdrm gdg ppfmb ghrnk dgvqv dxqbf czd drv xzb xsvjb rhqfkmn dtpcd kfl jgnxfn zgfr nd hctzvvc dlj cfkdn dptx xmnqb txnxdd hjpv msdgp zdkgvxk zjfb ggqlkpr cspz rrjt cmfj hcgh ssjpd sdvc nllmj qthvbf fktqdh dnlsjr fmgnz xrstpzc rdnvlt snngn lmfccx qksrp kdkrhr qklrs mhjg kggl ddbss szvsg sbkq blgxsl lkdg pbhthx ccd lczvhs xpk xtnz stcctv sqdsxhb mpnd rsvlb zrlpbh zffphr hmcc lcnnf hfl hnnk dvqsf cpp (contains eggs, dairy, wheat)
|
||||||
|
bmtn tnhjq dnlsjr cfzcl kdkrhr gsmvb ddbss xdjz jgnxfn ghrnk zrlpbh pbhthx qsvfk sdvc pcg cfjqbs gbnj vgqd xsvjb qsndg pdzqrqq zdkgvxk sqdsxhb rdnvlt tvkvmms szd bhrjc xzb dlj lkdg vtjmvd ggqlkpr vpzhpnx nxlq qphl rlnsc bplgpn rsvlb kxkzv qksrp cfkdn mdrn xdlhgf csnfnl tsqp msdgp lcnnf xlttl qdms prkpfnh hmcc mjnjq lczvhs sbkq xdrm tcph ffpq dxqbf ppfmb phh ctfdj nlmsj kvtlklq fbj jcnglmz vsvmt hhxrrr lmxc srhmt hjpv cspz kbfqvxf zqhxc rhqfkmn dxn xsxkj fsgj qklrs nllmj kggl hfl jzktf zffphr lfrq (contains dairy)
|
||||||
|
djtblr qdccgvb qphl mpnd mxqht lxfbmt csnfnl chxkn blcb lfrq cspz tcph ffpq mbbz nlmsj fbj kdkrhr sbkq qxrm rsvlb zqhxc qsndg pdzqrqq zrlpbh xdrm xrstpzc lkdg hmrh gbnj lczvhs kvtlklq rrjt rnpjxc hmcc xzb kggl jfzd ppfmb txnxdd xtnz dnlsjr mmr pbhthx bfjlcv nrsb vpzhpnx dxqbf sqdsxhb drchk (contains dairy, soy, eggs)
|
||||||
|
qks ddbss hhxrrr kpbg xdjz fbj sdvc fktqdh cpp prspxdl vtjmvd tvkvmms rdnvlt tltxb txnxdd ccd tfdl vpzhpnx dvh rvmx bbztv fmgg bhpn phh pmvgd sqdsxhb pcg bqdbr rhqfkmn ctfdj xdlhgf rlnsc prkpfnh dnlsjr nlmsj cvrzmd srhmt qxrm csnfnl mjnjq ptbvs jzlht lrgxlct dgvqv ggqlkpr prg drchk qtkbvr hjpv jtl rsvlb lkdg mmr qphl lcnnf hfl kbfqvxf vbdsgx jgnxfn vgqd nllmj xzb chxkn szd zgcrp blcb vfpmcdc szvsg hcgh djtblr xtnz tsqp snngn ndfmx (contains soy, wheat, shellfish)
|
||||||
|
vbdsgx sqdsxhb xdlhgf tltxb fmgnz zgcrp hcgh xtnz blcb lmfccx qks ffpq dlj qklrs jfzd chmmqq jzktf tfdqg xzb dgvqv ptbvs qdccb gbnj prg drchk ctfdj lczvhs xsvjb kpbg msdgp blgxsl kggl tqgd kdtr fsgj nd cpp drvxr rsvlb xxhf dcmpb csnfnl zgfr cvrzmd lfrq tvkvmms nxlq bfjlcv ggqlkpr kvtlklq vfpmcdc dnlsjr pmvgd kbfqvxf jgnxfn cvdvd bhrjc mppxj jcnglmz lkdg szd gjbfmm xlttl gdg hfl prkpfnh rrjt zjfb bhpn bbztv lrgxlct zffphr cspz vgqd mbbz lcgdsp ccd chsprq (contains eggs, wheat)
|
||||||
|
gbnj vpzhpnx kxkzv lzbfz phh hjpv qklrs mhjg zbs hhxrrr qxrm ddbss mdrn lxfbmt vfpmcdc qmvzln hnnk fbj pcg cqgqxq lkdg dvh srhmt cmfj hcgh nllmj rrhsh cfjqbs nrsb ptbvs qthvbf ffpq qsvfk bmtn bplgpn tvkvmms ctfdj chsprq ktgqdf mmr ghrnk dgvqv gdg lrgxlct hmrh kpbg blcb chxkn xzb vbdsgx tbfmsnj bbztv qdms pbhthx rsvlb nd sqdsxhb csnfnl rnpjxc kvtlklq (contains eggs)
|
||||||
|
jfzd prspxdl dcmpb fsgj pbhthx vpzhpnx kdkrhr ddbss zdkgvxk ppjrrm blgxsl jzktf qsndg zjfb dnlsjr cmfj qdccgvb nrgcrd lkdg ndfmx hfl bbztv nllmj kbfqvxf drchk xzb lcnnf cfjqbs csnfnl lxfbmt cpp ssjpd rdnvlt kvtlklq rsvlb tsqp lmfccx szd mmr vsvmt nrsb jtl gdg qtkbvr lmxc kdtr dgvqv (contains fish, shellfish)
|
||||||
|
cfjqbs cqgqxq dxqbf xpk lmxc sqdsxhb dnlsjr fsgj bbztv gsmvb csnfnl hjpv dvqsf tnhjq ndfmx xdjz lxfbmt lkdg szd vbdsgx qklrs rfdxph jtl mppxj mdrn xdrm pcg bdghf tvkvmms szvsg mmr ggqlkpr txnxdd cfzcl prkpfnh lczvhs nd hmcc bmtn bhrjc dgvqv ccd snngn dcmpb qgxj tsqp qsvfk mjnjq dtpcd drv cvrzmd qtkbvr kvtlklq hnnk hfl bplgpn ptbvs hmrh tbfmsnj rhvglf vsvmt ccg cfkdn tltxb zfrn nlmsj fbj ctfdj msdgp zspn prspxdl qphl xzb rlnsc ftzgp nrsb qdgdsg cvdvd qdccb vtjmvd pbhthx (contains sesame)
|
||||||
|
lcnnf bfjlcv zgfr stcctv rhqfkmn prkpfnh ddbss ktgqdf xzb dtpcd zffphr cpp jtl zfrn ghrnk xmnqb dcmpb qsvfk qdgdsg cspz bcthd fktqdh qtkbvr ctfdj dgvqv csnfnl mbbz fsgj cfzcl tfdqg hnnk nrsb bfkm rsvlb qdccb djtblr hcgh nd dxn mxqht qklrs nrgcrd gjbfmm srhmt xtnz hfl lkdg tcph vfpmcdc zspn dnlsjr bhrjc xpk chsprq ndfmx mhjg jzktf prg ggqlkpr qphl dsjrv zqhxc nllmj lmfccx hmcc xrstpzc sbkq ffpq dlj zrlpbh xdjz kpbg sqdsxhb drvxr ccg pcg szd rrjt (contains shellfish, sesame, nuts)
|
||||||
|
ffpq sqdsxhb tcph rsvlb prspxdl bmtn rrjt lkdg prg rhvglf dnlsjr chmmqq lcnnf fktqdh qks bsnvm mjnjq zrlpbh bfkm kdtr ptn bcthd qsndg mmr pbhthx zdkgvxk cfzcl xzb bhpn ccd xxhf vfpmcdc dxqbf fmgg jgnxfn gbnj vpzhpnx mdpqq htfvt nllmj csnfnl prkpfnh qdccgvb xpk dptx drv dxn tltxb pcg zspn pmvgd lfrq rdnvlt drchk rlnsc xsvjb lrgxlct (contains nuts)
|
||||||
|
dlj rhvglf mppxj qklrs qphl kggl sbkq rsvlb blgxsl tsqp dvh lcnnf xdjz lczvhs csnfnl lcgdsp cvdvd qdgdsg rqhp cspz ktgqdf xrstpzc xlttl hmcc fbj chsprq pcg ftzgp cmfj vsvmt fsgj xmnqb cfkdn vbdsgx dgvqv pbhthx srhmt ptn zqhxc xdrm sqdsxhb rrhsh tfdl rhqfkmn hnnk dnlsjr qdms prspxdl cqgqxq czd djtblr dptx zfrn zjfb kdkrhr bhrjc qdccb dxn xzb qthvbf jzktf bbztv mpnd qxrm kbfqvxf vgqd szvsg xsvjb fktqdh jcnglmz mjnjq szd rdnvlt (contains wheat, fish, eggs)
|
||||||
|
dvh rvmx prspxdl lmfccx lczvhs qtkbvr csnfnl qdms stcctv nd vtjmvd lkdg mdpqq tltxb mhjg fmgnz qksrp kpbg kggl ghrnk htfvt jcnglmz xdjz ctfdj xlttl zspn hgmq jsxqj dgvqv ssjpd bmtn hjpv bsnvm dnlsjr czd sqdsxhb msdgp xxhf jtl ggqlkpr sdvc tsqp snngn vfpmcdc jzktf rfdxph xtnz chmmqq bfkm mppxj vsvmt ccg dcmpb nrgcrd kxkzv pbhthx prkpfnh rsvlb bqdbr rrjt zbs jgnxfn vbdsgx mbbz qklrs jlhv rlnsc zffphr xdrm mxqht (contains dairy)
|
||||||
|
sbkq mmr jlhv msdgp dgvqv rhqfkmn hhxrrr rnpjxc xsxkj rrhsh mpnd fmgnz xdrm nxlq fsgj qldrh qgxj djtblr chmmqq lkdg ghrnk bqdbr tfdl bbztv szd ftzgp txnxdd ggqlkpr bfkm kxkzv zspn qdgdsg rsvlb nlmsj tltxb cvrzmd dptx jzlht bhrjc xrstpzc kdtr zrlpbh ctfdj ppfmb dnlsjr mppxj rvmx tnhjq jgnxfn sdvc rrjt cfzcl vfpmcdc rfdxph ccd dxqbf lcnnf lmfccx cpp ffpq xsvjb pbhthx xzb cvdvd dxn zfrn dsjrv sqdsxhb vbdsgx hcgh (contains wheat, sesame)
|
||||||
|
dptx hgmq lkdg ktgqdf rhqfkmn hmrh dxn ndfmx phh djtblr lxfbmt xmnqb dxqbf qmvzln zgfr zdkgvxk fbj dlj rhvglf hcgh mbbz dsjrv lczvhs zfrn msdgp gbnj qklrs pdzqrqq pbhthx sbkq dnlsjr hfl sqdsxhb xtnz nllmj xzb ghrnk hhxrrr ptbvs csnfnl qdccgvb rsvlb dvh bmtn vbdsgx jsxqj ccd szd rnpjxc dtpcd snngn bqdbr drvxr lcgdsp xdjz (contains eggs, sesame)
|
||||||
|
jsxqj hmrh tltxb xlttl zqhxc tcph pbhthx cvdvd ppjrrm ccg bsnvm qmvzln mppxj jlhv rqhp vpzhpnx qtkbvr zgfr fktqdh gdg hctzvvc lcnnf rsvlb djtblr blgxsl fmgg dlj dgvqv qgxj zjfb chsprq qxrm sbkq rrjt jzktf zfrn fbj qdccb jfzd rhvglf xdjz lkdg czd qsvfk pcg rvmx dxqbf snngn bbztv szd chmmqq mhjg sqdsxhb csnfnl srhmt mjnjq fmgnz dnlsjr jzlht kbfqvxf gbnj hmcc ftzgp ssjpd xrstpzc lrgxlct drv cpp kggl (contains fish, sesame, nuts)
|
||||||
|
fqpjl phh dlj vtjmvd lmxc ddbss xrstpzc qsvfk jzktf qphl xmnqb ktgqdf qks ccd zrlpbh qdccgvb rlnsc szd nd ndfmx lkdg mjnjq zspn xpk pcg vpzhpnx rnpjxc xsxkj sqdsxhb dnlsjr zffphr lrgxlct lfrq lmfccx ppfmb hhxrrr srhmt fktqdh blgxsl pbhthx qgxj lzbfz ccg rsvlb chmmqq hcgh dgvqv ghrnk lcnnf mdpqq jzlht qtkbvr xdlhgf bbztv gsmvb rhvglf jsxqj hmrh cfkdn xzb (contains eggs, dairy)
|
||||||
|
xdjz csnfnl drv rsvlb bmtn bplgpn lcgdsp cvrzmd bfjlcv pmvgd mhjg jtl zspn jsxqj qthvbf fktqdh mjnjq ggqlkpr sqdsxhb qldrh bdghf dvqsf rqhp ffpq zqhxc prkpfnh cfkdn gsmvb vtjmvd qsvfk vpzhpnx tqgd ptn xzb qks hctzvvc xlttl drvxr rrjt cvdvd lkdg hmrh cspz xpk cmfj kggl zgcrp mdrn kpbg tnhjq dnlsjr ndfmx chsprq tfdl qmvzln stcctv htfvt zrlpbh fmgnz dgvqv (contains sesame, shellfish)
|
||||||
|
pmvgd lkdg fktqdh sqdsxhb xsvjb rrhsh ptn drvxr qsndg tqgd hctzvvc cqgqxq dlj ppjrrm fmgnz mhjg szd nrgcrd tvkvmms lfrq zfrn hmcc szvsg ddbss qdccb lczvhs stcctv gdg cvrzmd xdjz dxqbf bdghf qmvzln dnlsjr rsvlb lxfbmt vtjmvd mbbz qthvbf ndfmx csnfnl qdccgvb xdrm sdvc dgvqv cvdvd xzb qklrs rhvglf qks kfl czd fbj rnpjxc cfkdn zgfr ppfmb bcthd qdgdsg jgnxfn pcg (contains soy, fish, eggs)
|
||||||
|
srhmt vtjmvd bhpn pcg rrjt jzktf tsqp cfzcl qdms vgqd dgvqv qxrm zrlpbh tqgd ssjpd lrgxlct bplgpn ptbvs hmrh lkdg szvsg rfdxph bfjlcv hjpv pbhthx nllmj nrsb prg ghrnk pdzqrqq zfrn qthvbf lzbfz kpbg phh kxkzv vsvmt ppjrrm vfpmcdc xmnqb dlj prspxdl htfvt xsvjb ddbss dtpcd hgmq jzlht xlttl dsjrv chsprq blcb tvkvmms sqdsxhb vbdsgx stcctv gsmvb qks dnlsjr jfzd bfkm qdgdsg msdgp csnfnl dvh mxqht zbs rsvlb cvdvd qdccgvb gdg cspz xdlhgf (contains wheat)
|
||||||
|
mpnd dnlsjr nlmsj ptbvs xdlhgf jlhv rqhp blgxsl bhrjc rsvlb mbbz pmvgd rhqfkmn zgfr hmcc hnnk bfjlcv pbhthx xdrm dgvqv bdghf rvmx jgnxfn phh lkdg fsgj mdpqq hjpv rrjt lxfbmt tqgd qgxj ppjrrm jfzd bbztv qks gsmvb xdjz mmr csnfnl hfl chxkn cvdvd vgqd xzb txnxdd hhxrrr lfrq snngn lczvhs ftzgp hctzvvc nrgcrd ctfdj (contains fish, soy)
|
||||||
|
ghrnk jsxqj qsndg xdlhgf mxqht vfpmcdc pbhthx mjnjq mppxj chmmqq xsxkj qgxj dnlsjr kfl csnfnl hcgh pdzqrqq hgmq vsvmt dvh vtjmvd xzb kdkrhr zgfr gjbfmm dxqbf qdms hmrh jcnglmz bqdbr rsvlb lkdg hhxrrr ffpq cfkdn dptx prspxdl gbnj xtnz qsvfk nrsb mdrn qksrp jzlht mdpqq jzktf cspz dxn jtl bmtn lzbfz ppfmb hnnk tltxb rrhsh bhrjc hfl kbfqvxf vgqd cvrzmd lmfccx rrjt hmcc qdccb lxfbmt qthvbf tcph tvkvmms rdnvlt hjpv ftzgp sqdsxhb drchk (contains eggs)
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
Player 1:
|
||||||
|
21
|
||||||
|
48
|
||||||
|
44
|
||||||
|
31
|
||||||
|
29
|
||||||
|
5
|
||||||
|
23
|
||||||
|
11
|
||||||
|
12
|
||||||
|
27
|
||||||
|
49
|
||||||
|
22
|
||||||
|
18
|
||||||
|
7
|
||||||
|
15
|
||||||
|
20
|
||||||
|
2
|
||||||
|
45
|
||||||
|
14
|
||||||
|
17
|
||||||
|
40
|
||||||
|
35
|
||||||
|
6
|
||||||
|
24
|
||||||
|
41
|
||||||
|
|
||||||
|
Player 2:
|
||||||
|
47
|
||||||
|
1
|
||||||
|
10
|
||||||
|
16
|
||||||
|
28
|
||||||
|
37
|
||||||
|
8
|
||||||
|
26
|
||||||
|
46
|
||||||
|
25
|
||||||
|
3
|
||||||
|
9
|
||||||
|
34
|
||||||
|
50
|
||||||
|
32
|
||||||
|
36
|
||||||
|
43
|
||||||
|
4
|
||||||
|
42
|
||||||
|
33
|
||||||
|
19
|
||||||
|
13
|
||||||
|
38
|
||||||
|
39
|
||||||
|
30
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
871369452
|
||||||
@@ -0,0 +1,419 @@
|
|||||||
|
eeneseeeneeseweeeneswneenwwee
|
||||||
|
swswswneswwseenwsenwsweswse
|
||||||
|
wswswswnweswnwswswwwswswswweswswswsew
|
||||||
|
seswswnweswswswseseseswswswswswswseswse
|
||||||
|
nwswswswswseseswseseswswswswseswswsenwsw
|
||||||
|
nwnwnwnwnenesenwneneswswwswnenenwnwnw
|
||||||
|
ewwwwwswswwwwwnwnewwwwwww
|
||||||
|
nwswneewwwsewnwswnwneswnenwnwsenweswnw
|
||||||
|
seseseseseseeswsesenweswwseswseseswse
|
||||||
|
wwnwwsewenwsww
|
||||||
|
nwnwsenwnwenwnwnwnwwwnwnwnwwnwswwnw
|
||||||
|
wwwnwwwesewwwwwwwwweww
|
||||||
|
swenwwswswswseneneneseswswnwnenwswee
|
||||||
|
eseeseseseeeswseeneweneeeseese
|
||||||
|
nwswswnwnwswsweeweseswswswseswswsesee
|
||||||
|
swswswwseswnenwneneswseseswsweseswswnw
|
||||||
|
nwnwnenwnenwnenwneswnw
|
||||||
|
eeeweneweeseneeneeeseeeeee
|
||||||
|
nenenenwneneneneneneeneneneswnenenenene
|
||||||
|
wwenwswwnwsenwwsenenenwnwsw
|
||||||
|
nwnewnwnwnwnwnwnenwsenwneewnwnwsenwwse
|
||||||
|
swwnewwsenwwswwwwswwswswse
|
||||||
|
senwswseseswswseseswseswswsewswseswsesee
|
||||||
|
swswweswnwswwswwswwswswswww
|
||||||
|
wwwwswwnwwwwwnenwewnwwwnwnww
|
||||||
|
wewwweswneswswseseswwnewwsenenw
|
||||||
|
senwsesesesesesenwswseseseeseseseseseswse
|
||||||
|
seseseswswswswseswseesesesenwse
|
||||||
|
swnwswswswsweswseswswswswswswswsw
|
||||||
|
wewwenewnwnwwewwweswnwswsww
|
||||||
|
wwsenesewwwwwnewswwwwswnwwwsw
|
||||||
|
nwsenenenewenwnwnenwnenwnwnwnwnwnwnene
|
||||||
|
wenwweswswewnenwswnwswwwsewnesw
|
||||||
|
swnwwswneswneeswsesenwseswnwseseneseseswsw
|
||||||
|
nesenwnwnenenenwnwnwnenwnwnwnwwnenenenw
|
||||||
|
eneswswneeseenenwweeeeweeeee
|
||||||
|
swneneneneeneneneweneneneneneneneneseene
|
||||||
|
nesenwsewewseswseseseseswseneswnesene
|
||||||
|
nwnewewneswwsewwwwsewsewwnew
|
||||||
|
eeweeeeeeeeeeeneeeeeswe
|
||||||
|
nwswwnwsweswnwnwseewnwnwwneewsew
|
||||||
|
neswswsewswswseswsenwswswneseesww
|
||||||
|
eenwnwwenwswswswneseseseneeweenwsw
|
||||||
|
seseswswseswnwseseswsesewswseseseseneswe
|
||||||
|
sewwnwnwswnwnwnwwwnwnwnwewnwwnww
|
||||||
|
sewswwswwnwnesewswwswnwesewswwnw
|
||||||
|
seswswseseswsenwswseswseswseswseswswesw
|
||||||
|
wseneseseswseswseswseswseseseswsesenwsese
|
||||||
|
eseeneswwswnwnwse
|
||||||
|
swswswswsenwseswswswseesesesw
|
||||||
|
wswswswwneswswswswsweswswwswnwwswswsww
|
||||||
|
nwnwnwneswneswswnwnwneswnwnenwnwseenwe
|
||||||
|
swsesewnwseseseeswswswseseseseseseswsese
|
||||||
|
senwsenwnwnwnwnwnwnwnwnwwnwnwnwnewwnwnwnw
|
||||||
|
nweeesweeseenweneesenweseswwse
|
||||||
|
sesesewseneewseseeeseeeesee
|
||||||
|
sweswswswnenwswswswnwseswsewswswwee
|
||||||
|
nwwwsewseeseneseesesewseneseenee
|
||||||
|
nwnenenenwswneneneneenenenene
|
||||||
|
seswwseseseseseseseseseswseesesesesenw
|
||||||
|
neneswnwneneenenenwneneswnwnw
|
||||||
|
seseseeeswewneneswnwswwsenwesewnee
|
||||||
|
swwseswseswwsweswswneswswswseseswsw
|
||||||
|
neneewewneneneneeewneeenenesee
|
||||||
|
seneeseseeseesenweseseseseseswseseese
|
||||||
|
nenwwwwwswswwwwnwwwwwnwewww
|
||||||
|
swswswswswswswswnewnwswswswseeswswswsesw
|
||||||
|
seseeeseswsesesesesesewsenewsesenwswse
|
||||||
|
swswswswswsweswswwswnwnwneswwsweseswsw
|
||||||
|
nwsweswnwnwnwnenenwnesenwnwnwnwwnwnwnwwse
|
||||||
|
seseseseseseseseesesenwwseeseneseesese
|
||||||
|
weneseseeseseswsweseneneneesesweswne
|
||||||
|
seseseswseswesesenwsesesesesesesesesewne
|
||||||
|
neswnwnwnwnewnewseenwnwswsenwnwnwnwsw
|
||||||
|
neswnwnewneswewseeneneneneneeeeenee
|
||||||
|
nwnwnwwnwenwwswneww
|
||||||
|
nwenwnwswwnwnwwnesenwswnwnwnwnwsenwnwenw
|
||||||
|
seseswswswswnwswswswswswnwsweswseseswswswse
|
||||||
|
neneenenwneseneneneneseneeneneneenwnene
|
||||||
|
ewwnwnwwwwwwwwwww
|
||||||
|
nwnenenwneseneneswsenewnenenwsenwnenwnene
|
||||||
|
wsesewwnenenwswnwwweewsenwnw
|
||||||
|
nwnwsesenwenwnwwwnwwsenwnewnwnenwsesw
|
||||||
|
swswwsesesewwneeswseneswwneswneswswne
|
||||||
|
enwnwswnweswswnwenwnwnwnwnwnwnwnwnweswnw
|
||||||
|
eseeswnwnesewseneeenwsesenwsewswwne
|
||||||
|
neswwseneswseweswseswswnwnese
|
||||||
|
wwwneswwswwwwswwwnewwwwwww
|
||||||
|
nenenwnenenenenwneneswenenwnenene
|
||||||
|
neneswnwneswwswnwnesenenenenenwnenwnenenw
|
||||||
|
wnenenwsenwnenwnenenwnwnenwnwnwsenenewne
|
||||||
|
wnwnwnwnwnwwnwsenwnwnwnwnwnwnwnw
|
||||||
|
eswseswswseswswsweswnenwswswswswswswnwsww
|
||||||
|
wswwseseseseswseseseseseseswseneseseese
|
||||||
|
seeseeeseseseseenwsesesesesenweseesw
|
||||||
|
eswnwseswsenwswwnenwswswswnesweswswwsw
|
||||||
|
neeseenewneneesw
|
||||||
|
nwenenewswseeneswenewswnwseswwwene
|
||||||
|
wswwenwwenwseeswnewswsewnwneseswwne
|
||||||
|
eseswseesewseseseenwesesese
|
||||||
|
nenenenenweneneswnewnenenenenenenenwne
|
||||||
|
seseneneeseswwseneseswnwneseseeenwesw
|
||||||
|
seeswseeeeswnweeeeenweeweee
|
||||||
|
seeeenweseseseesesweenweseneee
|
||||||
|
neneewnwneneseneswnesenenwenenwnenesw
|
||||||
|
nwnewnwenwnwnwswnenwnwnwnwnwnwnwsenwnwnw
|
||||||
|
ewsweswseswswswwewneswwwswesww
|
||||||
|
eneeseseeeeseseswwseeseseseeene
|
||||||
|
nwsesesewwnwnewnesenwnewwseseenew
|
||||||
|
sewswswswseseswswswseswseswswswneeswnwswe
|
||||||
|
neswneswnenenenenewnesenwnwnenwneswnenenene
|
||||||
|
nwnwnwnwnesenwwnwnwnwnenwnwswnwnwwnwnwnw
|
||||||
|
swseseseswswsewneswsenesenwenenwseseese
|
||||||
|
neswseseseswseswsesesewsesesesese
|
||||||
|
seseeeswnwseeeswseseseesenwseseee
|
||||||
|
swneswswswwswsenwswswswseswswswswseswswswsw
|
||||||
|
wsenwswwwwswswww
|
||||||
|
nwseswseesewseeswsewswnenesenwsew
|
||||||
|
nesweeseeweenenenweneswnenenee
|
||||||
|
wnwwwnwwwswnewwnwnwwewnwnwnww
|
||||||
|
wnwnenwswswnwnwsweesenenweswnewenw
|
||||||
|
seeseesenwseseseeeseseeseeseese
|
||||||
|
swseswswwswenwswswswswswswnenwswswswswse
|
||||||
|
eswseswwwnewwsewwwwwswswenesw
|
||||||
|
wnwnwswwnwnwswnwnwnenwwwwnwnwnweeww
|
||||||
|
seswwseswnesweswswseseswswseswseswswswse
|
||||||
|
nwnenwnwneneneneswneneswnwswnenenwneeneswne
|
||||||
|
swwwewswwnwwewwswwswswwswwwsw
|
||||||
|
seneenwswwseeseseneewenwseneswnewe
|
||||||
|
wwsenesesesenewewnesweseewsesw
|
||||||
|
nwwswwwesewwwwwwnwwwwwwwnww
|
||||||
|
newwnwwnenwwswsesewswseseewwnwwwsw
|
||||||
|
newswswseswswswwswswwswsww
|
||||||
|
eeesenweeeenweeesenwseeeenee
|
||||||
|
ewenenesewseswseweseeeeseeseese
|
||||||
|
eeeeeneeeeeeseeswenwnweeeee
|
||||||
|
wwnewnwenewewsewseseneweswswne
|
||||||
|
wnwwswneneneneseneseneweseenwneseneee
|
||||||
|
swewnwwnwnwneseneewneneneneene
|
||||||
|
enwnwseeneeneneeeneneeeneeswnene
|
||||||
|
sewswseneswwseeswneswseswnesenw
|
||||||
|
nenenwnenenwseneneneneseswnenenenewnene
|
||||||
|
eseseseseeeseeseseeseenwsesesenewsw
|
||||||
|
newenewnesweeeswneeeseenwnenee
|
||||||
|
wswswsenwswswsweswneneswswswswswsesesw
|
||||||
|
wsesenwsesesewsesesenesesesesenesese
|
||||||
|
eseswswseswswswswnwswswsenenwswseswswsesw
|
||||||
|
nwsewsewswswwwnwsenewnwwwwnwew
|
||||||
|
seeseeweewwsenwwneneneeswesewne
|
||||||
|
nwsweseswseseseswneeseseswnwseswsenesw
|
||||||
|
seswswswwneswsesenesewswnenwswswseswwse
|
||||||
|
seeseweseseneswnwseseseesweenwsenw
|
||||||
|
sweswseswwwswnwswnenwwsewswwnwswsw
|
||||||
|
eeeeeeeneswneneeneeswnweenwnese
|
||||||
|
nwwwnwnwwwsewnwwswnwnenwnwwwww
|
||||||
|
swswseseswswsenwswswswneseseswsewseswswsee
|
||||||
|
eseeeseseeseseewsenenwewsese
|
||||||
|
wwwwwwwwnwswwnwwewwwwnww
|
||||||
|
wneenesesenenwwnenwnwneswsenenweswne
|
||||||
|
wswnewwwwwwwwww
|
||||||
|
enenwnenenwnwnwnwnwnwwnenw
|
||||||
|
nenweswswswnenwnenwseneeswesewnenenew
|
||||||
|
neeneneswnenwneswsweeneneeneenwnenene
|
||||||
|
sesesesesesesesenwnwesesesenwwesesese
|
||||||
|
wswwswswswwnwnwwseswswwswswsew
|
||||||
|
nwneseewnwnwnenwnewnenenenwnenwnenwnenw
|
||||||
|
neeeneeeneeeneeeneenesweneenew
|
||||||
|
seswneswsenwesesesewseswseswsesewsesw
|
||||||
|
neswnenesenenwneneneswnenenenenenenenenene
|
||||||
|
neswwswswnwswswswswswsesweswswswswswsw
|
||||||
|
enwwswnwnwwnwnwnenwnwsenenwnwwnwnwnw
|
||||||
|
swnwswwswswswswesweswseseswswseseswsw
|
||||||
|
wsenenwsenwnewsenwnwnwsw
|
||||||
|
nwnwenwsewwswwnwweswnwsewsewnesew
|
||||||
|
nwnwenwnenwnwnwwnwnenwnenwnw
|
||||||
|
newneweneneneenenenwnw
|
||||||
|
swenesesenesesesesesewseneswsesesesese
|
||||||
|
swneneneneseeseeneeseeneewswwwww
|
||||||
|
nwnwnwenwnwnwnwwnwwwnwnwnenwnwswnwse
|
||||||
|
nwnenwneneswesenwswsewnenwnwnwnenwswese
|
||||||
|
seseswswswswsweseseseswnwsesw
|
||||||
|
nwenenwneneneneneenenenesweneneswnenene
|
||||||
|
nenwwwnwsenwnwnwnwnwsenwnwnwnwnenwnwnwnese
|
||||||
|
neneeeeweneeneneswnwnenenwneneswne
|
||||||
|
wwwneswnwnwnwwnwnwewnwnwwwwsenew
|
||||||
|
eenweeeeeesweeeeeee
|
||||||
|
eneweseseeeswewsewseswsenwesenw
|
||||||
|
nenenwnenenenwseswsewnenenwneswnw
|
||||||
|
nwwwswnwswnwnenwwenwnwnwnenwswnwnwnw
|
||||||
|
eswseneeeewenweeseswsewseenee
|
||||||
|
wswswnwneseswseseneswsww
|
||||||
|
sewwwwwnwwwwwnenwwwwwnwwnw
|
||||||
|
enwnwnwwwnwwsenwsewnwwsewswwnwwnw
|
||||||
|
swseswenwenewnesweseswnewsenwseswwwsw
|
||||||
|
nwswwnwnwnwnwenwnwwnwnwwwnwnwnwnww
|
||||||
|
wenwswnenenenenenwne
|
||||||
|
swwwnwnwwwwnwewwwwnwnwenwnwnw
|
||||||
|
nwswneswneswsenenesenenwnwwnenwnwneene
|
||||||
|
neneswneweneneeeweneneeeenenwene
|
||||||
|
neenweneswnwneneneneneneneneswnenenwnenene
|
||||||
|
wswnwwwwnwwnwweeswnwwnwwwew
|
||||||
|
eweneeswneneneeeeeeeeeeew
|
||||||
|
seeneeseseseswswsenwnwseneeesweee
|
||||||
|
eneeneseenesenenenenenenwwwneeneswse
|
||||||
|
swseneenenenenenenesenesenewwnwnenene
|
||||||
|
swnenweeeeeneeewswenwenwswewsene
|
||||||
|
eswnwnwwnwnwswseewnesenwwnweseww
|
||||||
|
nwnewseewnwwwwnwnwswnwnwnwnwnwwnw
|
||||||
|
nwnwneenenesenwnenenenenenenwnenwswnew
|
||||||
|
swwswnewewwwwwwwwewwnwwwsw
|
||||||
|
eeseseseeeeeseenweeeeswe
|
||||||
|
nwnwnwweswnwenwnwnwnwnwnwnenwnwnewnw
|
||||||
|
swwsweneswsewnwwswswwsweenwsww
|
||||||
|
neswneneswseswenenenenenenwnwnwnesw
|
||||||
|
wwwnwswwwswneewwwnwnwewwwe
|
||||||
|
enesewnwwsesenenewwwwsw
|
||||||
|
neneneswnenenenenenesenenenenenenwswnwne
|
||||||
|
seswseseswsesweseseswswnwseseswswsesesw
|
||||||
|
nwnwnwnwsewwnwwnwwnwwnenwnwnwnwnw
|
||||||
|
seeeeeenewneeswneeeenesenwnene
|
||||||
|
wwewwwwwwwwwwwwnwsewnw
|
||||||
|
seseswseseseneesesewsenese
|
||||||
|
sesweseswsesesewwseweeseseseenwsw
|
||||||
|
neswseswswwswswseswswswswswwwneswwsw
|
||||||
|
ewseneseeneswseeesesw
|
||||||
|
swswwnewnwswneswnwwnewsesewswswswwe
|
||||||
|
nwnwnwnwnwnenwnwnwnwnwnesenwnw
|
||||||
|
swnwewsenwwwwwswsewnwneenwnwwnww
|
||||||
|
swswswseseswseseswnwsewswsesesesenesw
|
||||||
|
neenenwneneneneneeeeeneeeneeswese
|
||||||
|
eneeeneneeneeswswnee
|
||||||
|
swnewswwwswswswswswswswswnwseswsenewswsw
|
||||||
|
swseswsesweswsewswswseswseseneswswswsww
|
||||||
|
swenwnenewswnewwsewnwenwnwswnwswwnew
|
||||||
|
swswwwsenwwnwswsewnesewwnwnenene
|
||||||
|
weneneeneswnweeweeswweeswnesw
|
||||||
|
nwswsenenwesenwnwsenwsewenwswnwnwnwnew
|
||||||
|
nesweenwneeeswwneneneeneeneenwenee
|
||||||
|
nesesweswswwswswseswswseseswswseseswsw
|
||||||
|
eeewswnweesweeeseenenenenewee
|
||||||
|
sewwsesesesenenwseneseseseseseesewsesw
|
||||||
|
nenewsewnwnwnwneneswnenenenesenwenw
|
||||||
|
sewwwwswwsewwwwnwnwwwwwwwsw
|
||||||
|
sesewwseseseseseseseseneeseseeeseese
|
||||||
|
neneneewwnenenenenenwneneseeesenene
|
||||||
|
eseeeneneenweeeeeneeee
|
||||||
|
enwswnwwswenwneewswnwswwseseswseenew
|
||||||
|
nwnwnwnenwnwnwwnwnwnwnwnwwnwnwnwsenwnw
|
||||||
|
seswswswenwnwswswswseenewswneneswwsw
|
||||||
|
wswswwwewwnwswswswnwwesewwsww
|
||||||
|
seseseeseseseseseeseswseswnesesenwsesese
|
||||||
|
swnenwswsewwsewswnwswswswnwneenesee
|
||||||
|
nwnwwsenenwnenwnwnwnwwnwnwswnwnwnwnwnw
|
||||||
|
senwwswnewwsenewwwsewewwwwwww
|
||||||
|
wnwwwwnwsenenewwnwwewwnwwnwsenw
|
||||||
|
ewseewsewnwnenewwwwswwneewww
|
||||||
|
wnesenweenenweeswwenwesenesenee
|
||||||
|
eweneneneneweeeeeneswneneseesw
|
||||||
|
nwwsenewwnenwenwswewwwwseswwww
|
||||||
|
eewseseeeseeseeseneeseeeeese
|
||||||
|
wswwneswnwwnweenwnewwswnwnwwwnwwsw
|
||||||
|
nwswsenwwwnwwwwswnwwnwwnwenwwnenw
|
||||||
|
wsweswwswswwwwsewweswnwwwswww
|
||||||
|
neeeweenwneneeneeeseeeneeeeesw
|
||||||
|
swswswseswwswneesewswnwswseseseswsw
|
||||||
|
swwwwwnewwwwwwwwww
|
||||||
|
ewwwewwwwswneswwwwwnwwwwww
|
||||||
|
swwswswswwsesweswswswwwswseswswnewnw
|
||||||
|
nenwnwnenwnwnwnwnwnwnwnwnwnwswnenwnesenew
|
||||||
|
swswswswweswswswseswswswswswswwswnwsw
|
||||||
|
eeseeseeeeseseseseseeseeesenwnw
|
||||||
|
seseeseseseseneseseseseseseseseswsewnew
|
||||||
|
nwwnwnwswswenwnwnwsenwwswnwnwnwewnwnee
|
||||||
|
eeneswswneeeeeeeeeeeeenene
|
||||||
|
swswswnwswwswswswneswswswswneseswswswswsw
|
||||||
|
nenwnwnenwnwneswnwnwnenwnwnenene
|
||||||
|
swnwnwnenewenenwnenwsenenwnwnw
|
||||||
|
swswswswswnwwswswswswswnewwswsweswsw
|
||||||
|
swswsweswneswswswswwwswseswswswswwsww
|
||||||
|
neswnwswsenewnesenwenenenewnwnwnw
|
||||||
|
eeeeweewneeeeeeeeeeee
|
||||||
|
sewswswseseweeseseseeseswnenwenwsene
|
||||||
|
swswsenwswswswswswswseswswswnweswnwesw
|
||||||
|
wnesenweeneneneenesenewneeneneene
|
||||||
|
nwnwnwnwnwnwwnwnenese
|
||||||
|
wweeeneeeeeseseee
|
||||||
|
nwnenenwnwwnwnenenwnwnwnwesenenwneseswnw
|
||||||
|
eeeswenweseeeeeseeenewnwswe
|
||||||
|
enwneeweneeseswsenwnenwseneneneesw
|
||||||
|
seseseseseswsesewsewseneneseneneswsesw
|
||||||
|
seseseeseesenwseseesenwsweeesewse
|
||||||
|
neeeeeneswweewneeeseeeeenee
|
||||||
|
swswswwswswswswseswswneswswswwsweswswsw
|
||||||
|
swswswseswseswswswswswnewseseseswswswse
|
||||||
|
swwwwswswswswnweswswwswne
|
||||||
|
wwwnwnwwwwwnewwnwwnwnwnwnwsew
|
||||||
|
swswswswswswwwswseswnwneswseswnesw
|
||||||
|
nwneseswsenewnweneswsenenenenwnenene
|
||||||
|
seseeseseeseenweeseseeswswesesesenwe
|
||||||
|
neeneneweenewneneenwnweneseesweee
|
||||||
|
eneeseeseeswsweneeseseseesee
|
||||||
|
swnenwnwsenwseswsenwseenwswwsesenwsese
|
||||||
|
eseseeeeswseeeeenweeeeeee
|
||||||
|
eneeneeneeeeswesweeeeneeene
|
||||||
|
nwnwewwnwnenewsesenwnwnwnwseesewnww
|
||||||
|
swswswswswswseswswnwwswnewswseneswseswsw
|
||||||
|
nwnwnwnwnwnwnwnwwnwnwenwnwnwnwnwnwnw
|
||||||
|
sewswswswseneesesenweswnwswsesenwseesw
|
||||||
|
eneeeseesenwweseeneeweeew
|
||||||
|
nenenenenenenenwneneneneneneenewswe
|
||||||
|
wwwswwneswwnwenwwnewswnewsesww
|
||||||
|
wsewwswwnwwwewwnwnwwweswwse
|
||||||
|
nwesenwnwnwnwwsewenwnenesweneswwnwe
|
||||||
|
swneswnesweswnwwnenenweeew
|
||||||
|
nwnwwnwnwenwnenenwnenwenenewneswsenwnene
|
||||||
|
nwnwnenwsenwwnwwnwnwenwwnwnwwnw
|
||||||
|
neseseneswwswwseswswsweswseswseseseswsw
|
||||||
|
nenenenewsenwseenenewneswsenenewnenenene
|
||||||
|
seseseesesesesesesenwswsewseesesesesese
|
||||||
|
eneenenenewseseeeneenenwnenenenenenene
|
||||||
|
nwswnwswneswwseeswswswseswswswswswsww
|
||||||
|
swweswsewswwseseseswswswswseswswee
|
||||||
|
nwnenwenewwwnwnwnenenwenwnwesenwne
|
||||||
|
wwwwwswswewwswwwwwswsweswww
|
||||||
|
swswwnweseenwwnwwwswswwwseseswnwe
|
||||||
|
nwnwwnwwwnwenwswwwnewseswnwnwsene
|
||||||
|
wwwswwwwwswwseswswswnwneseswwsw
|
||||||
|
wwnwnwwwnwnwswenwnwnwnww
|
||||||
|
neneeeneswnewneeenenwswee
|
||||||
|
newnwnenenenwneneswsenenenenenewsesenenene
|
||||||
|
eseseeseseswwnwswsesenwwsenenwseseene
|
||||||
|
neneswnenenenwnenwnwne
|
||||||
|
wswwseswnenwwwswwwwwwwwswneww
|
||||||
|
seewwewwneeewesenwwnenwwnesesw
|
||||||
|
neneneneneneeneswnwnenwneneneneswwnwne
|
||||||
|
nwnwnenenwnenwnewnwsenenenenenenwneneenw
|
||||||
|
nwwnwnwenwnwnwnenwsenwnwnwnwnenwwnwnwe
|
||||||
|
swsewwnenenwneneneeneneswneenenenenwswne
|
||||||
|
eeneneeenesesweewsweenenenwnwenee
|
||||||
|
nenenwneneswseneneneeneeneneneenenene
|
||||||
|
wswwwseenenwsenwnesesenwneswnwnwwe
|
||||||
|
wseswswswwwswswswnwewswswswswswswswsw
|
||||||
|
nwswseswneneneeneswnenwswneneneneenenwe
|
||||||
|
sewnenenenenwseswnesenenwsenwnwnenenene
|
||||||
|
nwwwnwswwneeeewnwnwswewnwnwsenwe
|
||||||
|
seseseeeesewneseesese
|
||||||
|
nesenenenenenenenenewneneneseswnenenenew
|
||||||
|
nwswswswswwswswswwswswswswswswseswswswne
|
||||||
|
wwwwwsewwwnewwwwwwwwww
|
||||||
|
nenwnwnwnwneenwnwwnwswnenwswsenesewse
|
||||||
|
eeseseswseseeeeeeeeseseenesesenw
|
||||||
|
nwnenenwnwnwnwnwsenenwswnenwnenenwnenenwne
|
||||||
|
nwwenwnwnwnwnwnenwnenwnwnwnwnwnweswsw
|
||||||
|
nenwsenenenenenenenwnewnwenwnenenwne
|
||||||
|
nwwnwwnwseneeseseswnwneeeseeneenee
|
||||||
|
wewnwnewwnwwwwswwwnwwwseswww
|
||||||
|
neswseeseseseseseseswsewnwseswswswswsee
|
||||||
|
sewsesesesenwsenwenwwnesesenwnwse
|
||||||
|
seeeeneneeeneeeeewwneeeene
|
||||||
|
neneewwneeneeeeeneneeeeneeee
|
||||||
|
nwsesweswesesesesewswseseswswseswseseswse
|
||||||
|
wwnwnwwnwnwnwnwnwwwnenwwnwnwsenww
|
||||||
|
wnwsewnesweewsenwwenwnwenwwwse
|
||||||
|
wswwwewswwwwwwwswnweww
|
||||||
|
swswnwswswswswswnweneswnewneseseswswswne
|
||||||
|
weseseenwweeswenwseeenesewsenw
|
||||||
|
swswswswseneswswswswswswswneswswswwswswsw
|
||||||
|
senenenenwenesenewseenewswneneeene
|
||||||
|
swnwswseseseseesesewswseseseseseswnwe
|
||||||
|
neswswewwwewnwwwnwswwnwneewwwsw
|
||||||
|
swwnewnwweswswnesenwswewseswswseswsww
|
||||||
|
eseseweeneweeeeeeeenewsew
|
||||||
|
eeseenwsenwswseeesesesenwwsesenwsew
|
||||||
|
esweswwseesenenesesenwsesesenwseseee
|
||||||
|
senwswnwswnwnwswseswswswseseesw
|
||||||
|
nenwneneenenenewnenwnenenenenenenenesene
|
||||||
|
seeseeenenwewweesenwweneneeswe
|
||||||
|
wwwnewwwwwwwswwwwwwsw
|
||||||
|
neseswsenwseseseseseseswseseseswseseesw
|
||||||
|
neneeewsewsewenesewnesewsewsew
|
||||||
|
wwswwnwnwenwnwwnwwwenwwnwnwnenwse
|
||||||
|
nwnwswnwnenwwnwnwswneswenwwwswnwwe
|
||||||
|
enenwwneeeeeeeneneeeeeeeeswe
|
||||||
|
weeeeswesenwse
|
||||||
|
nwnwnewnwsenenenwnwnwsenwnwnwnwnewnwnwenw
|
||||||
|
swenesenewwwenenwsewswwwsewnwe
|
||||||
|
nwswwnwwnenwnewwsenewwwsewwnwse
|
||||||
|
nwnwnwwnwnwwnwsenwnwwwnewnwnwwwnwnese
|
||||||
|
seswswwwwwwswswswswswwnewwwww
|
||||||
|
neswwseenwwnwswseneeewswnwseneesww
|
||||||
|
seesweswenweseenwnwseswwnesenwwnwee
|
||||||
|
seseseseneswseseseseseswseseswenenwsese
|
||||||
|
seesenesesesenwwseseseseneseseseeww
|
||||||
|
eseseeseseeeseseseseeseseewsesene
|
||||||
|
wsewwwwwwnenwnwwwwwwnewwnwsw
|
||||||
|
eseswesenwseseeseeeeseseseeesee
|
||||||
|
neneneseeneneenewneneneneneene
|
||||||
|
neeseseseseeseseswseeee
|
||||||
|
seeeesesesweeesewseneseeesesee
|
||||||
|
enwweeeeeeeeeseeeeeeesee
|
||||||
|
wwwseswsewnewwnenewswswswswswwsww
|
||||||
|
seeewnweseswenenenweeeenee
|
||||||
|
nwsenwwwwnwnwswnwwwne
|
||||||
|
wesesewswswneeenwnweneenweneseesw
|
||||||
|
eeswswwnwswnwnwnwnwesenwwnwnwwnenwnw
|
||||||
|
nweenwseseneeenwseneenwneswneenee
|
||||||
|
nwsenwsenwnwnwnwnwwwnwnwnwnwnwnewnwne
|
||||||
|
seesewseeseseneseseseswsesesesenesese
|
||||||
|
swwseswnwwwswwswwswwew
|
||||||
|
enwneenenenewnewsenenenenenenesenene
|
||||||
|
swwswswwwwwwswneswwswwseswwsene
|
||||||
|
neenenenwnesweneewswne
|
||||||
|
nwnwwnesenwnwnwnwnenenenenenwnwnwnenwne
|
||||||
|
neeenesewwnwsenwswseseeseneswsewsesw
|
||||||
|
newwnwswswnewswwswwswswwwsewww
|
||||||
|
wsewwneenwwww
|
||||||
|
wswwnewwwwwwwwww
|
||||||
|
wwwwswwwswwnwswewwwswswwww
|
||||||
|
swseswswswswseseseswseeswswsenwsesw
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
1327981
|
||||||
|
2822615
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
org.slf4j.simpleLogger.logFile=System.out
|
||||||
|
org.slf4j.simpleLogger.showDateTime=true
|
||||||
|
org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss:SSS Z
|
||||||
|
org.slf4j.simpleLogger.defaultLogLevel=info
|
||||||
|
org.slf4j.simpleLogger.log.io.micronaut=info
|
||||||
|
org.slf4j.simpleLogger.log.io.micronaut.context.lifecycle=info
|
||||||
@@ -1,13 +1,12 @@
|
|||||||
package be.vandewalleh.aoc.days
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
import io.micronaut.context.BeanContext
|
import be.vandewalleh.aoc.utils.factory.createDay
|
||||||
import io.micronaut.context.getBean
|
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
import org.assertj.core.api.Assertions.assertThat
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
|
|
||||||
class Day01Test {
|
class Day01Test {
|
||||||
|
|
||||||
private val day = BeanContext.run().getBean<Day01>()
|
private val day = createDay<Day01>()
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `part1 result`() {
|
fun `part1 result`() {
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
package be.vandewalleh.aoc.days
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
import be.vandewalleh.aoc.utils.input.Input
|
import be.vandewalleh.aoc.utils.factory.createDay
|
||||||
import be.vandewalleh.aoc.utils.input.createDay
|
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
import org.assertj.core.api.Assertions.assertThat
|
||||||
|
import org.junit.jupiter.api.Disabled
|
||||||
import org.junit.jupiter.api.Nested
|
import org.junit.jupiter.api.Nested
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ class Day03Test {
|
|||||||
"#.##...#...",
|
"#.##...#...",
|
||||||
"#...##....#",
|
"#...##....#",
|
||||||
".#..#...#.#",
|
".#..#...#.#",
|
||||||
).let { Input(it) }
|
)
|
||||||
|
|
||||||
private val day03 = Day03(example)
|
private val day03 = Day03(example)
|
||||||
|
|
||||||
@@ -43,11 +43,13 @@ class Day03Test {
|
|||||||
private val day03 = createDay<Day03>()
|
private val day03 = createDay<Day03>()
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@Disabled
|
||||||
fun `part1 result`() {
|
fun `part1 result`() {
|
||||||
assertThat(day03.part1()).isEqualTo(294)
|
assertThat(day03.part1()).isEqualTo(294)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@Disabled
|
||||||
fun `part2 result`() {
|
fun `part2 result`() {
|
||||||
assertThat(day03.part2()).isEqualTo(5774564250)
|
assertThat(day03.part2()).isEqualTo(5774564250)
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
package be.vandewalleh.aoc.days
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
import be.vandewalleh.aoc.utils.input.Input
|
import be.vandewalleh.aoc.utils.factory.createDay
|
||||||
import be.vandewalleh.aoc.utils.input.createDay
|
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
import org.assertj.core.api.Assertions.assertThat
|
||||||
import org.junit.jupiter.api.Assertions
|
import org.junit.jupiter.api.Assertions
|
||||||
import org.junit.jupiter.api.Nested
|
import org.junit.jupiter.api.Nested
|
||||||
@@ -26,7 +25,6 @@ class Day04Test {
|
|||||||
hcl:#cfa07d eyr:2025 pid:166559648
|
hcl:#cfa07d eyr:2025 pid:166559648
|
||||||
iyr:2011 ecl:brn hgt:59in
|
iyr:2011 ecl:brn hgt:59in
|
||||||
""".trimIndent()
|
""".trimIndent()
|
||||||
.let { Input(it) }
|
|
||||||
|
|
||||||
private val day04 = Day04(example)
|
private val day04 = Day04(example)
|
||||||
|
|
||||||
@@ -63,7 +61,7 @@ class Day04Test {
|
|||||||
hgt:59cm ecl:zzz
|
hgt:59cm ecl:zzz
|
||||||
eyr:2038 hcl:74454a iyr:2023
|
eyr:2038 hcl:74454a iyr:2023
|
||||||
pid:3556412378 byr:2007
|
pid:3556412378 byr:2007
|
||||||
""".trimIndent().let { Input(it) }
|
""".trimIndent()
|
||||||
|
|
||||||
assertThat(Day04(input).part2()).isEqualTo(0)
|
assertThat(Day04(input).part2()).isEqualTo(0)
|
||||||
}
|
}
|
||||||
@@ -83,7 +81,7 @@ class Day04Test {
|
|||||||
eyr:2022
|
eyr:2022
|
||||||
|
|
||||||
iyr:2010 hgt:158cm hcl:#b6652a ecl:blu byr:1944 eyr:2021 pid:093154719
|
iyr:2010 hgt:158cm hcl:#b6652a ecl:blu byr:1944 eyr:2021 pid:093154719
|
||||||
""".trimIndent().let { Input(it) }
|
""".trimIndent()
|
||||||
|
|
||||||
assertThat(Day04(input).part2()).isEqualTo(4)
|
assertThat(Day04(input).part2()).isEqualTo(4)
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
package be.vandewalleh.aoc.days
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
import be.vandewalleh.aoc.utils.input.createDay
|
import be.vandewalleh.aoc.utils.factory.createDay
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
import org.assertj.core.api.Assertions.assertThat
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
|
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import org.assertj.core.api.Assertions.assertThat
|
||||||
|
import org.junit.jupiter.params.ParameterizedTest
|
||||||
|
import org.junit.jupiter.params.provider.CsvSource
|
||||||
|
|
||||||
|
class Day13Test {
|
||||||
|
|
||||||
|
@CsvSource(
|
||||||
|
value = [
|
||||||
|
" 7,13 | 77",
|
||||||
|
" 17,x,13,19 | 3417",
|
||||||
|
" 67,7,59,61 | 754018",
|
||||||
|
" 67,x,7,59,61 | 779210",
|
||||||
|
" 67,7,x,59,61 | 1261476",
|
||||||
|
"1789,37,47,1889 | 1202161486",
|
||||||
|
],
|
||||||
|
delimiter = '|'
|
||||||
|
)
|
||||||
|
@ParameterizedTest
|
||||||
|
fun examples(buses: String, answer: Long) {
|
||||||
|
val input = listOf("", buses)
|
||||||
|
assertThat(Day13(input).part2()).isEqualTo(answer)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,112 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import java.util.concurrent.TimeUnit
|
||||||
|
import kotlin.math.pow
|
||||||
|
import org.openjdk.jmh.annotations.*
|
||||||
|
import org.openjdk.jmh.infra.Blackhole
|
||||||
|
import org.openjdk.jmh.runner.Runner
|
||||||
|
import org.openjdk.jmh.runner.options.Options
|
||||||
|
import org.openjdk.jmh.runner.options.OptionsBuilder
|
||||||
|
|
||||||
|
/*
|
||||||
|
Benchmark Mode Cnt Score Error Units
|
||||||
|
Day14Benchmark.charArrays avgt 5 0.038 ± 0.001 ms/op
|
||||||
|
Day14Benchmark.countReplacePad avgt 5 0.044 ± 0.002 ms/op
|
||||||
|
Day14Benchmark.stringBuilders avgt 5 0.082 ± 0.005 ms/op
|
||||||
|
*/
|
||||||
|
|
||||||
|
@BenchmarkMode(Mode.AverageTime)
|
||||||
|
@OutputTimeUnit(TimeUnit.MILLISECONDS)
|
||||||
|
@State(Scope.Benchmark)
|
||||||
|
@Warmup(iterations = 3)
|
||||||
|
@Measurement(iterations = 5)
|
||||||
|
open class Day14Benchmark {
|
||||||
|
|
||||||
|
private val mask = "1XX10X10100X1010X1000100X0X10X001X00"
|
||||||
|
private val address = 43398.toString(2).padStart(36, '0')
|
||||||
|
|
||||||
|
@Benchmark
|
||||||
|
fun stringBuilders(blackhole: Blackhole) {
|
||||||
|
val mutationCount = mask.count { it == 'X' }.let { 2.0.pow(it.toDouble()).toInt() }
|
||||||
|
val mutations = Array(mutationCount) { StringBuilder(36) }
|
||||||
|
|
||||||
|
var groups = 1
|
||||||
|
|
||||||
|
for (i in mask.indices) {
|
||||||
|
when (mask[i]) {
|
||||||
|
'X' -> {
|
||||||
|
groups *= 2
|
||||||
|
val groupSize = mutationCount / groups
|
||||||
|
var currentChar = '1'
|
||||||
|
for (b in mutations.indices) {
|
||||||
|
val builder = mutations[b]
|
||||||
|
val flip = b % groupSize == 0
|
||||||
|
if (flip) currentChar = if (currentChar == '0') '1' else '0'
|
||||||
|
builder.append(currentChar)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'1' -> mutations.forEach { it.append('1') }
|
||||||
|
else -> mutations.forEach { it.append(address[i]) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
blackhole.consume(mutations)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Benchmark
|
||||||
|
fun charArrays(blackhole: Blackhole) {
|
||||||
|
val mutationCount = mask.count { it == 'X' }.let { 2.0.pow(it.toDouble()).toInt() }
|
||||||
|
val mutations = Array(mutationCount) { CharArray(36) }
|
||||||
|
|
||||||
|
var groups = 1
|
||||||
|
|
||||||
|
for (i in mask.indices) {
|
||||||
|
when (mask[i]) {
|
||||||
|
'X' -> {
|
||||||
|
groups *= 2
|
||||||
|
val groupSize = mutationCount / groups
|
||||||
|
var currentChar = '1'
|
||||||
|
for (b in mutations.indices) {
|
||||||
|
val builder = mutations[b]
|
||||||
|
val flip = b % groupSize == 0
|
||||||
|
if (flip) currentChar = if (currentChar == '0') '1' else '0'
|
||||||
|
builder[i] = currentChar
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'1' -> mutations.forEach { it[i] = '1' }
|
||||||
|
else -> mutations.forEach { it[i] = address[i] }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
blackhole.consume(mutations)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Benchmark
|
||||||
|
fun countReplacePad(blackhole: Blackhole) {
|
||||||
|
val bitCount = mask.count { it == 'X' }
|
||||||
|
val mutationCount = bitCount.let { 2.0.pow(it.toDouble()).toInt() }
|
||||||
|
|
||||||
|
val results = Array(mutationCount) { CharArray(36) }
|
||||||
|
|
||||||
|
repeat(mutationCount) { i ->
|
||||||
|
var count = 0
|
||||||
|
val result = results[i]
|
||||||
|
val currentMask = i.toString(2).padStart(bitCount, '0')
|
||||||
|
for (j in address.indices) {
|
||||||
|
result[j] = when (mask[j]) {
|
||||||
|
'X' -> currentMask[count++]
|
||||||
|
'1' -> '1'
|
||||||
|
else -> address[j]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
blackhole.consume(results)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
val opt: Options = OptionsBuilder()
|
||||||
|
.include(Day14Benchmark::class.java.simpleName)
|
||||||
|
.forks(1)
|
||||||
|
.build()
|
||||||
|
|
||||||
|
Runner(opt).run()
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.factory.createDay
|
||||||
|
import java.util.concurrent.TimeUnit
|
||||||
|
import org.openjdk.jmh.annotations.*
|
||||||
|
import org.openjdk.jmh.infra.Blackhole
|
||||||
|
import org.openjdk.jmh.runner.Runner
|
||||||
|
import org.openjdk.jmh.runner.options.Options
|
||||||
|
import org.openjdk.jmh.runner.options.OptionsBuilder
|
||||||
|
|
||||||
|
/*
|
||||||
|
Benchmark Mode Cnt Score Error Units
|
||||||
|
Day16Benchmark.part2 avgt 5 0.697 ± 0.026 ms/op
|
||||||
|
*/
|
||||||
|
|
||||||
|
@BenchmarkMode(Mode.AverageTime)
|
||||||
|
@OutputTimeUnit(TimeUnit.MILLISECONDS)
|
||||||
|
@State(Scope.Benchmark)
|
||||||
|
@Warmup(iterations = 3)
|
||||||
|
@Measurement(iterations = 5)
|
||||||
|
open class Day16Benchmark {
|
||||||
|
|
||||||
|
private val day16 = createDay<Day16>()
|
||||||
|
|
||||||
|
@Benchmark
|
||||||
|
fun part2(blackhole: Blackhole) {
|
||||||
|
blackhole.consume(day16.part2())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
val opt: Options = OptionsBuilder()
|
||||||
|
.include(Day16Benchmark::class.simpleName)
|
||||||
|
.forks(1)
|
||||||
|
.build()
|
||||||
|
|
||||||
|
Runner(opt).run()
|
||||||
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.factory.createDay
|
||||||
|
import java.util.concurrent.TimeUnit
|
||||||
|
import org.openjdk.jmh.annotations.*
|
||||||
|
import org.openjdk.jmh.infra.Blackhole
|
||||||
|
import org.openjdk.jmh.runner.Runner
|
||||||
|
import org.openjdk.jmh.runner.options.OptionsBuilder
|
||||||
|
|
||||||
|
/*
|
||||||
|
Benchmark Mode Cnt Score Error Units
|
||||||
|
Day18Benchmark.part1 avgt 3 0.253 ± 0.098 ms/op
|
||||||
|
Day18Benchmark.part2 avgt 3 0.283 ± 0.027 ms/op
|
||||||
|
*/
|
||||||
|
|
||||||
|
@BenchmarkMode(Mode.AverageTime)
|
||||||
|
@OutputTimeUnit(TimeUnit.MILLISECONDS)
|
||||||
|
@State(Scope.Benchmark)
|
||||||
|
@Warmup(iterations = 1)
|
||||||
|
@Measurement(iterations = 3)
|
||||||
|
open class Day18Benchmark {
|
||||||
|
|
||||||
|
private val day18 = createDay<Day18>()
|
||||||
|
|
||||||
|
@Benchmark
|
||||||
|
fun part1(blackhole: Blackhole) {
|
||||||
|
blackhole.consume(day18.part1())
|
||||||
|
}
|
||||||
|
|
||||||
|
@Benchmark
|
||||||
|
fun part2(blackhole: Blackhole) {
|
||||||
|
blackhole.consume(day18.part2())
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
val opt = OptionsBuilder()
|
||||||
|
.include(Day18Benchmark::class.simpleName)
|
||||||
|
.forks(1)
|
||||||
|
.build()
|
||||||
|
|
||||||
|
Runner(opt).run()
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import org.assertj.core.api.Assertions.assertThat
|
||||||
|
import org.junit.jupiter.params.ParameterizedTest
|
||||||
|
import org.junit.jupiter.params.provider.CsvSource
|
||||||
|
|
||||||
|
class Day18Test {
|
||||||
|
|
||||||
|
@CsvSource(value = [
|
||||||
|
"1 + 2 * 3 + 4 * 5 + 6 , 231",
|
||||||
|
"1 + (2 * 3) + (4 * (5 + 6)) , 51",
|
||||||
|
"2 * 3 + (4 * 5) , 46",
|
||||||
|
"5 + (8 * 3 + 9 + 3 * 4 * 3) , 1445", // !!!
|
||||||
|
"5 * 9 * (7 * 3 * 3 + 9 * 3 + (8 + 6 * 4)) , 669060",
|
||||||
|
"((2 + 4 * 9) * (6 + 9 * 8 + 6) + 6) + 2 + 4 * 2 , 23340"
|
||||||
|
])
|
||||||
|
@ParameterizedTest
|
||||||
|
fun examplesPart2(input: String, output: Long) {
|
||||||
|
val day18 = Day18(listOf(input))
|
||||||
|
assertThat(day18.part2()).isEqualTo(output)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
plugins {
|
||||||
|
id("aoc")
|
||||||
|
}
|
||||||
|
|
||||||
|
application {
|
||||||
|
mainClass.set("be.vandewalleh.aoc.days.MainKt")
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
target area: x=20..30, y=-10..-5
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
target area: x=139..187, y=-148..-89
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
import nre, strutils
|
||||||
|
|
||||||
|
let
|
||||||
|
regex = re"x=(-?\d+)..(-?\d+), y=(-?\d+)..(-?\d+)"
|
||||||
|
data = readFile("input.txt")
|
||||||
|
captures = data.find(regex).get.captures
|
||||||
|
x1 = captures[0].parseInt()
|
||||||
|
x2 = captures[1].parseInt()
|
||||||
|
y1 = captures[2].parseInt()
|
||||||
|
y2 = captures[3].parseInt()
|
||||||
|
minX = min(x1, x2)
|
||||||
|
maxX = max(x1, x2)
|
||||||
|
minY = min(y1, y2)
|
||||||
|
maxY = max(y1, y2)
|
||||||
|
|
||||||
|
proc land(dx: int, dy: int): int =
|
||||||
|
var dx = dx
|
||||||
|
var dy = dy
|
||||||
|
var x = 0
|
||||||
|
var y = 0
|
||||||
|
var high = y
|
||||||
|
while x < maxX and y > minY:
|
||||||
|
x += dx
|
||||||
|
y += dy
|
||||||
|
if dx > 0: dx -= 1
|
||||||
|
elif dx < 0: dx += 1
|
||||||
|
dy -= 1
|
||||||
|
high = max(high, y)
|
||||||
|
if x in minX..maxX and y in minY..maxY:
|
||||||
|
return high
|
||||||
|
return -1
|
||||||
|
|
||||||
|
var high = 0
|
||||||
|
var match = 0
|
||||||
|
for x in -1000..1000:
|
||||||
|
for y in -1000..1000:
|
||||||
|
let res = land(x, y)
|
||||||
|
if res != -1: match += 1
|
||||||
|
high = max(res, high)
|
||||||
|
|
||||||
|
echo(high)
|
||||||
|
echo(match)
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
class Counter<K> : Iterable<Map.Entry<K, Long>> {
|
||||||
|
private val map = HashMap<K, Long>()
|
||||||
|
operator fun get(key: K) = map[key] ?: 0L
|
||||||
|
|
||||||
|
operator fun set(key: K, count: Long) {
|
||||||
|
map[key] = count
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun set(key: K, count: Int) {
|
||||||
|
if (count == 0)
|
||||||
|
map.remove(key)
|
||||||
|
else
|
||||||
|
map[key] = count.toLong()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun toMap() = map.toMap(HashMap())
|
||||||
|
override fun toString() = map.toString()
|
||||||
|
|
||||||
|
fun minValue() = map.minOf { it.value }
|
||||||
|
fun maxValue() = map.maxOf { it.value }
|
||||||
|
|
||||||
|
override fun iterator() = toMap().iterator()
|
||||||
|
|
||||||
|
companion object
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun <T> Counter.Companion.invoke(items: Iterable<T>) = Counter<T>().apply { items.forEach { this[it] += 1 } }
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.BaseDay
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
|
||||||
|
@Day
|
||||||
|
class Day01 : BaseDay() {
|
||||||
|
private val items by lazy { input.lines.ints }
|
||||||
|
|
||||||
|
override fun part1(): Int {
|
||||||
|
var count = 0
|
||||||
|
for (i in 0 until items.size - 1) {
|
||||||
|
if (items[i] < items[i + 1]) count++
|
||||||
|
}
|
||||||
|
return count
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun part2(): Int {
|
||||||
|
var count = 0
|
||||||
|
for (i in 0 until items.size - 3) {
|
||||||
|
val a = items.drop(i).take(3).sum()
|
||||||
|
val b = items.drop(i + 1).take(3).sum()
|
||||||
|
if (b > a) count++
|
||||||
|
}
|
||||||
|
return count
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.BaseDay
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
|
||||||
|
@Day
|
||||||
|
class Day02 : BaseDay() {
|
||||||
|
private val lines by lazy { input.lines.value.map { it.split(' ').let { it[0] to it[1].toInt() } } }
|
||||||
|
|
||||||
|
override fun part1(): Int {
|
||||||
|
var horizontalPosition = 0
|
||||||
|
var depth = 0
|
||||||
|
lines.forEach { (direction, value) ->
|
||||||
|
when (direction) {
|
||||||
|
"forward" -> horizontalPosition += value
|
||||||
|
"down" -> depth += value
|
||||||
|
"up" -> depth -= value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return horizontalPosition * depth
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun part2(): Any {
|
||||||
|
var horizontalPosition = 0
|
||||||
|
var depth = 0
|
||||||
|
var aim = 0
|
||||||
|
lines.forEach { (direction, value) ->
|
||||||
|
when (direction) {
|
||||||
|
"forward" -> {
|
||||||
|
horizontalPosition += value
|
||||||
|
depth += aim * value
|
||||||
|
}
|
||||||
|
"down" -> aim += value
|
||||||
|
"up" -> aim -= value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return horizontalPosition * depth
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.BaseDay
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
|
||||||
|
@Day
|
||||||
|
class Day03 : BaseDay() {
|
||||||
|
override fun part1(): Int {
|
||||||
|
val moreOnes = input.lines.value[0].indices
|
||||||
|
.map { i -> input.lines.value.map { it[i] } }
|
||||||
|
.map { it.count { it == '1' } >= it.size / 2 }
|
||||||
|
|
||||||
|
val gamma = moreOnes.joinToString("") { if (it) "1" else "0" }.toInt(radix = 2)
|
||||||
|
val epsilon = moreOnes.joinToString("") { if (!it) "1" else "0" }.toInt(radix = 2)
|
||||||
|
return gamma * epsilon
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun part2(): Any {
|
||||||
|
val o2 = findNumber(input.lines.value) { ones, zeros -> if (ones >= zeros) '1' else '0' }
|
||||||
|
val co2 = findNumber(input.lines.value) { ones, zeros -> if (zeros <= ones) '0' else '1' }
|
||||||
|
return o2 * co2
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun findNumber(input: List<String>, keep: (Int, Int) -> Char): Int {
|
||||||
|
var numbers = input
|
||||||
|
for (i in this.input.lines.value[0].indices) {
|
||||||
|
if (numbers.size == 1) break
|
||||||
|
val eachCount = numbers.map { it[i] }.groupingBy { it }.eachCount()
|
||||||
|
val ones = eachCount['1'] ?: 0
|
||||||
|
val zeros = eachCount['0'] ?: 0
|
||||||
|
val maj = keep(ones, zeros)
|
||||||
|
numbers = numbers.filter { it[i] == maj }
|
||||||
|
}
|
||||||
|
return numbers[0].toInt(2)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.BaseDay
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
|
||||||
|
@Day
|
||||||
|
class Day04 : BaseDay() {
|
||||||
|
private val numbers by lazy { input.lines.value[0].split(',').map { it.toInt() } }
|
||||||
|
private val boards by lazy {
|
||||||
|
input.text.split("\n\n")
|
||||||
|
.drop(1)
|
||||||
|
.map { it.lines().map { it.trim().split("\\s+".toRegex()).map { it.toInt() } } }
|
||||||
|
}
|
||||||
|
|
||||||
|
private val results by lazy { boards.map { playBoard(it) } }
|
||||||
|
|
||||||
|
override fun part1() = results.minByOrNull { it.first }!!.second
|
||||||
|
override fun part2() = results.maxByOrNull { it.first }!!.second
|
||||||
|
|
||||||
|
private fun playBoard(board: List<List<Int>>): Pair<Int, Int> {
|
||||||
|
for (round in numbers.indices) {
|
||||||
|
val usedNumbers = numbers.take(round)
|
||||||
|
for (line in board + board[0].indices.map { col -> board.map { it[col] } }) {
|
||||||
|
if (usedNumbers.containsAll(line)) {
|
||||||
|
val unmarkedNumbers = board.flatten().toMutableSet().also { it.removeAll(usedNumbers) }
|
||||||
|
return round to unmarkedNumbers.sum() * usedNumbers.last()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
error("No wins")
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.BaseDay
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
|
||||||
|
@Day
|
||||||
|
class Day05 : BaseDay() {
|
||||||
|
|
||||||
|
data class Point(val x: Int, val y: Int)
|
||||||
|
|
||||||
|
private val re = "(\\d+),(\\d+) -> (\\d+),(\\d+)".toRegex()
|
||||||
|
|
||||||
|
private fun path(start: Point, end: Point): Sequence<Point> {
|
||||||
|
val dx = end.x.compareTo(start.x)
|
||||||
|
val dy = end.y.compareTo(start.y)
|
||||||
|
return generateSequence(start) {
|
||||||
|
if (it == end) null
|
||||||
|
else Point(it.x + dx, it.y + dy)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun part1(): Int {
|
||||||
|
val visited = HashMap<Point, Int>()
|
||||||
|
input.lines.value
|
||||||
|
.map {
|
||||||
|
re.find(it)!!.destructured.let { (x1, y1, x2, y2) ->
|
||||||
|
Point(x1.toInt(), y1.toInt()) to Point(x2.toInt(), y2.toInt())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.filter { (start, end) -> start.x == end.x || start.y == end.y }
|
||||||
|
.flatMap { (start, end) -> path(start, end) }
|
||||||
|
.forEach { visited.compute(it) { _, value -> (value ?: 0) + 1 } }
|
||||||
|
|
||||||
|
return visited.values.count { it >= 2 }
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun part2(): Int {
|
||||||
|
val visited = HashMap<Point, Int>()
|
||||||
|
input.lines.value
|
||||||
|
.map {
|
||||||
|
re.find(it)!!.destructured.let { (x1, y1, x2, y2) ->
|
||||||
|
Point(x1.toInt(), y1.toInt()) to Point(x2.toInt(), y2.toInt())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.flatMap { (start, end) -> path(start, end) }
|
||||||
|
.forEach { visited.compute(it) { _, value -> (value ?: 0) + 1 } }
|
||||||
|
|
||||||
|
return visited.values.count { it >= 2 }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.BaseDay
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
|
||||||
|
@Day
|
||||||
|
class Day06 : BaseDay() {
|
||||||
|
override fun part1() = run(80)
|
||||||
|
override fun part2() = run(256)
|
||||||
|
|
||||||
|
private fun run(days: Int): Long {
|
||||||
|
var fish = LongArray(9)
|
||||||
|
input.csv.ints.forEach { fish[it] = fish[it] + 1 }
|
||||||
|
|
||||||
|
var newFish: LongArray
|
||||||
|
for (day in 1..days) {
|
||||||
|
newFish = LongArray(9)
|
||||||
|
for (timer in 8 downTo 1) {
|
||||||
|
newFish[timer - 1] = fish[timer]
|
||||||
|
}
|
||||||
|
newFish[8] = fish[0]
|
||||||
|
newFish[6] = fish[0] + newFish[6]
|
||||||
|
fish = newFish
|
||||||
|
}
|
||||||
|
return fish.sum()
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.BaseDay
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
import kotlin.math.abs
|
||||||
|
|
||||||
|
@Day
|
||||||
|
class Day07 : BaseDay() {
|
||||||
|
|
||||||
|
override fun part1(): Any {
|
||||||
|
val ints = input.csv.ints
|
||||||
|
return (ints.minOrNull()!!..ints.maxOrNull()!!).minOf { target -> ints.sumOf { abs(it - target) } }
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun calc(position: Int, target: Int): Int {
|
||||||
|
val diff = abs(position - target)
|
||||||
|
var sum = 0
|
||||||
|
for (i in 1..diff) {
|
||||||
|
sum += diff - i + 1
|
||||||
|
}
|
||||||
|
return sum
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun part2(): Any {
|
||||||
|
val ints = input.csv.ints
|
||||||
|
return (ints.minOrNull()!!..ints.maxOrNull()!!).minOf { target -> ints.sumOf { calc(it, target) } }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.BaseDay
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
|
||||||
|
@Day
|
||||||
|
class Day08 : BaseDay() {
|
||||||
|
|
||||||
|
override fun part1() = input.lines.value
|
||||||
|
.map { it.split(" | ")[1].split(" ") }
|
||||||
|
.sumOf { it.count { it.length in setOf(2, 3, 4, 7) } }
|
||||||
|
|
||||||
|
override fun part2() = input.lines.value
|
||||||
|
.map { it.split(" | ").map { it.split(" ") } }
|
||||||
|
.sumOf { (pattern, digits) ->
|
||||||
|
val patterns = decodePatterns(pattern)
|
||||||
|
digits.map { patterns[it.sortChars()] }.joinToString("").toInt()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun decodePatterns(patterns: List<String>): Map<String, Int> {
|
||||||
|
val result = Array(10) { "" }
|
||||||
|
|
||||||
|
result[1] = patterns.single { it.length == 2 }
|
||||||
|
result[7] = patterns.single { it.length == 3 }
|
||||||
|
result[4] = patterns.single { it.length == 4 }
|
||||||
|
result[8] = patterns.single { it.length == 7 }
|
||||||
|
|
||||||
|
val frequency = patterns.flatMap { it.toCharArray().toList() }.groupBy { it }.mapValues { it.value.size }
|
||||||
|
val a = (result.letters(7) - result.letters(1)).first()
|
||||||
|
val b = frequency.findKey { it.value == 6 }
|
||||||
|
val c = frequency.findKey { it.value == 8 && it.key != a }
|
||||||
|
val d = frequency.findKey { it.value == 7 && it.key in result.letters(4) }
|
||||||
|
val e = frequency.findKey { it.value == 4 }
|
||||||
|
val f = frequency.findKey { it.value == 9 }
|
||||||
|
|
||||||
|
result[0] = patterns.find { it.length == 6 && d !in it }!!
|
||||||
|
result[2] = patterns.find { it.length == 5 && b !in it && f !in it }!!
|
||||||
|
result[3] = patterns.find { it.length == 5 && b !in it && e !in it }!!
|
||||||
|
result[5] = patterns.find { it.length == 5 && c !in it && e !in it }!!
|
||||||
|
result[6] = patterns.find { it.length == 6 && c !in it }!!
|
||||||
|
result[9] = patterns.find { it.length == 6 && e !in it }!!
|
||||||
|
|
||||||
|
return result.mapIndexed { index, value -> value.sortChars() to index }.toMap()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun Array<String>.letters(number: Int) = this[number].toCharArray().toSet()
|
||||||
|
private fun <K, V> Map<K, V>.findKey(predicate: (Map.Entry<K, V>) -> Boolean) = entries.find(predicate)!!.key
|
||||||
|
private fun String.sortChars() = toCharArray().sorted().joinToString("")
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.BaseDay
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
|
||||||
|
private data class Point(val x: Int, val y: Int)
|
||||||
|
private fun Point.adjacents() = listOf(copy(y = y - 1), copy(x = x + 1), copy(y = y + 1), copy(x = x - 1))
|
||||||
|
|
||||||
|
@Day
|
||||||
|
class Day09 : BaseDay() {
|
||||||
|
|
||||||
|
private val map by lazy {
|
||||||
|
input.lines.value.flatMapIndexed { y, line ->
|
||||||
|
line.mapIndexed { x, value -> Point(x, y) to value.digitToInt() }
|
||||||
|
}.filterNot { it.second == 9 }.toMap()
|
||||||
|
}
|
||||||
|
|
||||||
|
private val lows by lazy {
|
||||||
|
map.keys.filter { point -> point.adjacents().mapNotNull { map[it] }.all { it > map[point]!! } }
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun part1() = lows.sumOf { map[it]!! + 1 }
|
||||||
|
|
||||||
|
override fun part2() = lows.map { low ->
|
||||||
|
val visited = HashSet<Point>().apply { add(low) }
|
||||||
|
generateSequence(hashSetOf(low)) {
|
||||||
|
it.asSequence()
|
||||||
|
.flatMap { it.adjacents() }
|
||||||
|
.filter { it in map }
|
||||||
|
.filterNot { it in visited }
|
||||||
|
.toHashSet()
|
||||||
|
.also { visited.addAll(it) }
|
||||||
|
.ifEmpty { null }
|
||||||
|
}.flatten().count()
|
||||||
|
}.sorted().takeLast(3).fold(1) { a, b -> a * b }
|
||||||
|
}
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.BaseDay
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
|
||||||
|
@Day
|
||||||
|
class Day10 : BaseDay() {
|
||||||
|
private val chunks = mapOf(
|
||||||
|
')' to '(',
|
||||||
|
']' to '[',
|
||||||
|
'>' to '<',
|
||||||
|
'}' to '{',
|
||||||
|
)
|
||||||
|
|
||||||
|
override fun part1(): Any {
|
||||||
|
val points = mapOf(
|
||||||
|
')' to 3,
|
||||||
|
']' to 57,
|
||||||
|
'}' to 1197,
|
||||||
|
'>' to 25137,
|
||||||
|
)
|
||||||
|
return input.lines.value.sumOf { line ->
|
||||||
|
val stack = mutableListOf<Char>()
|
||||||
|
for (char in line) {
|
||||||
|
if (char in chunks) {
|
||||||
|
if (stack.last() == chunks[char]!!) stack.removeLast()
|
||||||
|
else return@sumOf points[char]!!
|
||||||
|
} else {
|
||||||
|
stack.add(char)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun part2(): Any {
|
||||||
|
val points = mapOf(
|
||||||
|
'(' to 1,
|
||||||
|
'[' to 2,
|
||||||
|
'{' to 3,
|
||||||
|
'<' to 4,
|
||||||
|
)
|
||||||
|
return input.lines.value.mapNotNull { line ->
|
||||||
|
val stack = mutableListOf<Char>()
|
||||||
|
for (char in line) {
|
||||||
|
if (char in chunks) {
|
||||||
|
if (stack.last() == chunks[char]!!) stack.removeLast()
|
||||||
|
else return@mapNotNull null
|
||||||
|
} else {
|
||||||
|
stack.add(char)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stack.foldRight(0L) { char, score -> score * 5 + points[char]!! }
|
||||||
|
}.sorted().let { it[it.size / 2] }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
package be.vandewalleh.aoc.days
|
||||||
|
|
||||||
|
import be.vandewalleh.aoc.utils.BaseDay
|
||||||
|
import be.vandewalleh.aoc.utils.input.Day
|
||||||
|
|
||||||
|
@Day
|
||||||
|
class Day11 : BaseDay() {
|
||||||
|
|
||||||
|
private data class Point(val x: Int, val y: Int) {
|
||||||
|
fun adjacents() = listOf(
|
||||||
|
copy(y = y - 1),
|
||||||
|
copy(x = x + 1),
|
||||||
|
copy(y = y + 1),
|
||||||
|
copy(x = x - 1),
|
||||||
|
copy(y = y - 1, x = x - 1),
|
||||||
|
copy(x = x + 1, y = y + 1),
|
||||||
|
copy(y = y + 1, x = x - 1),
|
||||||
|
copy(x = x + 1, y = y - 1),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
private val map by lazy {
|
||||||
|
input.lines.value.flatMapIndexed { y, line ->
|
||||||
|
line.mapIndexed { x, value -> Point(x, y) to value.digitToInt() }
|
||||||
|
}.toMap()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun part1(): Int {
|
||||||
|
val map = map.toMap(HashMap())
|
||||||
|
var count = 0
|
||||||
|
repeat(100) { count += step(map) }
|
||||||
|
return count
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun step(map: HashMap<Point, Int>): Int {
|
||||||
|
map.keys.forEach { map[it] = map[it]!! + 1 }
|
||||||
|
val flashed = hashSetOf<Point>()
|
||||||
|
while (true) {
|
||||||
|
val count = map.entries.asSequence()
|
||||||
|
.filter { it.value > 9 }
|
||||||
|
.filter { it.key !in flashed }
|
||||||
|
.onEach { flashed += it.key }
|
||||||
|
.flatMap { it.key.adjacents() }
|
||||||
|
.filter { it in map }
|
||||||
|
.onEach { map[it] = map[it]!! + 1 }
|
||||||
|
.count()
|
||||||
|
|
||||||
|
if (count == 0) break
|
||||||
|
}
|
||||||
|
|
||||||
|
map.entries.filter { it.value > 9 }
|
||||||
|
.map { it.key }
|
||||||
|
.forEach { map[it] = 0 }
|
||||||
|
|
||||||
|
return flashed.size
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun part2(): Int {
|
||||||
|
val map = map.toMap(HashMap())
|
||||||
|
repeat(10000) { if (step(map) == map.size) return it + 1 }
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user