This commit is contained in:
jonathan santis 2024-12-24 13:22:11 +01:00
commit 2de218f9c2
44 changed files with 5398 additions and 0 deletions

152
$ Normal file
View File

@ -0,0 +1,152 @@
const std = @import("std");
const print = std.debug.print;
pub fn main() !void
{
const allocator = std.heap.page_allocator;
var rules = std.ArrayList([]u8).init(allocator);
var data = std.ArrayList([]u8).init(allocator);
print("typeof arraylist: {}",.{@TypeOf(rules)});
try readFile(allocator,"day5.txt",&rules,&data);
print("rules:\n",.{});
for(rules.items) | rule |
{
print("{s}\n",.{rule});
}
print("data:\n",.{});
for(data.items) | dat |
{
print("{s}\n",.{dat});
}
const values = try parseIntsToSlice(allocator,data.items[2]);
print("ints: {d}\n",.{values.*});
_ = try checkOrder(allocator,data.items[1],&rules);
}
fn readFile(allocator : std.mem.Allocator, filename : [] const u8, rules : *std.ArrayList([]u8), data : *std.ArrayList([]u8)) !void
{
const file = try std.fs.cwd().openFile(filename,.{});
var buf_reader = std.io.bufferedReader(file.reader());
var reader = buf_reader.reader();
var buf: [1024]u8 = undefined;
while(try reader.readUntilDelimiterOrEof(&buf,'\n') )| line |
{
if(std.mem.indexOf(u8,line,"|")) | _ |
{
print("this is a rule: ",.{});
try rules.append(try std.fmt.allocPrint(allocator,"{s}",.{line}));
}
else
{
try data.append( try std.fmt.allocPrint(allocator,"{s}",.{line}));
print("this is a data set: ",.{});
}
print("{s}\n",.{line});
}
}
fn parseIntsToSlice(allocator : std.mem.Allocator, data : []u8) !*[]u64
{
var values : []u64 = try allocator.alloc(u64,0);
var start_pos : usize = 0;
//first must be different as dataset does not beginn with a ,
if(std.mem.indexOfAnyPos(u8,data,0,",")) | index |
{
values = try allocator.realloc(values,values.len + 1);
const cur_index = values.len - 1;
//parses the string from beginning to , to an integer
values[cur_index] = try std.fmt.parseInt(u64,data[0..index],10);
}
while(std.mem.indexOfAnyPos(u8,data,start_pos,",")) | index |
{
if(start_pos >= data.len - 1) break;
if(std.mem.indexOfAnyPos(u8,data,index+1,",")) | sub_index |
{
values = try allocator.realloc(values,values.len + 1);
const cur_index = values.len - 1;
//parses the string from , to , to an integer
values[cur_index] = try std.fmt.parseInt(u64,data[index+1..sub_index],10);
start_pos = sub_index;
}
else
{
values = try allocator.realloc(values,values.len + 1);
const cur_index = values.len - 1;
values[cur_index] = try std.fmt.parseInt(u64,data[index+1..data.len],10);
break;
}
}
return &values;
}
fn parseRule(allocator : std.mem.Allocator,rule : []u8) ![2]u64
{
_ = allocator;
if(std.mem.indexOf(u8,rule,"|")) | index |
{
const int1 = try std.fmt.parseInt(u64,rule[0..index],10);
const int2 = try std.fmt.parseInt(u64,rule[index+1..],10);
return .{int1,int2};
}
return.{0,0};
}
fn checkOrder(allocator : std.mem.Allocator,data : []u8,rules : *std.ArrayList([]u8)) !usize
{
const nbrs = try parseIntsToSlice(allocator,data);
//const nbrs2 = try parseIntsToSlice(allocator,data);
var pass_test : bool = false;
var fail_index : usize = 0;
for(nbrs.*,0..) | nbr, index_nbr |
{
ruleFor : for (rules.items,0..) | rule, index_rule |
{
print("rule: {s}\n",.{rule});
const rule_i = try parseRule(allocator,rule);
if(nbr == rule_i[0])
{
print("apply rule: {d}\n",.{rule_i});
print("nbrs2:{d}\n",.{nbrs});
for(nbrs.*,0..) | nbr2, index_nbr2 |
{
if(nbr2 == rule_i[1])
{
if(index_nbr2 > index_nbr)
{
pass_test = true;
break;
}
else
{
pass_test = false;
fail_index = index_rule;
break :ruleFor;
}
}
}
//else
//{
// print("number not in rule\n",.{});
//}
}
}
}
return 0;
}

View File

@ -0,0 +1,88 @@
0
2867 1190422 1733997620123333617 63866e75c52c838616dae6216e5f8368 0 src/main.zig
7616 273531 1720029513000000000 a112ef71b351e8f79f6f43c583ede25c 1 std/std.zig
23040 273528 1720029513000000000 da66963546b611ee7750a27396b7d1ea 1 std/start.zig
115223 273226 1720029513000000000 864599658ca312005d8d3860dcc5d44e 1 std/debug.zig
2251 1188745 1733745197116666578 c00e007630e21dfc05b9335a4cbed275 0 /home/ccppi/.cache/zig/b/c00e007630e21dfc05b9335a4cbed275/builtin.zig
33165 273075 1720029513000000000 f94156764e93e22ac481419ae3dcd7e2 1 std/builtin.zig
87972 273031 1720029513000000000 2058e9176f2f8c413153da85bdefea9a 1 std/Target.zig
129328 273053 1720029513000000000 aa1c9ead6b093aa4fc744cbaf6cdb147 1 std/Target/x86.zig
73503 273347 1720029513000000000 4f495cdd87469544c122e37211fe3d16 1 std/math.zig
41362 273418 1720029513000000000 222d7cb14bd7ca087b75cbc16cba6dda 1 std/meta.zig
11091 273029 1720029513000000000 3b4e837c9f6b3b4fbb5b3b95148e553c 1 std/SemanticVersion.zig
61526 273240 1720029513000000000 00003d31510dec096134200d0d6ceecc 1 std/elf.zig
12325 273427 1720029513000000000 2229bf6824a9119504139fcdb850890e 1 std/os.zig
207296 273430 1720029513000000000 651fd04e37ca32286baf84da551c7ce0 1 std/os/linux.zig
12494 273453 1720029513000000000 e9933b000fa707703dab8f2fe68b002a 1 std/os/linux/tls.zig
293019 273515 1720029513000000000 3aef046ab18b515bbbbf65ba8531ef93 1 std/posix.zig
35816 273258 1720029513000000000 9ad542fb9d5f647b2fd9aa956a4876f1 1 std/fs.zig
112808 273260 1720029513000000000 736eee48bb9f3802d7054c19abc437df 1 std/fs/Dir.zig
65843 273261 1720029513000000000 2f1e7806f11f80320d184c737b99b781 1 std/fs/File.zig
25700 273305 1720029513000000000 2c3e57ebee88e5b426bac4e5144d55a2 1 std/io.zig
6386 273313 1720029513000000000 dc08abe1e192b06267ecaf725d5174a6 1 std/io/buffered_reader.zig
14434 273307 1720029513000000000 2655b33c088dd930683d9eb843eaceb4 1 std/io/Reader.zig
176912 273415 1720029513000000000 223e2fd0f89a74fd7d5132dbe48f1c2c 1 std/mem.zig
106358 273244 1720029513000000000 9b602efb3cf67bc725c9853d5fe33864 1 std/fmt.zig
8321 273344 1720029513000000000 445ca968f1971dbcfae846f76f46cc2d 1 std/log.zig
13386 273498 1720029513000000000 b23fdad07ce3b3bc638202a13d269a17 1 std/os/wasi.zig
12352 273145 1720029513000000000 85ba4034d104ed83a45a1bb6ea2f588a 1 std/crypto.zig
6224 273221 1720029513000000000 1478fc3a3f5e7178b0ebc595cf60927a 1 std/crypto/tlcsprng.zig
6449 273320 1720029513000000000 3bcfe7862cea857ee79939a098991ad5 1 std/io/fixed_buffer_stream.zig
2697 273309 1720029513000000000 8464fd0bdf5c1f8ba10a286a4fe46f4d 1 std/io/Writer.zig
13626 273416 1720029513000000000 98c52b2fa05c32ad77f1743a5f3383ee 1 std/mem/Allocator.zig
89980 273282 1720029513000000000 52e58e0e5a1dd700c7ba1de70432e45c 1 std/hash_map.zig
5461 273326 1720029513000000000 ed6aac6dd443d6bdac1cf31688d1b444 1 std/io/tty.zig
112489 273228 1720029513000000000 d33cf67bbc2809a1c38591e04f1e3f51 1 std/dwarf.zig
55939 273241 1720029513000000000 9fbbf465379ce46a9365e411debc3ce1 1 std/enums.zig
87217 273067 1720029513000000000 d82200bd8e9f05406e233eef46e48149 1 std/array_list.zig
114248 273066 1720029513000000000 7aa5a3d5d7c75f7861328581549e6a5d 1 std/array_hash_map.zig
38005 273420 1720029513000000000 2df15a06c9368a128b68d617837153ef 1 std/multi_array_list.zig
1730 273268 1720029513000000000 36cb1b0b5e0bb7d10f9b200b0a751743 1 std/hash.zig
19972 273274 1720029513000000000 c36dede4b91e35db37ea45c66dbe6fe9 1 std/hash/crc.zig
3882 273275 1720029513000000000 168f6844905becfc3ec252416dbee69f 1 std/hash/crc/impl.zig
2057 273095 1720029513000000000 a778ec13ef93e0ace847f52f066441fd 1 std/compress.zig
3736 273134 1720029513000000000 a5c9eee5eaf5943e22c8a03fac3f2841 1 std/compress/zlib.zig
23844 273110 1720029513000000000 61343f5304677e260ccaed8ba225c2b1 1 std/compress/flate/inflate.zig
7460 273106 1720029513000000000 1c1d1c1c4e61c64090b7ace80a4c2dab 1 std/compress/flate/container.zig
16625 273102 1720029513000000000 8ba4aa19f03596c0d0eb18045a7331e8 1 std/compress/flate/bit_reader.zig
7434 273098 1720029513000000000 a6347ffd91bdf7b166947d627e9f38c5 1 std/compress/flate/CircularBuffer.zig
3519 273269 1720029513000000000 4e3c7d701979e5945ab9f85fed59a579 1 std/hash/adler.zig
10966 273108 1720029513000000000 e24401bc06abbf873844211e243f0871 1 std/compress/flate/huffman_decoder.zig
77139 273263 1720029513000000000 6ed68741d6922f90c45c6c388b6cdd8c 1 std/fs/path.zig
1399 273232 1720029513000000000 40a7d4ac60d12c6e9ca294acaed35474 1 std/dwarf/FORM.zig
3900 273235 1720029513000000000 b5711d1b73e43c5aaea25647f88f9369 1 std/dwarf/TAG.zig
7395 273229 1720029513000000000 0736a520f4793791a2cfc257bfcfd3b6 1 std/dwarf/AT.zig
643 273231 1720029513000000000 6f6a9e4e1602df062ad02179710971c4 1 std/dwarf/EH.zig
1884 273403 1720029513000000000 4e39bcecc218a8cefd7304859e028778 1 std/math/log2.zig
200963 273500 1720029513000000000 6382cd937e84a8fc6ae02341db586df9 1 std/os/windows.zig
19056 273069 1720029513000000000 fbe5a337296572a6d62cbde681c465ea 1 std/atomic.zig
54097 273056 1720029513000000000 5fc2474d41197418fc547d7d64491a85 1 std/Thread.zig
10030 273059 1720029513000000000 6ec4900de2fa66c512d3a1a8b197182b 1 std/Thread/Mutex.zig
12563 273456 1720029513000000000 edca846565ef855c728e7372feed8676 1 std/os/linux/x86_64.zig
94423 273450 1720029513000000000 936f06081ca66c21f2225e91832d8a41 1 std/os/linux/syscalls.zig
23129 273523 1720029513000000000 b579436bcc763fc86642b2a1d69be89a 1 std/simd.zig
50900 273013 1720029513000000000 00b173ccd55aed075eef5aa1dccad55a 1 std/Progress.zig
31762 273284 1720029513000000000 39822c5f2ad237650217b35e72989b75 1 std/heap.zig
12747 273289 1720029513000000000 0c84990d94912da71f88ccdd844ff032 1 std/heap/arena_allocator.zig
14239 273343 1720029513000000000 a69e9fd3810cdd1601c26dd47210af71 1 std/linked_list.zig
3917 273285 1720029513000000000 985cae2df1113f68d7f2eca79afe1887 1 std/heap/PageAllocator.zig
74835 273520 1720029513000000000 26bff32158c4e55ea1dbd7cbd193b2d5 1 std/process.zig
29780 273525 1720029513000000000 f63bcad555043dc37b62da5b7656cb6e 1 std/sort.zig
51714 273526 1720029513000000000 eb8790d984ce4a6ddd6376d877c85ff1 1 std/sort/block.zig
17036 273239 1720029513000000000 e5e4bda8771008b986953e018b241bdd 1 std/dynamic_library.zig
82077 273547 1720029513000000000 d5fc31f78c3ec8b424ea391b2e65f728 1 std/unicode.zig
17851 273342 1720029513000000000 62510503fe6b45659189d32c19c9dc45 1 std/leb128.zig
10710 273527 1720029513000000000 f2973ab2be6115a15cf6c75a2be36ad3 1 std/sort/pdq.zig
10091 273550 1720029513000000000 616a2d791eb8d67329f8198701e2bbad 1 std/valgrind.zig
19546 273236 1720029513000000000 eeb537ce254d8635c5876f3cb23ba2ab 1 std/dwarf/abi.zig
26403 273237 1720029513000000000 17cfec6893f0195cf3f2128e131aebbd 1 std/dwarf/call_frame.zig
71838 273238 1720029513000000000 472566d679006f02ce08a8e6d3ca5840 1 std/dwarf/expressions.zig
43084 273058 1720029513000000000 a67e9f409c649ae15d47dcc9582247f0 1 std/Thread/Futex.zig
14616 273068 1720029513000000000 0fed3eb789529104667fd82e81a9af62 1 std/ascii.zig
1299 273314 1720029513000000000 9ea5eaf4f2d36e2273f3ecec7f813b61 1 std/io/buffered_writer.zig
9239 273061 1720029513000000000 d703f6a7af8c150d259a587850decd1f 1 std/Thread/ResetEvent.zig
13689 273541 1720029513000000000 131aba425aefaef0d374793c2dd9e731 1 std/time.zig
1618 273105 1720029513000000000 60e22c8a23680b34b51d27b486811807 1 std/compress/flate/consts.zig
13375 273101 1720029513000000000 239244362ca7a3d92e32a4518ccda927 1 std/compress/flate/Token.zig
8372 273280 1720029513000000000 d48498b32f349820311bbf338ae1aae5 1 std/hash/wyhash.zig
5693 273234 1720029513000000000 01d731f8d28ba8382ff3c5885d5e0c75 1 std/dwarf/OP.zig

View File

@ -0,0 +1,84 @@
0
191 1190486 1733918109500000094 7e2860f081407d3d9f477662f7b2cd11 0 src/root.zig
7616 273531 1720029513000000000 a112ef71b351e8f79f6f43c583ede25c 1 std/std.zig
23040 273528 1720029513000000000 da66963546b611ee7750a27396b7d1ea 1 std/start.zig
115223 273226 1720029513000000000 864599658ca312005d8d3860dcc5d44e 1 std/debug.zig
2251 1188759 1733745228589999910 e1ffff83ba21c7ce4210bcfae696187f 0 /home/ccppi/.cache/zig/b/e1ffff83ba21c7ce4210bcfae696187f/builtin.zig
33165 273075 1720029513000000000 f94156764e93e22ac481419ae3dcd7e2 1 std/builtin.zig
87972 273031 1720029513000000000 2058e9176f2f8c413153da85bdefea9a 1 std/Target.zig
129328 273053 1720029513000000000 aa1c9ead6b093aa4fc744cbaf6cdb147 1 std/Target/x86.zig
73503 273347 1720029513000000000 4f495cdd87469544c122e37211fe3d16 1 std/math.zig
41362 273418 1720029513000000000 222d7cb14bd7ca087b75cbc16cba6dda 1 std/meta.zig
11091 273029 1720029513000000000 3b4e837c9f6b3b4fbb5b3b95148e553c 1 std/SemanticVersion.zig
12325 273427 1720029513000000000 2229bf6824a9119504139fcdb850890e 1 std/os.zig
13386 273498 1720029513000000000 b23fdad07ce3b3bc638202a13d269a17 1 std/os/wasi.zig
8321 273344 1720029513000000000 445ca968f1971dbcfae846f76f46cc2d 1 std/log.zig
12352 273145 1720029513000000000 85ba4034d104ed83a45a1bb6ea2f588a 1 std/crypto.zig
35816 273258 1720029513000000000 9ad542fb9d5f647b2fd9aa956a4876f1 1 std/fs.zig
106358 273244 1720029513000000000 9b602efb3cf67bc725c9853d5fe33864 1 std/fmt.zig
6224 273221 1720029513000000000 1478fc3a3f5e7178b0ebc595cf60927a 1 std/crypto/tlcsprng.zig
19056 273069 1720029513000000000 fbe5a337296572a6d62cbde681c465ea 1 std/atomic.zig
54097 273056 1720029513000000000 5fc2474d41197418fc547d7d64491a85 1 std/Thread.zig
10030 273059 1720029513000000000 6ec4900de2fa66c512d3a1a8b197182b 1 std/Thread/Mutex.zig
25700 273305 1720029513000000000 2c3e57ebee88e5b426bac4e5144d55a2 1 std/io.zig
65843 273261 1720029513000000000 2f1e7806f11f80320d184c737b99b781 1 std/fs/File.zig
293019 273515 1720029513000000000 3aef046ab18b515bbbbf65ba8531ef93 1 std/posix.zig
207296 273430 1720029513000000000 651fd04e37ca32286baf84da551c7ce0 1 std/os/linux.zig
2697 273309 1720029513000000000 8464fd0bdf5c1f8ba10a286a4fe46f4d 1 std/io/Writer.zig
176912 273415 1720029513000000000 223e2fd0f89a74fd7d5132dbe48f1c2c 1 std/mem.zig
13626 273416 1720029513000000000 98c52b2fa05c32ad77f1743a5f3383ee 1 std/mem/Allocator.zig
89980 273282 1720029513000000000 52e58e0e5a1dd700c7ba1de70432e45c 1 std/hash_map.zig
5461 273326 1720029513000000000 ed6aac6dd443d6bdac1cf31688d1b444 1 std/io/tty.zig
112489 273228 1720029513000000000 d33cf67bbc2809a1c38591e04f1e3f51 1 std/dwarf.zig
55939 273241 1720029513000000000 9fbbf465379ce46a9365e411debc3ce1 1 std/enums.zig
87217 273067 1720029513000000000 d82200bd8e9f05406e233eef46e48149 1 std/array_list.zig
114248 273066 1720029513000000000 7aa5a3d5d7c75f7861328581549e6a5d 1 std/array_hash_map.zig
38005 273420 1720029513000000000 2df15a06c9368a128b68d617837153ef 1 std/multi_array_list.zig
61526 273240 1720029513000000000 00003d31510dec096134200d0d6ceecc 1 std/elf.zig
112808 273260 1720029513000000000 736eee48bb9f3802d7054c19abc437df 1 std/fs/Dir.zig
1730 273268 1720029513000000000 36cb1b0b5e0bb7d10f9b200b0a751743 1 std/hash.zig
19972 273274 1720029513000000000 c36dede4b91e35db37ea45c66dbe6fe9 1 std/hash/crc.zig
3882 273275 1720029513000000000 168f6844905becfc3ec252416dbee69f 1 std/hash/crc/impl.zig
6449 273320 1720029513000000000 3bcfe7862cea857ee79939a098991ad5 1 std/io/fixed_buffer_stream.zig
14434 273307 1720029513000000000 2655b33c088dd930683d9eb843eaceb4 1 std/io/Reader.zig
2057 273095 1720029513000000000 a778ec13ef93e0ace847f52f066441fd 1 std/compress.zig
3736 273134 1720029513000000000 a5c9eee5eaf5943e22c8a03fac3f2841 1 std/compress/zlib.zig
23844 273110 1720029513000000000 61343f5304677e260ccaed8ba225c2b1 1 std/compress/flate/inflate.zig
7460 273106 1720029513000000000 1c1d1c1c4e61c64090b7ace80a4c2dab 1 std/compress/flate/container.zig
16625 273102 1720029513000000000 8ba4aa19f03596c0d0eb18045a7331e8 1 std/compress/flate/bit_reader.zig
7434 273098 1720029513000000000 a6347ffd91bdf7b166947d627e9f38c5 1 std/compress/flate/CircularBuffer.zig
3519 273269 1720029513000000000 4e3c7d701979e5945ab9f85fed59a579 1 std/hash/adler.zig
10966 273108 1720029513000000000 e24401bc06abbf873844211e243f0871 1 std/compress/flate/huffman_decoder.zig
77139 273263 1720029513000000000 6ed68741d6922f90c45c6c388b6cdd8c 1 std/fs/path.zig
1399 273232 1720029513000000000 40a7d4ac60d12c6e9ca294acaed35474 1 std/dwarf/FORM.zig
3900 273235 1720029513000000000 b5711d1b73e43c5aaea25647f88f9369 1 std/dwarf/TAG.zig
7395 273229 1720029513000000000 0736a520f4793791a2cfc257bfcfd3b6 1 std/dwarf/AT.zig
643 273231 1720029513000000000 6f6a9e4e1602df062ad02179710971c4 1 std/dwarf/EH.zig
1884 273403 1720029513000000000 4e39bcecc218a8cefd7304859e028778 1 std/math/log2.zig
200963 273500 1720029513000000000 6382cd937e84a8fc6ae02341db586df9 1 std/os/windows.zig
12563 273456 1720029513000000000 edca846565ef855c728e7372feed8676 1 std/os/linux/x86_64.zig
19546 273236 1720029513000000000 eeb537ce254d8635c5876f3cb23ba2ab 1 std/dwarf/abi.zig
26403 273237 1720029513000000000 17cfec6893f0195cf3f2128e131aebbd 1 std/dwarf/call_frame.zig
71838 273238 1720029513000000000 472566d679006f02ce08a8e6d3ca5840 1 std/dwarf/expressions.zig
43084 273058 1720029513000000000 a67e9f409c649ae15d47dcc9582247f0 1 std/Thread/Futex.zig
82077 273547 1720029513000000000 d5fc31f78c3ec8b424ea391b2e65f728 1 std/unicode.zig
23129 273523 1720029513000000000 b579436bcc763fc86642b2a1d69be89a 1 std/simd.zig
94423 273450 1720029513000000000 936f06081ca66c21f2225e91832d8a41 1 std/os/linux/syscalls.zig
31762 273284 1720029513000000000 39822c5f2ad237650217b35e72989b75 1 std/heap.zig
12747 273289 1720029513000000000 0c84990d94912da71f88ccdd844ff032 1 std/heap/arena_allocator.zig
14239 273343 1720029513000000000 a69e9fd3810cdd1601c26dd47210af71 1 std/linked_list.zig
3917 273285 1720029513000000000 985cae2df1113f68d7f2eca79afe1887 1 std/heap/PageAllocator.zig
74835 273520 1720029513000000000 26bff32158c4e55ea1dbd7cbd193b2d5 1 std/process.zig
29780 273525 1720029513000000000 f63bcad555043dc37b62da5b7656cb6e 1 std/sort.zig
51714 273526 1720029513000000000 eb8790d984ce4a6ddd6376d877c85ff1 1 std/sort/block.zig
17036 273239 1720029513000000000 e5e4bda8771008b986953e018b241bdd 1 std/dynamic_library.zig
17851 273342 1720029513000000000 62510503fe6b45659189d32c19c9dc45 1 std/leb128.zig
10710 273527 1720029513000000000 f2973ab2be6115a15cf6c75a2be36ad3 1 std/sort/pdq.zig
10091 273550 1720029513000000000 616a2d791eb8d67329f8198701e2bbad 1 std/valgrind.zig
13689 273541 1720029513000000000 131aba425aefaef0d374793c2dd9e731 1 std/time.zig
1618 273105 1720029513000000000 60e22c8a23680b34b51d27b486811807 1 std/compress/flate/consts.zig
13375 273101 1720029513000000000 239244362ca7a3d92e32a4518ccda927 1 std/compress/flate/Token.zig
50900 273013 1720029513000000000 00b173ccd55aed075eef5aa1dccad55a 1 std/Progress.zig
8372 273280 1720029513000000000 d48498b32f349820311bbf338ae1aae5 1 std/hash/wyhash.zig
5693 273234 1720029513000000000 01d731f8d28ba8382ff3c5885d5e0c75 1 std/dwarf/OP.zig
9239 273061 1720029513000000000 d703f6a7af8c150d259a587850decd1f 1 std/Thread/ResetEvent.zig

View File

@ -0,0 +1,157 @@
0
46350 1188798 1733918116076666762 7f7cb8ef643c5d4a9b9dfb38c13b99b8 0 /home/ccppi/.cache/zls/build_runner/21872970afd69e48a0847077e5196711/build_runner.zig
3845 1190363 1733918109496666760 16a4faf009bcd4892e8cf6fe6c299e1f 0 /home/ccppi/Programming/adventofcode/build.zig
103 1190495 1733918116150000095 35b10ba982858800c98ffbaad5536a86 2 o/a32fcfc0e475f08356ed8aef4020640b/dependencies.zig
7616 273531 1720029513000000000 a112ef71b351e8f79f6f43c583ede25c 1 std/std.zig
23040 273528 1720029513000000000 da66963546b611ee7750a27396b7d1ea 1 std/start.zig
115223 273226 1720029513000000000 864599658ca312005d8d3860dcc5d44e 1 std/debug.zig
2251 1188745 1733745197116666578 c00e007630e21dfc05b9335a4cbed275 0 /home/ccppi/.cache/zig/b/c00e007630e21dfc05b9335a4cbed275/builtin.zig
33165 273075 1720029513000000000 f94156764e93e22ac481419ae3dcd7e2 1 std/builtin.zig
87972 273031 1720029513000000000 2058e9176f2f8c413153da85bdefea9a 1 std/Target.zig
129328 273053 1720029513000000000 aa1c9ead6b093aa4fc744cbaf6cdb147 1 std/Target/x86.zig
73503 273347 1720029513000000000 4f495cdd87469544c122e37211fe3d16 1 std/math.zig
41362 273418 1720029513000000000 222d7cb14bd7ca087b75cbc16cba6dda 1 std/meta.zig
11091 273029 1720029513000000000 3b4e837c9f6b3b4fbb5b3b95148e553c 1 std/SemanticVersion.zig
61526 273240 1720029513000000000 00003d31510dec096134200d0d6ceecc 1 std/elf.zig
12325 273427 1720029513000000000 2229bf6824a9119504139fcdb850890e 1 std/os.zig
207296 273430 1720029513000000000 651fd04e37ca32286baf84da551c7ce0 1 std/os/linux.zig
12494 273453 1720029513000000000 e9933b000fa707703dab8f2fe68b002a 1 std/os/linux/tls.zig
293019 273515 1720029513000000000 3aef046ab18b515bbbbf65ba8531ef93 1 std/posix.zig
31762 273284 1720029513000000000 39822c5f2ad237650217b35e72989b75 1 std/heap.zig
12747 273289 1720029513000000000 0c84990d94912da71f88ccdd844ff032 1 std/heap/arena_allocator.zig
176912 273415 1720029513000000000 223e2fd0f89a74fd7d5132dbe48f1c2c 1 std/mem.zig
13626 273416 1720029513000000000 98c52b2fa05c32ad77f1743a5f3383ee 1 std/mem/Allocator.zig
14239 273343 1720029513000000000 a69e9fd3810cdd1601c26dd47210af71 1 std/linked_list.zig
3917 273285 1720029513000000000 985cae2df1113f68d7f2eca79afe1887 1 std/heap/PageAllocator.zig
1301 273286 1720029513000000000 3db24c00baa9c03a40bfeaa152e28593 1 std/heap/ThreadSafeAllocator.zig
54097 273056 1720029513000000000 5fc2474d41197418fc547d7d64491a85 1 std/Thread.zig
10030 273059 1720029513000000000 6ec4900de2fa66c512d3a1a8b197182b 1 std/Thread/Mutex.zig
19056 273069 1720029513000000000 fbe5a337296572a6d62cbde681c465ea 1 std/atomic.zig
74835 273520 1720029513000000000 26bff32158c4e55ea1dbd7cbd193b2d5 1 std/process.zig
87217 273067 1720029513000000000 d82200bd8e9f05406e233eef46e48149 1 std/array_list.zig
95593 272990 1720029513000000000 eb7f21887b8d6d3a1ea72f4fb7e18f23 1 std/Build.zig
48541 272992 1720029513000000000 f0b7461b8459a4c71e300129f17dffb2 1 std/Build/Cache.zig
2248 272994 1720029513000000000 95a1bb668e0c39f345c83920bac861b7 1 std/Build/Cache/Directory.zig
35816 273258 1720029513000000000 9ad542fb9d5f647b2fd9aa956a4876f1 1 std/fs.zig
112808 273260 1720029513000000000 736eee48bb9f3802d7054c19abc437df 1 std/fs/Dir.zig
65843 273261 1720029513000000000 2f1e7806f11f80320d184c737b99b781 1 std/fs/File.zig
114248 273066 1720029513000000000 7aa5a3d5d7c75f7861328581549e6a5d 1 std/array_hash_map.zig
38005 273420 1720029513000000000 2df15a06c9368a128b68d617837153ef 1 std/multi_array_list.zig
12352 273145 1720029513000000000 85ba4034d104ed83a45a1bb6ea2f588a 1 std/crypto.zig
18622 273219 1720029513000000000 05742583e9b394547e0631c84131938c 1 std/crypto/siphash.zig
89980 273282 1720029513000000000 52e58e0e5a1dd700c7ba1de70432e45c 1 std/hash_map.zig
26882 273032 1720029513000000000 5b9ff543d20a09f8c07cb235a7f3c28e 1 std/Target/Query.zig
45679 273555 1720029513000000000 495dd771e7b568e386535b63332d9a02 1 std/zig.zig
52150 273577 1720029513000000000 d488bc81fd0ba877c413ee9c01ed7219 1 std/zig/system.zig
18992 272998 1720029513000000000 f8e31f1e40286aec688457f633c109d1 1 std/Build/Step.zig
27571 272996 1720029513000000000 f1a35ffb70613c5c506de0b9feb42a25 1 std/Build/Module.zig
16219 273012 1720029513000000000 ebb5646fc6c1cbeff8fff92f756e2694 1 std/Build/Step/WriteFile.zig
50900 273013 1720029513000000000 00b173ccd55aed075eef5aa1dccad55a 1 std/Progress.zig
29025 273561 1720029513000000000 2573e2c79bf66e3476b0024f0dfa2173 1 std/zig/ErrorBundle.zig
76968 273001 1720029513000000000 0500528ea762b29f66289290fec117d5 1 std/Build/Step/Compile.zig
112489 273228 1720029513000000000 d33cf67bbc2809a1c38591e04f1e3f51 1 std/dwarf.zig
31915 273002 1720029513000000000 6880c5430ee92854d2f87b8087aabbb0 1 std/Build/Step/ConfigHeader.zig
1884 273403 1720029513000000000 4e39bcecc218a8cefd7304859e028778 1 std/math/log2.zig
5989 273060 1720029513000000000 9b884db4ae244ef2af3dcea90ca42736 1 std/Thread/Pool.zig
8321 273344 1720029513000000000 445ca968f1971dbcfae846f76f46cc2d 1 std/log.zig
106358 273244 1720029513000000000 9b602efb3cf67bc725c9853d5fe33864 1 std/fmt.zig
14616 273068 1720029513000000000 0fed3eb789529104667fd82e81a9af62 1 std/ascii.zig
13689 273541 1720029513000000000 131aba425aefaef0d374793c2dd9e731 1 std/time.zig
77139 273263 1720029513000000000 6ed68741d6922f90c45c6c388b6cdd8c 1 std/fs/path.zig
12563 273456 1720029513000000000 edca846565ef855c728e7372feed8676 1 std/os/linux/x86_64.zig
72708 273521 1720029513000000000 046fa60b44c156af61840e746b56a6c2 1 std/process/Child.zig
200963 273500 1720029513000000000 6382cd937e84a8fc6ae02341db586df9 1 std/os/windows.zig
394 1188797 1733918116073333429 e2a5dc77f7477e12f9d09568c618e70c 0 /home/ccppi/.cache/zls/build_runner/21872970afd69e48a0847077e5196711/BuildConfig.zig
5954 273328 1720029513000000000 ca96a7daf60a978c600a94a94daaea90 1 std/json.zig
3257 273333 1720029513000000000 b6a0926202bd08dbf296c65a9af6c72b 1 std/json/hashmap.zig
29391 273339 1720029513000000000 8c1d345a91a2c23c70cadb25b14a213b 1 std/json/stringify.zig
25700 273305 1720029513000000000 2c3e57ebee88e5b426bac4e5144d55a2 1 std/io.zig
13386 273498 1720029513000000000 b23fdad07ce3b3bc638202a13d269a17 1 std/os/wasi.zig
6224 273221 1720029513000000000 1478fc3a3f5e7178b0ebc595cf60927a 1 std/crypto/tlcsprng.zig
2697 273309 1720029513000000000 8464fd0bdf5c1f8ba10a286a4fe46f4d 1 std/io/Writer.zig
29780 273525 1720029513000000000 f63bcad555043dc37b62da5b7656cb6e 1 std/sort.zig
51714 273526 1720029513000000000 eb8790d984ce4a6ddd6376d877c85ff1 1 std/sort/block.zig
82077 273547 1720029513000000000 d5fc31f78c3ec8b424ea391b2e65f728 1 std/unicode.zig
76391 273036 1720029513000000000 4668a311541b6be75afd88bf66028ad5 1 std/Target/arm.zig
17620 273530 1720029513000000000 11fc6dca32658eb05179945f9031219f 1 std/static_string_map.zig
10710 273527 1720029513000000000 f2973ab2be6115a15cf6c75a2be36ad3 1 std/sort/pdq.zig
7643 273408 1720029513000000000 03910049e32f401cd3296cc1352aecb4 1 std/math/powi.zig
9239 273061 1720029513000000000 d703f6a7af8c150d259a587850decd1f 1 std/Thread/ResetEvent.zig
17590 273015 1720029513000000000 5ddd4d07802b9f332a306c207663eea0 1 std/Random.zig
3177 273024 1720029513000000000 ece4176296c0d5a4735a0e13195d3e89 1 std/Random/Xoshiro256.zig
23359 273057 1720029513000000000 55e7c53750c5f84af61f7e61406bc0f0 1 std/Thread/Condition.zig
1796 273064 1720029513000000000 43f2cf40b5fd32903bf18a54ea66fc91 1 std/Thread/WaitGroup.zig
5461 273326 1720029513000000000 ed6aac6dd443d6bdac1cf31688d1b444 1 std/io/tty.zig
14434 273307 1720029513000000000 2655b33c088dd930683d9eb843eaceb4 1 std/io/Reader.zig
55939 273241 1720029513000000000 9fbbf465379ce46a9365e411debc3ce1 1 std/enums.zig
1730 273268 1720029513000000000 36cb1b0b5e0bb7d10f9b200b0a751743 1 std/hash.zig
19972 273274 1720029513000000000 c36dede4b91e35db37ea45c66dbe6fe9 1 std/hash/crc.zig
3882 273275 1720029513000000000 168f6844905becfc3ec252416dbee69f 1 std/hash/crc/impl.zig
6449 273320 1720029513000000000 3bcfe7862cea857ee79939a098991ad5 1 std/io/fixed_buffer_stream.zig
2057 273095 1720029513000000000 a778ec13ef93e0ace847f52f066441fd 1 std/compress.zig
3736 273134 1720029513000000000 a5c9eee5eaf5943e22c8a03fac3f2841 1 std/compress/zlib.zig
23844 273110 1720029513000000000 61343f5304677e260ccaed8ba225c2b1 1 std/compress/flate/inflate.zig
7460 273106 1720029513000000000 1c1d1c1c4e61c64090b7ace80a4c2dab 1 std/compress/flate/container.zig
16625 273102 1720029513000000000 8ba4aa19f03596c0d0eb18045a7331e8 1 std/compress/flate/bit_reader.zig
7434 273098 1720029513000000000 a6347ffd91bdf7b166947d627e9f38c5 1 std/compress/flate/CircularBuffer.zig
3519 273269 1720029513000000000 4e3c7d701979e5945ab9f85fed59a579 1 std/hash/adler.zig
10966 273108 1720029513000000000 e24401bc06abbf873844211e243f0871 1 std/compress/flate/huffman_decoder.zig
1399 273232 1720029513000000000 40a7d4ac60d12c6e9ca294acaed35474 1 std/dwarf/FORM.zig
3900 273235 1720029513000000000 b5711d1b73e43c5aaea25647f88f9369 1 std/dwarf/TAG.zig
7395 273229 1720029513000000000 0736a520f4793791a2cfc257bfcfd3b6 1 std/dwarf/AT.zig
643 273231 1720029513000000000 6f6a9e4e1602df062ad02179710971c4 1 std/dwarf/EH.zig
94423 273450 1720029513000000000 936f06081ca66c21f2225e91832d8a41 1 std/os/linux/syscalls.zig
19768 273585 1720029513000000000 817d70e351edd4b746ab4c444c0d2b09 1 std/zig/system/x86.zig
1273 273035 1720029513000000000 92589c8e708010b66287cffb30b3644a 1 std/Target/arc.zig
69762 273037 1720029513000000000 d6af57434a87d01c08b32d2bfe25fdaa 1 std/Target/avr.zig
77144 273039 1720029513000000000 c690addfa0ddc66f16428c3843909a46 1 std/Target/csky.zig
16084 273040 1720029513000000000 ca6f1a2a9e6e8fa60a8331d7c5f5ce34 1 std/Target/hexagon.zig
7121 273042 1720029513000000000 d75880c23fe47c4e74168b752266aab9 1 std/Target/m68k.zig
2220 273044 1720029513000000000 d6af7e91115ce15de6cc6fa6b85ad607 1 std/Target/msp430.zig
81486 273034 1720029513000000000 c94083fc646f9b20640e65787e33fdc0 1 std/Target/amdgpu.zig
25913 273048 1720029513000000000 9d8c66f36c8cefa8cdeac8497ff9ed3d 1 std/Target/s390x.zig
1273 273054 1720029513000000000 1becbd14309ffd333ba9f93137feeab0 1 std/Target/xtensa.zig
1275 273051 1720029513000000000 3f87de4b4cab37706212bd9a456a8c58 1 std/Target/ve.zig
94346 273033 1720029513000000000 136876fa8ce544da55eab725094091a5 1 std/Target/aarch64.zig
2409 273038 1720029513000000000 1693b91547d868068f63e102f2ccb211 1 std/Target/bpf.zig
5236 273041 1720029513000000000 fd217450c001fea386e26e5ae8ee436e 1 std/Target/loongarch.zig
16066 273043 1720029513000000000 6e5fb373b9f2ae19c60dbed74eb241dc 1 std/Target/mips.zig
34534 273046 1720029513000000000 51352484986d855d36c4732d68bc73d0 1 std/Target/powerpc.zig
53948 273047 1720029513000000000 5dd87bdcf11a3787d33834ee1afcb1ea 1 std/Target/riscv.zig
19757 273049 1720029513000000000 81e62932de5b471d355190a547b0390a 1 std/Target/sparc.zig
77930 273050 1720029513000000000 0611f617b9ec2d1a8e22aa44c1fe7363 1 std/Target/spirv.zig
13279 273045 1720029513000000000 c4c3d3112933eb72020bc9eebc304ed2 1 std/Target/nvptx.zig
4508 273052 1720029513000000000 d86c84e4bae678df19d1bcef0e88aef9 1 std/Target/wasm.zig
19546 273236 1720029513000000000 eeb537ce254d8635c5876f3cb23ba2ab 1 std/dwarf/abi.zig
26403 273237 1720029513000000000 17cfec6893f0195cf3f2128e131aebbd 1 std/dwarf/call_frame.zig
71838 273238 1720029513000000000 472566d679006f02ce08a8e6d3ca5840 1 std/dwarf/expressions.zig
10091 273550 1720029513000000000 616a2d791eb8d67329f8198701e2bbad 1 std/valgrind.zig
23129 273523 1720029513000000000 b579436bcc763fc86642b2a1d69be89a 1 std/simd.zig
58779 273010 1720029513000000000 2628367b628e7df7bf938bc2188b14e7 1 std/Build/Step/Run.zig
17036 273239 1720029513000000000 e5e4bda8771008b986953e018b241bdd 1 std/dynamic_library.zig
17851 273342 1720029513000000000 62510503fe6b45659189d32c19c9dc45 1 std/leb128.zig
43084 273058 1720029513000000000 a67e9f409c649ae15d47dcc9582247f0 1 std/Thread/Futex.zig
1299 273314 1720029513000000000 9ea5eaf4f2d36e2273f3ecec7f813b61 1 std/io/buffered_writer.zig
9295 273004 1720029513000000000 268e240d3773b7543a10f2365b34cc53 1 std/Build/Step/InstallArtifact.zig
530 273022 1720029513000000000 6862d091fadcbbb652464ab10689bd23 1 std/Random/SplitMix64.zig
2496 272988 1720029513000000000 51fed0f372bbe1737cc4b59d4258ebe3 1 std/BitStack.zig
8372 273280 1720029513000000000 d48498b32f349820311bbf338ae1aae5 1 std/hash/wyhash.zig
1160 273318 1720029513000000000 32ae6866d358d400739c8281e2b92d26 1 std/io/counting_writer.zig
1618 273105 1720029513000000000 60e22c8a23680b34b51d27b486811807 1 std/compress/flate/consts.zig
13375 273101 1720029513000000000 239244362ca7a3d92e32a4518ccda927 1 std/compress/flate/Token.zig
36892 273217 1720029513000000000 aeaa6f15041af562aebdfbb8f2e94f9d 1 std/crypto/sha2.zig
20392 273242 1720029513000000000 a41115e4a4263ff02975e97d21f21847 1 std/fifo.zig
1464 273560 1720029513000000000 262bf5a41c36322233615e07256bc570 1 std/zig/Client.zig
8752 273565 1720029513000000000 2d7e0835ecf9b1ce89b625495c8209c2 1 std/zig/Server.zig
2591 273259 1720029513000000000 54cecc0501b004131b133c8ec52688b3 1 std/fs/AtomicFile.zig
23028 273070 1720029513000000000 5f649adf883cb2acad194b60017a4672 1 std/base64.zig
39156 272993 1720029513000000000 628e7a63840b5d008ad84d18a2a50b21 1 std/Build/Cache/DepTokenizer.zig
2685 273017 1720029513000000000 5244bfd5edd68ad074bfdf866029fa86 1 std/Random/ChaCha.zig
52267 273173 1720029513000000000 250bf69f713193c74da886706bb53369 1 std/crypto/chacha20.zig
5693 273234 1720029513000000000 01d731f8d28ba8382ff3c5885d5e0c75 1 std/dwarf/OP.zig
7399 273225 1720029513000000000 7e3716a3c82a36541c6cf09b56a96da0 1 std/crypto/utils.zig
1539 273321 1720029513000000000 ca6d9ebe9107eb6ffe4cc4b92611772a 1 std/io/limited_reader.zig
64174 273077 1720029513000000000 ecfd926ec456ba7acf15b5e7bec5f532 1 std/c.zig
10812 273087 1720029513000000000 b5d2e09197008802157fd9bda951945e 1 std/c/linux.zig
14595 273270 1720029513000000000 9802848537ec3da81ac651945a298250 1 std/hash/auto_hash.zig
3957 273454 1720029513000000000 8a6d08b36d5d25b29bdff67ade3e947b 1 std/os/linux/vdso.zig

View File

@ -0,0 +1,152 @@
0
51912 165741 1720029513000000000 d600a0ee5e0a696532bca2fbd40226c8 1 compiler/build_runner.zig
3845 1190363 1733918109496666760 16a4faf009bcd4892e8cf6fe6c299e1f 0 /home/ccppi/Programming/adventofcode/build.zig
103 1190495 1733918116150000095 35b10ba982858800c98ffbaad5536a86 2 o/a32fcfc0e475f08356ed8aef4020640b/dependencies.zig
7616 273531 1720029513000000000 a112ef71b351e8f79f6f43c583ede25c 1 std/std.zig
23040 273528 1720029513000000000 da66963546b611ee7750a27396b7d1ea 1 std/start.zig
115223 273226 1720029513000000000 864599658ca312005d8d3860dcc5d44e 1 std/debug.zig
2251 1188745 1733745197116666578 c00e007630e21dfc05b9335a4cbed275 0 /home/ccppi/.cache/zig/b/c00e007630e21dfc05b9335a4cbed275/builtin.zig
33165 273075 1720029513000000000 f94156764e93e22ac481419ae3dcd7e2 1 std/builtin.zig
87972 273031 1720029513000000000 2058e9176f2f8c413153da85bdefea9a 1 std/Target.zig
129328 273053 1720029513000000000 aa1c9ead6b093aa4fc744cbaf6cdb147 1 std/Target/x86.zig
73503 273347 1720029513000000000 4f495cdd87469544c122e37211fe3d16 1 std/math.zig
41362 273418 1720029513000000000 222d7cb14bd7ca087b75cbc16cba6dda 1 std/meta.zig
11091 273029 1720029513000000000 3b4e837c9f6b3b4fbb5b3b95148e553c 1 std/SemanticVersion.zig
61526 273240 1720029513000000000 00003d31510dec096134200d0d6ceecc 1 std/elf.zig
12325 273427 1720029513000000000 2229bf6824a9119504139fcdb850890e 1 std/os.zig
207296 273430 1720029513000000000 651fd04e37ca32286baf84da551c7ce0 1 std/os/linux.zig
12494 273453 1720029513000000000 e9933b000fa707703dab8f2fe68b002a 1 std/os/linux/tls.zig
293019 273515 1720029513000000000 3aef046ab18b515bbbbf65ba8531ef93 1 std/posix.zig
31762 273284 1720029513000000000 39822c5f2ad237650217b35e72989b75 1 std/heap.zig
12747 273289 1720029513000000000 0c84990d94912da71f88ccdd844ff032 1 std/heap/arena_allocator.zig
176912 273415 1720029513000000000 223e2fd0f89a74fd7d5132dbe48f1c2c 1 std/mem.zig
13626 273416 1720029513000000000 98c52b2fa05c32ad77f1743a5f3383ee 1 std/mem/Allocator.zig
14239 273343 1720029513000000000 a69e9fd3810cdd1601c26dd47210af71 1 std/linked_list.zig
3917 273285 1720029513000000000 985cae2df1113f68d7f2eca79afe1887 1 std/heap/PageAllocator.zig
1301 273286 1720029513000000000 3db24c00baa9c03a40bfeaa152e28593 1 std/heap/ThreadSafeAllocator.zig
54097 273056 1720029513000000000 5fc2474d41197418fc547d7d64491a85 1 std/Thread.zig
10030 273059 1720029513000000000 6ec4900de2fa66c512d3a1a8b197182b 1 std/Thread/Mutex.zig
19056 273069 1720029513000000000 fbe5a337296572a6d62cbde681c465ea 1 std/atomic.zig
74835 273520 1720029513000000000 26bff32158c4e55ea1dbd7cbd193b2d5 1 std/process.zig
87217 273067 1720029513000000000 d82200bd8e9f05406e233eef46e48149 1 std/array_list.zig
95593 272990 1720029513000000000 eb7f21887b8d6d3a1ea72f4fb7e18f23 1 std/Build.zig
48541 272992 1720029513000000000 f0b7461b8459a4c71e300129f17dffb2 1 std/Build/Cache.zig
2248 272994 1720029513000000000 95a1bb668e0c39f345c83920bac861b7 1 std/Build/Cache/Directory.zig
35816 273258 1720029513000000000 9ad542fb9d5f647b2fd9aa956a4876f1 1 std/fs.zig
112808 273260 1720029513000000000 736eee48bb9f3802d7054c19abc437df 1 std/fs/Dir.zig
65843 273261 1720029513000000000 2f1e7806f11f80320d184c737b99b781 1 std/fs/File.zig
114248 273066 1720029513000000000 7aa5a3d5d7c75f7861328581549e6a5d 1 std/array_hash_map.zig
38005 273420 1720029513000000000 2df15a06c9368a128b68d617837153ef 1 std/multi_array_list.zig
12352 273145 1720029513000000000 85ba4034d104ed83a45a1bb6ea2f588a 1 std/crypto.zig
18622 273219 1720029513000000000 05742583e9b394547e0631c84131938c 1 std/crypto/siphash.zig
89980 273282 1720029513000000000 52e58e0e5a1dd700c7ba1de70432e45c 1 std/hash_map.zig
26882 273032 1720029513000000000 5b9ff543d20a09f8c07cb235a7f3c28e 1 std/Target/Query.zig
45679 273555 1720029513000000000 495dd771e7b568e386535b63332d9a02 1 std/zig.zig
52150 273577 1720029513000000000 d488bc81fd0ba877c413ee9c01ed7219 1 std/zig/system.zig
18992 272998 1720029513000000000 f8e31f1e40286aec688457f633c109d1 1 std/Build/Step.zig
27571 272996 1720029513000000000 f1a35ffb70613c5c506de0b9feb42a25 1 std/Build/Module.zig
16219 273012 1720029513000000000 ebb5646fc6c1cbeff8fff92f756e2694 1 std/Build/Step/WriteFile.zig
50900 273013 1720029513000000000 00b173ccd55aed075eef5aa1dccad55a 1 std/Progress.zig
29025 273561 1720029513000000000 2573e2c79bf66e3476b0024f0dfa2173 1 std/zig/ErrorBundle.zig
76968 273001 1720029513000000000 0500528ea762b29f66289290fec117d5 1 std/Build/Step/Compile.zig
112489 273228 1720029513000000000 d33cf67bbc2809a1c38591e04f1e3f51 1 std/dwarf.zig
31915 273002 1720029513000000000 6880c5430ee92854d2f87b8087aabbb0 1 std/Build/Step/ConfigHeader.zig
1884 273403 1720029513000000000 4e39bcecc218a8cefd7304859e028778 1 std/math/log2.zig
5989 273060 1720029513000000000 9b884db4ae244ef2af3dcea90ca42736 1 std/Thread/Pool.zig
8321 273344 1720029513000000000 445ca968f1971dbcfae846f76f46cc2d 1 std/log.zig
106358 273244 1720029513000000000 9b602efb3cf67bc725c9853d5fe33864 1 std/fmt.zig
25700 273305 1720029513000000000 2c3e57ebee88e5b426bac4e5144d55a2 1 std/io.zig
5461 273326 1720029513000000000 ed6aac6dd443d6bdac1cf31688d1b444 1 std/io/tty.zig
82077 273547 1720029513000000000 d5fc31f78c3ec8b424ea391b2e65f728 1 std/unicode.zig
13689 273541 1720029513000000000 131aba425aefaef0d374793c2dd9e731 1 std/time.zig
77139 273263 1720029513000000000 6ed68741d6922f90c45c6c388b6cdd8c 1 std/fs/path.zig
12563 273456 1720029513000000000 edca846565ef855c728e7372feed8676 1 std/os/linux/x86_64.zig
17590 273015 1720029513000000000 5ddd4d07802b9f332a306c207663eea0 1 std/Random.zig
3177 273024 1720029513000000000 ece4176296c0d5a4735a0e13195d3e89 1 std/Random/Xoshiro256.zig
23359 273057 1720029513000000000 55e7c53750c5f84af61f7e61406bc0f0 1 std/Thread/Condition.zig
1796 273064 1720029513000000000 43f2cf40b5fd32903bf18a54ea66fc91 1 std/Thread/WaitGroup.zig
9239 273061 1720029513000000000 d703f6a7af8c150d259a587850decd1f 1 std/Thread/ResetEvent.zig
200963 273500 1720029513000000000 6382cd937e84a8fc6ae02341db586df9 1 std/os/windows.zig
2697 273309 1720029513000000000 8464fd0bdf5c1f8ba10a286a4fe46f4d 1 std/io/Writer.zig
13386 273498 1720029513000000000 b23fdad07ce3b3bc638202a13d269a17 1 std/os/wasi.zig
6224 273221 1720029513000000000 1478fc3a3f5e7178b0ebc595cf60927a 1 std/crypto/tlcsprng.zig
29780 273525 1720029513000000000 f63bcad555043dc37b62da5b7656cb6e 1 std/sort.zig
51714 273526 1720029513000000000 eb8790d984ce4a6ddd6376d877c85ff1 1 std/sort/block.zig
14616 273068 1720029513000000000 0fed3eb789529104667fd82e81a9af62 1 std/ascii.zig
76391 273036 1720029513000000000 4668a311541b6be75afd88bf66028ad5 1 std/Target/arm.zig
17620 273530 1720029513000000000 11fc6dca32658eb05179945f9031219f 1 std/static_string_map.zig
10710 273527 1720029513000000000 f2973ab2be6115a15cf6c75a2be36ad3 1 std/sort/pdq.zig
7643 273408 1720029513000000000 03910049e32f401cd3296cc1352aecb4 1 std/math/powi.zig
55939 273241 1720029513000000000 9fbbf465379ce46a9365e411debc3ce1 1 std/enums.zig
1730 273268 1720029513000000000 36cb1b0b5e0bb7d10f9b200b0a751743 1 std/hash.zig
19972 273274 1720029513000000000 c36dede4b91e35db37ea45c66dbe6fe9 1 std/hash/crc.zig
3882 273275 1720029513000000000 168f6844905becfc3ec252416dbee69f 1 std/hash/crc/impl.zig
6449 273320 1720029513000000000 3bcfe7862cea857ee79939a098991ad5 1 std/io/fixed_buffer_stream.zig
14434 273307 1720029513000000000 2655b33c088dd930683d9eb843eaceb4 1 std/io/Reader.zig
2057 273095 1720029513000000000 a778ec13ef93e0ace847f52f066441fd 1 std/compress.zig
3736 273134 1720029513000000000 a5c9eee5eaf5943e22c8a03fac3f2841 1 std/compress/zlib.zig
23844 273110 1720029513000000000 61343f5304677e260ccaed8ba225c2b1 1 std/compress/flate/inflate.zig
7460 273106 1720029513000000000 1c1d1c1c4e61c64090b7ace80a4c2dab 1 std/compress/flate/container.zig
16625 273102 1720029513000000000 8ba4aa19f03596c0d0eb18045a7331e8 1 std/compress/flate/bit_reader.zig
7434 273098 1720029513000000000 a6347ffd91bdf7b166947d627e9f38c5 1 std/compress/flate/CircularBuffer.zig
3519 273269 1720029513000000000 4e3c7d701979e5945ab9f85fed59a579 1 std/hash/adler.zig
10966 273108 1720029513000000000 e24401bc06abbf873844211e243f0871 1 std/compress/flate/huffman_decoder.zig
1399 273232 1720029513000000000 40a7d4ac60d12c6e9ca294acaed35474 1 std/dwarf/FORM.zig
3900 273235 1720029513000000000 b5711d1b73e43c5aaea25647f88f9369 1 std/dwarf/TAG.zig
7395 273229 1720029513000000000 0736a520f4793791a2cfc257bfcfd3b6 1 std/dwarf/AT.zig
643 273231 1720029513000000000 6f6a9e4e1602df062ad02179710971c4 1 std/dwarf/EH.zig
94423 273450 1720029513000000000 936f06081ca66c21f2225e91832d8a41 1 std/os/linux/syscalls.zig
19768 273585 1720029513000000000 817d70e351edd4b746ab4c444c0d2b09 1 std/zig/system/x86.zig
1273 273035 1720029513000000000 92589c8e708010b66287cffb30b3644a 1 std/Target/arc.zig
69762 273037 1720029513000000000 d6af57434a87d01c08b32d2bfe25fdaa 1 std/Target/avr.zig
77144 273039 1720029513000000000 c690addfa0ddc66f16428c3843909a46 1 std/Target/csky.zig
16084 273040 1720029513000000000 ca6f1a2a9e6e8fa60a8331d7c5f5ce34 1 std/Target/hexagon.zig
7121 273042 1720029513000000000 d75880c23fe47c4e74168b752266aab9 1 std/Target/m68k.zig
2220 273044 1720029513000000000 d6af7e91115ce15de6cc6fa6b85ad607 1 std/Target/msp430.zig
81486 273034 1720029513000000000 c94083fc646f9b20640e65787e33fdc0 1 std/Target/amdgpu.zig
25913 273048 1720029513000000000 9d8c66f36c8cefa8cdeac8497ff9ed3d 1 std/Target/s390x.zig
1273 273054 1720029513000000000 1becbd14309ffd333ba9f93137feeab0 1 std/Target/xtensa.zig
1275 273051 1720029513000000000 3f87de4b4cab37706212bd9a456a8c58 1 std/Target/ve.zig
94346 273033 1720029513000000000 136876fa8ce544da55eab725094091a5 1 std/Target/aarch64.zig
2409 273038 1720029513000000000 1693b91547d868068f63e102f2ccb211 1 std/Target/bpf.zig
5236 273041 1720029513000000000 fd217450c001fea386e26e5ae8ee436e 1 std/Target/loongarch.zig
16066 273043 1720029513000000000 6e5fb373b9f2ae19c60dbed74eb241dc 1 std/Target/mips.zig
34534 273046 1720029513000000000 51352484986d855d36c4732d68bc73d0 1 std/Target/powerpc.zig
53948 273047 1720029513000000000 5dd87bdcf11a3787d33834ee1afcb1ea 1 std/Target/riscv.zig
19757 273049 1720029513000000000 81e62932de5b471d355190a547b0390a 1 std/Target/sparc.zig
77930 273050 1720029513000000000 0611f617b9ec2d1a8e22aa44c1fe7363 1 std/Target/spirv.zig
13279 273045 1720029513000000000 c4c3d3112933eb72020bc9eebc304ed2 1 std/Target/nvptx.zig
4508 273052 1720029513000000000 d86c84e4bae678df19d1bcef0e88aef9 1 std/Target/wasm.zig
19546 273236 1720029513000000000 eeb537ce254d8635c5876f3cb23ba2ab 1 std/dwarf/abi.zig
26403 273237 1720029513000000000 17cfec6893f0195cf3f2128e131aebbd 1 std/dwarf/call_frame.zig
71838 273238 1720029513000000000 472566d679006f02ce08a8e6d3ca5840 1 std/dwarf/expressions.zig
10091 273550 1720029513000000000 616a2d791eb8d67329f8198701e2bbad 1 std/valgrind.zig
23129 273523 1720029513000000000 b579436bcc763fc86642b2a1d69be89a 1 std/simd.zig
58779 273010 1720029513000000000 2628367b628e7df7bf938bc2188b14e7 1 std/Build/Step/Run.zig
72708 273521 1720029513000000000 046fa60b44c156af61840e746b56a6c2 1 std/process/Child.zig
530 273022 1720029513000000000 6862d091fadcbbb652464ab10689bd23 1 std/Random/SplitMix64.zig
17036 273239 1720029513000000000 e5e4bda8771008b986953e018b241bdd 1 std/dynamic_library.zig
17851 273342 1720029513000000000 62510503fe6b45659189d32c19c9dc45 1 std/leb128.zig
43084 273058 1720029513000000000 a67e9f409c649ae15d47dcc9582247f0 1 std/Thread/Futex.zig
1299 273314 1720029513000000000 9ea5eaf4f2d36e2273f3ecec7f813b61 1 std/io/buffered_writer.zig
9295 273004 1720029513000000000 268e240d3773b7543a10f2365b34cc53 1 std/Build/Step/InstallArtifact.zig
1160 273318 1720029513000000000 32ae6866d358d400739c8281e2b92d26 1 std/io/counting_writer.zig
8372 273280 1720029513000000000 d48498b32f349820311bbf338ae1aae5 1 std/hash/wyhash.zig
1618 273105 1720029513000000000 60e22c8a23680b34b51d27b486811807 1 std/compress/flate/consts.zig
13375 273101 1720029513000000000 239244362ca7a3d92e32a4518ccda927 1 std/compress/flate/Token.zig
36892 273217 1720029513000000000 aeaa6f15041af562aebdfbb8f2e94f9d 1 std/crypto/sha2.zig
20392 273242 1720029513000000000 a41115e4a4263ff02975e97d21f21847 1 std/fifo.zig
1464 273560 1720029513000000000 262bf5a41c36322233615e07256bc570 1 std/zig/Client.zig
8752 273565 1720029513000000000 2d7e0835ecf9b1ce89b625495c8209c2 1 std/zig/Server.zig
2591 273259 1720029513000000000 54cecc0501b004131b133c8ec52688b3 1 std/fs/AtomicFile.zig
23028 273070 1720029513000000000 5f649adf883cb2acad194b60017a4672 1 std/base64.zig
39156 272993 1720029513000000000 628e7a63840b5d008ad84d18a2a50b21 1 std/Build/Cache/DepTokenizer.zig
2685 273017 1720029513000000000 5244bfd5edd68ad074bfdf866029fa86 1 std/Random/ChaCha.zig
52267 273173 1720029513000000000 250bf69f713193c74da886706bb53369 1 std/crypto/chacha20.zig
5693 273234 1720029513000000000 01d731f8d28ba8382ff3c5885d5e0c75 1 std/dwarf/OP.zig
7399 273225 1720029513000000000 7e3716a3c82a36541c6cf09b56a96da0 1 std/crypto/utils.zig
1539 273321 1720029513000000000 ca6d9ebe9107eb6ffe4cc4b92611772a 1 std/io/limited_reader.zig
64174 273077 1720029513000000000 ecfd926ec456ba7acf15b5e7bec5f532 1 std/c.zig
10812 273087 1720029513000000000 b5d2e09197008802157fd9bda951945e 1 std/c/linux.zig
14595 273270 1720029513000000000 9802848537ec3da81ac651945a298250 1 std/hash/auto_hash.zig
3957 273454 1720029513000000000 8a6d08b36d5d25b29bdff67ade3e947b 1 std/os/linux/vdso.zig

0
.zig-cache/h/timestamp Normal file
View File

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,2 @@
pub const packages = struct {};
pub const root_deps: []const struct { []const u8, []const u8 } = &.{};

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

91
build.zig Normal file
View File

@ -0,0 +1,91 @@
const std = @import("std");
// Although this function looks imperative, note that its job is to
// declaratively construct a build graph that will be executed by an external
// runner.
pub fn build(b: *std.Build) void {
// Standard target options allows the person running `zig build` to choose
// what target to build for. Here we do not override the defaults, which
// means any target is allowed, and the default is native. Other options
// for restricting supported target set are available.
const target = b.standardTargetOptions(.{});
// Standard optimization options allow the person running `zig build` to select
// between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall. Here we do not
// set a preferred release mode, allowing the user to decide how to optimize.
const optimize = b.standardOptimizeOption(.{});
const lib = b.addStaticLibrary(.{
.name = "adventofcode",
// In this case the main source file is merely a path, however, in more
// complicated build scripts, this could be a generated file.
.root_source_file = b.path("src/root.zig"),
.target = target,
.optimize = optimize,
});
// This declares intent for the library to be installed into the standard
// location when the user invokes the "install" step (the default step when
// running `zig build`).
b.installArtifact(lib);
const exe = b.addExecutable(.{
.name = "adventofcode",
.root_source_file = b.path("src/main.zig"),
.target = target,
.optimize = optimize,
});
// This declares intent for the executable to be installed into the
// standard location when the user invokes the "install" step (the default
// step when running `zig build`).
b.installArtifact(exe);
// This *creates* a Run step in the build graph, to be executed when another
// step is evaluated that depends on it. The next line below will establish
// such a dependency.
const run_cmd = b.addRunArtifact(exe);
// By making the run step depend on the install step, it will be run from the
// installation directory rather than directly from within the cache directory.
// This is not necessary, however, if the application depends on other installed
// files, this ensures they will be present and in the expected location.
run_cmd.step.dependOn(b.getInstallStep());
// This allows the user to pass arguments to the application in the build
// command itself, like this: `zig build run -- arg1 arg2 etc`
if (b.args) |args| {
run_cmd.addArgs(args);
}
// This creates a build step. It will be visible in the `zig build --help` menu,
// and can be selected like this: `zig build run`
// This will evaluate the `run` step rather than the default, which is "install".
const run_step = b.step("run", "Run the app");
run_step.dependOn(&run_cmd.step);
// Creates a step for unit testing. This only builds the test executable
// but does not run it.
const lib_unit_tests = b.addTest(.{
.root_source_file = b.path("src/root.zig"),
.target = target,
.optimize = optimize,
});
const run_lib_unit_tests = b.addRunArtifact(lib_unit_tests);
const exe_unit_tests = b.addTest(.{
.root_source_file = b.path("src/main.zig"),
.target = target,
.optimize = optimize,
});
const run_exe_unit_tests = b.addRunArtifact(exe_unit_tests);
// Similar to creating the run step earlier, this exposes a `test` step to
// the `zig build --help` menu, providing a way for the user to request
// running the unit tests.
const test_step = b.step("test", "Run unit tests");
test_step.dependOn(&run_lib_unit_tests.step);
test_step.dependOn(&run_exe_unit_tests.step);
}

72
build.zig.zon Normal file
View File

@ -0,0 +1,72 @@
.{
// This is the default name used by packages depending on this one. For
// example, when a user runs `zig fetch --save <url>`, this field is used
// as the key in the `dependencies` table. Although the user can choose a
// different name, most users will stick with this provided value.
//
// It is redundant to include "zig" in this name because it is already
// within the Zig package namespace.
.name = "adventofcode",
// This is a [Semantic Version](https://semver.org/).
// In a future version of Zig it will be used for package deduplication.
.version = "0.0.0",
// This field is optional.
// This is currently advisory only; Zig does not yet do anything
// with this value.
//.minimum_zig_version = "0.11.0",
// This field is optional.
// Each dependency must either provide a `url` and `hash`, or a `path`.
// `zig build --fetch` can be used to fetch all dependencies of a package, recursively.
// Once all dependencies are fetched, `zig build` no longer requires
// internet connectivity.
.dependencies = .{
// See `zig fetch --save <url>` for a command-line interface for adding dependencies.
//.example = .{
// // When updating this field to a new URL, be sure to delete the corresponding
// // `hash`, otherwise you are communicating that you expect to find the old hash at
// // the new URL.
// .url = "https://example.com/foo.tar.gz",
//
// // This is computed from the file contents of the directory of files that is
// // obtained after fetching `url` and applying the inclusion rules given by
// // `paths`.
// //
// // This field is the source of truth; packages do not come from a `url`; they
// // come from a `hash`. `url` is just one of many possible mirrors for how to
// // obtain a package matching this `hash`.
// //
// // Uses the [multihash](https://multiformats.io/multihash/) format.
// .hash = "...",
//
// // When this is provided, the package is found in a directory relative to the
// // build root. In this case the package's hash is irrelevant and therefore not
// // computed. This field and `url` are mutually exclusive.
// .path = "foo",
// // When this is set to `true`, a package is declared to be lazily
// // fetched. This makes the dependency only get fetched if it is
// // actually used.
// .lazy = false,
//},
},
// Specifies the set of files and directories that are included in this package.
// Only files and directories listed here are included in the `hash` that
// is computed for this package. Only files listed here will remain on disk
// when using the zig package manager. As a rule of thumb, one should list
// files required for compilation plus any license(s).
// Paths are relative to the build root. Use the empty string (`""`) to refer to
// the build root itself.
// A directory listed here means that all files within, recursively, are included.
.paths = .{
"build.zig",
"build.zig.zon",
"src",
// For example...
//"LICENSE",
//"README.md",
},
}

13
count.txt Normal file
View File

@ -0,0 +1,13 @@
....11...
...1.....
.........
........2
1....2...
1.....1..
.........
.........
.........
.1.2.3..2

6
day2-1.txt Normal file
View File

@ -0,0 +1,6 @@
7 6 4 2 1
1 2 7 8 9
9 7 6 2 1
1 3 2 4 5
8 6 4 4 1
1 3 6 7 9

1000
day2.txt Normal file

File diff suppressed because it is too large Load Diff

6
day3.txt Normal file
View File

@ -0,0 +1,6 @@
where()(< }when()mul(678,62)%mul(747,584)from()-select(59,725)mul(570,425)<~^:$where()!@}where()mul(542,816):don't()select()from()#(;!select()mul(541,668)mul(557,427)what()<#-why(952,537)*what()}mul(723,604)/^]'+;from()('-mul(227,146)'what()~*who():select()~from()do()mul(640,593)^$<*from()??>$mul(879,96),}?;(mul(465,50)>!~%'do()$'#'<**mul(781,977)-,?where();mul(154,168)>mul(532,770)(>#*what()/^}?mul(498,722)%^mul(710,295)from()@>mul(816,977)how(80,33)^$?what()how(),what()mul(987,59)'-mul(106,916) when();^(from()where()(what()mul(474,920)?%,mul(435,248)<mul(701,405)] {@mul(44,889)#>do(),:>$how();~^ from()mul(48,417),#,{mul(430,437)%[,@@mul(953,728)'mul(556,935)]]&select()when()!:/when()%mul(249,960)+;{select(),#mul(713,901)!?^when()%mul(910,594)&where()how(316,735)<mul(615,61)}-mul(539,208)what()@)?/#}(^mul(312,368)[%what(965,619)how()do():'}&;]>{mul(838,23)$mul(690,953)from();)who()}from()mul(803,624)when(){mul(280,406)mul(190,779)select()#+,[-mul(381,486)*&+['*mul(566,57)mul(91,816)>select()mul(578,725)%&!mul(173,595)*;'do()when()from()/mul(438,7)%mul(15,794)?when()from()}where() who()-mul(103,235);mul(971,383)@do()$mul(250,84)<from()$;from(),what(359,353) )mul(525,511)$^{select() +}what()from()mul(159,625):where()!:###~><mul(823,941)what()mul(935,812)when()select()when():mul(736,661)how()mul(728,742)how()*+mul(627,380)?when(589,538)+mul(531,652)>when()where(306,50)select(454,21)@)*mul(419,450):{)mul(736,148))when()*{what()mul(831,562)>]/}who()'do()&who()*+,who(637,20)#/$mul(896,737)-#when()select()when(),:~$@mul(988,98) select()who(709,386);-*!where()~do()!^mul(870,729)what();@mul(749,333)&when()&#how() where()}who()#mul(935,153)[from()!mul(781,341)&){what()mul(833,819)/[~{/]@mul(184,985)^<%{;{mul(630,218){what()}#when()~$'mul(14,702)%>select()^[@mul(474,41)from(){$do()*select()#/how()mul(488,463:where()where(){]-,#-mul(407,949)what()select()where(364,988)^~#*who(){mul(999,525);;select()from()@'why()don't()<+:where()^from()-mul(558,527)@from()<what()&why()when()!from()mul(28,969)&where()};mul(101,807)~,~?mul(21,300)?mul(784,363)]?&{+^who())<mul(751,251)}where()when() mul(129,699)when()&[; do()#mul(593,157! -how() {mul(336,273)$[mul(767*&:from()mul(350,145)]who(524,855)/#from()'/[!&mul(311,457)<select(259,997)}from()>$</+ do()from()!}where()~]:>!mul(838,414)where()-/mul(810,111)'<mul(973,153)~!mul(143,649)[}$don't()#:)$?*when()(select()mul(466,395)^#[<';&from(96,136)$(mul(371,173)$>how()who() :,where()mul(355,829what()'%^[mul(196,488)[mul(547,815)-how()$when()~ ~how()mul(24,761)!from()%]%?>mul(950,754)mul(649,683){>where()select()mul(771,439)mul(236,961)@what(),~what();^how()mul(791,10))why(),mul(278,737),why()<@~,]?from()do()+#/;} (/^when()mul(139,448)+%^(@ what())mul(122,226)select()[]select():mul(890>when()&what(508,897)select()>~{{{}mul(831,320)from())how()how()who()'mul(283,391);#@mul(310,864)&$-@!:where()mul(869,883)<$}@+<))mul(380,96)%?~ when()how()mul(629,878)#what()who()mul(888,359)$&*![&{~who()'mul(820,290)from()!{/(?,@^~mul(34,230);,don't()why(737,412):?mul(66,718)what(376,732)<mul(797,825)who()],<]why()mul(634,889)where()when()&!how(760,87)select():@what()mul(280,650)-! $ mul(509how()-#why()(>mul(315,501),:mul(706,831)when()mul(9,585)select()&from()mul(612,24)
)what()]'why()how(654,256)-mul(806,436)!/>~select():;'$from()mul(899,742)[%~mul(736,580)@where()who()why();how()>mul(23,836)when():when()}{}mul(715,293):mul(282,580)from()$?/*>mul(201,586);#;where()mul(118,230)who(){~!@!mul(88,537)#}-^/~mul(910,268)mul(976,63)^&{( :'mul(458,717)$$-how()^-]&+!mul(984,138)>;@where(752,136)mul(697,113)mul(124,665);!select()&how()what()mul(829,781)mul(380,512){!/<(]from()mul!@from():how()}<;(where()mul(206,188)>*how()%*when()mul(702,947)select(36,946)%}why()&+mul(129,741){/<)mul(16,381)how()what()*&{'}mul(192,91)who()$+&++mul(250,605)[[}select()-@,who(798,362)@don't()#how()} {?,who():mul(359,185)who(){ mul(467,606){why()-select()/*?mul(180,855)why()mul(134,121)!;'@~why(187,921)mul(437,28)mul(176,665)*?*!from()who()mul(432,913)[how()when()what()^/mul(277,854)$mul(311,503),%how()]/mul(290,640)where()<!mul(633,634)}[]mul(622,202)where()mul(524,996)!mul(432,456)%[what()what()@?<'who()mul(458,188)[^why()why()}^]mul(635,632)}where()from()^$how();}mul [mul(814,798)%mul(707,658);&+#,what() mul(493,278)what();[<#who()~mul(71,275)]/)>mul(945,575)@where(394,615)why()from(){where()/when()}mul(186,609)mul(105,239)&><)select()when():!mul(352,943)[ how()'why()#?how()who()]mul(148,156)~mul(797,298)#&-(++where(36,220)(~mul(141,332) mul(963,953)mul(79,791)~#);who())mul(465,458);#when(243,832)>#$*!?mul(977,49)where(808,80)$~]mul(84,878)where():(<< mul)/ :; mul(698,14)when()what()'>mul(455,546)%where()&@;when(491,752)$mul(185,720)?%]from()}how()%mul(402,280) #what()[[%' mul(612,36){when()mul(159,470)@*mul(238,734)}?from()why()' do()@who()mul(172,976)](;/what()<where()do()'[;from()who(),}where()select(542,70)mul(886,778)when()~who()mul(564,730)>-(how()$@@'mul(84,598)<@where()?what()<{?when()mul(162,924)mul(545,472)select(886,293){$when()from()//*mul(59,957)^*why(31,601)mul(608,367)'?@mul(915,987) +[mul(678,85) mul(501,729)-how()how()&select()($^$~do()!-what()-^;mul(682,420)when()mul(469,47)why(119,43)}~mul(699,30)?%>who()?{'mul(264,568)<}+!who()mul(579,479)mul(642,809)/,+>)<[mul(351,839){%(where()-}$mul(240,335)mul(475,338)^who()[{$@when();/mul(335,996)[+mul(954,892):when()what():who()mul(703,909))^,$'(what()do()&mul(675,270)%*];do()$<what()~# *where(){mul(700,774)+why()!mul(167,944)why()-{,?#*mul(263,222)when(937,759)how()[%do()when()~]*; how(),][mul(797,496)*# ,who()what()mul(417,548)+<@&who()mul(410,219)<how()-mul(946,326)how()mul(672,637),mul(928,490)who()why(217,124)from()mul(922,974)!^% mul(132+select()don't()who())<from() &what()mul(357,21)who()({what()$mul(79,941)@>/select())#]#*mul(463,143)}how()when()!$]do()mul(832,164)-what()<what()//&#)what()mul(588,879)):?!;%mul(854,370)-#[[]why()mul(853,834)&!:!how()mul(83,715)who()select();#when();{mul(498,332):mul(681,273who()$<@# !why()mul(206,67)when());',%mul(341,939) ',mul(344,602)mul(803,721){{(mul(353,665)where()^)*^^(?(mul(19,951)&don't()where()mul(453,418)who():select(503,219)when()},mul(99,836);!mul(688,742)?when()^!how()why()mul(643,864)}%from()$mul(217,653)
<$*^mul(972,456)select()&(mul(408,506)!(#mul(627,283)why()@[{'%mul(352,904)where()?/,where()&%^$:mul(945,486)>$select(),%: <mul(9,606)mul(306,642)%{( mul(120,260)-}~from()how()when()!/mul(98,87)[;why()[mul(947,277)(@mul(969,472)?[;what()mul(92,623)mul(5,792),what()#mul(180,460)where()when()({+!- +why(598,637)mul(659,178#}how()^what()@>mul(656,225)where()where()//mul(962,720)>-what()?!do()when()why()]how() $#mul(763,253)[+when()select())~when()mul(353,550){when()mul(664,37)mul(346,65)how()'%how()>select(310,753)mul(979,820)#[ mul(252,202)when(557,299)mul(665,232)when()((@&&%when()select()do()what()mul(730,599)[mul(163,61)why()/mul(235,484)^&don't(),^{~mul(476,543)why()mul(729,497)<why()@>select()],mul(344,943)#;mul(645,722)[)why(258,3)<select()mul(841,699)mul(658,372)how()]?{<select()-#mul(818,278)how()/)mul(530,148)*mul(604,712)why()[-~ )!]mul(425,760)[-where()!#+#what()who()don't()when()why()mul(400,735)+@!mul(523,543);*what():~^$,}*mul(286,589)^mul(875,453)&}^-:#<mul(205,529)>-who()}-mul(120,526)what()%?/}mul(892,273);&when()mulwhen():when()[[%)~ [-mul(374,778)why()/~'mul(56,465):>%&why()what()who(5,307)$'mul(59,457)what()#<{how(){~who()when()mul(79,949)how()mul(333,172)+@)!*{%:-mul(429,234){< +when(),(}}!mul(19,906)%<,@+from()from())mul(311,428)what()-/<,$!when()?mul(147,63) from()!why()^where()mul(579,972)}+don't()?how()[#$:*#mul(494,424)@&>where():mul(923,253)%who()<select()@>when(527,372)+]mul(926,810)why()from()mul(903,715)^mul(558,623)]^${ $%who()}when()do()-^what(501,771)#who()mulwhere()(-^%mul(536,670)%who()}why()'{mul(166,387)$:{+)<'?;+mul(723,383)%^^<%mul(17,614)#~*:why()#mul(523,552)?mul(603<#$#)>?'don't()';why();mul(488,276)where()what()>#:)@},mul(220,859)who()how()@<where()where();mulwhat()~}mul(900,800))!mul(247,569)where()how()+-*<[mul)[/mul(402,792){why()?,#@>!}mul(963,423)<*why()?from()}mul(407,10),@@how(457,318)$ %{?mul(449,618)what();mul(353,499)/]select()from()'<#?;who()mul(203,534)who(){(}/]<@-mul(382,560)',what(315,260)<${{from()what()who()mul(835,840)-+{from()<who()/,mul(41,350)^+@mul(12,298){~}mul(90,957)[:&]?#&'<mul(831,781);/~*'mul(122,529),when(687,987)mul(281@~mul(476,393)[%what()when()]:/(#mul(441,562)select()what()~mul(965,167)mul(244,812)'?select()mul(238,951)what()<;!mul(755,636):]don't() @{:]>(how()>(mul(16,437)^what()};)mul(877,407) ,select()why()'#~{(mul(850,948)mul(294,578)?{how()mul(588,142)' ,what()how()['mul(636,368)]/from(242,666):{]how()mul(890,543)&mul(608,298)<>when()mul(723,323)!why() where()/mul(865,602)^where()^mul(459,811)$'$&mul(927,406):mul(306,94)+[when()/#from()$select()mul(951,748)select())when()where()mul(498&/#]{{/select(),~mul(406,674)mul(217,369)+')/*how()%'mul(858,734)}:[where()<mul(922,634),why(19,798))+][mul(950,643)~$#-don't()+!{/!mul(31,380)([]how() -when(434,329)mul(528,682)mul(162$&:how()^<how())mul(265,640)}%[do()!*-mul(737,87)?^why()#'(select()*why()mul(512,635)!%mul(107,437)<*):]~who()$what()mul(906,266) ;!select()/{^mul(635,867)^<{^how()!where()where()#!/usr/bin/perl/?:mul(655,372)what(199,832);>%mul(814,477))%why(920,210)#>>*~who()select()mul(62,156)
~&!?;{^mul(50,131)*+;[mul(721,655)~^)mul(554,894)>where()}from():,$mul(168,674)from()mul(801,339)what()mul(198,103)>^%!,@[mul(990,341)[<]~ %,~from()(mul(106,659)#'%(why()mul(534,944)select()',$mul(983,446)mul(589,257)[#'+~>#!mul(259,207);:select()#~~mul(570,191)mul(9,323)from()$mul(696]) how()}~$what()^mul(286,33)select(932,233)when()^~+ ~!mul(257,445)<~where()&~~from()?mul(659,273)@& where(981,521){><{/don't()mul(794,832)when()>when()mul(416,516)-what()#/do()why()/?>how()%;where()?,mul(900,44)select():'select()>mul(956,922)mul(534,313)+,$<mul(569,216)'mul(875,178+mul(576,106)&{<mul(457,835)from()what()mul(771,919)>{*/*mul(146what()?[why()}mul(846,806)#<select()!from()select()~ select()mul(993,127)>}%/where()-who():mul(640,359)mul(635,853)[*mul(603,687) :@(who(855,947)when(562,546)where()$-&mul(12,525)how()' ;mul(876,521)<>mul(798,388)>select()?{-,#who()mul(308,935)+when()where())mul(139,62):}}%mul(425,786)from()%/from()%mul(275,112)+mul(913,858)>'/}from()'(from()who()mul(924,718)-what()~*who()from()mul(974,670)^}:* @mul(323,427)-from()$]$<:+)mul(173,489)select()':+#%why()mul(513,137)!how()where()]mul(90,721)!why()]from(){;)from()mul(615,731)@^;why()mul(38,151)}>from()& ]mul(904,102)+#mul(503,138)~)!([where()%mul(920,823);mul(584,684)?select(27,630)>what()]from()/mul(389,580)]^how()who()<%?mul(351,754)^{;%+)mul(693,528)$what()+?^don't();when(581,539),mul(581,172)who()!(mul(491,647)'where()?#who()'mul(550,759)mul(687,686)mul(849,285)when(613,863)do();~!&why()mul(122,69)(what()['mul(167,600)~how()$from()why()mul(174,781)}mul(821,889)'%how()select())from(939,434)[#where()mul(688,766)~how() select()<mul(79,304,<from()%mul(976,541)#mul(482,640)/^what(127,388),[{^how()$)mul(992,710)mul(687,9)&who(390,246)-@!%',,mul(728,710)how()why(68,923),who()#what()(where()when()mul(624,337)}select()<how()where()?!*mulwhere()how()why()mul(376,802)!#from(252,903)mul(60,496):#@where(363,376)>#^$%mul(572,90)where()@mul(170,232)when():' ,?do()#[&#;#^who()who()mul(599,515) ,!-how()'{^mul(751,829);where()why()&{?when()mul(751,40)?'what(),how()select()mulwho()when()'~}mul(712,196)when()>+;])where()mul(367,204)why()]why()(who()?;mul(56,507)}mul(845,878)<,>%)%>;&%mul(856,426)}#[{why()from()#who()~>mul(330,878)+where()when()?@?mul(783,827)/&>,why()who()-when()mul(447,463)!#~} [ *from()mul(990,245)>mul(19,581),from()}?&$[-mul(84,285)?^[!how()mul(703,674)/{**,!mul(833,486)%select()~what();&)[}where()mul(742,827),mul(605,535)-mulwho()from(793,741)when();}]who()#+~mul(100,3)}:;,from()mul(159,606)where()($what()}mul(134,409)[when(359,121))!why()when();mul(933,229)from(){>%#:$[-}mul(954,530)&-#}'*mul(614,803)where(): /'where()why()/mul(465,61)~do() ')why(560,602)[#mul(994,604)[how())when()(mul(284,925) -mul(271,788)%(~{^*where()who()mul(612,425)^%,mul(910,745)/(how()^((what():how()mul(732,779)mul(698<don't()mul(82,175)mul(386,509)<from();mul(454,768)#^%when()when()&&mul(941,963)what()>select()who()~%& ,mul(919,612)select()'select()when()~from()'mul(244,550)mul(361,26)@!>:mul(73,855)[;{'^>when()'+mul(948,339){&'&%#select()@why()mul(118,943) [how()({'?mul(639,13)
>-where()+/mul(612,127)-%#]+select()mul(71,341&~[when()(what()(&#{mul(613,682)**from()(>,!mul(822,212)from()%{select()(,;when()don't()!select()select()>select()*(mul(105,577):mul(765,221) &select(803,323)what()@-%}~mul(130,279)who(92,379):{%?what()+mul(114,722)+&&~from()what(),!?mul(969,103)> why();]@when()*]mul(391,680)-{select(460,460)&mul(513,976)>mul(212,86):[<mul(746,688)why(){mul(140,329)+(!^!&~do()&-,select()-;?#mul(327,421)}@-select(119,85)?}!why(447,976) mul(20,560)[mulhow()/%what()do():when()where();-$mul(690,257)[who()~!?<who()from():*mul(728,463)?-!,$<#when(635,309)mul(569,992)*select()mul(348,231)when()what(401,132)mul(734,962)what()-+,]&select()[<,mul(819,797)&',from(),;}(&mul(378,635)^!mul(692,702)?!:?(($how()mul(359,20)](what()[what()(-@mul(865,749)?;{[)where()from()mul$why()$where()/mul(707,669)%mul(9,881)why()mul(795,416)[mul(683,990)<~mul(801,670)where()when(),who()[+mul(993,621):from()when()]{,%how()when()mul(386,519)[)select()mul+)!]mul(152,672)<{+$mul(402,280)!-[/^$@who()mul(812,36{do()$mul(262,617)~where()-select()mul(797,218)^where();?mul(421,349)select()/[mul(841,580)how()what()what()how()#who()mul(797,115)mul(484,450)(mul(304,175)@+from()when()-#>@mul(771,766)what()~;+]where()what()(mul(600,442)?<#who()how()'who(740,254):(mul(196,517)/(don't()<%@what()[mul(320,909):who()((when()/^>mul(263,979)*&where()!why()$mul(484,668)<mul(17,432)}))mul(168,60where()}??$%mul(367,488)when()how()+[when()[;':mul(992,908)::when()]what()what():}don't() mul(72,331)+}what()*when()when()$/@mul(379,950)?what(786,109)~mul(255,952)~<where()/:{mul(532,854)^}(%&!'why()mul(539,11)(mul(292,42)?<~!!where()$<&mul(899,950),+why()how()how()do()!'$from(357,398)how()'>mul(724,359)]~!where()what();@mul(820,923)mul(636,398)?who()~from()mul(85,799)who()-%)why()($mul(615,634)who()%^how()%don't()why(124,8)?/<mul(258,695)&?+[;>^^{mul(600,813){select()<'from()!mul(611,346)mul(513,901),%who()^>*$don't()}@?@@why(872,343)+$mul(382,928)]%/&how()who()^select()select()mul(142,954) !+/how();?)!mul(978,138):(^select()<mul(329,540)}mul(597,980)select()^'$+when()^-mul(183,354)({!why()what() select()mul(983,243)<<select()-$from()from()+who()*mul(680,168);select()who()who();'~where()&mul(952,244)}[where()>>who()~where())mul(679,110)from()what()/@*<;how()mul(75,702)why()mul(367,513)~<$select()/[!^@[mul(868,828)@%mul(387,548)+]mul(774,392)where()&{}when()how()how(155,120)mul(569$,who(572,565)'#$mul(248,341)<<select()how()()/^mul(17,516)}+>who()?how()how()from(),,mul(972,116)+-%]-{-]/]mul(360,448),where()how()where()*$what()mul(441 )$select()mul(200,486))@;+[}!how()mul(5,767)how()+~why()-*&@mul(622,833)*where())mul(594,662)*>?where()!mul(598,524)mul(540:;$from()*where()%#+select()who()mul(588,233)*%why()select()?]what()<~mul(896]how()how()who(812,810)$$<<][mul(158,463)#>mul(304,924)from()select(466,292)select()mul(165,790)}?)]mul(350,950):$why()%+@^$what()/don't()<when()^)>'where()-:>mul(991,496)^>*[+from()mul(857,475)[)/-/<&don't(),)&$why(502,570)*mul(325,595<#who()mul(155,892)*{?why(23,519)#*$mul(194,882)<mul(279,687)how()@what()select())@$mul(236,621)how()[]*),&mul(320,242)from(){}!%when()!:-mul(630,655)/mul(146,899)!why()select(88,257) >mul(66,512){)mul(50,987)#who()where()how()select()+/mul(282,223)>*what()mul(644,695)[- ^]why(){mul(837,295)when():~+who()[?!select()mul(576,262)select()from()who()^&!&<mul(693,274) from()!what()mul(842,707)mul(645?#>select()%don't()++why()select()when()?,mul(535,959)what()<&&+*~ mul(289,483)when()mul(409,29){+mul(478,216[mul(455,288)
mul(485,849)%'&/} #why()mul(337,670)}&when(292,584)mul(291,636)$<,}mul(873,787)mul(583,597)from()%-{-(+!do()]?mul(508,735)where()+<[*,[^#mul(356,730) why()^what()@?where(558,563)!mul(254,728)mul(573,97)'when(){[!mul(847,358)>+-%[mul(445,707)~<+< *&who(192,588)/mul(339,368)why()?>how())*&when() mul(807,43)don't()$@%who();&(how()mul(719,162)#{(from(),;mul:~-where()%who()how(84,44),mul(970,95)where()(/]how():mul(223[;'?why()!/how()@@who()mul(507,673))^mul(977,524)from()select()^}{#)when()*mul(454,303)%select()*@,mul(563,289)*}who()<}<;why()&mul(673,375)^where()~mul(637,689)'*^who()?don't()who()where()<mul(729,329),?+mul(452,183)where();mul(412,329)select()&{^select()mul(304,748/-<~{$'$mul(250,311)^[!*@don't()-]%when()who()mul(275,612)mul(808,359)%:?how()'/$what()mul(125,6)>mul(347,707)[#mul(714,896)]mul(249,387)mul(991,762)from()when()where()how(553,916)-mul(116,473)& {who()mul(934,426)#)}from()mul(305,521)why(583,561)-;<}/how()mulwhat()<@&mul(667,932)%select()%mul(196,687))select()*do()from()/what()select()}mul(141,484)+]from()!'^how()who()[$mul(493,253):)&<mul(106,339)[#}[mul(527,610)/@&,#)/;who())mul(945,633)#who()!&,when(),]mul(699,592)*%mul(533,983)#:where()who()>$;[<]mul(663,997) {#@~:#-!mul(869,651)?*@/<#--do()mul(584,519)%select()what()who()-(!@how()don't()<,[!!;where()<^)mul(670,564);$what(),}mul(584,531)-(*mul(727,546)$:how(410,917)select()mul(447,208)'who()( ')&mul(476,15)how()where()^what()mul(332,458)what()?^where()how()how() {&how()mul(265,666)+(-~$mul(341,155)!,where()[mul(302,949);]select()-mul(459,712)-,+{$$+why()(from()mul(764,395)what()]!:do()$where()select():(when()when()where()mul(504,781)/'[why(65,459)where()**(select()%mul(215,820)(how()#{from()@why()do())$+?(*mul(59,437)!why()when()$)%)(when()mul(496,71) ]mul(265,963)/}mul(26,629)why()@]?-where()mul(918,981)#{@mul(179,990)when()%how()# ,mul(762,324)?from()%from(613,182)from(983,106)$!+mul(403,875)/>when(695,810))}when()@mul(992,141)*^who()when()what() do()how()why())[{[]&<mul(758,998)<!)#//'how()mul(966,404)* when()select()mul(772,998)'}&;;when()when(647,664)[;mul(357,688)(:mul(936,619)-'!)]from()why()what()[*mul(35,397)select()@@' mul(690,152)#where()mul(918,315)*'~];{%#mul(705,251),($;'mul(229,687)mul(12,423);# ;who()#('mul(409,16)mul(734,661)@[}*;{]*mul(642,531)(mul(897,68)}*[%-what()>why()when()mul(156,843)!;}/do()/<$mul(707,716)*why()'(mul(534,614),'((>mul(89,31)[-what(943,12)]from()-$mul(663,578)!^>mul(726,923)what():; ;$don't() mul(660,32)when()'what()^-]mul(684,845)@+#>#^~/^%mul(385,586)%what()mul(800,106)<mul(390,554)}mul(93,903)from()?;$mul(334,112)#what(549,926)-[ (mul(822,67)^'+%how(922,819) %^mul(535,921)mul(585,568)/:don't()mul(996,381);[mul(750,438)who()$;why()^?%[do()mul(837,207)@,select();^-$don't()why()why()>#why()mul(960,402)<,&{%what()]select()mul(289,89)%){>?+//mul(23,303)what()select(708,763)where()%how()><select()mul(542,492)how()when(976,435)select()#>%mul(224,519)+ ]mul(152,297)]mul(49,650)why()<)%where()mul(783,630)#asdlfksdofijsdfoijasdfjsdfo

140
day4.txt Normal file
View File

@ -0,0 +1,140 @@
AAMXMSMMMSMMSSMMXMASMAMXXMAMAMXXMASMXMXXMMMXMMXMAMXMXSMMMXMXSAMXSASXMAMXAMAMXSXSSSMXXMASAMMMMASXMAMXAMXAXMASXMASAMXSSMMSAMXAXXAMMXXXXSMAAMAM
SMSSMMMAAMAAAAAXMAXAMAMXASXSSMMSMMAXAXXASAXAAXSMMSAMMAAASXSASASAMXMMSAMXMMAMMMAMMAMAXMXXMMSAMMSASASASASAXMMXXMASXMASAAAMAMXXMAMXMMMXXAMXXMAA
MAAAAXSMSSMMSXMMXMSSSMMXMAXAXSAXASMXMMSMMASMSMXAASAMAMMMXAMASMMAMXMASASAASAMAMAMSAMSXSSMSXXAXAXAMASAMAAXMMAMXSAXMXMSMMMSSMAASMSMAXAASAMMSSMS
MMMSMMMAMAXAMXMSAMAMAMMSXMXMMMXMMMMAAMMXMMMXAMMSMSMMXSAMMAMAMASXMAMXSMMMMSAXXSSXXASXMXSMXASXMSMSMXMAMSMSMXAMMMAXMAAXAMAAAMSMAAAMAMSMMAAAMAMX
SXXXXXMAMSASAXMAXMASMMAMAXMXASMSMAMSMSMAXSASMMAAAMMMASAXSAMMSAMAXMXAXXMAMMAMXMMMSSMAMAMMMMMXAAAAMAMAMAAXMXASAMXASMSXAMMMSMAMMSMMXXXASMMXSAMX
XAMMMSSSSXAMMMSAMMXMMMAMMMAMSAAAMSXXAAXAMXMMXMSSSMAMXMMMSASAMASMMSMMSMSASMAMXAMMMAAAMAXSASAMXMSMSASASMSMMSASMSSMXAXXXMXXMXMMAMXMMASAMMAMSMSS
XXSAAXAMXMMMAASAMSXSASMSSXSXXMSMSMAMSMMXSSMXXXAMAMXXMAMXSAMXSAMMAXAMXAMAMMAMMXMAMXMMMXMSASXSXXXASMSXSAMXXAMMAAAXMMMXXSSXMASMMSAMAXAAXMAMXAAM
XASMSXXMSXMSMMSXMAXSAMXAMAXMSMMXMMAMXAXXXMASXMXSAMXSSMMMMAMAMXSMSSSMXMMSMMXSMMSSSMSSXXMMASASXAMXMAMAMAMXMASMXMXMAMXXMMMXSAMAASAMSSXMMSXSMMMS
SMXAXMAMSAMXMASMXSMMAMMAMXMASAMXMSAMSAMSAMXMAAXMASMXAMXXSMMMMMMXAAAAXXAMASAAAAAAAAAXSAXMXMAXMMXAMXMAMAMASXMXMMASASXXMAAMSAMMMMMMMAASAMXXAXAA
MXMXMSSXXAMXMASAAXMXSMSSXMMAMAMAXMAXMAMXAMSSMMMXMMXSXMMXSMMASAAMMSXMXMMSAMSSXMMSMMMSMXSAXMSMMMSMSAMXXAXXSMMAMSASASAMSMSXSAMMSXMAMSMMASMSMMMS
SSMMXAXAMSMSSSMMMSAXMMMXAAMSSXMXSMMMMSMXAMXSAMSASMXMMMSAMXSASXSXAMMMMMAMXXMXMAMXAMSMMASMAMAAAXAAAMSMSSSMSASAXMAMMMMMAXMXMAMSMXXAXXASAMMAXXXX
XAAXMMSMXXAMXMXAAMAMMASMMMXXAASXSXAAXMAXMAMXMMMAMXXMAXMAMMMMSMXMMSAAAMASMSASMSMSSMAAMAMSAMSSMSMSMXAAAAAASAMMSMXMXASMMSSMSMMAAMSSMMXMAXSAMMSM
SSMMSAAXAMAMMMXMAMXAXAMAAMXMSMSAMXSSSMAXXAXMSSMAMSMSSSXSSMAAXAMAASMSMSMXAMAMAAAAASXSMMMSXMAAAXXAXMMMMMMMMAMXAMMSMMSAMMXAAXMMXMAAAXSSSMSAMXXA
MMSAMMSMMSAMAMXMAMXSSMXSMMAAAXMMMAMAMMAMSMMAAXSXMXAAAXAAAMMMSXSMMSXMASAMSMSMSMMMMXMAMXAMMMXSMSSMMMXMXXMXMAXXASASAMXAMXMXMSXSXMSSMMMAXAMXXMAS
SAMXSAXAMAXSSMSAMXAAAAAXASXSAXMASAMAMMAMAMMMSXMMMMMMSMSMMAMASMXAAMAMXMAMMAMXMASMSMSSSMASMSXXAXAXASXSMXSASASXXMASMMSMMMXSAXAMXMMMMXMAMMMMAMAA
MAMSAMXAMXXAXASAMMMSMMMSAMMXMMSASASMSSXSAXXAXAMASAMXAAXXXXMAMMSMMSXMXSMMMAMAMSMMAAAAAMAAAAXMXMMSMSAAAASAMASXXMMSAAAAAAMAXMAMSXMASMMMXAXSSMMS
SSMSAMSAMXMAMMSSMAAAXMXMAMXXAAMAMAMXAAMSXMXXSSMMSASXMSMSXMMMSAAXMAAMASAASMSSXMASMSMSMMMSMMXMAAXMAMMMMMMAMAMXXMASMXSSMXAMXMXMSAMAXXAMMMMXMAMX
MMAMAMSSMMAAAXSAXMXMMXAMAMSSMMSSMMAMMSMSAMXMXAMMMMMAMMAXAXAAMMMSMMSMASXMSXAMASMMXXMXMAXAAXXSMSMMSMMXMAXAMAMXMMMSMAMMMMSXXASXSXMAMSXSAMXXXAMX
AMAMMMMXMASXSSXMMSSMSSMSASXAAAAAAMAXAXMXAMAAXMSSMSSSMMMMSXMASAXXAXXMXSXMMMXMASASAMXMSMXSXMMMAXMMMAMXMMSMSAMASAXMMMSAAXMXMASAMMMXXMASMMAMXSSM
MMASAAXMXMMAMMMSAAAAAAXSMMXSMMSSMMXMASMMXSMSMXAAXMAMMAMAMXMMMMXMAMXMAXAXMASMXSAMXSAAXMAXAXSMAMAAXMMAAMAAMXMMXASXXXMMMMXXMASXSAMMAMXMAMXSAAAA
XSASMSMMMAXMSAAMMSMMMMMMSMXXXAXAXXMASMMAAXAAAMSMMMMMSAMSXSAAAXXASMSMXSMMMSAMXMAMXMASMMASAMSMMSSMSSSXMAMMMSXMSAAMASXAXAMXMMSXSASMSXMSXMAMAXAS
XMASAXASXMMXAMMSAMMXAMAMMSSMMSMSMSSXMASMMMSMSMMXXAXXMXSMASXMXSMXXAAXXAASXMMSMSAMXMMMXMASMXMAXXAAXMASAMXSAAAMAMXMAMSMSSMASMXAMAMXMAXXAMASMSMX
XMAMXMAMMAMXMXAMAMXSXMASXAXMAXAAAMXMMAXXSXXSXAAAXSXSXMXMMMMSAAMAMMMMSSXSAMAAAAAMAXAMXMASMSSSMAMMMMMMSXAMXSXMMSSMAMAMXAMASMMXMAMASMMSXMAXAAMX
XSASXMAMSAMAMMMSAMXXASASMAMMAMMMMMAXMMXXSAXAXMMMMMAMMSSXMAAMMXMASAAXAAMMAMMMMMMXMXMXAMXMMAAMXSMSXSAAAMMMAAXSXMASXSMMSSMXXMAAMAXXXXXMASAMXAMS
MSASXSXMXASAXAASASAMXMASMMMSXSXXASMSMAMSMMMMXSAMSMAMAAXAMMSXXMAXSAMMASXXAMXSSMSXXSAASAMXMMSMXMAXAXMSSXAXSMAXASAMMAAAAAXMMMMXSAMSSMASAMAMXAMX
MMMMMMAMMMMMXMXSXXXAXMXMXSMSAMASMMMXMAXSASAXMSASMSMMMMSAMAXXXMXXMAMSXMASXMAMAAXAAMAMXASXMMAMAMXMSMAAMMXXASMSMMMSSXMMXSMAXSAMMXMAAMAMXMAMSSSM
MAMAXXAMASXMASMMMSASXMXMAMMMAMAXMSSSSXMXXMASAMXMXAXSAAXMSASMMMMMSAMXAXMASMASMMMMMSMMXAMMAXSSXSXAMXMAXAXSAMMAMAAMAMSSMXASAMASAAMSSMSAXMXXAMAA
SASMXMASASASXSAAAAMMASXMSSMSSMMSSMAAAMMSSMMXAXMSSSMSMASMMAXXAAAASMSSMMMAMXXMASXMAAAXMMMSSMAMAMMMMSMSMSAMXMSSSMSMAMAAAMSXMSAMMMMMXXMASXXMXSMX
SXSAASMMAMXMASXMSSXXAMAAAXMAXAAXAMMMMSAAAAMSSMAXAMAMXMXXMAMSMSSMMMXXXAMASXMASMSASMSMSAXAMMMMAMAMMMSMAMXAAXAAXMAMMSSMMMXAXMXSMMSSSXSXSAMSAAXS
MASMXXAMXMSMXSAMXXXMXSMMMSMMXSAXMMSAXMMXSMMAASMMSMMMSMASMSXMMAXAASMSSXXAMAXXMAXMMAAAXMMMSMXSMXAXASAMAMASMMSSMMAAXXAAMXMAMXAXAAMAMAMAMMAMASMA
MAMMMXSXSXAASMAMXMASXAAMMXMXAXMXSASMSMSAMAMSXMXAAAAAAMAMAXMAMMMMMMAMXMMSSMMXMAMXMXMSAMAAXMAMASMSMSASXSAXXAAMAMMSASXMMMSAMAMSMMSAMAMXMAXMMMXX
MASAMMMAMMMXAAAMXAASXXMMMAMMASXXMASASAMASAMXMXXSSSMMXMAMMMSMMXSAXMAMMXAXAXMXAAMXMXXMMSXSXMXSAXAAASAMXMXSMSAMSXXXMXAXXASXSXXXMASASXSXSXXSAMXS
MAXASAMAMAXXMSMSXMASAXSASAXXAMAMMXMMMAMASASAMSMMMMMSSMXSXAAAMAAMSXMSAMMXMAMSSMSXSAXMASMMMMMMXSSMMMAMAAMXXMAMXXAMXXMMMMSASASAMAMXMMXAXXMSASAM
MSMMMMXAMMSXMAAXXMAMAMMASMSMXSAMXSAXSXMASASASAAAAXXAXMAMMSXMMASXSAMXXAMASAMAAAAAXMMXMXXSAAXXMAXAXXAMSXXSASAMAMSXSASXMXSAMAMXMMSMXAMAMMXMXMAS
XMASAMSSSSMMSMMMXSXMSMMXMMAMXSASXSAMAXMASXMXMMXMSSMSXMASMMSMMAXAMXMAMXXASASMSMMMMSMSMSASXMSMAMSXMSSXMMASXMMXXAAASAAXAAMMMSMMMSAMXSAXSAMXMSXM
XSMMAXAASMAAXMSSXMAMAMXSASASASAMXMAMXSMXSASXSSSXAAAMSMXSAAASXAMXASMMSMMASAMAMMASXSMAAAXMASMXSXSAMAMAXMXMASMSSMMXMMMMMMSAAAAAXXASAASAMXMAXMMM
AMXSXMMXMMMMMAAMASMMSXXMASASXMASXSSMXXMAMXMAAAXMMMSMAXSXMXMXMXXMAXAAAASXMMMXMSAMMSMMSMMSXMAAXXSAMAMAMMMSAXAAMXXAAAXXMMXMMSMMSXSMMSMMSASXXAAS
SXASMMSMXMASMMASAMXMMAMMMMAMAMASMAASXAMAMXMMMMMAXXAMMMMASXXXSAMSSSMMSMMAAXXXMMXXAXAMXAXXXMMSSMSMMASASAAMMMMMMSSSMMSMASXMMXAMAXXAMXAXXAMSMSAS
AMMSAAMAXXAXXSASASAMSAAXSSMSMSMXMSMMSMSAMMSSXMXSSSXXSAMAMAMMXAXAAXXAMASMMMMMXASXSSXMASMMXMAMAAMASMSAMMMMAAAAXMAMMAAMAMAMASAMAMMAMSMSMSMAMXAX
MXSXMMSMMMMMXMASASAXSSXMAMAAAMXSMMAXAMXAMAAMASAMXMMAMAMMXXMSASMMSMMXSAMAMSASMXSAAAXSXASMAMASMMMMXAMAMSASMSSSMMAMMXMMMSSMAMXMAAMAMAAXAXMMMMSM
XMMMSASAMXAAMMAMMMMMXMSAMMSMSMASAMXMASXMMMASXMXMASXSSSMSSMXMAMXXXAMAMXSXMMAMMMMMMMXMMSASMSAXMMXXMXMAMMAMXAXMASMMMAXAAMXMASMSMSSSSMMMMMXXXAMX
MAAXMASMMSMSSSSXSAXXXMAMXXAXXMMMAMXMASXXASMSMMMSMMSXAMAASAAMSMSXSXMAXMMMSMSMAAXAAXAXMXASMMMSAMSAMMSASXSSMXMSASAASASMXXAMAAXAAMAAAXXASMMMMSSS
MXSSMAMAAAXAAAMASMXXXSASXSSSMSMSAMSMXSMSXSASXSASAMXMAMSMXSASAAMMMMSMXMAAXAMXSSMSXSMXAMMMAAXSAMAAXXAXMAMAMXXMASXMSMMAMSMXSASMSMMMSXXAXSASAMMM
SAMXMASMXSSMMMMXMMSMMMASAAXAAAASXMAMAMAMASAMXMMSAMXMAXMAMMMSMSMAAMXXAXMSMSMAXAAXASMSMXASMMMXMASMMAAMMSMMMMXMAMAXMASAMAAXMAMMAMSXMAMSMSXMASAS
MMSASMSAAXMMMXMXXAAAAMAMMMMMSMMMSXMSSSMMXMAMXMASXMAXMAMXMAAXXMMSMSAMXSAAAXMAMMMMAMAAMSMSMMMAMAMAXMMAXAXXAXSMXSXMAASASXSAMAMSSXXAMXMAASMSXMAS
XXMXMMMMXXAAMASMMSSSMMASXAXXAXXAMMXAAAMSSSSMSMASAMXMSASASMMSMSAMXMASAAXXMXMXXXAMAMMMMAXXAASAMAXMMXASMMXSMMAXAXMXMMSXMAMMMAXAMXSMSSSMXSAMXMAM
MSSMSXXMMSSMSAXAMMMXMSASXSSMMSMXSAMMMMMAAMAAMMMXAMAXMASAMSAAAMAXXXMMMSMMXMASMSMMXXASMSXSSMMXSSSMSXMMASMAMMMMMXAMXXXMASXSSSSSMMMAAASXASXSAMXX
AMAAXMXSAAMXMMSSMSAMXMASAXXAAXMAAMXXASMMSMMAMMMMMMXMMAMMMMMSSMSMSXMASAXXAAXAAAAXSXMSAAAXAMSAMAAASAXMAMXAMASMSMMSXMXMAMAAAAAAMXMAMSMMASAXASXX
SSMMMSAMMSMAAMAMXMASXMXMXMMMMXMSSMXMXMASAAXMAMMAXSMMMXSMSSXXXAAAMMXXSXXXXSAMXMMMSAMMMMMMAASAMMMMMXXMAMSMSMSAAAMSAMXMASMXMMSXMAMMXXAMAMAMSAXA
XAAMAMASAMXMMMASXSAMXSXSASMXSAMMAMMSMSSMXAMMXASXXXAAMMMAAXSAMSMSMSMAMMMSAMXSXAAAXAMXMSSMMMSAMMXSAAXSAMAAAXMXMXMSAMXMASXMXMAASAMMAMAMSMMMXAMM
SSMMXXMXXMASXMASXAXXMMAXAAAASAXMAMAAXXXAXSMMXMXMASXMSAMMMSMXMAAAAAMAMAXAASAMXSMSXMMXASXAXXSXMSAAMSXMASMXMSXAXSMXXMXMXXMAAMXXSXSMMMXMAAAAMMMM
MAAXSSSXASASAMASMMMSXMAMXMMMSAMSSMSSSMMMMMAMMXMMXMAASMSMXMAASMSMMXSXXSSSXMASAMXMAMXMSMSXMASMMMMSAXMSMMXSXSAMXAMAMSXMMSASMXSAMASASASXMSMSXMAS
SSMMSAMXMMXSAMASAXAXXMASMSMXMXMXMAXMXAAAAMAMSMSMSMMMMAAXSMXMMAXXXMMXAAXXXMSMMSAMAMXXMXAMXASMAAXMAMMXAASAAXXXXMASAMASASAAAAXAMMSAMMASXXAAMSMS
XAMXMMMSXAASXMAXXMSSXSAXAMXMASXMMSMSXSSXSSMMSAAAAXAAMXMXMAAMSMAXXAAMMSSSSXAAAMASMMMMMMMMMMSXSXSXSXSSSMMMSMMSSXMMSSXMAXXMMMSAMXMXMMAMMXMAMAAM
SXMXMXAXMMXSSMMSSMMXASASXSAMASAMMAMXAXAXMAMAMSMSMXSMSAMXMAMXAMMMMMMMXMXAMMMMMSAAAAAAAAAAAXMAMSAAMAMAAXMXAAXAMASAMXXMMMMAXMXMMMMMXMAMSAMXSMSM
XMMAMMXSMXXMASAAAAMMMSAMASMSASAMXSAMSMAMSAMMMAMAXMAAAXSAMXXXXSASAMXSXMMMMSMAXMASXSSMSSSSSMMAMXMXMAMAMMMSSSMMSAMMSAXSAAMAMXXSASASASXMXAMAMMAM
MSSMSAASMSMMAMMSXMMAXMAMXMASXSXMAMXSAMXMAXMAXASASMMMMSAMXSXMASASXMMAAMMMAAMMXAMXAAAAMAAMAASMMXMASXSASXXMXAMXMAXSXMMSXSXAXMASASASASMSSSMMMXAM
AXAXMMXSAMXMASAMAXSSMSAMXMMMMMMXAMMMMXAMXXXXSXMASAXXXXXXAXSAAMMMXMSSSMXMSSSXMSAMMMMMMAMMMMMASAXMAMMMAMXSMMMASXMAAXAMAMXMSMMSMMMMAMAXAAXAAXSX
SSMMXMXMMMXSXSASXMMXAMMMMMAAAASMMSASAASMMMMMAAXXMXMMMMMMMSMMMSMAAXXAAMSAAAXAAMASMAMAMSMMXXSXMAXAMMSSSMMSAXMXSAASXMMSAXAMXAAXAAXMAMMMXMMMSXMA
MAMXSASXXMXMMMMMAAAMXMAAXXSXSMSAMSASMXMAAAAXMSMXMXAAAAAASAXAAAMMSSMMMMSXMSMMMSAMXAMAXXMXSXAAMMSSMXAAASAMMMXMXMMMMMASMSMSSSMSSMSSSSSMSMSXMAMX
XAMXMAMMAMXMASASXMMSSSSSSXMAXXSAMMMMMASXMSXXAAAASXMSSXSXSASMMMSAMMASMASAMMASAMASMSSMMASXMASXXAAAMMMMMMMSXSAMMXAAXXMXAXAAAAMXAAAAAAXAAAXMMSMX
SMMAMAMXAXASXSASXASAMAAAXMMAMASXMMXXSAMAMAASMMSMSAMAXMXAMMMXAAMASMSAMASXMMAMXXAMAMAXSXMASXMMMMSSMAXSMSXAXSASXMMMMMMMSSMMSMMSMMMMMXMSMSMXXAXS
AAXXSXMSMMASAMXMXXMASMMMMMMASAMXSXAMXMSSMMMAAXXXSXMAXXMXMXAMXXSAMXMMMXSXSMMMSMMMAMXMAMSAMAMXAAMAXXSAAXAXASAMMSMXMAMAAAXAMXXXMXXMXSAXAAMXXMMA
MSSMMAXAMMSMXMXMAMSMMXMAASMMSAMASMMMAMAXAXXSSMAMMAMMMSXMMMSSMXMMMAMXSAMAMASAAAXXMSSSMMMXSAMXMSXMMSAMXMASMMAMAAAASAMMSSMXSMMMSMMSASMMSMSMAXAA
XAAASAMXSXMASXMSAXAXSXXMXSAASXMAMAASAMASXMMXAXMAMMMSAMXSAAAAXMAXSASAMASXSAMMSMSAAAAXXXMMSASMXMASXSMXXMASXSXSSMSMSASXMAAXMASAAASMASAMXXSMSMSX
MMSXMAAAMAMSMXAMMSXSMMSSXXXMMXMXXSASXSXXAASMMMSSMMAMAXAXMXXXMSAMXXMAXXMXMASMAAXMMMSMMMSXSAMXAMSMAXXMXMMSAAAAXXXASMMMSAMXSXSSMSMMXMMXXAMXMXXS
SXMASXMXMAMXMMSMMMMMMAAMAMSMSXMXMMASXSMSSMMAXMAXAMXXAMXSXSAMXMASMMSSMASAMXSMMSMMAXXASAMXMAXSMSMMMMXMAXMMXMXMXSMMMAAXXAXAXXXAXMMSASXSMAXXXAMX
AASAMMMXSASXMAXMASAMMSSMAMAAXAAMXSXSASAMXAXXMMASMMSXXSAAAXMAXSAMAXAAMAMASXSAMAASASXSMASMMMMAMXXAAXMSXSAMXMMMAMAMMSMXSSMMSSMSMMASXSAASAMSMSMX
MMMMXAAAMAMMMSXSAMXXAAAXSSMSMMSMMSAMXMAMMSXSSMAXAAAXAMMSMXMAMMMMXMMSMSXMMXSAMSMMAMXXMMMMASAASXMMMXMAMXMAMSAMASAMMMSAMXAXXMAMXMAMMMMMAXMSAAAM
XSASMMMXXAMAMMAMXSXMMXXMXMAMXAXAAMSMASMMAAXSXMSSMMSMXMAXXMMXSAMASXMMAMAMXMSAMXAMSMMMMSAMMMAMMMSSSXMXSAMXAMASXXAXAAMXXSAAMMAMAMAMAAXMXMXMMMSA
SMASXMASXMSASMAMSAXSSSSSSMSMMMSMMSMXAMAMMSSMAMXSXAXMASMSSXMAMAMXAAAMASAMXAXXMXXMXAMAAMAMXSAMXXAAXXAAMAXMMSXMAXSSMMMXAMMMSSXSXSASMSSSXMASAMAX
XMAMXMASAASASMMMXMMAAAAXMAMAAAAAXMXMASAMXXAMXMAXMAMMMXMAMAMASXMMMMXMXMAMSSMXXSSMSXMASXXMAMMAXMMSMMMASXMMMAMXMMAAXSSXSXAAMMMMMMMMAAXMASASASAS
XSAMXXAMMMMXMXMMMXSMMMMMSASXMMSMMXMAXSASXSMMXMMSMSSMAAMASMMMSAAAXXXXMSAMAASXSMAAXMSMMASXMMSSXXAAXMMMAMAMAMMSXXSXMXAAMMMMSAAXAAMMMXMSAMMSAMAS
MSAMSMSXMXSMMXXAMMASAMXAMXSASAMXSASXMMAMXAMXMMAAAAAASXMASAAASXMMMAMMMSAMMXAMAXMMMAAAXAMASAMAAXSASXAXXASAMSAXMXMMSMMMMASASXMSSXSASMMMMSAMAMAX
AMAMMAAXSAAASMSMSAMXXSMMSAMAMXSMSASXMSAMXSAAAMMSSSSMMAMASMMXSMMASAMAMMMSSMMSSMSSXSSSMMSXMASMXMMAXMSMMMXAXMASXAXSAAAXSAMAMXXXXASASAAAAMASMMMM
SSSMMSMSMSSMMAAAAMXMXMAXMASXMMMAMAMXMAMXAMMSXSAMXMAXSXMASAMMXMSAXASMSAAAAMXMXAAAMXMXMMAXXXMXASMSMAMAMXSAMXSXMMXSASMMMAMAMSMSMMMAMMMMSMMMAASA
MAMXAAXXAXMASMMSMSAAAXXMMMMAAXMAMAMMMAMMXMXMAAXSXSMMMAMXSAMSAMMSSXMAMMXSXMAMMMMSAMXMASASXSMSXSAAXMSSMXMSMXXAMMAXXMXXMAMAXSAMXASXMASAMASMSMMS
MAMMSSSMSMMASAAMASMSSSMAAASXMMMASXMASAMMAASMAMXMASAMMSMAMXMSASAAMAMMMSAMXSSSMSAMXSAAASAMXAAMMMXMMMAMXAAXXXMAMXXXMMXXXAMMMMSMMASMMXMASAMMAAAX
SMMMAXXAAAMAXMMMAMMAAAXMMMMAAXSXXXSMSXSMSXSASXSMAMAMAXMMXMMMAMMXXAMXAMASMSAAMSXMASASXMAMSMMMAMAMXMMSSMMMMMSAMXMSMSAMXSMSAAASMASASMMMMMMSSMMS
AMAMMSXSSSMSSSSSMMMMXMMSSXSMMXMSMASAXAAAMAMXMAXMAMSMASASAMMMSMSASXSMMSMXMMSMMMMMMSXXMSXMMXMSSSSMMSAMASAXAAXAMMMAMMXSAAASMSMXMASMMAMSAAXXMASA
MSXSAXMAXAMMXMAAASXSAAAAAAAXMXAAMAMMMMMMMAMSMXMMSAAMXMASASXMAAMAXXAXMAMMSXMSAAASXMXXASAMMAXMASXAAMASAMXSSXSXMAXAMXMAMMMMMXMMMASMMAMSSMSMSMMM
XXAMMSMSXMMSXSXSMMASXXMSMMMSAMXMSMSXXSAMXXSAMXXAMXAASMXSAMASMXMMMXSMSASAXAASMXXXAXAXMSAMSSSMMMSMMSAMASAXAMXXSMSMSMMAMXAAXAMXAMXASXMXAXXAAXAX
MMMMASXXASXSAMMXAMXMSMAXMAXXAMXMAAMAASMSMXMAXXMXSXMAAXXMASMMAXSASXMASMMXSMMMAMSSMMAMXSMMXMAMXMASAMXSAMMMMSAMXMAAAAMASXSSMMSAMXMMMMXSAMMSMSMS
MAAMXXASAMAMXMAMAMXAXMAMSXSXAXMSSSSMMXSAXXSSMSXMXMSMMXMMASAMXMXASAMMSXMAXAAMAMXAAXAAMMXXAMSMXSASMSMSMMMAXMXSAXSSSXSMMMXMAAAXSASXXSAAAMMAAXAX
SSSSSSXMMMAMAMMSSMMMMMXXXAMXXMMXMAXXXXMMMMAXMASMMMASXAAMASAMMSMXMXMAXAMMSMMSXSXXMSMXSASXSMASXMAMMAAXSAXSMMASAMXAMXSMMSAMSMMMMXSAAMASAMXMSMAM
XAAAXXAAXSSSXSAAAMMSAMMAMXMXMASAMAMXMXMAXMAMXMXXASMXSMSMMXAMAMMSMAMMXXMAAAXSAMXSXXMAMMSAASMMMSSXSMSMMMXMAMAMMMMAMAXAASAXMAAAXMMMMMXMMMMXMASM
XSMSMMMMMMAAAMMSXMASAMSAMASAMASXSAAMASMSXSASXSMAXMXXSXMASMSMXMAAAAAXMSMSSSMMXMAXXAMXSXMMMMXAXXAASAMAXMAMAMXSSMSMMMSMMSMMSSMXXAXSXSAMXAAXXXMA
AXXAAMMSASMMMXAMAMXSAMXASASASXSXMAMAXAAAASMXAAMSSMMMSASAMXAMMMSSSXSAAAAMAMAXMMASXSMSSXMMSXSMSMMMMASXMMSSSMMXAAXSMMMAAXAAXMSSMXSAMXAMXSSSMMSM
SSMSSMASASXSXMASAMAMMMSXMMSAMASXSMSXSMXMASAMSMMAAMXASXMMSMMSAMMAAAXMSMSMSMSAAXAMXXMMSAXASMMASAMXSAMXSAMXAXXSMXMAXXXMXMMMSAAXAMXMSSMMMXAMXAAX
XAAAMMMMXMMMMSAMAMASMMMMAMMXMAMMSASAAXXXXMXMAAMMXMMMSASASMASASMMMAMAMAMAXAAMSMMSMMAAXMMMSAMAMMSAMASXMMSXMMMMAMSMMMMMSMAMSXSMSAXAXXAAXMAMMXSS
AMMMSMMMSASAAMASASXSMAASAMXMMXXAMAMSMMMMMMAXXMMMSAXXSAMAMSMXXMXMAXMMMAMAMAMAAXMAMXMMSSSXXXMXSAMAXAMXMASAXAMMAMAAASMAASXMMAMAMMMSMSXSXMXXSAXM
MXMXAAAAXASMSSXMASXSXSMSXSXXXASMMXMXMMMAAXMMXSAAMXMAMXMXMSXSSMMSXXXXMXMMMSXSMXSAXSAMAAMMSMSAMXSSMSSSMASMMXXSSMMSXXMAMAMAMSMAMXAAASAMMSAAMMSS
MASXSSMSMMMAMMMSAMASAMMXMMMMXXMAAMXMMAMMSMSAAMMMSMMASAMAAMAXAAAAMSMSMXXAAAXAMXMAMSAMMSMAAAMASMXXAXAAMAMMAMXMMAMMMMXSAASMMXSSXMXMXMAMAMMSMSAM
MAXXAXXAMAAAAAAMASMMAMAAAAASXSMSSMAMSASXAAMMSMSXAASASASXSMSMSMMSSMAAAMSMMSSSXSAMXSAMXMMSXSXAMXMMSMSMMSXMASAASXMSAMXASXMAMXAXSMASAMAMMMAMMMMS
MSSMMMSMSSSSSMXXAMAMXMSXMSMSAAMAAMAMXAMMMMMXMASXMMMASASAXAMAMXXXAMSMSMAAXAMXMMMAXSAMXSAMMXMASXMAAXMASAASAMMMMMMSSSMMMMSSMMAMMXASASXMXXXXMAXX
AXAMMASXAXXAAMMXXXAMMXMSXMMMXMMSSMSSSSMSXASAMXMAMSMAMAMMMAMSSSSSMMMXXXSXMMSAMASMXMASMXAMAXAXAXMAMXXMMMMMAMSAXAMMMXMAXXAMXMMMSMMSAMXASMMMSMSM
XMAMMMMMXSXMASAAMXSMXAAMXMAXMXXMAXXMAAAXMASASASAMAMASXMMSSMMXAAXXXMASMMXSSXXXAMMASMMMSSMXSSMMXMAXMSMAXMMXMSAMSSSSSMSAMXSXMSAMAAMAMSMSAAXAAAX
SSSMAXSAMXMASMMMSAXSSMSMASAXSAMXMAXMMMMMMAXMMXSXSMSAMAMMAMAXMMMMMAMASAMASAMSMMSAMXMAMAXAMXAXXSMXMAASXXMMSXMSMAAAAAAXASMSAMMAMMMSSMXXXMSSMSMM
XAAMXMAMXAMXXAAXMXMAXAAMXMAAXAXSSSXMXSAXMMSSSXMASMMXSSMMASXMXAMMMSMMMAMXMMAXAASASMMMMASMSSMMXMAASMMMMMAAMXAAMMMMMMMMASASXMSSMSAMAAXMSMXXXMMS
MSMMMXSSSXSASMMSMMMMMSMSXMXMMMMMAXAMAXASMAMMAAMAMASAMXAMMMAASMSAAMASXSSSSXMMMMSAMAASMMXMXAAMAMAMAAAAMSAMXMAMXSAAXSMMAMMMAMAMASAMXSMXSAAMMMAA
AAXXMAMAMAMASMAAAAMXAAMMASAXMSSMMMAMMXSAMASXSMMAXXMASXSMASXMASXMMSAMAAAXMAXXXXSXMXMSASMASXMSSSMXSXMAXSASXSMSMSSMXAXMASASMMASXSSMSAMXMMMSAMXS
SAMSAMSAMMSMMMSSMMSMSMXSAXXMSAAXXSASXXMASXXAAAXMSSMXMAASAMMMXXMAXMAMMMMMSSMSMAMXSXAXAMMMSAMAAAMAMXMXXMAMAXXAAMASMMMXMSASXSAMMMXSAMMXXAAMASAM
MAAMAMXAXXAAXAXAXSMXMSAMASMMMMMSAMXSAMSXMMMSMMXMAXMMMMMMMSMSASMMMSXMXAAAAXAAMXMAMMSMMMAXMAMMSMMASXMXSMMMAMSSSMAMMMXSAMXMASXMASMMMXMSMMMSAMMA
MAMMMMXSSSSSMXSAMXMASMMMSAXXAXAMASAMAAMMMXAMAMXMAMSMSMXAAAXMASMSAXASXMMMSSSSSSMXSAMXMXXSXXMAMXMASAXAMASMSXMAAMXSXAASAMMMMMMSXMAMXMSMXAAMXMAS
MAMAMMXAAAAMMAMAMASMSAXMMAMSMMMSXMASMSMAMMXSAMSXSAXAAXSMSSSMSMAMXSAMXMAMAMAMAAMSMMMASMAMXAMXMAMASMMMSAMAMAMSMMXMMMMSAMXMMAMXAXSASMAMMMSXMAMX
XAXASMMMSMMMMAMASXXXXAMXMAMAAXXAAXAXMAMXXAAMASXAMMMSMMAMAMAXXMXMASAMMSXSSMAMSMMMAMSASXASAMXMSAMXSXAMXXMASAMAAMMSMXMXAMAMXMSMXMMASMMSAMXAMSMS
SXSASXXMMMSXSSSXSMSSMASASMSMMSSSSMMSSSMSMMSMXMMMMXAMMSSMASXMSMSMASAMXAASASXXAMXMAMSXMMXXAMXAXXSSXXXSAMSASASMSMASXMMSMMASAAXMSMMMMAXSASMMMAAM
AAMAMMMMMAXAAAXXXAAAXASMSXAXMAAXMASAXAAXMAXMMMXMAMXXAXXSASAAAAXMASXSMMSMAMSAMAXMAXXAMSSMXSXMXSMXAXXMAMMMSXMAMMASAMXAXSAXMSMXAXAMMXMSMMAASMSM
MMMAMAAAMMMMMMMMMMSSMAXMSXMMMMSMSSMAMMMMMAMAASASXMSMMSXMXSMSMMMXXMASMXAMAMSSMMSMSXSMMAASAMAXXMASXMXMMXSAMAMAMMXSAMSMMMMSAMASMSSSMXMXMSSMSAXX
SXMXXXSXSAAAAMXXAAXXMMSSMASXXXXMXAMMMSSXMASMMSMSAAAAASXSAXMAXAXXAMXMXXXSXMMAMSXAXAMAMSSMXSAMXMAMXAXSMAXAXXMAXXAMXMAXAAAMAMMSAAAAMAMXMAMAMMMS
AAXSMMMASXMMXSASMSXXAAMASAMASXMMSSMAAXAXMXAAMSXSMMMMMSAMMSMMSAMSSMMMMSAMMSSMMMMMMXMAXMAXXAMXSXAXXMAMMMSMSSSSSMSSSSMSMSMSAMXMMMMMMMXMSMMMMAAA
MSMSASMAMAMXMMMAAMMSMXSMMMSAMAAAAXSMSSMSMMSSMMAXXXXXSMMMAAAXMAXAAAMAAMAMAAXXAASASMSMSAMSMSMASXSMMSSMAXXMAAAXAAAXAAXXXXASAXMMMSASASAAAXSASMSS
SXAXAAMSMXMAAAXMXMASAASXMAMASMMMSMMMAAXAAMMXAMXMSASMSAMXSSSXSMMSSMMMSSSMMMSSSXSASAMXMAXMAXMXMAMXAAMMMSXMMSMMMMMMSAMXAMMMMXAAAMAMAXMSMSXAXAAX
XMMMMMMXMASXSMXXMMAMMMXAMMSAMAXXXMAMSSSSSMAXMMSASAMASXMXMAMXAAAMAXSMMXMASMAMMMMXMMMAMAMMMMMSMMMMMXSAMXMXMAXXXSXAXAMXSXXAMMSMSMSMAMXAMXMXMMMM
MXAAAXSAMXMAAAMSMMXXAMXMMXMASMSSMSSXXMAXXMSMSASMMAMAMAMAMXMSSSMSAMXAXXMASMSMSASMMSSSSXSAMAAXAAAMAASXSXAASASXAAXMXMXAMMMMSAXAAAXMSMMAAAAAMASX
AXSSXSASAMSSMMMSAAMSMSAMXXSAMXAAMAMSMMMMXMXXMAMAMXMMSAMAMAMXXAAMMMSMMSMMXAMAMAXXAAAXAASASXSSSMSMMXSASASXSXMMMMMMSXMMXXAAMMSXMSMAMASMMMSMSAMA
SMAAXXMASAAXAAAXMMMAAXAXSAMXXMSMMASAXAAMSAMSMSMSMSMAXXXAXAMXXMSMSMXMAXAAMMMAMXMMMSSMMMMAMMAAXSAMXXMXMAXAMXXAAXAMXAXAASMSSXAXMXMSMAMMAMAXMAMX
MAMAMXXAASMSSMSXSASMSMAXSXSASMMXSXSMSSXSAMXAAXAAAAMMMSSMXSSMMXAAAAXMASMMSASXSSMXAAAASAMXMSMXMMMXSAMXMXMXMASMSSSMXMMSMSAMMMSSMAXMASASAMSMSAXM
SSSMASMMMMXAAAAASASAMMMMXMAXMAAASXMXAAXSAMXMXMSMSMXSAMAMAXAAAAMSMSMMMSAASMSMMAXMSSSMMXMAMAMSXSAAAAXASAMXMAXXXAMXXXAXMMXMAAAAXAMMXAAMXXAMXXXX
XAAAXMASAXMSMMMMMAMXMASXSSMAMMMMSAMMMSMSASAXXMMMXXAMASAMXSAMSMXXAAMAMSMMMAMMSAMMAAXAXMAMXAXAAMMSSMMMSXSAMXSMMMMXMAMMMMASMMXSMMSXMMSSSMMSMMMX
MSMMSSXMAXXXXXMAMXMSSMSAAAXMASMXSAMXMXAMAXXXMXAXMMXSAMXAXAXMMXAMXMSMXXXMASMAMMXMASMSMSASMSSMSMMAAAXXMASASXXAASASXSAAASASMSAAAAAAXXAAAAXAAAXX
MXMAXMMMMSSMMMXXSMMXAASMSMMXAAAASAMXSMMMSMMXMAXSAMAMASXMMMXXAMXAAXXMASMMAMMXSMXSAXAMASMXAXXXXAMSSMMASXMASXSSMSAMAMXXMMXSAMSSMMSMMXMSMMSSSMSM
XAMMXMAXAAAAAMSMXASXMMMXXASXMASXSXMXMASAMAXASAXXAMASAMASAXMMXMMXMSAMXMAMMSASXMASAMAMAMAMAMSMMXMAMASAMAMMMAAAXMAMSMMSSMSMMMXXMXMXSSMXAXAAAAAA
SSMSASXMMSSMMAAAMAMAXMXASAMXMAXAMASXSMMASXSMMSMSMMXMMSAMXMSAMXSMXAAMASAMXSXMAXXXMXMMXSMAAAXSMXSASXMASXSAMXMAMXMMXAAAAXMASXSASAMAMAASXMMXMMMX
SAASASXAXXXMMSSSXASMMSAMMMMSMXSAMAMMAAMAMAMMAMMASXAAMMMSMMMAXAXAMMMXXMAXAXAMSMMMMSXMASXSXSAMXAMXXXSMMXMXSAMASXMASMMXMMMAMASAMMMASMMMMASMSSSS
MMAMMMMSMSMSAAAAMXMXASXXAAMASMSMMXMSSMMAMAMMASMMMXMXMAXXAASXMASMSXSXMSMMSMSMAAXAAAAMAXAASMXAMSSSMXMASAMAMAMAXAMXSSSMMAXAMXMSMASAMXXAXMAAAAAX
SMMMXAXAAXAMMMMXSMMMXMASXMXAMXMMMAMXMXSAMAMMAXAXSXSASXMSSMSXMMAAAASMMAXXXAAXMXMMSMSMMMSMMSXXXXAAAAXAMAMSXSMSXMMSMAMASXSSSSMMXXMMSMSXSXMMMMMM
XAMMSSSMSMMMSAXXMAXSAMMMMSMSSXMSSSSXSASMSSSMSSSXMASASAMXAAXXXAMXMAMASXXMMSMMMXMMXXXAXXXAAAXSMMSMMXMSSSMMAXAXMAMASMSXMAAMMAAXXMAXAAXAXMSXMSSM
SSMAMXAAXAAAXMSMSSMSXSAMXXAAAAAAAMAMMAXAAAMAXSXAMAMXMAMXMMMMSMXAMXSXMMXSAMMSAASAMXMXMAXMMMXAAMMMXMXMAMXMAMAMSXSASXSMMSMASMMMXMASMSMXMASAAAAM
SMMASXMMMXMSXXAAAMXMXSMMMMMMXMMMSMXMMSMMMSMSXMSXMSMSSSMXMXAAAXAMXXSAAAXMASAMSSMASMMSAMXSMSSSSMMXMAAMSMMMAMSMAMMMMXMXAMAMSAMXSXAXAXXXAXMMMSSM
SASASXSXSAXAMSMSMSSMAMXASXMASXAXXXXMAMAMAXXMAXXMAMAMAXXAMXSSMXSAMASXMMXSAMMMXXMMXAAAXXMXAAMAAMXAXSAXAAMMMSAMXMAMSSMMMSSXSAMASAMSSSMMSSXMXMAM
XMMAMXSASMSXAXAMXAXMASXMSAMXAMXXMSXMASAMASASXMMMAMAMXMMMSAMAMMMAMMMAMXXMXMXAMXAAMXAMXSASMXXSXMMSXMMSSSMMSXMAMMAMAMAXAAAAMXMAMMMAAAXAAMAXMMXA
MSMSMAMAMXSASMSMMSSMASAASAMXSMSMXMASASASASAMMMAMXSXMAMXAMXMAMAXXXAXAMXAASMSASXMAXSAXAXMMMSMMASAMAAAAAMAXMAXXSASMMSMMMSMMSMMMSMMXSMMMSSSMMSSM
MAAXMXMAMXXAMAMAMXXMAMMMMMMMMAAASXMMMSAMAMAMASXSXMXXASMASMSMSMSMSMSAXAMXMASASXMAMSXMXXXSAAASAXASMMMSSSMMSXMASAMXXAAXXXXAAAAXAAXAMXXAAMMAMAAX
SMSMXAMAXXMMMMMSSMXMMMSXXAXAMSMSAMSAMMAMAXAXXXAXMAMXMSAMAXXAAAAXAMSAMSMSMAMAMXMSMMMSSXAMSSMMMXMMAXAMXAAAXAAMMXXXSXSMMXMXSMMMSSMSAAMMMMXAMSSM
XMAASASAMSMSXXMAAAMSSXMASMSMXMMAAASXMSXMMSMSMMMSMAMASMMMMMMSMSMMXMMXMMAAMAMMMXMXAAAAMMXMAXMASAMXAMSSSSMMSXMXMXMASAXMASXAMXSAAMMMMMXMXMXMMAMX
MSMMXMXAXSAMXSAMXSAAMMSAMXAXAXXSMMXAXSAMXAMAXAMXMSSMAAAMASXMAAXAMMMMMMXMSMSMSMMSSMMSSSSMAXXASASXSSMAMAXXXAMXSAAAMAMASAMXSAMXXXAAASXSASASMMSS
AAMMAMSXMMAMAMAXSMMMSXSASAMSXSAMASMMMSAMSXSASMSAMXAXMSMSASAMXMSSMMAAAAAXXMXMAAMAAXMMMMAMAMMMSAMXMAMMMSMMMSMASMSAMMMMMMMAMAMMMSSSMSASASMSASAM
SXSSXMAAXSAMXSAMXASXSAMXMAXAMAAMAMAAASMMMXMASXMASMSMAXAMASAMXXSAASMSSSSSXXASXSMSSMSAASAMAXSAXAMXSAMXAXAXAAMXSMMXAAAAAAMASAMAMAAXMXAMAMMSXMAS
XAXMASXSMXXXXAMXSAMXMXMASXMAMSAMXSSMMXSXMASMSMSMMXMASMXMXMXAMXSSMMMXAAXXXSMSAXAMMASXMSXSAXMASMAASXMMASXMSSSMXMASXSSSSMSASMSMSMSMMMAMXMXMASAM

1374
day5.txt Normal file

File diff suppressed because it is too large Load Diff

0
debug.log Normal file
View File

1001
input.txt Normal file

File diff suppressed because it is too large Load Diff

171
src/day2.zig Normal file
View File

@ -0,0 +1,171 @@
const std = @import("std");
const print = std.debug.print;
var data : [1024][20]i32 = undefined;
var data_len : [1024]u32 = undefined;
var res:u32=0;
var res2:u32=0;
const dir = enum {zero,up,down};
var data_size : u32 = 0;
var direction = dir.zero;
var safe : bool = true;
var safe_rep : u32 = 0;
var safe_no_dump : u32 = 0;
//const e_data = data[0..data_size];
var temp : i32 = 0;
var legit : bool = false;
var instance_unsafe : u32 = 0;
pub fn main() !void {
_ = try readFile();
const e_data = data[0..data_size];
const e_data_len = data_len[0..data_size];
for(e_data,e_data_len) | row,len |
{
print("[main]len:{}\n",.{len});
const row2 = row[0..len];
if(checkLevel(row2) > 0)
{
safe_no_dump += 1;
for(1..len) | i |
{
print("\x1B[0m",.{});
const row1 = try rmNum(&row,len,i);
print("rmRow: {d}\n",.{row1});
print("remove level {}\n",.{i-1});
if(checkLevel(row1)>0)
{
print("still unsafe ",.{});
}
else
{
print("now safe ",.{});
safe_rep += 1;
break;
}
}
}
else
{
safe_rep += 1;
}
}
print("Data_size: {}\n",.{data_size});
std.debug.print("safe reports: {}\nsafe rep without dump:{}\n",.{safe_rep,safe_no_dump});
}
fn rmNum(slice : [] const i32,len : u32,pos : usize) ![]i32
{
var str = try std.heap.page_allocator.alloc(i32,len);
print("len rm: {}, slicelen: {}\n",.{len,slice.len});
for(slice,0..) | num, i |
{
if(i > len-1)
{
break;
}
if(num == 0) break;
if(i < pos)
{
str[i] = num;
}
else
{
str[i-1] = num;
}
}
const sl2 = str[0..len-1];
return sl2;
}
fn checkLevel(slice : [] const i32) u8
{
direction = dir.zero;
legit = false;
print("slice: {d}, len {}\n",.{slice,slice.len});
for(slice,0..) | num,ii |
{
if(ii < slice.len-1 )
{
if(num == slice[ii+1])
{
std.debug.print("\x1B[31mequal1\n",.{});
return 1;
}
if(direction == dir.zero and num > slice[ii+1])
{
direction = dir.down;
}
if(direction == dir.zero and num < slice[ii+1])
{
direction = dir.up;
}
if(direction == dir.down and num < slice[ii+1])
{
std.debug.print("\x1B[31mexit2\n",.{});
return 2;
}
if(direction == dir.up and num > slice[ii+1])
{
std.debug.print("\x1B[31mexit3\n direction : {}\n num :{} > {}, index: {}\n",.{direction,num,slice[ii+1],ii});
return 3;
}
//temp = @intCast(num);
if(@abs(num - slice[ii+1]) < 1 or @abs(num - slice[ii+1]) > 3)
{
std.debug.print("\x1B[31mexit4 num: {} slice[ii+1]: {}, full slice {d}, index: {}\n,",.{num,slice[ii+1],slice,ii});
return 4;
}
}
}
print("\x1B[0m",.{});
return 0;
}
fn readFile() !void
{
const file = try std.fs.cwd().openFile("day2-1.txt",.{});
defer file.close();
var buf_reader = std.io.bufferedReader(file.reader());
var in_stream = buf_reader.reader();
var buf: [1024*5]u8 = undefined;
var index : u32 = 0;
var row : u32 = 0;
while(try in_stream.readUntilDelimiterOrEof(&buf,'\n')) | line |
{
var it = std.mem.split(u8,line," ");
while (it.next()) |word|
{
if(std.mem.eql(u8,word,"\n")==false)
{
if(std.mem.eql(u8,word," ")==false)
{
data[row][index] = try std.fmt.parseInt(i32,word,10);
index += 1;
}
}
else
{
data_len[row] = index;
row += 1;
index = 0;
}
}
data_len[row] = index;
index = 0;
row += 1;
}
data_size = row;
}

204
src/day3-2.zig Normal file
View File

@ -0,0 +1,204 @@
const std = @import("std");
const print = std.debug.print;
var buffer : [22048]u8 = undefined;
pub fn main() !void
{
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
defer arena.deinit();
const allocator = arena.allocator();
const read_bytes = try readFile("day3.txt");
const pattern = "mul(";
var slice :[]u8= undefined;
var slice2 :[]u8= undefined;
slice2 = buffer[0..read_bytes];
var mulresult : u64 = 0;
var count : u64 = 0;
var endpos : usize = 0;
//var buf : [10]u8 = undefined;
while(slice2.len != 0) : (count += 1)
{
print("slice2: {}\n",.{slice2.len});
while(true)
{
var do = std.mem.indexOf(u8,slice2,"do()");
if(count == 0)
{
do = 0;
}
const dont = std.mem.indexOf(u8,slice2,"don't()");
if(do == null and dont == null)
{
print("last line\n",.{});
std.posix.exit(1);
break;
}
if(do) | do2 |
{
if(dont) | dont2 |
{
if(dont2 > do2)
{
print("endpos{s} ,endpos{d}\n",.{buffer[endpos..endpos+5],endpos});
slice2 = slice2[do2..dont2];
endpos = endpos + dont2 + 7; //absolute pos in buffer
break;
}
else
{
endpos = endpos + dont2 + 7;
slice2 = buffer[endpos..];
print("endpos{s} ,endpos{d}\n",.{buffer[endpos..endpos+5],endpos});
}
}
else
{
//slice2 = slice2[do2..];
print("last line\n",.{});
std.posix.exit(1);
break;
}
}
}
slice = slice2;
while(slice.len != 0)
{
//_ = try std.io.getStdIn().reader().readUntilDelimiterOrEof(buf[0..],'\n');
const first = std.mem.indexOf(u8,slice,pattern);
var index2 : usize = 0;
if(first) | index |
{
var num :u64 = 0;
const len = try getNum(allocator,slice,index + pattern.len,&num);
if(len > 0)
{
if(slice[index + pattern.len + len] == ',')
{
var num2 : u64 = 0;
const len2 = try getNum(allocator,slice,index + pattern.len + len + 1,&num2);
if(len2 > 0)
{
//print("num2: {}\n",.{num2});
index2 = index + pattern.len + len + len2 + 1;
if(slice[index2] == ')')
{
mulresult = mulresult + (num * num2);
if(num > 999 or num2 > 999)
{
print("error invalid data to loong number",.{});
std.posix.exit(1);
}
print("{s}({d},{d})\nmulresult: {d}\n",.{pattern,num,num2,mulresult});
}
else
{
index2 = index + 1;
}
}
}
else
{
index2 = index + 1;
}
}
else
{
print("len: {}\n slice: {s}\n endpos{s}\n",.{len,slice,buffer[endpos-5..endpos]});
}
if(slice.len > index2)
{
slice = slice[index2..];
//print("slice len: {} \nindex2:{}\n",.{slice.len,index2});
}
else
{
break;
}
}
else
{
break;
}
//print("do: {?}, dont(): {?}\nslice.len:{}\n,index2:\n",.{do,dont,slice.len});
}
slice2 = buffer[endpos..];
}
print("add up muls: {d}\nreadBytes from File: {d}",.{mulresult,read_bytes});
}
fn getNum(allocator : std.mem.Allocator,buf : []u8,first : usize,parsed : *u64) !usize
{
var result : []u8 = try allocator.alloc(u8,0);
var i: u64 = first;
if(i >= buf.len - 1)
{
return 0;
}
while(isNumber(buf[i]) == true) : ( i += 1)
{
//_ = try std.fmt.bufPrint(&result,"{s}{}",.{temp,buf[i]});
result = try std.fmt.allocPrint(allocator,"{s}{c}",.{result,buf[i]});
if(i >= buf.len-1)
{
return 0;
}
}
print("\n{s}\nlen: {}",.{result,result.len});
if(result.len > 0)
{
parsed.* = try std.fmt.parseUnsigned(u64,result,10);
}
else
{
return 0;
}
defer allocator.free(result);
return result.len;
}
fn isNumber(number : u8) bool
{
const numbers = [10]u8{'0','1','2','3','4','5','6','7','8','9'};
for(numbers) | nbr |
{
if(number == nbr)
{
return true;
}
}
return false;
}
fn readFile(filename : [] const u8) !usize
{
const file = try std.fs.cwd().openFile(filename,.{});
defer file.close();
const bytes_read = try file.readAll(&buffer);
return bytes_read;
}
test "search substring"
{
const pos = std.mem.indexOf(u8,"abcde","ded");
print("Pos: {?}",.{pos});
}

142
src/day3.zig Normal file
View File

@ -0,0 +1,142 @@
const std = @import("std");
const print = std.debug.print;
var buffer : [22048]u8 = undefined;
pub fn main() !void
{
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
defer arena.deinit();
const allocator = arena.allocator();
const read_bytes = try readFile("day3.txt");
const pattern = "mul(";
var slice :[]u8= undefined;
slice = buffer[0..read_bytes];
var mulresult : u64 = 0;
//var buf : [10]u8 = undefined;
while(slice.len != 0)
{
//index2 = 0;
//_ = try std.io.getStdIn().reader().readUntilDelimiterOrEof(buf[0..],'\n');
const first = std.mem.indexOf(u8,slice,pattern);
var index2 : usize = 0;
if(first) | index |
{
var num :u64 = 0;
const len = try getNum(allocator,slice,index + pattern.len,&num);
if(len > 0)
{
if(slice[index + pattern.len + len] == ',')
{
var num2 : u64 = 0;
const len2 = try getNum(allocator,slice,index + pattern.len + len + 1,&num2);
if(len2 > 0)
{
//print("num2: {}\n",.{num2});
index2 = index + pattern.len + len + len2 + 1;
if(slice[index2] == ')')
{
mulresult = mulresult + (num * num2);
if(num > 999 or num2 > 999)
{
print("error invalid data to loong number",.{});
std.posix.exit(1);
}
print("{s}({d},{d})\nmulresult: {d}\n",.{pattern,num,num2,mulresult});
}
else
{
index2 = index + 1;
}
}
}
else
{
index2 = index + 1;
print("should be , but is: {c}\nindex2 = {}\n",.{slice[index + pattern.len + len],index2});
}
}
if(slice.len > index2)
{
slice = slice[index2..];
//print("slice len: {} \nindex2:{}\n",.{slice.len,index2});
}
else
{
break;
}
}
else
{
break;
}
}
print("add up muls: {d}\nreadBytes from File: {d}",.{mulresult,read_bytes});
}
fn getNum(allocator : std.mem.Allocator,buf : []u8,first : usize,parsed : *u64) !usize
{
var result : []u8 = try allocator.alloc(u8,0);
var i: u64 = first;
if(i >= buf.len - 1)
{
return 0;
}
while(isNumber(buf[i]) == true) : ( i += 1)
{
//_ = try std.fmt.bufPrint(&result,"{s}{}",.{temp,buf[i]});
result = try std.fmt.allocPrint(allocator,"{s}{c}",.{result,buf[i]});
if(i >= buf.len-1)
{
return 0;
}
}
print("\n-{s}\nlen: {}",.{result,result.len});
if(result.len > 0)
{
parsed.* = try std.fmt.parseUnsigned(u64,result,10);
}
else
{
return 0;
}
defer allocator.free(result);
return result.len;
}
fn isNumber(number : u8) bool
{
const numbers = [10]u8{'0','1','2','3','4','5','6','7','8','9'};
for(numbers) | nbr |
{
if(number == nbr)
{
return true;
}
}
return false;
}
fn readFile(filename : [] const u8) !usize
{
const file = try std.fs.cwd().openFile(filename,.{});
defer file.close();
const bytes_read = try file.readAll(&buffer);
return bytes_read;
}
test "search substring"
{
const pos = std.mem.indexOf(u8,"abcde","ded");
print("Pos: {?}",.{pos});
}

232
src/day4.zig Normal file
View File

@ -0,0 +1,232 @@
const std = @import("std");
const print = std.debug.print;
var buffer : [30000]u8 = undefined;
var debugBuffer : [30000]u64 = undefined;
const Dir = enum {leftUp, Up, rightUp, left, right, downLeft, down, downRight};
const GenericError = error{
NoNewlineFound,
HitBoundary,
};
var debugFile : std.fs.File = undefined;
pub fn main() ! void
{
debugFile = try std.fs.cwd().createFile("debug.log",.{});
defer debugFile.close();
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
defer arena.deinit();
const allocator = arena.allocator();
var absPos : usize = 0;
// var currentPos : usize = 0;
var found : u64 = 0;
var ret : u64 = 0;
const read_bytes = try readFile("day4.txt");
const lineLen = try getLineLen();
for(buffer[0..read_bytes],0..) | _,currentPos |
{
absPos = currentPos;
print("absolute Pos: {}\n",.{absPos});
// if(@mod(currentPos+1,lineLen) != 0 or currentPos == 0)
// {
print("mod: {}\n",.{@mod(currentPos,lineLen)});
//ret = try checkString(allocator,"XMAS",&absPos,lineLen);
ret = try checkForMas(allocator,&absPos,lineLen);
debugBuffer[currentPos] = ret;
found = found + ret;
print("Found: {}\n",.{ret});
//}
}
print("AllFound: {}\n",.{found});
for(debugBuffer[0..read_bytes],0..) | buf,i |
{
if(buf == 0)
{
if(@mod(i,lineLen-1) != 0)
{
print(".",.{});
}
}
else
{
print("{d}",.{buf});
}
if(@mod(i+1,lineLen) == 0)
{
print("\n",.{});
}
}
}
fn checkString(allocator : std.mem.Allocator, pattern : [] const u8,pos : *usize,lineLen : u64) !u64
{
var result : u64 = 0;
const tempPos = pos.*;
inline for (@typeInfo(Dir).Enum.fields) | enu |
{
pos.* = tempPos;
//print("typeof:{s} {}\n",.{enu.name,i});
const slice = move(allocator,@enumFromInt(enu.value),pattern.len-1,pos,lineLen) catch "";
print("pattern: {s} slice {s} {s}\n",.{pattern,slice,enu.name});
if(std.mem.eql(u8,pattern,slice) == true)
{
result +=1;
}
}
return result;
}
fn checkForMas(allocator : std.mem.Allocator,pos : *usize,lineLen : u64) !u64
{
var result : u64 = 0;
const tempPos = pos.*;
pos.* = tempPos;
if(buffer[pos.*] == 'A')
{
const slice = move(allocator,Dir.leftUp,1,pos,lineLen) catch "..";
pos.* = tempPos;
const slice2 = move(allocator,Dir.downRight,1,pos,lineLen) catch "..";
pos.* = tempPos;
const slice3 = move(allocator,Dir.rightUp,1,pos,lineLen) catch "..";
pos.* = tempPos;
const slice4 = move(allocator,Dir.downLeft,1,pos,lineLen) catch "..";
pos.* = tempPos;
print("slice: {s}\n",.{slice});
print("slice2: {s}\n",.{slice2});
print("slice3: {s}\n",.{slice3});
print("slice4: {s}\n",.{slice4});
if(((slice3[1] == 'M' and slice4[1] == 'S') or (slice3[1] == 'S' and slice4[1] == 'M')) and ((slice[1] == 'M' and slice2[1] == 'S') or (slice[1] == 'S' and slice2[1] == 'M')))
{
result += 1;
}
}
return result;
}
fn move(allocator : std.mem.Allocator, dir : Dir, count: usize,absPos : *usize,lineLen : u64) ![]u8
{
var result : []u8 = try allocator.alloc(u8,1);
result[0] = buffer[absPos.*];
//defer allocator.free(result);
for(0..count) | _ |
{
const homePos = absPos.*;
//debugBuffer[absPos.*] = '.';
if(absPos.* != '\n')
{
switch(dir) {
Dir.leftUp => {
if(absPos.* > lineLen)
{
absPos.* = absPos.* - lineLen - 1;
}
else
{
return error.HitBoundary;
}
},
Dir.Up => {
if(absPos.* > lineLen)
{
absPos.* = absPos.* - lineLen;
print("dir.up {c}\n",.{buffer[absPos.*]});
}
else
{
return error.HitBoundary;
}
},
Dir.rightUp => {
if(absPos.* > lineLen)
{
absPos.* = absPos.* - lineLen + 1 ;
}
else
{
return error.HitBoundary;
}
},
Dir.left => {
//if(@mod(absPos.*,lineLen)!=0)
if(absPos.* > 0)
{
absPos.* = absPos.* - 1;
}
else
{
return error.HitBoundary;
}
},
Dir.right => {
absPos.* = absPos.* + 1;
},
Dir.downLeft => {
absPos.* = absPos.* + lineLen - 1;
},
Dir.down => {
absPos.* = absPos.* + lineLen;
},
Dir.downRight => {
absPos.* = absPos.* + lineLen + 1;
},
}
}
if(buffer[absPos.*] != '\n')
{
result = try std.fmt.allocPrint(allocator,"{s}{c}",.{result,buffer[absPos.*]});
}
else
{
absPos.* = homePos;
result = try std.fmt.allocPrint(allocator,"...",.{});
}
}
//print("absPos: {} lineLen: {}\n",.{absPos.*,lineLen});
return result;
}
fn getLineLen() GenericError!usize
{
if(std.mem.indexOf(u8,&buffer,"\n")) | index |
{
print("found newline at {?}\n",.{index});
//add for the newline itself
return index+1;
}
else
{
return error.NoNewlineFound;
}
}
fn readFile(filename : [] const u8) !usize
{
const file = try std.fs.cwd().openFile(filename,.{});
defer file.close();
const bytes_read = try file.readAll(&buffer);
return bytes_read;
}

179
src/day5.zig Normal file
View File

@ -0,0 +1,179 @@
const std = @import("std");
const print = std.debug.print;
pub fn main() !void
{
const allocator = std.heap.page_allocator;
var rules = std.ArrayList([]u8).init(allocator);
var data = std.ArrayList([]u8).init(allocator);
var sum : usize = 0;
print("typeof arraylist: {}",.{@TypeOf(rules)});
try readFile(allocator,"day5.txt",&rules,&data);
print("rules:\n",.{});
for(rules.items) | rule |
{
print("{s}\n",.{rule});
}
print("data:\n",.{});
for(data.items) | dat |
{
print("{s}\n",.{dat});
}
for(data.items) | dat |
{
const values = try parseIntsToSlice(allocator,dat);
print("ints: {d}\n",.{values});
if(try checkOrder(allocator,dat,&rules)) | failed_rule |
{
print("dataset failed at rule {d}\n",.{failed_rule});
}
else
{
print("dataset {d} clean\n",.{values});
const middle = getMiddleFromSlice(values);
print("middle value {d}\n",.{values[middle]});
sum = sum + values[middle];
}
}
print("Final result: {d}",.{sum});
}
fn readFile(allocator : std.mem.Allocator, filename : [] const u8, rules : *std.ArrayList([]u8), data : *std.ArrayList([]u8)) !void
{
const file = try std.fs.cwd().openFile(filename,.{});
var buf_reader = std.io.bufferedReader(file.reader());
var reader = buf_reader.reader();
var buf: [1024]u8 = undefined;
while(try reader.readUntilDelimiterOrEof(&buf,'\n') )| line |
{
if(std.mem.indexOf(u8,line,"|")) | _ |
{
print("this is a rule: ",.{});
try rules.append(try std.fmt.allocPrint(allocator,"{s}",.{line}));
}
else if(std.mem.indexOf(u8,line,",")) | _ |
{
try data.append( try std.fmt.allocPrint(allocator,"{s}",.{line}));
print("this is a data set: ",.{});
}
print("{s}\n",.{line});
}
}
fn parseIntsToSlice(allocator : std.mem.Allocator, data : []u8) ![]u64
{
var values : []u64 = try allocator.alloc(u64,0);
var start_pos : usize = 0;
//first must be different as dataset does not beginn with a ,
if(std.mem.indexOfAnyPos(u8,data,0,",")) | index |
{
values = try allocator.realloc(values,values.len + 1);
const cur_index = values.len - 1;
//parses the string from beginning to , to an integer
values[cur_index] = try std.fmt.parseInt(u64,data[0..index],10);
}
while(std.mem.indexOfAnyPos(u8,data,start_pos,",")) | index |
{
if(start_pos >= data.len - 1) break;
if(std.mem.indexOfAnyPos(u8,data,index+1,",")) | sub_index |
{
values = try allocator.realloc(values,values.len + 1);
const cur_index = values.len - 1;
//parses the string from , to , to an integer
values[cur_index] = try std.fmt.parseInt(u64,data[index+1..sub_index],10);
start_pos = sub_index;
}
else
{
values = try allocator.realloc(values,values.len + 1);
const cur_index = values.len - 1;
values[cur_index] = try std.fmt.parseInt(u64,data[index+1..data.len],10);
break;
}
}
//print("address of heap allocated memory: {}\nvalues itself: {d}\n",.{&values,values});
return values;
}
fn parseRule(allocator : std.mem.Allocator,rule : []u8) ![2]u64
{
_ = allocator;
if(std.mem.indexOf(u8,rule,"|")) | index |
{
const int1 = try std.fmt.parseInt(u64,rule[0..index],10);
const int2 = try std.fmt.parseInt(u64,rule[index+1..],10);
return .{int1,int2};
}
return.{0,0};
}
//returns the rule number which first caused a rule mismatch
fn checkOrder(allocator : std.mem.Allocator,data : []u8,rules : *std.ArrayList([]u8)) !? usize
{
const nbrs = try parseIntsToSlice(allocator,data);
//const nbrs2 = try parseIntsToSlice(allocator,data);
var pass_test : bool = false;
var fail_index : usize = 0;
for(nbrs,0..) | nbr, index_nbr |
{
for (rules.items,0..) | rule, index_rule |
{
const rule_i = try parseRule(allocator,rule);
if(nbr == rule_i[0])
{
print("check rule: {s}",.{rule});
for(nbrs,0..) | nbr2, index_nbr2 |
{
if(nbr2 == rule_i[1])
{
if(index_nbr2 > index_nbr)
{
print("... OK\n",.{});
pass_test = true;
break;
}
else
{
print("... failed at rule {d}\n",.{index_rule});
pass_test = false;
fail_index = index_rule;
return fail_index;
}
}
}
else
{
print("... skip rule\n",.{});
}
}
}
}
return null;
}
fn getMiddleFromSlice(data : []u64) usize
{
const middle = (data.len - 1) / 2;
print("middle: {}\n",.{middle});
return middle;
}

121
src/main.zig Normal file
View File

@ -0,0 +1,121 @@
const std = @import("std");
var data : [4][1024]u32 = undefined;
var res:u32=0;
var res2:u32=0;
pub fn main() !void {
_ = try readFile();
std.debug.print("{},{}\n",.{data[0][0],data[1][0]});
for(&data[0],0..) | *elema,indexa |
{
const slice = data[0][indexa+1..];
for(slice) |*elemb|
{
if(elemb.* < elema.*)
{
const temp = elema.*;
elema.* = elemb.*;
elemb.* = temp;
}
}
}
for(&data[1],0..) | *elema,indexa |
{
const slice = data[1][indexa+1..];
for(slice) |*elemb|
{
if(elemb.* < elema.*)
{
const temp = elema.*;
elema.* = elemb.*;
elemb.* = temp;
}
}
}
for(&data[0],&data[1],&data[2],&data[3]) | a, b, *c, *d |
{
d.* = 0;
if(a < b)
{
c.* = b-a;
}
else if (a > b)
{
c.* = a-b;
}
}
for(&data[0]) | a |
{
for(&data[1], &data[3]) | b, *c |
{
//std.debug.print("a:{} ,b:{}\n",.{a,b});
if(a == b and a != 0)
{
c.* = a;
std.debug.print("c:{}, a:{}\n",.{c.*,a});
}
}
}
for(&data[3]) | count |
{
res2 = res2 + count;
}
for(&data[2]) | a |
{
res = res + a;
}
std.debug.print("res: {}\n",.{res});
std.debug.print("res2: {}\n",.{res2});
std.debug.print("ex: {} {} {}",.{data[0][1],data[1][1],data[3][1]});
}
fn readFile() !void
{
const file = try std.fs.cwd().openFile("input.txt",.{});
defer file.close();
var buf_reader = std.io.bufferedReader(file.reader());
var in_stream = buf_reader.reader();
var buf: [1024]u8 = undefined;
var index : u32 = 0;
var indexa: u32 = 0;
var indexb : u32 = 0;
while(try in_stream.readUntilDelimiterOrEof(&buf,'\n')) | line |
{
var it = std.mem.split(u8,line," ");
while (it.next()) |word|
{
if(std.mem.eql(u8,word,"\n")==false)
{
if(std.mem.eql(u8,word,"")==false)
{
//std.debug.print("entry:{s}\n", .{word});
if(@mod(index,2)==0)
{
data[0][indexa] = try std.fmt.parseInt(u32,word,10);
indexa +=1;
}
else
{
data[1][indexb] = try std.fmt.parseInt(u32,word,10);
indexb += 1;
}
index += 1;
}
}
}
}
}

10
src/root.zig Normal file
View File

@ -0,0 +1,10 @@
const std = @import("std");
const testing = std.testing;
export fn add(a: i32, b: i32) i32 {
return a + b;
}
test "basic add functionality" {
try testing.expect(add(3, 7) == 10);
}

1
test.txt Normal file
View File

@ -0,0 +1 @@
mul(350,145)

BIN
zig-out/bin/adventofcode Executable file

Binary file not shown.

Binary file not shown.