Compare commits

..

5 commits

Author SHA1 Message Date
cbc89e3411 WIP: implement part 2
This requires terabytes of RAM. Or a couple million dollars in today's
economy.
2025-12-10 22:19:34 +00:00
d68ac82e5d Finish day10, part 1 2025-12-10 20:42:15 +00:00
ec4a937062 WIP: implement part 1 2025-12-10 16:33:04 +00:00
9d5a5a22d6 WIP: Implement part 1
Use IntegerBitSet instead of slices
2025-12-10 13:58:02 +00:00
4a058df871 WIP: implement part 1 2025-12-10 12:53:18 +00:00
8 changed files with 358 additions and 2008 deletions

View file

@ -1,16 +0,0 @@
# Advent of Code 2025
| Day | Part 1 | Part 2 |
| --- | ------ | ------ |
| 1 | [x] | [x] |
| 2 | [x] | [x] |
| 3 | [x] | [x] |
| 4 | [x] | [x] |
| 5 | [x] | [x] |
| 6 | [x] | [x] |
| 7 | [x] | [x] |
| 8 | [ ] | [ ] |
| 9 | [x] | [x] |
| 10 | [x] | [ ] |
| 11 | [x] | [x] |
| 12 | [ ] | [ ] |

View file

@ -17,7 +17,6 @@
nativeBuildInputs = with pkgs; [
zig
zls
hyperfine
];
buildInputs = with pkgs; [];

View file

@ -1,7 +1,161 @@
const std = @import("std");
pub const title = "Day 10";
pub const title = "Day 10: Factory";
pub fn run(_: std.mem.Allocator) !void {
pub fn run(allocator: std.mem.Allocator) !void {
//const input = @embedFile("./input/day10.txt");
const input =
\\[.##.] (3) (1,3) (2) (2,3) (0,2) (0,1) {3,5,4,7}
\\[...#.] (0,2,3,4) (2,3) (0,4) (0,1,2) (1,2,3,4) {7,5,12,7,2}
\\[.###.#] (0,1,2,3,4) (0,3,4) (0,1,2,4,5) (1,2) {10,11,11,5,10,5}
;
//const input =
// \\[#...#] (1,3) (2,3,4) (0,2,3) (0,1,2) (2,3) {37,24,60,50,16}
// \\[##...#..] (0,1,3,5,6) (0,1,5) (4) (5,6) (0,4,7) (1,2,5) (3) {23,18,2,26,14,36,25,7}
// ;
var lines = std.mem.tokenizeScalar(u8, input, '\n');
var accumulator: usize = 0;
var jolt_states: std.ArrayList([Machine.MaxLightCount]u9) = .empty;
defer jolt_states.deinit(allocator);
var next_jolt_states: std.ArrayList([Machine.MaxLightCount]u9) = .empty;
defer next_jolt_states.deinit(allocator);
var i: usize = 0;
while (lines.next()) |line| {
defer i += 1;
const machine = try Machine.init(allocator, line);
defer machine.deinit();
std.debug.print("{f}\n", .{machine});
jolt_states.clearRetainingCapacity();
try jolt_states.append(allocator, [_]u9{0} ** Machine.MaxLightCount);
var buttons_pressed: usize = 0;
outer: while (true) {
next_jolt_states.clearRetainingCapacity();
buttons_pressed += 1;
for (jolt_states.items) |state| {
for (machine.buttons) |button| {
var next_state: [Machine.MaxLightCount]u9 = state;
for (0..Machine.MaxLightCount) |index| {
if (button.isSet(index)) {
next_state[index] += 1;
}
}
if (std.mem.eql(u9, &next_state, machine.jolts_goal)) {
break :outer;
}
try next_jolt_states.append(allocator, next_state);
}
}
jolt_states.clearRetainingCapacity();
try jolt_states.appendSlice(allocator, next_jolt_states.items);
}
std.debug.print("machine {d} requires {d} button presses\n", .{i, buttons_pressed});
accumulator += buttons_pressed;
}
var buffer: [64]u8 = undefined;
var stdout_writer = std.fs.File.stdout().writer(&buffer);
const stdout = &stdout_writer.interface;
try stdout.print("{d}\n", .{accumulator});
try stdout.flush();
}
const Machine = struct {
lights_goal: std.bit_set.IntegerBitSet(MaxLightCount),
buttons: []std.bit_set.IntegerBitSet(MaxLightCount),
jolts_goal: []u9,
allocator: std.mem.Allocator,
const Self = @This();
pub const MaxLightCount = 16;
pub fn init(allocator: std.mem.Allocator, line: []const u8) !Self {
std.debug.assert(line[0] == '[');
var lights_goal: std.bit_set.IntegerBitSet(MaxLightCount) = .initEmpty();
var buttons: std.ArrayList(std.bit_set.IntegerBitSet(MaxLightCount)) = .empty;
defer buttons.deinit(allocator);
var jolts_goal: std.ArrayList(u9) = .empty;
defer jolts_goal.deinit(allocator);
var line_iter = std.mem.tokenizeScalar(u8, line, ' ');
while (line_iter.next()) |part| {
const p = part[1..part.len - 1];
if (part[0] == '[' and part[part.len - 1] == ']') {
for (p, 0..) |c, i| {
if (c == '#') lights_goal.set(i);
}
} else if (part[0] == '(' and part[part.len - 1] == ')') {
var button: std.bit_set.IntegerBitSet(MaxLightCount) = .initEmpty();
var values_iter = std.mem.tokenizeScalar(u8, p, ',');
while (values_iter.next()) |value| {
button.set(try std.fmt.parseUnsigned(usize, value, 10));
}
try buttons.append(allocator, button);
} else if (part[0] == '{' and part[part.len - 1] == '}') {
var values_iter = std.mem.tokenizeScalar(u8, p, ',');
while (values_iter.next()) |value| {
try jolts_goal.append(allocator, try std.fmt.parseUnsigned(u9, value, 10));
}
}
}
const buttons_slice = try buttons.toOwnedSlice(allocator);
errdefer allocator.free(buttons_slice);
const jolts_goal_slice = try jolts_goal.toOwnedSlice(allocator);
errdefer allocator.free(jolts_goal_slice);
return .{
.lights_goal = lights_goal,
.buttons = buttons_slice,
.jolts_goal = jolts_goal_slice,
.allocator = allocator,
};
}
pub fn deinit(self: Self) void {
self.allocator.free(self.buttons);
self.allocator.free(self.jolts_goal);
}
pub fn format(self: Self, w: *std.Io.Writer) std.Io.Writer.Error!void {
try w.print("[{b}]", .{self.lights_goal.mask});
try w.writeByte(' ');
for (self.buttons, 0..) |button, i| {
try w.print("({b})", .{button.mask});
if (i < self.buttons.len - 1) {
try w.writeByte(' ');
}
}
try w.writeByte(' ');
try w.writeByte('{');
for (self.jolts_goal, 0..) |jolt, i| {
try w.print("{d}", .{jolt});
if (i < self.jolts_goal.len - 1) {
try w.writeByte(',');
}
}
try w.writeByte('}');
}
};

View file

@ -1,120 +1,7 @@
const std = @import("std");
pub const title = "Day 11: Reactor";
pub const title = "Day 11";
pub fn run(allocator: std.mem.Allocator) !void {
const input = @embedFile("./input/day11.txt");
//const input =
// \\aaa: you hhh
// \\you: bbb ccc
// \\bbb: ddd eee
// \\ccc: ddd eee fff
// \\ddd: ggg
// \\eee: out
// \\fff: out
// \\ggg: out
// \\hhh: ccc fff iii
// \\iii: out
// ;
//const input =
// \\svr: aaa bbb
// \\aaa: fft
// \\fft: ccc
// \\bbb: tty
// \\tty: ccc
// \\ccc: ddd eee
// \\ddd: hub
// \\hub: fff
// \\eee: dac
// \\dac: fff
// \\fff: ggg hhh
// \\ggg: out
// \\hhh: out
// ;
var lines = std.mem.tokenizeScalar(u8, input, '\n');
var devices: std.StringHashMap([][]const u8) = .init(allocator);
defer {
var outputs_iter = devices.valueIterator();
while (outputs_iter.next()) |value| {
allocator.free(value.*);
}
devices.deinit();
}
while (lines.next()) |line| {
const device = line[0..3];
std.debug.print("device = {s}\n", .{device});
var outputs: std.ArrayList([]const u8) = .empty;
defer outputs.deinit(allocator);
var outputs_iter = std.mem.tokenizeScalar(u8, line[5..], ' ');
while (outputs_iter.next()) |output| {
try outputs.append(allocator, output);
}
const outputs_slice = try outputs.toOwnedSlice(allocator);
errdefer allocator.free(outputs_slice);
try devices.put(device, outputs_slice);
}
var cache: std.StringHashMap(usize) = .init(allocator);
defer cache.deinit();
try cache.ensureTotalCapacity(devices.count());
const dac_to_fft = try visitOutputs("dac", "fft", devices, &cache);
const svr_to_fft = try visitOutputs("svr", "fft", devices, &cache);
cache.clearRetainingCapacity();
const to_fft = if (dac_to_fft == 0) svr_to_fft else dac_to_fft;
const dac_start = if (dac_to_fft == 0) "fft" else "svr";
const end_start = if (dac_to_fft == 0) "dac" else "fft";
const to_dac = try visitOutputs(dac_start, "dac", devices, &cache);
cache.clearRetainingCapacity();
const to_end = try visitOutputs(end_start, "out", devices, &cache);
const result = to_fft * to_dac * to_end;
var buffer: [8]u8 = undefined;
var stdout_writer = std.fs.File.stdout().writer(&buffer);
const stdout = &stdout_writer.interface;
try stdout.print("{d}\n", .{result});
try stdout.flush();
}
fn visitOutputs(
start: []const u8,
end: []const u8,
devices: std.StringHashMap([][]const u8),
cache: *std.StringHashMap(usize),
) !usize {
if (cache.get(start)) |result| {
return result;
}
var paths: usize = 0;
const device = devices.get(start);
if (device) |outputs| {
for (outputs) |output| {
if (std.mem.eql(u8, output, end)) {
paths += 1;
} else {
paths += try visitOutputs(output, end, devices, cache);
}
}
try cache.put(start, paths);
return paths;
} else {
std.debug.print("device {s} not found\n", .{start});
return 0;
}
pub fn run(_: std.mem.Allocator) !void {
}

View file

@ -1,240 +1,7 @@
const std = @import("std");
pub const title = "Day 12: Christmas Tree Farm";
pub const title = "Day 12";
pub fn run(allocator: std.mem.Allocator) !void {
const input = @embedFile("./input/day12.txt");
//const input =
// \\0:
// \\###
// \\##.
// \\##.
// \\
// \\1:
// \\###
// \\##.
// \\.##
// \\
// \\2:
// \\.##
// \\###
// \\##.
// \\
// \\3:
// \\##.
// \\###
// \\##.
// \\
// \\4:
// \\###
// \\#..
// \\###
// \\
// \\5:
// \\###
// \\.#.
// \\###
// \\
// \\4x4: 0 0 0 0 2 0
// \\12x5: 1 0 1 0 2 2
// \\12x5: 1 0 1 0 3 2
// ;
var lines = std.mem.tokenizeScalar(u8, input, '\n');
var presents: std.ArrayList(Present) = .empty;
defer presents.deinit(allocator);
var regions: std.ArrayList(Region) = .empty;
defer {
for (regions.items) |region| {
region.deinit(allocator);
}
regions.deinit(allocator);
}
while (lines.next()) |line| {
var semicolon_pos: usize = 0;
var x_pos: ?usize = null;
for (line, 0..) |c, i| {
switch (c) {
'x' => x_pos = i,
':' => {
semicolon_pos = i;
break;
},
else => {},
}
}
if (semicolon_pos != 0) {
if (x_pos) |p| {
// region
const width = try std.fmt.parseUnsigned(usize, line[0..p], 10);
const height = try std.fmt.parseUnsigned(usize, line[p + 1..semicolon_pos], 10);
var required_presents: std.ArrayList(u8) = .empty;
defer required_presents.deinit(allocator);
if (presents.items.len > 0) {
try required_presents.ensureTotalCapacity(allocator, presents.items.len);
}
var presents_iter = std.mem.tokenizeScalar(u8, line[semicolon_pos + 2..], ' ');
while (presents_iter.next()) |present| {
const amount = try std.fmt.parseUnsigned(u8, present, 10);
try required_presents.append(allocator, amount);
}
const required_presents_slice = try required_presents.toOwnedSlice(allocator);
errdefer allocator.free(required_presents_slice);
const region: Region = .{
.width = width,
.height = height,
.required_presents = required_presents_slice,
};
try regions.append(allocator, region);
} else {
// present
var present: Present = .{
.shape = .initEmpty(),
};
for (0..Present.Width) |y| {
const l = lines.next() orelse unreachable;
for (0..Present.Width) |x| {
if (l[x] == '#') {
present.set(x, y);
}
}
}
try presents.append(allocator, present);
}
}
}
var accumulator: usize = 0;
for (regions.items) |region| {
std.debug.print("{f}\n", .{region});
var area_needed: usize = 0;
for (region.required_presents, 0..) |amount, i| {
area_needed += amount * presents.items[i].area();
}
if (area_needed < region.area()) {
std.debug.print("{f}\nfits\n", .{region});
accumulator += 1;
}
}
var buffer: [8]u8 = undefined;
var stdout_writer = std.fs.File.stdout().writer(&buffer);
const stdout = &stdout_writer.interface;
try stdout.print("{d}\n", .{accumulator});
try stdout.flush();
pub fn run(_: std.mem.Allocator) !void {
}
const Present = struct {
shape: std.bit_set.IntegerBitSet(Width * Width),
const Width = 3;
const Self = @This();
pub fn format(self: Self, w: *std.Io.Writer) std.Io.Writer.Error!void {
for (0..Width) |y| {
for (0..Width) |x| {
try w.writeByte(if (self.isSet(x, y)) '#' else '.');
}
if (y < Width - 1) {
try w.writeByte('\n');
}
}
}
pub fn set(self: *Self, x: usize, y: usize) void {
const index = (y * Width) + x;
self.shape.set(index);
}
pub fn isSet(self: Self, x: usize, y: usize) bool {
const index = (y * Width) + x;
return self.shape.isSet(index);
}
pub fn area(self: Self) usize {
return self.shape.count();
}
};
const Region = struct {
width: usize,
height: usize,
required_presents: []u8,
const Self = @This();
pub fn deinit(self: Self, allocator: std.mem.Allocator) void {
allocator.free(self.required_presents);
}
pub fn format(self: Self, w: *std.Io.Writer) std.Io.Writer.Error!void {
try w.print("{d}x{d}: ", .{self.width, self.height});
for (self.required_presents, 0..) |present, i| {
try w.print("{d}", .{present});
if (i < self.required_presents.len - 1) {
try w.writeByte(' ');
}
}
}
pub fn createEmpty(self: Self, allocator: std.mem.Allocator) !EmptyRegion {
return try .init(allocator, self.width, self.height);
}
pub fn area(self: Self) usize {
return self.width * self.height;
}
};
const EmptyRegion = struct {
grid: [][]bool,
filled_spaces: usize,
allocator: std.mem.Allocator,
const Self = @This();
pub fn init(allocator: std.mem.Allocator, width: u8, height: u8) !Self {
const h = try allocator.alloc([]bool, height);
for (0..height) |i| {
const w = try allocator.alloc(u8, width);
@memset(w, false);
h[i] = w;
}
return .{
.grid = h,
.filled_spaces = 0,
.allocator = allocator,
};
}
pub fn deinit(self: Self) void {
for (self.grid) |row| {
self.allocator.free(row);
}
self.allocator.free(self.grid);
}
pub fn fits(self: Self, present: Present) bool {
std.debug.assert(self.grid.len > 0);
const size = self.grid.len * self.grid[0].len;
if ((size - self.filled_spaces) < present.shape.count()) {
return false;
}
// TODO: Implementation
return false;
}
};

198
src/days/input/day10.txt Executable file
View file

@ -0,0 +1,198 @@
[#...#] (1,3) (2,3,4) (0,2,3) (0,1,2) (2,3) {37,24,60,50,16}
[##...#..] (0,1,3,5,6) (0,1,5) (4) (5,6) (0,4,7) (1,2,5) (3) {23,18,2,26,14,36,25,7}
[.#..###] (0,1,4,5) (0,3,4,5,6) (3,5,6) (0,5) (0,1,4,5,6) (0,1,2,3,4) (0,1,5) (2,5) (0,1,2,4,5) {36,30,6,18,28,40,21}
[.###] (2) (0,1) (1,2) (1,2,3) {9,173,175,13}
[.###.] (1,2) (0,1,2,3) (2,3) (1,2,3,4) (1,2,3) (0,2,4) (1,4) {12,32,31,24,17}
[..#####.##] (1,3,4,6,7,8,9) (4) (0,2) (0,2,3,4,5,7,8,9) (3,6,7,9) (1,5,8) (0,1,2,3,4,6,8) (1,7,8) (0,1,2,3,4,8,9) (2,7,9) (0,1,2,5,6,8) (2,4,7,8) (6,8,9) {73,75,92,46,75,30,45,37,109,39}
[###..#..] (0,1,2,3,6,7) (3,6) (0,4,7) (0,6,7) (1,3,5,6,7) (0,1,2,4,5,6) (3,4,6) (2,3,6) (2,3,5,6,7) {39,23,31,81,38,28,100,61}
[##.#.##..] (1,4,5,6,8) (2,3,4,6,8) (1,3,5,7) (0,1,2,3,4,5,7,8) (0,3) (1,2,3,4,5,7,8) (0,3,6,7,8) (0,1,3,4,5,6,7,8) {44,47,31,59,56,47,39,40,58}
[####.##.] (2,3,5,6) (0,3,4,6,7) (1,6,7) (0,1,3,4,5,7) (0,2,3,6,7) (1,7) (0,1,2) (0,1,2,3,5,6) (1,4,5,6,7) (0,7) {57,60,27,40,31,42,75,72}
[.##.] (0,2) (2,3) (1,2) (1,3) (0) (0,2,3) {12,19,26,28}
[##.#] (0,2) (1,2) (0,1) (0,1,3) (0,3) {50,44,35,16}
[.##.#...] (0,4) (0,2,4,5,7) (0,1,3,4,5,7) (0,2,3,5,6,7) (1,2,6,7) (1,3) (0,6,7) (0,2,3,6,7) (0,7) (0,2,4,5,6) {265,33,227,40,229,215,224,76}
[.###] (0,1) (3) (2) (1) {7,7,16,13}
[..#...###.] (0,1,2,3,5,6,7,8,9) (0,2,3,4,5,6,8) (0,2,3,5,6,9) (0,1,2,3,4,5,6,8,9) (1,3,7,9) (0,3,5) (0,1,2,5,6,7,8,9) (1,3,4,7) {46,30,36,39,15,46,36,27,25,34}
[..##] (0,1,3) (0,1,2) (2) (1,2,3) {148,159,169,21}
[.#.#] (0,1,2) (1,3) {128,133,128,5}
[#...#..] (0,2) (4,6) (2,5) (0,1,5) (0,3,4,6) (1,2,3,4,5) {21,4,22,10,15,13,13}
[......#] (0,2,4,5) (4,5) (0,1,2,3,4) (0) (0,1) (4) (0,1,2,4) (0,1,5) (0,1,5,6) {74,58,51,19,67,41,8}
[#..##..#] (0,5,6) (0,1,2,3,6,7) (0,1,2,4,5) (4,7) (0,3,6) (4,6,7) (1,2,3,5,7) (1,5,6) (0,1,2,3,4,5) {55,53,44,38,62,51,53,44}
[###..#] (0,1,3,5) (3,4) (1,2,3,5) (0,2,4,5) (1,2) (0,5) (4) (1,4,5) {23,37,41,30,59,48}
[..#..##..] (0,2,4,5,7,8) (1,2,5,8) (1,4,5,7) (2,8) (0,1,3,8) (1,2,3,5,6,7,8) (3,4,5,8) {32,50,41,45,41,64,15,42,71}
[...##] (0,1,2,3) (1,4) (1,2) (3) (2) (0,1) {18,38,31,31,17}
[##.#..##] (0,1,4,6,7) (0,2,5,6) (3,6) (0,1,4,5,6,7) (0,1,3,6,7) (2,3,5,7) {30,27,7,24,23,20,46,31}
[####..] (1,2,4) (2,3,4) (0,1,2,3) (0,1) (0,1,3,5) (0,1,2,4) (3) (0,2,3,4,5) {56,48,39,27,34,20}
[.#..] (2,3) (0) (0,2) (1,2) (0,1,2) {25,14,194,175}
[.#.#..##] (1,3,7) (0,6) (1,2,5) (6) (0,1,2,4,5,6) (2,3,4,7) (0,2,7) (3,6) {18,26,14,31,9,8,28,24}
[.###...#] (0,1) (1) (3,4) (0,1,3,5) (0,1,2,3,7) (0,2,3,4,5) (0,1,2,3,4,5,6) (1,7) {31,34,9,14,9,12,0,4}
[##.#.##.##] (0,1,2,3,6,8) (0,2,3,4,5,6,8,9) (2,5,7,8,9) (0,1,2,3,4,5,7) (8) (2,6) (0,2,3,4,5,8) (1,4,5) (1,3,4,5,7,8,9) (4,5,7) (0,3,4,5,8) (0,1,2,4,5,6,7,8) {61,39,48,74,98,100,18,54,71,32}
[.###.#.] (4,6) (1,5) (2,3,6) (3,4) (0,5) (0,1,2,4) (1,2,6) (1,2,3,6) {34,49,56,171,181,28,52}
[.#...##.] (0,2,6,7) (1,2,3,6) (1,2,5) (4) (0,2,4,6) (1,3,5,6,7) (2,5,7) (0,1,2,3,4,6,7) {21,51,76,32,21,41,47,32}
[#.#...#.] (1,3,5,6) (2,5,6) (0,2,4,6,7) (2,6,7) (1,2,4,6,7) (0,2,6) {14,178,42,177,3,194,219,13}
[..#.##] (0,2) (0,1,2,3) (2,4) (1,2,3) (1,2,5) (1,3,5) (4,5) (3,5) {22,57,58,60,19,70}
[#....] (0,2,3) (0,4) (1,4) (0,2,4) (1) {29,22,15,4,34}
[#.#..##.] (0,1,2,3) (1,2,3,4,5,6) (1,5,7) (2,3,6,7) (1,4,7) (0,1,2,5,6,7) {18,36,44,41,15,21,29,17}
[......#] (0,2,4) (3,5) (1,3,6) (2,3,4,5) (0,1,4,5,6) (0,1,2,3,5) (1,6) {18,30,171,176,158,175,15}
[.##.#.#.] (0,6,7) (0,5,6) (1,3,4,5,7) (1,4,6) (5,6,7) (3,6) (2,5,7) {170,18,14,10,18,26,207,190}
[.#.#.] (0,1,2,4) (0,2,3,4) (2,4) {20,17,22,3,22}
[.###.#..##] (1,6) (0,9) (0,4,5,7,8,9) (4,6,9) (1,2,3,4,5,7,9) (3,6,7,9) (0,3,5,7,9) (0,1,2,4,5,6,8,9) (0,2,4,5,6,7) (0,3,4,5) (4,7) (1,6,8) (0) {71,26,22,19,63,41,53,53,26,61}
[.#.##.] (1,2,4,5) (1,4,5) (0,2,4,5) (1,3,4) {15,139,35,118,154,36}
[...###.] (1,2,4,5) (1,4,5,6) (0,5,6) (0,4,5) (3,4,5) (1,2,5,6) (3,4,5,6) (0,2,5,6) (0,1,3,4,5) {46,123,127,34,152,179,36}
[##..#.#...] (2,4,5,6,7,8,9) (0,2,3,5,6,7,9) (0,1,3,4,5,6,7,9) (1,2,3,4,5,6,7,8,9) (0,1,6,7) (0,1,3,4,5,6,7) (0,1,2,3,4,5,6,7) (1,2,4,6,9) (0,1,2,4,5,7,8) (0,2,3,4,5,6,8,9) (2,8) (0,1,2,3,5,7,8,9) {64,67,73,68,77,93,96,99,51,81}
[...###..#.] (1,2,4,5,8) (3,4,6,7) (0,1,2,3,6,7) (2,8) (2,6,9) (0,1,2,6,7) (2,4,5,6,8,9) (1,2,5,6,7,9) (1,2,7,8) (0,2,3,5,6,7,8,9) (0,2,3,7) (3,7) {39,30,72,54,35,30,55,66,28,25}
[..##....#] (1,2,5) (1,2,6,8) (2,4) (0,2,3,5,6,7,8) (1,2,6,7,8) (4,7) (0,1,3,4,5,6,7) (2,3,8) (0,4,8) {22,46,95,37,27,36,47,40,67}
[....#...#.] (0,1,2,3,4,7,8,9) (1,2,5,7,8,9) (2,4,5,7,9) (0,1,2,3,5,6,7,8) (0,1,4,6,7,8) (0,2,3,4,6,8,9) (0,1,5,6,7,8) (5,6) (0,1,2,3,5,6,8,9) {69,71,61,45,38,50,58,61,85,54}
[.#.#] (2,3) (1,2) (0,1) (0,3) {31,14,6,23}
[####.] (1,3) (0,1,4) (2,4) (0,4) {197,207,4,13,201}
[##.###] (0,1,3,4,5) (1,4,5) (0,1,2) (1,3,4,5) {33,53,13,27,40,40}
[#####.####] (3,4,6,7,8,9) (1,4,6) (0,3,4,5,6,7,9) (1,6,9) (0,1,2,6,7) (1,2,7,9) (0,1,5,6,8,9) (0,2,4,5,6,7,8) (1,2,6) (0,2,4,5) (0,3,4,9) (2,4,5,8) {77,74,65,34,72,62,103,59,45,69}
[#.##.] (1,2) (0,2,3,4) (1,2,4) (2,3) (1,3,4) {1,39,31,28,37}
[##.#] (1,2) (1,3) (2) (0,2,3) (3) (0,3) {10,19,11,39}
[##.#] (1,2,3) (0,1,3) (0,1,2) (0) (1,2) (2) {33,40,36,23}
[#...####.#] (1,2,3,6) (1,2,6,7,8) (2,5) (0,2,3,4,5,6,7,8,9) (0,7,8) (0,1,2,3,4,5,7,9) (4) (1,2,3,4,5,6,9) (1,4,5,6,8,9) (2,3,4,5,6,7,8,9) (0,3,4,5,6,7,8) {63,72,78,73,89,91,89,85,85,62}
[#####.#.] (2,7) (0,6) (3,5,7) (0,1,4,7) (0,1,2,4,5,7) (0,1,2,3,4,6) (1,3,4,5,6) (6,7) (0,1,2,3,4,5) {58,53,40,44,53,48,54,33}
[##..#.] (1,2,3,4) (4) (2,3,4) (0,3,4,5) (0,2,3,4) (2,4) (0,2,4,5) (0,2,3) {55,3,83,63,91,22}
[.####.] (0,3,5) (0,1,2,4,5) (2,3) (1,2,3,4) (0,3,4) (0,2,5) {54,8,39,65,28,34}
[###.#...] (2,3,5,6) (0,1,3,4,5,7) (0,2,5,7) (0,1,3,7) (4) (0,4,5,7) (0,1,2,3,5,6) (4,5,6) (0,3,4,5,6,7) (0,1,3,4,6) {74,34,27,57,60,85,61,53}
[..##.###..] (0,2,5,6,7,8,9) (1,2,3,4,5,6,7,9) (1,2,3,4,6,7,8,9) (0,1,4,5,6,8) (1,3,4,5) (1,4,5) (1,2,4,7) (0,3,5,7,8) (0,2,5,8) (0,3,9) {52,77,66,62,77,63,54,65,60,50}
[###.##] (1,5) (0,1,2,5) (0,3,4,5) (0,1,3) (2,3,4,5) {172,166,34,166,30,60}
[.#.##] (4) (0,3) (1,2,4) (3) (2,4) (1,2,3,4) {14,23,142,50,145}
[.#.#..#] (2,5) (3,4) (1,2,3,5,6) (0,2,3,4,5) (0,4,5,6) {22,9,22,28,39,42,29}
[#.#.] (1,2) (0,1) (2,3) (0,1,3) (0,2) {135,33,140,1}
[#..#.] (0,3) (0,1,3,4) (0,2,4) {40,18,13,27,31}
[#..###.] (0,1,3,4,6) (3,6) (1,2,3,6) (0,4,5,6) (4,5) {15,25,19,36,15,9,45}
[###.##] (0,1,3) (0,1,2,4,5) (1,2,3,4) (0,1) (0,2,4) {12,10,15,3,15,7}
[..#.#] (3) (0,1,2,4) (2,4) (1,3,4) (0,1,3) (2,3) {16,21,44,215,36}
[#..###] (3,4,5) (0,1,5) (0,2,3,4) (0,3,4) (2,3,4,5) (1,2) (0,4) (0,1) {63,33,44,53,63,24}
[..#.##] (4,5) (2,4) (0,4) (2,4,5) (1,2,3,4) (3,4) {1,3,19,17,45,13}
[####..##..] (2,3,5,6,9) (4,8) (0,1,4) (0,3,4,8,9) (8,9) (1,4,9) (1,2,3,5,6,7,8,9) (2,3) (2,3,6,7) (1,2,3,4,5,6,7,8,9) (0,6) (0,3,4,5,7,8,9) (3,4,6) {24,37,44,60,50,32,57,50,44,51}
[.#.###] (3,4) (0,1,3,4) (0,1,2,5) (0,1,3,4,5) (3,5) (0,4) {20,13,7,23,21,19}
[......#.] (0,1,2,3,4,6) (6) (1,3,5,6) (0,1,5) (0,1,2,3,5,7) (1,2,4,6) (1,2,7) {10,225,206,17,22,19,45,184}
[.##.#] (0,1,2,3) (2,4) (1,2,4) {9,199,214,9,205}
[###.] (1,2) (0) (0,2,3) (1,3) (3) (0,1) {167,28,22,28}
[#....#.#] (3,4) (0,1,2,4,5,6,7) (1,2,5,6,7) (0,5,7) (3) (3,5) (2,4) {16,202,213,52,36,229,202,210}
[#...] (1,2,3) (2) (0,2) (0,1,3) (0) {34,22,38,22}
[.###] (1,2,3) (0,2,3) {0,123,123,123}
[#...#.] (1,4,5) (1,2,5) (2,3,4) (1,2,3) (0,4,5) {7,16,17,16,10,9}
[##.######] (0,5) (0,1,2,3,4,5,8) (1,6) (0,1,3,4,5,6,8) (4,6,7) (1,4,5,7) (3,4,5,6,8) (2,5,8) (3,5) {27,35,9,37,35,76,34,15,29}
[.#####.##] (2,8) (1,3,4,6,7,8) (1,5,7) (3,4,5,6,7) (0,2,3,4,5,6,7) (1,3,4,5,8) (1,3,4) {10,47,11,39,39,33,26,44,22}
[#####] (3) (1) (4) (1,4) (1,3,4) (2,3) (0,1,3) {12,33,12,36,13}
[..##.] (0,1,4) (2,3) (0,2,4) (1,3) {17,26,11,20,17}
[#..###...] (2,6,7,8) (0,2,3,4,6,8) (6,8) (0,3,4,5) (0,3,4,6,7,8) (0,1,2,3,4,5,8) (0,1,2,3,5,6,7,8) (1,6) (1,2) {37,41,57,37,21,26,49,24,53}
[#..##...#.] (0,3,4,8) (1,2,3,4,6,7,8) (0,1,3,5,6,7,9) (0,1,4,7,9) (7,8,9) (3,4,5,7,8,9) (1,2,3,4,7) (1,2,3,4,5,6,9) {25,214,202,225,223,16,195,221,208,31}
[.##.#] (1,4) (0,3,4) (2) {19,12,132,19,31}
[#...#.#] (0,3,4,5) (1,3,6) (2,5) (2,6) (0,1,2,3,4,5) (0,3,6) (1,4) {34,34,32,35,43,28,24}
[###..#.###] (0,1,2,4,8,9) (0,2,8,9) (2,9) (1,3,4,5,7,8,9) (0,5,6,7) (3,4,6,9) (0,1,2,3,4,6,8,9) (8) (1,2,4,5,6,7,8,9) (0,4,6,8,9) (0,1,3,4,7,8,9) (0,2,3,4,5,7,8,9) (0,1,2,5,7,8,9) {92,70,78,56,93,45,51,56,115,136}
[..#..#.#.] (0,2,3,7) (7) (0,1,2,5,6) (3,4,5) (0,1,3,5,6,7) (1,6) (3,5,6,8) (1,6,8) (3,5,6,7,8) (2,3,4,7) {33,38,34,79,27,61,65,54,28}
[..#.#...] (0,2,5,6,7) (2,4) (0,1,3) (1,2,3,4,6,7) (0,2,4,5,6,7) (2,5) (1,3,4,7) {42,40,72,40,54,48,53,66}
[...#..#..] (3,6) (5,8) (2,4,6) (1,2,4,5,6,7,8) (0,2,6,7,8) (2,7) (1,3,4,5,6,8) (1,5) (0,5) (1,4,5,6,7,8) {37,53,60,30,53,83,86,52,68}
[...##.#] (0,2,4,5,6) (2,5) (1,3) (0,1,4,5) (0,2) (1,6) (1,4,5,6) {27,34,31,3,35,47,31}
[######.#.] (0,3,4,5,6,7,8) (0,1,3,5,7) (1,6,7) (1,6) (0,1,2,4,5,7,8) (1,2,3,4,5,7) (1,2,4,6,8) (1,3,4,6) {39,192,137,145,165,144,68,157,42}
[#####.] (1,2,3,4,5) (4) (0,2) (0,1,5) (1,2) (2,4) (0,1,2,3) {29,34,34,10,14,25}
[#..#] (0) (1) (1,3) (1,2,3) (2,3) (3) {5,49,24,58}
[.###.....] (0,1,5) (0,2,3,4,6,8) (2,4,6) (1,2) (0,3,4,7) (5) (0,3,8) (2,3,5,6) (0,1,2,5,6) {33,17,15,20,12,38,14,8,9}
[#...###.] (0,2,6,7) (0,1,3,6) (1,3,4,5) (0,5,7) (3,4,5,7) (0,1,3,4,5,6,7) (0,1,2,3,4,6) {70,51,32,65,55,50,55,54}
[..###.#.] (0,5) (2,7) (0,1,3,6,7) (1,4) (0,1,6) (0) (0,1,2) (0,1,2,5,6,7) (1,2,3,7) (5) {54,248,31,23,192,25,33,31}
[#.##] (0,2,3) (1,2) (0,1,3) (2) {154,152,33,154}
[###.] (1,3) (2) (2,3) (0,2,3) (0,1,3) (1,2) {23,54,44,51}
[#..##.#.] (1,4,5,6,7) (0,1,2) (3,4,5) (7) (0,2,5) (1,4) (1,2,3,4,6) (0,4) (0,1,2,4,5) {21,58,40,27,61,36,34,31}
[#.#..###.#] (0,1,2,3,5,6) (0,1,5,6,7,8,9) (0,2,3,6,7,9) (2,4,5,6,7,8,9) (0,1,3,4,5,6,7,8,9) (6,7) (0,8) (0,7) (0,3,9) (0,2,4,5,7,8) (2,4,7) (5,9) {80,22,34,39,50,48,37,66,61,59}
[#.#...] (0,1,5) (0,1) (1,2,3,4) (0,3) (0,1,2,5) (0,2) (0,3,4) {61,39,49,46,34,17}
[##.##.#..] (0,1,3,5,7) (1,2,3,4,5,6,8) (1,2,4,5,8) (0,2,7,8) (4,8) (1,2,3) (0,2,3,4,6,8) {47,63,80,69,45,43,34,33,63}
[..###.##] (0,1,2,3,4,5) (5,6) (0,2,3,4,5,7) (0,1,6) (0,1,3,4,5,6,7) (0,1,2,3,4,7) {58,52,24,40,40,32,36,32}
[.#.###] (0,2,3,4,5) (2,3,4) (1,3,4,5) (0,1) (0,1,4) (2,3) {126,131,34,52,162,31}
[...#...#.] (0,2,4,7,8) (0,1,2,3,4,8) (1,4,5,6) (0,2,3,4) (1,2,5,6) (0,3,5,7,8) (0,1,2,3,4,6,8) (0,3,4,6,7) (0,1,2,3,4,5,6,7) (3,4,5,6,8) (1,3) {90,84,60,121,101,74,94,55,58}
[#..###..#] (4,8) (0,2,3,4,5,7,8) (1,5) (0,2,3,4,6,7) (1,2,3,4,7) (0,2,3,4,6,7,8) (1,4) (1,2,3,4,5,6,7,8) (5,6) (0,1,2,5,6,7) {51,71,87,80,119,212,211,87,67}
[##.#.#] (0,2,4,5) (1,5) (2,3,5) (0,3) (0,1,3,5) {25,22,10,31,2,32}
[...#######] (2,5,7) (5) (0,2,3,5,6,7,8,9) (1,2,3,6,7) (1,2,4,7,8) (0,1,2,4,5,6,7,9) (3,5,6,8,9) (2,9) (0,4,5) (0,6,7,9) (1,2,3,5) {37,28,54,39,17,80,47,53,26,47}
[#.#..###.] (0,1,8) (2,3,6,8) (1,2,3,5,7) (0,1,2,3,4,5,7) (1,3,4,7) (2,3,4,5) (1,3,4,6) (0,1,2,4,5,7,8) {20,50,40,52,38,38,9,40,8}
[#.###] (0,1,2,4) (1,2,4) (0,2,3) (0,2,3,4) (0,1,3,4) {26,19,29,22,23}
[#..#.] (0,2,4) (0,2) (1,2,3) (0,2,3,4) (2,4) (0) {38,15,49,33,27}
[.##.###..#] (1,2,5,6,7,8) (3,7,8,9) (0,2,4,5) (0,1,6) (1,7) (1,2,3,5,6,7,8,9) (0,2,4,6,8,9) (3,9) (1,2,4,5,6,7,8,9) (0,4,9) {54,59,71,22,57,58,71,45,57,62}
[#...#] (0,4) (0,2) (0,1,2) (1,3) {40,25,31,6,9}
[##.##..] (2,4,6) (0,2,4,6) (0,4,5) (0,1,3,4,5) (1,3,4,6) (0,3,5,6) (0,3,5) {54,7,11,34,34,49,21}
[...#.] (0,1,4) (1,2,3) (1,2) (0,1) {145,172,27,8,143}
[#.......#.] (0,2,9) (4) (1,2,5,6,8) (1,2,7) (0,2,4,6) (0,5,6,7,8,9) (0,3,5,8,9) (3,6,7,8,9) (0,1,2,5,9) {238,49,63,23,20,238,207,206,223,239}
[..##.] (2,3) (1,2,3,4) (0,1,2,3,4) (0,1,2,4) {27,29,45,38,29}
[##.#.] (1,2) (1,2,4) (0,2,3) {4,15,19,4,7}
[..#.] (2,3) (1) (0) (0,3) {154,8,20,20}
[.#..###] (1,3,5,6) (2,5) (0,1,2,3,4,5) (0,1,2,4,5,6) (3,4) {193,195,211,184,201,213,21}
[#.#.] (0,2) (1) (0,2,3) {20,6,20,15}
[.###] (1,2,3) (0,2,3) {5,0,5,5}
[##..] (0,1,2) (1,3) (0,1) (1,2,3) (2,3) (0) {12,20,10,27}
[...#] (0,2,3) (0,1,3) (0,1) {46,29,17,36}
[...###] (1,2,4) (0,1) (0,1,2,4) (0,3,4,5) (0,1,2,5) (1,3,4,5) (2,3,4,5) {24,22,28,26,33,29}
[...##.#.#] (2,3,4,6,7,8) (1) (1,2,3,5,6,7,8) (0,1,2,5,6,7,8) (2,6,8) (0,3,4,5,6,8) (1,2,3,5,7) (4,5,6,8) (0,1,5,6,8) (1,4,5,6,8) (1,3,4,6,7,8) {35,48,52,49,48,60,89,36,89}
[#.####.##.] (1,9) (3,4,8) (0,2,3,4,5,7,8) (0,3,4,5,7,8,9) (2,6,8,9) (0,1,2,3,4,5,6,7) (0,4,6,7) (1,2,3,4,6,8) (0,5,6,9) (0,6,7,9) (3,4,5,8,9) {32,35,28,32,34,19,48,31,22,35}
[####...] (0,2,3,5) (0,1,3,4,6) (0,1,3,4,5,6) (4,5,6) (2,3) (0,1,2,3) {199,27,201,210,15,183,15}
[..##..] (0,2,3,4) (0,1,2) (0,1,3) (1,3) (1,2,3) (2,3,5) {136,35,140,152,118,2}
[#..###.] (2,3) (0,5,6) (1,4,5,6) (0,1,2,6) (1,2,5,6) {32,38,49,16,5,40,55}
[#...###..] (0,1,5,6,7,8) (1,3,5) (0,2,3,4,5,6) (0,2,3,4,5,7,8) (2,4,7) (2,4,5,7,8) (1,3,4) (0,1,2,4,5,6,7) (3,6,7,8) {44,54,43,75,57,76,49,61,54}
[##..#] (0,1,4) (2,3,4) (0,1,2,3) (0,1,3,4) {9,9,4,4,11}
[###.#] (0,2,3) (0,1,2,4) (2,3,4) {129,109,134,25,114}
[#..#.##] (0,1,2,3) (1,3,4,6) (1,3,5,6) (0,5,6) (0,2,3,5,6) (4,5) {29,16,11,20,20,45,31}
[#.#.#] (2) (0) (0,2,3) (0,1,3) (1,2) (0,3) (0,1,4) {45,33,35,34,10}
[.#..##..] (0,1,3) (3) (5,6,7) (0,4,5,7) (2) (0,4,6,7) (0,1,2,3,5,6,7) {46,10,8,17,36,44,42,61}
[.#..####.] (1,4,7,8) (2,5,7) (0,1,2,3,4,5,6,7) (0,1,2,5,6,7,8) (2,5,6) (0,2,3,4,5,6,8) (0,3,4,6) (1,6) (0,1,2,3,5,6,8) (0,3,4,5) {230,206,215,83,74,235,248,178,176}
[.###] (0,1,3) (0,1) (0,2) {152,29,123,16}
[#..#.] (0,1,4) (2,3) (0,3) {7,7,20,20,7}
[##.#.#...#] (0,2,4,5,6,7,8,9) (3,4) (0,1,2,4,6,8) (2,4,6,8) (0,2,3,4,5,6,7,8) (4,5) (2,3,6,7,8,9) (3,7,9) (0,1,3,4,5,7,9) (0,1,2,5,6,8,9) (0,5) (2,6) {53,19,47,37,50,50,47,49,44,49}
[.#..##.##] (3,5,7,8) (1,3,4,5,7) (2,5,7,8) (1,2,3) (3,4,6,8) (0,2,3,4,6,8) (4,8) (1,6,8) {14,17,41,45,22,37,28,37,68}
[#...##] (1,3) (1,2) (0,3) (0,1,2,5) (0,3,4,5) (0,1,3,4,5) {22,37,20,27,10,15}
[#.##.##..#] (0,1,2,5,6,7) (1,2,4,5,8,9) (2,7) (2,4,9) (1,2,3,4,5,6,7,9) (0,1,2,4,5,7,8,9) (5,8,9) (0,1,4,7) (0,1,3,4,5,8,9) (0,2,3,6,7,8) {58,58,75,30,69,55,17,68,62,66}
[.#....] (0,2,3,4) (0,2,3,5) (1,2,5) (0,1,2,4) (4,5) (2,5) (1,4) (2,3,5) {47,35,86,36,50,75}
[#.#.#..] (0,4) (0,2,3,4) (1,5) (0,2,4,5,6) (0,1,3,5,6) (3,4,5,6) (2,3,6) (0,1) {216,21,211,46,229,222,222}
[.#..#] (0,3) (2) (0) (0,2,4) (1,4) (3,4) {26,6,30,19,32}
[#..##] (0,3) (2,3) (0) (0,3,4) (0,4) (1,2) {32,17,37,28,12}
[#......##.] (4,7,8) (2,5,8,9) (1,3,5,6,9) (0,1,3) (0,1,3,5,6,7,8,9) (0,3,7,8,9) (1,3,4,5,6,7,8) (0,1,2,5,8) {50,62,25,57,6,59,34,28,53,49}
[.#...] (0,1) (2,3) (1,2,3) (0,3) (1,4) {21,13,9,21,1}
[.#..##] (0,3,4) (1,3,4,5) (2,3) (1,4,5) {1,19,2,11,20,19}
[.###.#] (1,2) (0,1,2,3) (0) (0,1) (5) (1,2,3,4,5) (0,1,2,4) {31,46,28,20,20,31}
[.##.#....] (2,3,5,6,7) (0,2,3,5,7) (0,1,4,5,8) (1,2,4,5,6,7,8) (4,6,8) (1,2) (0,3,4,6,7,8) (0,2,3,6,8) (1,2,4,6,7) (0,1,2,4,5,6,8) {44,161,169,27,174,37,182,146,63}
[.##.###] (1,2,6) (0,2,3) (0,1,2,3,6) (1,2,3,4,5) (0,1,2,5,6) (0,1,3,5,6) (0,1,4,6) (1,3,4,5) {194,48,197,188,8,18,44}
[#..###..#.] (1,3,7,8,9) (0,1,2,3,5,8,9) (0,2,4,8,9) (1,2,6,7,8) (0,1,2,3,5,6) (5,6,7) (2,7,9) (0,1,2,3,5,6,7,8) (2,6,8) (0,2,5,6,7,9) (1,3,4,7,8,9) (0,4,5,7,8,9) (1,2,3,4,7,8) {211,64,249,58,32,206,206,228,85,225}
[#.#.#...#.] (7,8) (0,1,3,5,6,7,8,9) (0,1,2,3,4,5) (0,1,3,5,7,9) (2,3,6,7,9) (3,6,8) (1,2,4,5,7,8,9) (2,6,8,9) (1,4,5,6,8,9) (0,1,2,3,4,5,7,8,9) (2,4,6,7) {70,102,91,94,83,102,90,110,115,110}
[#.##] (0,1,2,3) (0,2,3) (0,1) {41,21,38,38}
[###.] (1,3) (0,1,2) {11,27,11,16}
[##....] (1,2,4,5) (1,2,5) (0,1,2,3,5) (0,1,3,4) (1,4) (0,2) (0,3,5) (0,2,3,4,5) {190,63,182,47,41,54}
[####.#....] (0,3,5,7,9) (0,1,2,3,4,5,6,8) (0,2,4,5,6,7,8,9) (4,5,6,9) (0,2,5,7,8) (0,2,5,6,7,8,9) (3,4) (1,2,5,7,8) (1,2,7,9) (1,2,5,6,7) (3,8,9) {50,163,190,40,46,190,62,173,163,44}
[##..] (1,2) (0,1) (1,3) (0,3) (1) (0) {127,137,6,9}
[.###..] (0,1,4,5) (3,4) (0,1,2,5) (1,2,3) (2,5) (0,1,2,3,4) {52,59,60,40,48,50}
[#....#.#] (0,2,3,5,6) (1,5,7) (1,2,4,5,7) (0,5,7) (0,2,6,7) (0,2,3,4,5) {20,27,30,14,18,43,12,33}
[.#.#..] (1,3,4) (2,5) (0,1,2,3) (1,2,3,5) (2,3,4,5) (1,3) (0,1,3,4) {26,65,52,83,57,46}
[####.#.#] (1,4) (1,2,4,5,6,7) (2,3,5,6,7) (0,3,4,5) (0,5,6,7) (0,1,4,5,6,7) (1,3,6) (1,2) (0,2,5) (2) {48,64,63,27,63,73,51,50}
[#..##..] (0,1,2,3,4,6) (1,2) (0,1,2,5,6) (2,3) (1,2,6) {21,46,62,34,18,3,36}
[..##....##] (0) (3,4,5,6,7,9) (0,2,3,4,6,7,8,9) (3,4,5,6,9) (0,4,6) (2,3,6,9) (2,5,6,8) (0,2,4,8) (0,1,3,5,7,8,9) (1,2,3,5,8,9) {69,29,71,77,62,71,83,28,71,77}
[##..#...##] (0,2,3,7,8,9) (0,1,2,3,6,7,8,9) (0,1,6,7) (2,3,4,5,6,7,9) (0,1,2,3,4,5,6,7,9) (0,1,2,3,4,5,7,8) (2,5,7) (3,5) (2,4,5,6,8,9) {47,37,64,61,51,60,38,61,38,43}
[##.#....] (0,4,5,6,7) (1,3,4,5) (3,7) (0,1,2,3,6) (1,3,4) (2,7) (0,2,3,4,5,7) (0,2,4,7) {168,16,53,36,152,142,149,181}
[#..#.##] (0,2,3,6) (0,1,2,3,4,5) (0,1,2,3,5) (0,1) (0,1,2,4,5,6) (0,3,4,5,6) (1,5,6) (0,1,2,3,5,6) {232,205,207,220,176,208,45}
[..###..] (1,2,3,4,6) (0,1,4,5) (0,1,2,3,4,6) (0,5,6) (0,1,6) (0,3,4) (2,3) (0,2,4,5,6) {250,38,208,34,214,212,228}
[.#.#.###] (0,2,3,5) (3,5,6) (0,2,4,5,6) (0,2,6,7) (0,1,2,3,4,7) (0,2,4,5) (3,4,5,6,7) (1,6) {51,37,51,167,176,166,185,171}
[.#.##.##.] (2,3,4,5,6,7,8) (1,8) (1,2,4,5,8) (0,1,6,7) (0,1,3,4,5,6,7) (0,1,2,3,4,6,7) (1,2,4,5) {32,74,32,24,51,49,35,35,38}
[##...##] (0,3) (0,1,4,6) (1,5) (0,1,2,5,6) (0,3,5,6) (2,5) (2,5,6) {138,138,37,12,107,50,140}
[###..####] (0,1,3,5,7,8) (0,3,4,7,8) (1,7,8) (2,3,4,5,7,8) (0,1,2,8) (1,4,7) (2,5,7) (0,1,3,4,5,6,7) (1,3,7) (0,1,3,6,7,8) (6) {51,191,42,63,140,42,43,199,55}
[#####....] (0,3,6,8) (0,2,3,4,5,6) (1,4,5,8) (6,8) (0,1,3,5,7,8) (0,1,4,5,6,7,8) (1,3,5,6,7) (0,1,2,3,4,6,8) (2,5) {56,253,31,241,39,250,240,234,56}
[..###..#] (0,5) (0,3,4,7) (3,5,6) (0,1,2,4,5,7) (1,2,7) (2,4) (1,3,6,7) {55,24,38,38,53,51,18,44}
[..#.##.#] (0,2,3,4,5,6) (2,3,4,6) (1,3,5,6) (0,1,4,7) (1,3,5,6,7) (4) (0,1,2,3,4,7) (0,1,2,4,6,7) (0,3,4,6) {46,58,43,76,80,40,62,49}
[##...#] (1,3) (0,3,4,5) (0,1) (1,2,3,4) (0,1,5) {15,22,5,13,8,9}
[.....##] (0,3,4,5,6) (5,6) (2,3,4,6) (0,1,3) (0,4,6) (0,2,4) (0,2,4,5,6) (0,1,4,6) {50,15,23,33,47,23,35}
[....##.##] (0,1,2,3,5,6,7) (0,3,5,6) (1,2,3,4,6,8) (0,2,3,4,8) (0,4,6,7) (0,1,2,4,6,7,8) (0,2,5) (0,1,2,6,8) (3,7) (0,1,2,3,5,6,7,8) (0,1,3,5,6,8) {213,162,173,173,41,165,184,152,57}
[.#..#.#..] (2,5) (0,2,3,4,5,7) (0,3,5,6,7,8) (0,1,7,8) (0,1,4,6) (0,6,8) (0,1,2,3,7) (0,2,4,5,6,7,8) {74,9,44,36,36,52,51,50,47}
[##..#.] (0,2,3,4) (1,2) (0,1,2,3) (1,3,5) (0,2,4) (0,1,5) {131,157,46,36,13,124}
[.#..##.] (0,1,2,4) (5,6) (3,6) (0,1,6) (1,2,5) (1,6) (0,1,3,6) {167,187,169,13,154,23,34}
[..#..#] (1,2,3,5) (0,1,3) (0,1,2,3,5) (4,5) (0,2,5) (1,2,3,4) {8,19,24,19,13,19}
[#....#] (1,2,3,4,5) (2,5) (0,1,2,3,4) (1,3,5) {114,127,139,127,127,25}
[.###.] (0,2,3) (0,1,3) (1,3,4) (0,1,4) (0,1,2,4) (0,3) (0,3,4) {64,44,14,46,51}
[.#.##] (1,2,3) (0,4) (2,3,4) (1,2) {17,31,42,22,28}
[.###.#] (0,2,3,5) (4) (2,4) (1,4,5) (2,3,4) {17,16,41,21,239,33}
[#..##.] (0,1,2) (0,1,3,5) (1,3,4,5) (0,2,4,5) {30,23,20,13,13,23}
[...#..#..#] (1,7) (0,6,7,9) (1,4,7) (2,6) (0,1,6,8,9) (0,3,7) (5,7,8,9) (1,2,3,4,6,7,8) (8,9) {10,40,33,27,26,5,34,53,27,9}
[..#....#] (0,1,4,6,7) (0,1,2,3,4,6) (2,7) (0,1,2,3,4,5) (3,7) (3,4,5,7) (0,1,2,4,5,7) (0,4,6,7) {57,46,46,40,64,23,41,88}
[#.#..##] (1,3,6) (4,5) (1,2) (1,2,4,5) (0,1,4,5,6) (0,1) (3) (1,2,4) (1,5) {21,73,20,28,28,36,19}
[.#.#.] (0,1,2,4) (0,1) (0,1,3) (3) (1,2,4) (0,3) (0,2,4) {54,59,37,29,37}
[###.##..#] (0,1,2,3,5,6,8) (0,1,2) (0,4) (3,4,5,6,7,8) (4,5) (0,4,6,8) (0,1,4,5,6,7,8) (0,1,2,4,5,8) (4,8) {51,38,27,23,67,40,38,31,61}
[.##.##] (0,4,5) (3,4,5) (4,5) (1,2,3,4) (0,1,3,4) (0,1,3,4,5) {173,167,5,179,194,35}
[.#.######.] (0,1,3,4,6,8,9) (0,1,2,3,4,5,7,8,9) (2,3,4,8) (2,6,9) (1,7,9) (4,5,7) (0,3,4,5,6,7,8) (7) {19,20,18,26,26,10,22,23,26,27}
[##.....#.#] (0,1,3,4,5,6,7,8,9) (0,7,8,9) (0,7) (1,2,5) (0,1,2,3,4,6,7,8,9) (5,8) (1,9) (6,7,9) {59,32,19,29,29,24,31,61,56,49}
[....###] (1,2,3,4,5,6) (4,5) (0,2,3,5,6) (0,1,3,4,5) (1,2,3,4,6) (4,5,6) {11,26,15,26,55,46,29}
[#.####] (0,1,2,4,5) (1,4,5) (1,2,3,5) (2,5) {8,34,22,10,24,38}

View file

@ -1,609 +0,0 @@
smx: otc
mmh: gvp
gbo: hyf alz
laa: vky qjq
vrn: tbs tsr jix
xyl: xel eur wdj
sxm: out
wsd: kua hpv jep
qsj: ulu xel eur wdj
xwa: mtd xxf hnw
kai: ehr kaj
uuj: you
owb: ixr bps pim eez ejn syt qrx hxw vsy ghl gfu cgh mpk kfj
vky: owb wlw qic
ysd: mkp jbf btz xgg gbk tvg iju amm dws ykz azc blh xld rpr uek rcl zzy jhu
rbc: ski xyl sdx wpw
zmc: pal lwb rns hex
cuu: vyo
bqf: kmy exx ish
jbv: ysa
aog: ayv kwq
fcq: qic xss owb
hyg: out
xoz: llx kra cqn bzn swe tdo vnz zos duw
gnq: eya
qmk: fcq lyd
ggp: brz eya
oit: yyy quh brz
hjl: dtj lnc jps fyr
sqg: xbz upq
nil: diq
xqa: jei ipw tkt
ond: fft jko dqj pxe
and: ahn izm esa
cqf: xss
rqa: ryb rwu ono fyb
jps: byj fmv shn
ccg: ond afk tbu
dta: ctq jbw whr smq
ztx: hlm ctr vgo maf fkj
sdx: xel eur
xwb: dds
clh: ktb
rtn: quh eya
dac: nxc vug eou
nvh: kmf yga wtv
xgw: kep unr lju mtm
mdx: qmk fwk fbd
tbu: fft dqj pxe
vil: lyz aek
ona: zjk ovx dmv laa
bld: zbs
rms: vjs znm
oku: brz yyy
bzn: dmc fwa ykh vrn axj
uzl: ayv fuz qhs kwq
bhz: ggv
kfj: xqa ucr akl
koi: szi
mvo: dqp kjr rbc
rof: vgo hlm
ixt: jws nxc vug
ycf: out
dmc: tsr
nam: mvo
rkj: quh yyy eya brz
qxk: uty
lwb: phc esx
fqf: isr dax
eou: lqz ysd
lbb: out
hyf: fgh wem yen taw
dfv: nzl
pnh: lai
jon: eya
guf: shn
lmw: hlu mhq
jff: ngn gye
xxj: guf dtj lnc
fbd: fcq lyd
idw: cmg phc
zbs: hjl
lqz: blh ttg ykz jhu zzy uek rcl bld xgg gbk mkp amm iju tvg
shn: goi
hdc: wap pvr
odf: yey ggp jtc
rkk: zyi ubs
fyr: fmv vtv
pxe: ztx mmi
ntf: dds cst aff
lyz: gwp
pyt: zpv ias oiz
cqx: rod jnp
dtj: shn vtv
gfu: kai ctq
ycw: ryl ixt uut dac
yvb: jbv rms fez
lvx: tvz vyo
pvr: yat
oiz: zjk ovx dmv
biy: tdg
xbz: cqf
obk: jje
jcc: ssq daa
elu: ihl kep lju unr
jgf: qfx bhz
wbp: xxj cap hjl
nne: out
llx: axj ykh
kso: kuk ams
eod: nzl aap
ryl: nxc
epd: eou jws ats nxc vug
wqg: uzn yyf
qhh: lqz
fhu: hex idw pal
ipt: ema
vpo: cap xxj
thl: azd otc
ttg: vpo
uty: owb qic
brz: mdl eiw gam aog nam wqg jcc kgs nac bsk zpk kul snr uzl
faw: out
lzw: wlw xss owb qic
wap: iel yat qhh paa
ffr: vnn fiv
nug: sqg eyp sws eai dsh icy zrp mas dmf ccg hoq qze qde cqt zvl jrq gep
ygk: jon oit
eya: ppx nac mdl dej
lnc: byj fmv shn
nhq: kjv
biq: lav xhe vcg
hfn: pvr ydj
leg: oii zad jje
fft: rof taz
maf: qic
aap: rkj hrs svl
axv: esa
zou: ulu eur xel
jtc: yyy
pxc: gvr dyo omt
byj: nqz goi faw
ykh: jix tbs tsr
fai: cst nug aff
oty: nhq
cek: vvv ubs zyi
ufu: zen
xtk: kpg tap qzv
kil: dds aff
ojk: lqz
aly: qak lqz
xxf: aff cst dds
yua: oit ktb rwv
vlf: ujz
lbw: zyi uuj
zpk: nhp urn ctg
kuk: you ysd qak
tmy: esa
sqi: quh lvi
jrq: obk leg
yat: lqz
atl: zpv ias oiz ona obm
xhe: asz jbv
gdx: oii jje
ssq: fqf tap kpg qzv
quh: snr kul zpk bsk nac ufu yor dej ppx aog nam wqg eiw mdl
bvn: luk
zny: jon ktb rwv
jzw: aap plm
jqp: dac
mpk: euv llh
fpr: gwp zmc ulq fhu
ahn: qtl rtn
zyi: lqz ysd
ypn: mtd xxf
fgh: rkk
vgo: xss owb wlw
axj: jix tsr
kgv: kpg
gfa: ona obm zpv ias
eur: eij vil oxs xip hsd hdc gbo laz rnq lnj nuk xck twd jqp ycw btu abg koi cey hfn
bsk: oqd hmt kew
wrx: tas
jix: aff nug cst dds qvv
blc: yan
rwv: yyy quh eya brz
exx: blc dks
ujz: mwp
yyf: xya xmb fee
icq: mtm
hxw: viq eod
xii: fyb
lyb: drx mlf pkl
puw: ona ias
ilj: qfx xph
wlw: gfu ghl vlf cgh mpk yfx pbj qrx hxw jsq eez syt dta ejn bps hnj pim
icy: xbz
wdr: gbm kil
svl: lvi
dax: wdj eur
fwa: jix tsr
fyb: you ysd qak
whr: ehr kaj ogx nvh
agb: mag yan
duw: luk yzp nil
plg: yen taw fks wem fgh
zrp: pyt puw qyk gfa atl
phc: you qak lqz
aff: qze hoq qde mdx zvl jrq sqg dsh eai zrp icy mas dmf
ulu: lnj xck twd jqp btu ycw abg koi gqf hfn eij vil oxs xip nhi hsd hdc kku laz rnq
ezt: nug cst qvv dds
ccu: yyy brz eya
nuk: zpf
ubs: ysd
qyk: ona oiz
kua: wlw xss qic
ssa: kua
uds: ier vnn fiv
cbw: gvr
pln: wdj ulu
zos: htz ilj
viq: aap nzl
azd: jff
esa: rtn oku
rzd: eya brz
syt: euv cbo
drx: tdg
qjq: xss owb
jru: aat eoy dqu
vms: bzf gkm ffr uds
zen: vms zuv vci
qfx: wdr
amm: wbp vpo evr jmb zbs
hnj: sxp viq jzw
vtv: goi
kep: xnp yoh evy
evr: cap
gvp: yyy brz lvi eya
kxs: rod jru uvb
daa: jlo
fks: lbw cek
omt: dds
gtx: out
jws: lqz qak
eoy: out
qvv: fes dmf icy zrp eai dsh iyb sqg eyp sws gep jrq mdx zvl qfd qde qze hoq ccg
smq: kaj
kmy: agb
qde: atl
fez: znm mvj vjs
cey: wrx ryw lbx
ema: brz eya lvi quh yyy
zfg: cst nug aff qvv
pim: yip pxl ujz
zge: lzw
ykz: yrg bss smx
yyy: snr zpk uzl ufu bsk dej yte kgs gam eiw wqg
yor: kew
cmg: lqz qak ysd
xya: zou pln uaz
zpv: laa
yen: cek rkk fce iwk
boc: eay hlu
ygu: xya ofj
xnp: oic zfg eft xwb
nlb: izm
fmv: nqz
mag: aem wtx qrc pyc ipu
tdo: jgf
znm: sxm lbb
mtm: xnp
khk: ipt qvi
vyo: eur wdj
kye: out
uvb: dqu aat yvz
xck: lyz fpr aek arq
acb: wtv gts
gep: qxk upq
ihl: xnp yoh
eyp: qyk
lai: qsj
ipu: out
isr: ulu
qrc: out
jhu: bqf
eij: uut dac ryl epd
tvg: yrg thl mvu bss
pbj: ucr
cst: ccg sws hoq qze dsh qde cqt
yzp: xwa diq cft ypn
uut: eou ats
fee: zou
dqj: mmi taz rof ztx
rnq: arq aek
yfk: yvb zzh
lvi: jcc dej mdl gam aog nam zpk kul uzl ufu bsk nac
tap: sxw
jsq: dfv sxp viq jzw
tdg: aff nug cst dds
cgh: tmy oze nlb and
qzv: dax
jtn: xhe
kjr: ski wpw sdx xyl
ski: wdj xel
oqd: zuv
ppx: zen hmt kew
vcg: jbv
jbw: nvh
ctg: dqp
dcv: owb wlw qic
kzs: rxd lai cuu lvx
dws: bss yrg thl mvu
ara: dds qvv cst nug aff
ctr: owb wlw
ctq: ehr kaj acb
zpf: fgh fks
pyc: out
ras: gvr omt
iby: xxb rqa vlx
gam: mah ygu uzn
ulq: idw lwb pal
gkm: ier
cqn: pdv elu
tvz: ulu
obm: laa
btu: alz
wtx: out
xel: oty oxs vil eij hsd nhi hdc gbo kku lnj ycw btu jqp xck gqf hfn cey koi abg
uxa: lwb hex rns
yga: gnq
ppv: lav xhe vcg
upq: hzh cqf lzw uty
mvu: otc exw
yrg: otc azd
kul: qsu xtk ssq daa kgv
pif: mbd bzn mzo xhj wee jdf
xhy: wus khk mwp
ehr: wtv gts yga
fes: zge
rwu: you qak ysd lqz
hnw: cst
goi: out
hsd: alz zpf amk
hzh: wlw xss qic
lbs: vlx rqa
dds: mdx zvl qde qfd qze jrq zrp icy iyb dsh eyp sqg fes dmf mas
tsh: hpv kua
svr: xoz lak pif ryf dyv
gua: hlu
jei: jtc ggp
wpw: xel eur wdj ulu
jbf: biq jtn hut ppv yfk
hoq: qmk fwk cxr fbd
blh: evr vpo zbs jmb
mas: gdx
afk: jko pxe
zzy: lmw boc
vsy: tmy oze axv and
htz: xph qfx bhz
yte: mah ygu uzn rcr
zuv: bzf gkm ffr uds
yvz: out
ejn: dok llh euv
jlo: dax isr
qvi: gvp ema rzd
mdl: mah
wdj: hfn gqf cey koi jqp twd lnj rnq gbo kku hdc hsd oty vil eij abg ycw btu xck nuk nhi oxs
ias: dmv zjk ovx
laz: nhq
ish: blc
pkl: ezt ara
xhj: elu
tlp: ais
mux: zrm uvb
vci: bzf gkm uds
nie: wtx aem qrc
ike: wdj xel ulu
abg: pvr wap
ono: lqz
yip: khk
oze: ahn izm
lak: bvn mbd llx xhj lyb pxo
dmf: obk leg
wus: ipt qvi
oic: nug cst qvv dds
rpr: ifc fjg mfu
vvv: qak
qtl: lvi brz quh yyy
rqt: pdv icq
yoh: eft ntf oic
aby: nug dds
yfx: axv tmy
xmb: uaz pln
hrs: brz quh yyy
eez: llh cbo
lyd: qic owb xss wlw
dyo: dds qvv aff cst nug
evy: xwb eft ntf
plv: esz ktb jon
luk: xwa ypn
nqz: out
ier: wdj eur ulu
yey: quh eya lvi brz
otc: svv tlp jff
qze: leg gdx obk
aek: gwp ulq
mah: xmb fee xya
pxl: khk xux wus
wem: iwk cek lbw rkk
nhi: uut ryl epd
cui: out
qak: ykz xmj jbf rpr xgg blh
qwm: eya lvi brz quh
dsh: zge qxk upq xbz
hmt: zuv
bss: azd otc
rxd: vyo qsj
eay: uhs mux kxs
vnn: ulu wdj eur xel
iju: ckk lmw gua
fiv: wdj eur xel ulu
izm: rtn oku
xld: fjg mfu ifc
xph: ggv nqb
ija: rxd cuu
tsr: nug cst aff dds qvv
uaz: ulu wdj eur
ats: lqz you qak ysd
cft: xxf aby
taw: iwk cek lbw rkk
rns: ojk phc
qic: vlf eez cgh yfx dta syt bps hnj jsq
gqf: zpf amk plg hyf
ryb: qak
tbs: nug aff qvv dds
gbk: yfk
eiw: mvo ctg urn abp
kpg: sxw isr
pal: phc ojk esx
ais: nne hyg kye ycf
fjg: kmy
uzn: fee xmb
hpv: owb xss wlw qic
hlu: mux cqx
azc: ckk lmw boc
dqp: xyl ike
aat: out
fuz: srk pnh ija
ypw: jgf
pdv: kep
dmv: qjq vky
fya: llv iby lbs
plm: rkj
xux: ipt qvi mmh
gye: kye gme
zzh: fez asz rms
snr: ayv fuz qhs
ydj: qhh akg paa
rcr: ofj fee xmb xya
kaj: wtv kmf yga
lju: yoh evy
ebo: sqi jtc yey
vlx: rwu ryb ono
tas: xxb xii
wee: pdv xgw
fkj: owb wlw
xro: ilj htz jgf
hum: lqz ysd
kku: bsy aek lyz
euv: clh plv yua ygk
akl: ebo jei tkt odf
lnj: fya lbx
lbx: iby lbs
mhq: cqx uhs
hut: vcg zzh
szi: mnj ams
ysa: sxm rni lbb
vug: you
llh: ygk yua zny plv clh
nzl: hrs
uek: mvu
mmi: maf vgo hlm
eft: dds cst
dok: zny yua clh plv
kmf: npf lef nsp
mnj: you qak ysd lqz
paa: qak you
ghl: xhy
ggv: kil gbm fai lvh
jje: ssa
jko: mmi
srk: rxd
yan: ipu
nxc: lqz you qak
gts: qwm npf lef gnq
qrx: kai smq whr
ovx: oiw
unr: evy xnp
kew: vms vci
sxp: aap
oii: tsh wsd
cbo: ygk clh
xip: wrx lbx
sws: ond tbu
abp: rbc
tkt: ccu ggp
diq: xxf mtd hnw
gvr: nug cst
ipw: jtc ccu
arq: uxa gwp ulq
iwk: vvv uuj aly zyi
mfu: exx kmy
dks: nie mag
twd: fpr lyz arq bsy
fwk: lyd
jnp: eoy aat
nsp: brz eya yyy
xss: vsy bps ixr hxw syt pbj kfj gfu
nac: kgv xtk qsu
oiw: qic xss owb wlw
svv: ais gye
mtd: cst dds qvv
ixr: and nlb axv
jdf: pxc cbw
dyv: dea wnr xro ypw xlu
qfd: afk ond
wtv: qwm nsp
xxb: rwu ryb fyb ono
wnr: xgw elu
uhs: uvb zrm jnp rod jru
asz: mvj vjs
eai: gfa puw
ofj: uaz
vnz: pkl
kgs: mvo urn abp ctg
fce: ubs uuj vvv
pxo: vrn fwa dmc ykh
cxr: lyd fcq dcv
xgg: ifc
mzo: biy pkl mlf
gwp: pal idw rns hex
you: dws amm iju tvg bld xgg jbf btz mkp jhu uek blh xld ykz ttg azc
jep: wlw xss
nqb: lvh
zrm: yvz eoy aat cui
zmm: odf ipw jei
kjv: qak ysd
akg: you ysd lqz
lvh: qvv dds aff cst
ogx: gts yga
urn: kjr rbc
bsy: uxa fhu zmc gwp ulq
lav: asz fez
exw: svv
esz: lvi
sxw: eur xel
ams: lqz
qsu: fqf kpg tap
bps: akl zmm xqa
ayv: srk pnh ija kzs
gme: out
oxs: szi nhq kso
hex: esx hum ojk cmg phc
xlu: luk
aem: out
mlf: ara
kwq: srk pnh kzs
jmb: xxj cap
dqu: out
iel: ysd
ucr: ipw
cqt: fbd qmk fwk
nhp: dqp kjr
ifc: ish
llv: rqa xii xxb
dea: luk yzp nil
ngn: nne gme ycf hyg
ryf: xlu rqt swe bvn lyb duw cqn bzn jdf wnr wee ypw pxo vnz xhj zos
lef: brz quh
mbd: pxc
cap: dtj guf
rcl: wbp evr vpo jmb
zvl: fbd cxr fwk
btz: lmw gua
ktb: brz yyy
taz: ctr hlm vgo fkj
mkp: jtn hut yfk ppv
iyb: afk tbu
gbm: nug dds
swe: ras
ckk: hlu eay
rni: out
bzf: fiv
qhs: ija
rod: yvz
amk: yen taw
vjs: rni sxm
hlm: owb xss
zjk: oiw
mvj: gtx rni
ryw: iby llv
npf: quh brz lvi
zad: ssa tsh
esx: lqz ysd
mwp: mmh
alz: wem yen
kra: luk nil
xmj: smx
dej: kew

File diff suppressed because it is too large Load diff