From 85fd1e8724bb52454e107cb4bb5f7f400d34462d Mon Sep 17 00:00:00 2001 From: Katie <5213160+KatieLG@users.noreply.github.com> Date: Fri, 3 Jan 2025 15:41:27 +0000 Subject: [PATCH] solution --- AOC/python/debug.json | 88 +++++++++++++++++----------------- AOC/python/debug_all.json | 48 +++++++++++++++++++ AOC/python/solutions/day_24.py | 50 ++++++++++--------- 3 files changed, 119 insertions(+), 67 deletions(-) create mode 100644 AOC/python/debug_all.json diff --git a/AOC/python/debug.json b/AOC/python/debug.json index 41de4bd..7458edd 100644 --- a/AOC/python/debug.json +++ b/AOC/python/debug.json @@ -1,48 +1,48 @@ { "z00": "y00 ^ x00", - "z01": "(y01 ^ x01) ^ (y00 & x00)", - "z02": "(x02 ^ y02) ^ ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))", - "z03": "((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01))))) ^ (y03 ^ x03)", - "z04": "(y04 ^ x04) ^ (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))", - "z05": "(x05 ^ y05) ^ (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))", - "z06": "(x06 ^ y06) ^ ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))", - "z07": "(((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) ^ (y07 ^ x07)", - "z08": "(y08 ^ x08) ^ (((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07))", - "z09": "((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) ^ (y09 ^ x09)", - "z10": "(x10 ^ y10) ^ ((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09))", - "z11": "(y11 & x11) ^ ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))", - "z12": "(y12 ^ x12) ^ (((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11))", - "z13": "(y13 ^ x13) ^ ((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12)))", - "z14": "((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))) ^ (x14 ^ y14)", - "z15": "(y15 ^ x15) ^ ((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13)))))", - "z16": "((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) ^ (x16 ^ y16)", - "z17": "(y17 & x17) | (((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)) & (y17 ^ x17))", - "z18": "(x18 ^ y18) ^ ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))", - "z19": "(x19 ^ y19) ^ (((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18))", - "z20": "(x20 ^ y20) ^ (((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19))", - "z21": "(y21 ^ x21) ^ (((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20))", - "z22": "(((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) ^ (x22 ^ y22)", - "z23": "((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22))) ^ (y23 ^ x23)", - "z24": "(y24 ^ x24) ^ (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23))", - "z25": "((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) ^ (x25 ^ y25)", - "z26": "(y26 ^ x26) & ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25)))", - "z27": "(y27 ^ x27) ^ ((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25)))))", - "z28": "(y28 ^ x28) ^ ((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27))", - "z29": "((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) ^ (x29 ^ y29)", - "z30": "((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) ^ (y30 ^ x30)", - "z31": "(x31 ^ y31) ^ ((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30)))", - "z32": "((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) ^ (x32 ^ y32)", - "z33": "((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))) ^ (x33 ^ y33)", - "z34": "(y34 ^ x34) ^ ((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32)))))", - "z35": "(y35 ^ x35) ^ ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))", - "z36": "((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34)))) ^ (x36 ^ y36)", - "z37": "(x37 ^ y37) ^ (((x36 ^ y36) & ((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))))) | (x36 & y36))", - "z38": "(y38 ^ x38) ^ (((x37 ^ y37) & (((x36 ^ y36) & ((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))))) | (x36 & y36))) | (x37 & y37))", + "z01": "(y01 ^ x01)", + "z02": "(x02 ^ y02)", + "z03": "(y03 ^ x03)", + "z04": "(y04 ^ x04)", + "z05": "(x05 ^ y05)", + "z06": "(x06 ^ y06)", + "z07": "(y07 ^ x07)", + "z08": "(y08 ^ x08)", + "z09": "(y09 ^ x09)", + "z10": "(x10 ^ y10)", + "z11": "(y11 & x11)", + "z12": "(y12 ^ x12)", + "z13": "(y13 ^ x13)", + "z14": "(x14 ^ y14)", + "z15": "(y15 ^ x15)", + "z16": "(x16 ^ y16)", + "z17": "(y17 & x17) | & (y17 ^ x17))", + "z18": "(x18 ^ y18)", + "z19": "(x19 ^ y19)", + "z20": "(x20 ^ y20)", + "z21": "(y21 ^ x21)", + "z22": "(x22 ^ y22)", + "z23": "(y23 ^ x23)", + "z24": "(y24 ^ x24)", + "z25": "(x25 ^ y25)", + "z26": "(y26 ^ x26) &", + "z27": "(y27 ^ x27)", + "z28": "(y28 ^ x28)", + "z29": "(x29 ^ y29)", + "z30": "(y30 ^ x30)", + "z31": "(x31 ^ y31)", + "z32": "(x32 ^ y32)", + "z33": "(x33 ^ y33)", + "z34": "(y34 ^ x34)", + "z35": "(y35 ^ x35)", + "z36": "(x36 ^ y36)", + "z37": "(x37 ^ y37)", + "z38": "(y38 ^ x38)", "z39": "x39 & y39", - "z40": "(((y39 ^ x39) ^ (((((x37 ^ y37) & (((x36 ^ y36) & ((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))))) | (x36 & y36))) | (x37 & y37)) & (y38 ^ x38)) | (x38 & y38))) | ((y39 ^ x39) & (((((x37 ^ y37) & (((x36 ^ y36) & ((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))))) | (x36 & y36))) | (x37 & y37)) & (y38 ^ x38)) | (x38 & y38)))) ^ (y40 ^ x40)", - "z41": "((y40 & x40) | ((((y39 ^ x39) ^ (((((x37 ^ y37) & (((x36 ^ y36) & ((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))))) | (x36 & y36))) | (x37 & y37)) & (y38 ^ x38)) | (x38 & y38))) | ((y39 ^ x39) & (((((x37 ^ y37) & (((x36 ^ y36) & ((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))))) | (x36 & y36))) | (x37 & y37)) & (y38 ^ x38)) | (x38 & y38)))) & (y40 ^ x40))) ^ (y41 ^ x41)", - "z42": "(y42 ^ x42) ^ ((((y40 & x40) | ((((y39 ^ x39) ^ (((((x37 ^ y37) & (((x36 ^ y36) & ((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))))) | (x36 & y36))) | (x37 & y37)) & (y38 ^ x38)) | (x38 & y38))) | ((y39 ^ x39) & (((((x37 ^ y37) & (((x36 ^ y36) & ((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))))) | (x36 & y36))) | (x37 & y37)) & (y38 ^ x38)) | (x38 & y38)))) & (y40 ^ x40))) & (y41 ^ x41)) | (y41 & x41))", - "z43": "(((y42 ^ x42) & ((((y40 & x40) | ((((y39 ^ x39) ^ (((((x37 ^ y37) & (((x36 ^ y36) & ((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))))) | (x36 & y36))) | (x37 & y37)) & (y38 ^ x38)) | (x38 & y38))) | ((y39 ^ x39) & (((((x37 ^ y37) & (((x36 ^ y36) & ((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))))) | (x36 & y36))) | (x37 & y37)) & (y38 ^ x38)) | (x38 & y38)))) & (y40 ^ x40))) & (y41 ^ x41)) | (y41 & x41))) | (y42 & x42)) ^ (y43 ^ x43)", - "z44": "((y43 & x43) | ((y43 ^ x43) & (((y42 ^ x42) & ((((y40 & x40) | ((((y39 ^ x39) ^ (((((x37 ^ y37) & (((x36 ^ y36) & ((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))))) | (x36 & y36))) | (x37 & y37)) & (y38 ^ x38)) | (x38 & y38))) | ((y39 ^ x39) & (((((x37 ^ y37) & (((x36 ^ y36) & ((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))))) | (x36 & y36))) | (x37 & y37)) & (y38 ^ x38)) | (x38 & y38)))) & (y40 ^ x40))) & (y41 ^ x41)) | (y41 & x41))) | (y42 & x42)))) ^ (y44 ^ x44)", - "z45": "(((y43 & x43) | ((y43 ^ x43) & (((y42 ^ x42) & ((((y40 & x40) | ((((y39 ^ x39) ^ (((((x37 ^ y37) & (((x36 ^ y36) & ((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))))) | (x36 & y36))) | (x37 & y37)) & (y38 ^ x38)) | (x38 & y38))) | ((y39 ^ x39) & (((((x37 ^ y37) & (((x36 ^ y36) & ((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))))) | (x36 & y36))) | (x37 & y37)) & (y38 ^ x38)) | (x38 & y38)))) & (y40 ^ x40))) & (y41 ^ x41)) | (y41 & x41))) | (y42 & x42)))) & (y44 ^ x44)) | (y44 & x44)" + "z40": "(y40 ^ x40)", + "z41": "(y41 ^ x41)", + "z42": "(y42 ^ x42)", + "z43": "(y43 ^ x43)", + "z44": "(y44 ^ x44)", + "z45": "" } \ No newline at end of file diff --git a/AOC/python/debug_all.json b/AOC/python/debug_all.json new file mode 100644 index 0000000..41de4bd --- /dev/null +++ b/AOC/python/debug_all.json @@ -0,0 +1,48 @@ +{ + "z00": "y00 ^ x00", + "z01": "(y01 ^ x01) ^ (y00 & x00)", + "z02": "(x02 ^ y02) ^ ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))", + "z03": "((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01))))) ^ (y03 ^ x03)", + "z04": "(y04 ^ x04) ^ (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))", + "z05": "(x05 ^ y05) ^ (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))", + "z06": "(x06 ^ y06) ^ ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))", + "z07": "(((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) ^ (y07 ^ x07)", + "z08": "(y08 ^ x08) ^ (((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07))", + "z09": "((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) ^ (y09 ^ x09)", + "z10": "(x10 ^ y10) ^ ((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09))", + "z11": "(y11 & x11) ^ ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))", + "z12": "(y12 ^ x12) ^ (((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11))", + "z13": "(y13 ^ x13) ^ ((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12)))", + "z14": "((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))) ^ (x14 ^ y14)", + "z15": "(y15 ^ x15) ^ ((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13)))))", + "z16": "((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) ^ (x16 ^ y16)", + "z17": "(y17 & x17) | (((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)) & (y17 ^ x17))", + "z18": "(x18 ^ y18) ^ ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))", + "z19": "(x19 ^ y19) ^ (((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18))", + "z20": "(x20 ^ y20) ^ (((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19))", + "z21": "(y21 ^ x21) ^ (((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20))", + "z22": "(((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) ^ (x22 ^ y22)", + "z23": "((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22))) ^ (y23 ^ x23)", + "z24": "(y24 ^ x24) ^ (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23))", + "z25": "((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) ^ (x25 ^ y25)", + "z26": "(y26 ^ x26) & ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25)))", + "z27": "(y27 ^ x27) ^ ((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25)))))", + "z28": "(y28 ^ x28) ^ ((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27))", + "z29": "((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) ^ (x29 ^ y29)", + "z30": "((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) ^ (y30 ^ x30)", + "z31": "(x31 ^ y31) ^ ((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30)))", + "z32": "((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) ^ (x32 ^ y32)", + "z33": "((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))) ^ (x33 ^ y33)", + "z34": "(y34 ^ x34) ^ ((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32)))))", + "z35": "(y35 ^ x35) ^ ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))", + "z36": "((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34)))) ^ (x36 ^ y36)", + "z37": "(x37 ^ y37) ^ (((x36 ^ y36) & ((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))))) | (x36 & y36))", + "z38": "(y38 ^ x38) ^ (((x37 ^ y37) & (((x36 ^ y36) & ((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))))) | (x36 & y36))) | (x37 & y37))", + "z39": "x39 & y39", + "z40": "(((y39 ^ x39) ^ (((((x37 ^ y37) & (((x36 ^ y36) & ((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))))) | (x36 & y36))) | (x37 & y37)) & (y38 ^ x38)) | (x38 & y38))) | ((y39 ^ x39) & (((((x37 ^ y37) & (((x36 ^ y36) & ((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))))) | (x36 & y36))) | (x37 & y37)) & (y38 ^ x38)) | (x38 & y38)))) ^ (y40 ^ x40)", + "z41": "((y40 & x40) | ((((y39 ^ x39) ^ (((((x37 ^ y37) & (((x36 ^ y36) & ((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))))) | (x36 & y36))) | (x37 & y37)) & (y38 ^ x38)) | (x38 & y38))) | ((y39 ^ x39) & (((((x37 ^ y37) & (((x36 ^ y36) & ((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))))) | (x36 & y36))) | (x37 & y37)) & (y38 ^ x38)) | (x38 & y38)))) & (y40 ^ x40))) ^ (y41 ^ x41)", + "z42": "(y42 ^ x42) ^ ((((y40 & x40) | ((((y39 ^ x39) ^ (((((x37 ^ y37) & (((x36 ^ y36) & ((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))))) | (x36 & y36))) | (x37 & y37)) & (y38 ^ x38)) | (x38 & y38))) | ((y39 ^ x39) & (((((x37 ^ y37) & (((x36 ^ y36) & ((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))))) | (x36 & y36))) | (x37 & y37)) & (y38 ^ x38)) | (x38 & y38)))) & (y40 ^ x40))) & (y41 ^ x41)) | (y41 & x41))", + "z43": "(((y42 ^ x42) & ((((y40 & x40) | ((((y39 ^ x39) ^ (((((x37 ^ y37) & (((x36 ^ y36) & ((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))))) | (x36 & y36))) | (x37 & y37)) & (y38 ^ x38)) | (x38 & y38))) | ((y39 ^ x39) & (((((x37 ^ y37) & (((x36 ^ y36) & ((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))))) | (x36 & y36))) | (x37 & y37)) & (y38 ^ x38)) | (x38 & y38)))) & (y40 ^ x40))) & (y41 ^ x41)) | (y41 & x41))) | (y42 & x42)) ^ (y43 ^ x43)", + "z44": "((y43 & x43) | ((y43 ^ x43) & (((y42 ^ x42) & ((((y40 & x40) | ((((y39 ^ x39) ^ (((((x37 ^ y37) & (((x36 ^ y36) & ((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))))) | (x36 & y36))) | (x37 & y37)) & (y38 ^ x38)) | (x38 & y38))) | ((y39 ^ x39) & (((((x37 ^ y37) & (((x36 ^ y36) & ((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))))) | (x36 & y36))) | (x37 & y37)) & (y38 ^ x38)) | (x38 & y38)))) & (y40 ^ x40))) & (y41 ^ x41)) | (y41 & x41))) | (y42 & x42)))) ^ (y44 ^ x44)", + "z45": "(((y43 & x43) | ((y43 ^ x43) & (((y42 ^ x42) & ((((y40 & x40) | ((((y39 ^ x39) ^ (((((x37 ^ y37) & (((x36 ^ y36) & ((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))))) | (x36 & y36))) | (x37 & y37)) & (y38 ^ x38)) | (x38 & y38))) | ((y39 ^ x39) & (((((x37 ^ y37) & (((x36 ^ y36) & ((y35 & x35) | ((y35 ^ x35) & ((((y33 & x33) | ((x33 ^ y33) & ((x32 & y32) | (((y31 & x31) | (((x30 & y30) | (((x29 & y29) | (((((((x26 & y26) | ((y26 ^ x26) ^ ((y25 & x25) | (((x24 & y24) | ((y24 ^ x24) & (((y23 ^ x23) & ((x22 & y22) | ((((((((((x18 ^ y18) & ((y17 ^ x17) ^ ((((x15 & y15) | (((y14 & x14) | ((x14 ^ y14) & ((y13 & x13) | (((y12 & x12) | ((((y11 & x11) & ((((((y08 & x08) | ((((((x06 ^ y06) & ((x05 & y05) | ((x05 ^ y05) & (((y04 ^ x04) & (((y03 ^ x03) & ((y02 & x02) | ((x02 ^ y02) & ((x01 & y01) | ((y00 & x00) & (y01 ^ x01)))))) | (x03 & y03))) | (x04 & y04))))) | (x06 & y06)) & (y07 ^ x07)) | (x07 & y07)) & (y08 ^ x08))) & (y09 ^ x09)) | (x09 & y09)) & (x10 ^ y10)) | (y10 & x10))) | (x11 ^ y11)) & (y12 ^ x12))) & (y13 ^ x13))))) & (y15 ^ x15))) & (x16 ^ y16)) | (y16 & x16)))) | (x18 & y18)) & (x19 ^ y19)) | (y19 & x19)) & (x20 ^ y20)) | (y20 & x20)) & (y21 ^ x21)) | (x21 & y21)) & (x22 ^ y22)))) | (x23 & y23)))) & (x25 ^ y25))))) & (y27 ^ x27)) | (x27 & y27)) & (y28 ^ x28)) | (y28 & x28)) & (x29 ^ y29))) & (y30 ^ x30))) & (x31 ^ y31))) & (x32 ^ y32))))) & (y34 ^ x34)) | (x34 & y34))))) | (x36 & y36))) | (x37 & y37)) & (y38 ^ x38)) | (x38 & y38)))) & (y40 ^ x40))) & (y41 ^ x41)) | (y41 & x41))) | (y42 & x42)))) & (y44 ^ x44)) | (y44 & x44)" +} \ No newline at end of file diff --git a/AOC/python/solutions/day_24.py b/AOC/python/solutions/day_24.py index f5da42d..e4d846c 100644 --- a/AOC/python/solutions/day_24.py +++ b/AOC/python/solutions/day_24.py @@ -1,7 +1,5 @@ import contextlib -import json import re -from pathlib import Path from models.aoc_solution import AOCSolution @@ -9,7 +7,10 @@ class Day24(AOCSolution): EXPECTED = { "part_one": {"sample": 2024, "data": 49520947122770}, - "part_two": {"sample": 0, "data": 0}, + "part_two": { + "sample": "z00,z01,z02,z03,z04,z05", + "data": "gjc,gvm,qjj,qsb,wmp,z17,z26,z39", + }, } def __post_init__(self) -> None: @@ -26,8 +27,11 @@ def __post_init__(self) -> None: } @staticmethod - def parse_gate(gate: str, wires: dict[str, int]) -> int: - a, op, b = re.findall(r"(\w{3}) (AND|OR|XOR) (\w{3})", gate)[0] + def parse_gate(gate: str) -> tuple[str, str, str]: + return re.findall(r"(\w{3}) (AND|OR|XOR) (\w{3})", gate)[0] + + def evaluate_gate(self, gate: str, wires: dict[str, int]) -> int: + a, op, b = self.parse_gate(gate) return { "AND": wires[a] & wires[b], "OR": wires[a] | wires[b], @@ -40,7 +44,7 @@ def evaluate_gates(self, gates: dict[str, str]) -> dict[str, int]: while gates: for out, gate in list(gates.items()): with contextlib.suppress(KeyError): - wires[out] = self.parse_gate(gate, wires) + wires[out] = self.evaluate_gate(gate, wires) gates.pop(out) return wires @@ -51,13 +55,6 @@ def prefixed_values(prefix: str, values: dict[str, int]) -> list[tuple[str, str] reverse=True, ) - @staticmethod - def prefixed_gates(prefix: str, gates: dict[str, str]) -> list[tuple[str, str]]: - return sorted( - [(out, gate) for out, gate in gates.items() if out.startswith(prefix)], - reverse=True, - ) - def unpack_gate(self, gate: str) -> str: a, op, b = re.findall(r"(\w{3}) (AND|OR|XOR) (\w{3})", gate)[0] if a[0] not in {"x", "y"}: @@ -71,7 +68,7 @@ def unpack_gates(self, gates: dict[str, str]) -> dict[str, str]: """Perform replacements until only x and y gates remain""" gates = gates.copy() for key, value in gates.items(): - gates[key] = self.unpack_gate(value) + gates[key] = self.strip(key, self.unpack_gate(value)) return gates def part_one(self) -> int: @@ -80,15 +77,22 @@ def part_one(self) -> int: values = "".join((value for _, value in z_values)) return int(values, 2) - def part_two(self) -> int: - """ - By observation z12 is the first problem - """ - gates = self.unpack_gates(self.gates) - prefixed = self.prefixed_gates("z", gates) - Path("debug.json").write_text(json.dumps(dict(reversed(prefixed)), indent=4)) - print(gates) - return 0 + def part_two(self) -> str: + bad = set() + for output, eq in self.gates.items(): + a, op, b = re.findall(r"(\w{3}) (AND|OR|XOR) (\w{3})", eq)[0] + if output[0] == "z" and op != "XOR" and output != "z45": + bad.add(output) + if op == "XOR" and all(x[0] not in {"x", "y", "z"} for x in [a, b, output]): + bad.add(output) + if (op == "AND" and "x00" not in [a, b]) or op == "XOR": + for out2, eq2 in self.gates.items(): + c, op2, d = re.findall(r"(\w{3}) (AND|OR|XOR) (\w{3})", eq2)[0] + if output in {c, d} and ( + op2 == "OR" if op == "XOR" else op2 != "OR" + ): + bad.add(output) + return ",".join(sorted(bad)) if __name__ == "__main__":