diff --git a/snarkVerifier/contracts/yul/BigTestnetVerifier.yul b/snarkVerifier/contracts/yul/BigTestnetVerifier.yul index 42b4451..03c48cf 100644 --- a/snarkVerifier/contracts/yul/BigTestnetVerifier.yul +++ b/snarkVerifier/contracts/yul/BigTestnetVerifier.yul @@ -40,7 +40,7 @@ } mstore(0x20, mod(calldataload(0x0), f_q)) mstore(0x40, mod(calldataload(0x20), f_q)) -mstore(0x0, 3378792894150907689829298870770818314332772889554677988617186620215610859664) +mstore(0x0, 18195451809593975346080671558496097816127859411031546312484073833072873064160) { let x := calldataload(0x40) @@ -81,293 +81,288 @@ mstore(0x0, 33787928941509076898292988707708183143327728895546779886171866202156 mstore(0x180, y) success := and(validate_ec_point(x, y), success) } +mstore(0x1a0, keccak256(0x0, 416)) +{ + let hash := mload(0x1a0) + mstore(0x1c0, mod(hash, f_q)) + mstore(0x1e0, hash) + } +mstore8(512, 1) +mstore(0x200, keccak256(0x1e0, 33)) +{ + let hash := mload(0x200) + mstore(0x220, mod(hash, f_q)) + mstore(0x240, hash) + } { let x := calldataload(0x180) - mstore(0x1a0, x) + mstore(0x260, x) let y := calldataload(0x1a0) - mstore(0x1c0, y) + mstore(0x280, y) success := and(validate_ec_point(x, y), success) } { let x := calldataload(0x1c0) - mstore(0x1e0, x) + mstore(0x2a0, x) let y := calldataload(0x1e0) - mstore(0x200, y) + mstore(0x2c0, y) success := and(validate_ec_point(x, y), success) } { let x := calldataload(0x200) - mstore(0x220, x) + mstore(0x2e0, x) let y := calldataload(0x220) - mstore(0x240, y) + mstore(0x300, y) success := and(validate_ec_point(x, y), success) } { let x := calldataload(0x240) - mstore(0x260, x) + mstore(0x320, x) let y := calldataload(0x260) - mstore(0x280, y) + mstore(0x340, y) success := and(validate_ec_point(x, y), success) } { let x := calldataload(0x280) - mstore(0x2a0, x) + mstore(0x360, x) let y := calldataload(0x2a0) - mstore(0x2c0, y) + mstore(0x380, y) success := and(validate_ec_point(x, y), success) } +mstore(0x3a0, keccak256(0x240, 352)) +{ + let hash := mload(0x3a0) + mstore(0x3c0, mod(hash, f_q)) + mstore(0x3e0, hash) + } { let x := calldataload(0x2c0) - mstore(0x2e0, x) + mstore(0x400, x) let y := calldataload(0x2e0) - mstore(0x300, y) + mstore(0x420, y) success := and(validate_ec_point(x, y), success) } { let x := calldataload(0x300) - mstore(0x320, x) + mstore(0x440, x) let y := calldataload(0x320) - mstore(0x340, y) + mstore(0x460, y) success := and(validate_ec_point(x, y), success) } -mstore(0x360, keccak256(0x0, 864)) -{ - let hash := mload(0x360) - mstore(0x380, mod(hash, f_q)) - mstore(0x3a0, hash) - } { let x := calldataload(0x340) - mstore(0x3c0, x) + mstore(0x480, x) let y := calldataload(0x360) - mstore(0x3e0, y) + mstore(0x4a0, y) success := and(validate_ec_point(x, y), success) } { let x := calldataload(0x380) - mstore(0x400, x) + mstore(0x4c0, x) let y := calldataload(0x3a0) - mstore(0x420, y) + mstore(0x4e0, y) success := and(validate_ec_point(x, y), success) } +mstore(0x500, keccak256(0x3e0, 288)) +{ + let hash := mload(0x500) + mstore(0x520, mod(hash, f_q)) + mstore(0x540, hash) + } +mstore8(1376, 1) +mstore(0x560, keccak256(0x540, 33)) +{ + let hash := mload(0x560) + mstore(0x580, mod(hash, f_q)) + mstore(0x5a0, hash) + } { let x := calldataload(0x3c0) - mstore(0x440, x) + mstore(0x5c0, x) let y := calldataload(0x3e0) - mstore(0x460, y) + mstore(0x5e0, y) success := and(validate_ec_point(x, y), success) } { let x := calldataload(0x400) - mstore(0x480, x) + mstore(0x600, x) let y := calldataload(0x420) - mstore(0x4a0, y) + mstore(0x620, y) success := and(validate_ec_point(x, y), success) } -mstore(0x4c0, keccak256(0x3a0, 288)) -{ - let hash := mload(0x4c0) - mstore(0x4e0, mod(hash, f_q)) - mstore(0x500, hash) - } -mstore8(1312, 1) -mstore(0x520, keccak256(0x500, 33)) -{ - let hash := mload(0x520) - mstore(0x540, mod(hash, f_q)) - mstore(0x560, hash) - } { let x := calldataload(0x440) - mstore(0x580, x) + mstore(0x640, x) let y := calldataload(0x460) - mstore(0x5a0, y) + mstore(0x660, y) success := and(validate_ec_point(x, y), success) } { let x := calldataload(0x480) - mstore(0x5c0, x) + mstore(0x680, x) let y := calldataload(0x4a0) - mstore(0x5e0, y) + mstore(0x6a0, y) success := and(validate_ec_point(x, y), success) } { let x := calldataload(0x4c0) - mstore(0x600, x) + mstore(0x6c0, x) let y := calldataload(0x4e0) - mstore(0x620, y) + mstore(0x6e0, y) success := and(validate_ec_point(x, y), success) } +mstore(0x700, keccak256(0x5a0, 352)) +{ + let hash := mload(0x700) + mstore(0x720, mod(hash, f_q)) + mstore(0x740, hash) + } { let x := calldataload(0x500) - mstore(0x640, x) + mstore(0x760, x) let y := calldataload(0x520) - mstore(0x660, y) + mstore(0x780, y) success := and(validate_ec_point(x, y), success) } { let x := calldataload(0x540) - mstore(0x680, x) + mstore(0x7a0, x) let y := calldataload(0x560) - mstore(0x6a0, y) + mstore(0x7c0, y) success := and(validate_ec_point(x, y), success) } -mstore(0x6c0, keccak256(0x560, 352)) -{ - let hash := mload(0x6c0) - mstore(0x6e0, mod(hash, f_q)) - mstore(0x700, hash) - } { let x := calldataload(0x580) - mstore(0x720, x) + mstore(0x7e0, x) let y := calldataload(0x5a0) - mstore(0x740, y) + mstore(0x800, y) success := and(validate_ec_point(x, y), success) } { let x := calldataload(0x5c0) - mstore(0x760, x) + mstore(0x820, x) let y := calldataload(0x5e0) - mstore(0x780, y) + mstore(0x840, y) success := and(validate_ec_point(x, y), success) } { let x := calldataload(0x600) - mstore(0x7a0, x) + mstore(0x860, x) let y := calldataload(0x620) - mstore(0x7c0, y) + mstore(0x880, y) success := and(validate_ec_point(x, y), success) } - - { - let x := calldataload(0x640) - mstore(0x7e0, x) - let y := calldataload(0x660) - mstore(0x800, y) - success := and(validate_ec_point(x, y), success) +mstore(0x8a0, keccak256(0x740, 352)) +{ + let hash := mload(0x8a0) + mstore(0x8c0, mod(hash, f_q)) + mstore(0x8e0, hash) + } +mstore(0x900, mod(calldataload(0x640), f_q)) +mstore(0x920, mod(calldataload(0x660), f_q)) +mstore(0x940, mod(calldataload(0x680), f_q)) +mstore(0x960, mod(calldataload(0x6a0), f_q)) +mstore(0x980, mod(calldataload(0x6c0), f_q)) +mstore(0x9a0, mod(calldataload(0x6e0), f_q)) +mstore(0x9c0, mod(calldataload(0x700), f_q)) +mstore(0x9e0, mod(calldataload(0x720), f_q)) +mstore(0xa00, mod(calldataload(0x740), f_q)) +mstore(0xa20, mod(calldataload(0x760), f_q)) +mstore(0xa40, mod(calldataload(0x780), f_q)) +mstore(0xa60, mod(calldataload(0x7a0), f_q)) +mstore(0xa80, mod(calldataload(0x7c0), f_q)) +mstore(0xaa0, mod(calldataload(0x7e0), f_q)) +mstore(0xac0, mod(calldataload(0x800), f_q)) +mstore(0xae0, mod(calldataload(0x820), f_q)) +mstore(0xb00, mod(calldataload(0x840), f_q)) +mstore(0xb20, mod(calldataload(0x860), f_q)) +mstore(0xb40, mod(calldataload(0x880), f_q)) +mstore(0xb60, mod(calldataload(0x8a0), f_q)) +mstore(0xb80, mod(calldataload(0x8c0), f_q)) +mstore(0xba0, mod(calldataload(0x8e0), f_q)) +mstore(0xbc0, mod(calldataload(0x900), f_q)) +mstore(0xbe0, mod(calldataload(0x920), f_q)) +mstore(0xc00, mod(calldataload(0x940), f_q)) +mstore(0xc20, mod(calldataload(0x960), f_q)) +mstore(0xc40, mod(calldataload(0x980), f_q)) +mstore(0xc60, mod(calldataload(0x9a0), f_q)) +mstore(0xc80, mod(calldataload(0x9c0), f_q)) +mstore(0xca0, mod(calldataload(0x9e0), f_q)) +mstore(0xcc0, mod(calldataload(0xa00), f_q)) +mstore(0xce0, mod(calldataload(0xa20), f_q)) +mstore(0xd00, mod(calldataload(0xa40), f_q)) +mstore(0xd20, mod(calldataload(0xa60), f_q)) +mstore(0xd40, mod(calldataload(0xa80), f_q)) +mstore(0xd60, mod(calldataload(0xaa0), f_q)) +mstore(0xd80, mod(calldataload(0xac0), f_q)) +mstore(0xda0, mod(calldataload(0xae0), f_q)) +mstore(0xdc0, mod(calldataload(0xb00), f_q)) +mstore(0xde0, keccak256(0x8e0, 1280)) +{ + let hash := mload(0xde0) + mstore(0xe00, mod(hash, f_q)) + mstore(0xe20, hash) } { - let x := calldataload(0x680) - mstore(0x820, x) - let y := calldataload(0x6a0) - mstore(0x840, y) + let x := calldataload(0xb20) + mstore(0xe40, x) + let y := calldataload(0xb40) + mstore(0xe60, y) success := and(validate_ec_point(x, y), success) } -mstore(0x860, keccak256(0x700, 352)) -{ - let hash := mload(0x860) - mstore(0x880, mod(hash, f_q)) - mstore(0x8a0, hash) - } -mstore(0x8c0, mod(calldataload(0x6c0), f_q)) -mstore(0x8e0, mod(calldataload(0x6e0), f_q)) -mstore(0x900, mod(calldataload(0x700), f_q)) -mstore(0x920, mod(calldataload(0x720), f_q)) -mstore(0x940, mod(calldataload(0x740), f_q)) -mstore(0x960, mod(calldataload(0x760), f_q)) -mstore(0x980, mod(calldataload(0x780), f_q)) -mstore(0x9a0, mod(calldataload(0x7a0), f_q)) -mstore(0x9c0, mod(calldataload(0x7c0), f_q)) -mstore(0x9e0, mod(calldataload(0x7e0), f_q)) -mstore(0xa00, mod(calldataload(0x800), f_q)) -mstore(0xa20, mod(calldataload(0x820), f_q)) -mstore(0xa40, mod(calldataload(0x840), f_q)) -mstore(0xa60, mod(calldataload(0x860), f_q)) -mstore(0xa80, mod(calldataload(0x880), f_q)) -mstore(0xaa0, mod(calldataload(0x8a0), f_q)) -mstore(0xac0, mod(calldataload(0x8c0), f_q)) -mstore(0xae0, mod(calldataload(0x8e0), f_q)) -mstore(0xb00, mod(calldataload(0x900), f_q)) -mstore(0xb20, mod(calldataload(0x920), f_q)) -mstore(0xb40, mod(calldataload(0x940), f_q)) -mstore(0xb60, mod(calldataload(0x960), f_q)) -mstore(0xb80, mod(calldataload(0x980), f_q)) -mstore(0xba0, mod(calldataload(0x9a0), f_q)) -mstore(0xbc0, mod(calldataload(0x9c0), f_q)) -mstore(0xbe0, mod(calldataload(0x9e0), f_q)) -mstore(0xc00, mod(calldataload(0xa00), f_q)) -mstore(0xc20, mod(calldataload(0xa20), f_q)) -mstore(0xc40, mod(calldataload(0xa40), f_q)) -mstore(0xc60, mod(calldataload(0xa60), f_q)) -mstore(0xc80, mod(calldataload(0xa80), f_q)) -mstore(0xca0, mod(calldataload(0xaa0), f_q)) -mstore(0xcc0, mod(calldataload(0xac0), f_q)) -mstore(0xce0, mod(calldataload(0xae0), f_q)) -mstore(0xd00, mod(calldataload(0xb00), f_q)) -mstore(0xd20, mod(calldataload(0xb20), f_q)) -mstore(0xd40, mod(calldataload(0xb40), f_q)) -mstore(0xd60, mod(calldataload(0xb60), f_q)) -mstore(0xd80, mod(calldataload(0xb80), f_q)) -mstore(0xda0, mod(calldataload(0xba0), f_q)) -mstore(0xdc0, mod(calldataload(0xbc0), f_q)) -mstore(0xde0, mod(calldataload(0xbe0), f_q)) -mstore(0xe00, mod(calldataload(0xc00), f_q)) -mstore(0xe20, keccak256(0x8a0, 1408)) -{ - let hash := mload(0xe20) - mstore(0xe40, mod(hash, f_q)) - mstore(0xe60, hash) - } { - let x := calldataload(0xc20) + let x := calldataload(0xb60) mstore(0xe80, x) - let y := calldataload(0xc40) + let y := calldataload(0xb80) mstore(0xea0, y) success := and(validate_ec_point(x, y), success) } { - let x := calldataload(0xc60) + let x := calldataload(0xba0) mstore(0xec0, x) - let y := calldataload(0xc80) + let y := calldataload(0xbc0) mstore(0xee0, y) success := and(validate_ec_point(x, y), success) } { - let x := calldataload(0xca0) + let x := calldataload(0xbe0) mstore(0xf00, x) - let y := calldataload(0xcc0) + let y := calldataload(0xc00) mstore(0xf20, y) success := and(validate_ec_point(x, y), success) } - - { - let x := calldataload(0xce0) - mstore(0xf40, x) - let y := calldataload(0xd00) - mstore(0xf60, y) - success := and(validate_ec_point(x, y), success) - } -mstore(0xf80, keccak256(0xe60, 288)) +mstore(0xf40, keccak256(0xe20, 288)) { - let hash := mload(0xf80) - mstore(0xfa0, mod(hash, f_q)) - mstore(0xfc0, hash) + let hash := mload(0xf40) + mstore(0xf60, mod(hash, f_q)) + mstore(0xf80, hash) } -mstore(0xfe0, mulmod(mload(0x880), mload(0x880), f_q)) +mstore(0xfa0, mulmod(mload(0x8c0), mload(0x8c0), f_q)) +mstore(0xfc0, mulmod(mload(0xfa0), mload(0xfa0), f_q)) +mstore(0xfe0, mulmod(mload(0xfc0), mload(0xfc0), f_q)) mstore(0x1000, mulmod(mload(0xfe0), mload(0xfe0), f_q)) mstore(0x1020, mulmod(mload(0x1000), mload(0x1000), f_q)) mstore(0x1040, mulmod(mload(0x1020), mload(0x1020), f_q)) @@ -384,944 +379,889 @@ mstore(0x1180, mulmod(mload(0x1160), mload(0x1160), f_q)) mstore(0x11a0, mulmod(mload(0x1180), mload(0x1180), f_q)) mstore(0x11c0, mulmod(mload(0x11a0), mload(0x11a0), f_q)) mstore(0x11e0, mulmod(mload(0x11c0), mload(0x11c0), f_q)) -mstore(0x1200, mulmod(mload(0x11e0), mload(0x11e0), f_q)) -mstore(0x1220, mulmod(mload(0x1200), mload(0x1200), f_q)) -mstore(0x1240, addmod(mload(0x1220), 21888242871839275222246405745257275088548364400416034343698204186575808495616, f_q)) -mstore(0x1260, mulmod(mload(0x1240), 21888201123329158951656153352668191879939568188478319927128792530760328118785, f_q)) -mstore(0x1280, mulmod(mload(0x1260), 15837174511167031493871940795515473313759957271874477857633393696392913897559, f_q)) -mstore(0x12a0, addmod(mload(0x880), 6051068360672243728374464949741801774788407128541556486064810490182894598058, f_q)) -mstore(0x12c0, mulmod(mload(0x1260), 1769632609887742868080915468068339302011836563132608883078842147442873613232, f_q)) -mstore(0x12e0, addmod(mload(0x880), 20118610261951532354165490277188935786536527837283425460619362039132934882385, f_q)) -mstore(0x1300, mulmod(mload(0x1260), 11402394834529375719535454173347509224290498423785625657829583372803806900475, f_q)) -mstore(0x1320, addmod(mload(0x880), 10485848037309899502710951571909765864257865976630408685868620813772001595142, f_q)) -mstore(0x1340, mulmod(mload(0x1260), 13315224328250071823986980334210714047804323884995968263773489477577155309695, f_q)) -mstore(0x1360, addmod(mload(0x880), 8573018543589203398259425411046561040744040515420066079924714708998653185922, f_q)) -mstore(0x1380, mulmod(mload(0x1260), 6363119021782681274480715230122258277189830284152385293217720612674619714422, f_q)) -mstore(0x13a0, addmod(mload(0x880), 15525123850056593947765690515135016811358534116263649050480483573901188781195, f_q)) -mstore(0x13c0, mulmod(mload(0x1260), 14686510910986211321976396297238126901237973400949744736326777596334651355305, f_q)) -mstore(0x13e0, addmod(mload(0x880), 7201731960853063900270009448019148187310390999466289607371426590241157140312, f_q)) -mstore(0x1400, mulmod(mload(0x1260), 1, f_q)) -mstore(0x1420, addmod(mload(0x880), 21888242871839275222246405745257275088548364400416034343698204186575808495616, f_q)) -mstore(0x1440, mulmod(mload(0x1260), 5854133144571823792863860130267644613802765696134002830362054821530146160770, f_q)) -mstore(0x1460, addmod(mload(0x880), 16034109727267451429382545614989630474745598704282031513336149365045662334847, f_q)) +mstore(0x1200, addmod(mload(0x11e0), 21888242871839275222246405745257275088548364400416034343698204186575808495616, f_q)) +mstore(0x1220, mulmod(mload(0x1200), 21888201123329158951656153352668191879939568188478319927128792530760328118785, f_q)) +mstore(0x1240, mulmod(mload(0x1220), 15837174511167031493871940795515473313759957271874477857633393696392913897559, f_q)) +mstore(0x1260, addmod(mload(0x8c0), 6051068360672243728374464949741801774788407128541556486064810490182894598058, f_q)) +mstore(0x1280, mulmod(mload(0x1220), 1769632609887742868080915468068339302011836563132608883078842147442873613232, f_q)) +mstore(0x12a0, addmod(mload(0x8c0), 20118610261951532354165490277188935786536527837283425460619362039132934882385, f_q)) +mstore(0x12c0, mulmod(mload(0x1220), 11402394834529375719535454173347509224290498423785625657829583372803806900475, f_q)) +mstore(0x12e0, addmod(mload(0x8c0), 10485848037309899502710951571909765864257865976630408685868620813772001595142, f_q)) +mstore(0x1300, mulmod(mload(0x1220), 13315224328250071823986980334210714047804323884995968263773489477577155309695, f_q)) +mstore(0x1320, addmod(mload(0x8c0), 8573018543589203398259425411046561040744040515420066079924714708998653185922, f_q)) +mstore(0x1340, mulmod(mload(0x1220), 6363119021782681274480715230122258277189830284152385293217720612674619714422, f_q)) +mstore(0x1360, addmod(mload(0x8c0), 15525123850056593947765690515135016811358534116263649050480483573901188781195, f_q)) +mstore(0x1380, mulmod(mload(0x1220), 14686510910986211321976396297238126901237973400949744736326777596334651355305, f_q)) +mstore(0x13a0, addmod(mload(0x8c0), 7201731960853063900270009448019148187310390999466289607371426590241157140312, f_q)) +mstore(0x13c0, mulmod(mload(0x1220), 1, f_q)) +mstore(0x13e0, addmod(mload(0x8c0), 21888242871839275222246405745257275088548364400416034343698204186575808495616, f_q)) +mstore(0x1400, mulmod(mload(0x1220), 5854133144571823792863860130267644613802765696134002830362054821530146160770, f_q)) +mstore(0x1420, addmod(mload(0x8c0), 16034109727267451429382545614989630474745598704282031513336149365045662334847, f_q)) { - let prod := mload(0x12a0) + let prod := mload(0x1260) + prod := mulmod(mload(0x12a0), prod, f_q) + mstore(0x1440, prod) + prod := mulmod(mload(0x12e0), prod, f_q) - mstore(0x1480, prod) + mstore(0x1460, prod) prod := mulmod(mload(0x1320), prod, f_q) - mstore(0x14a0, prod) + mstore(0x1480, prod) prod := mulmod(mload(0x1360), prod, f_q) - mstore(0x14c0, prod) + mstore(0x14a0, prod) prod := mulmod(mload(0x13a0), prod, f_q) - mstore(0x14e0, prod) + mstore(0x14c0, prod) prod := mulmod(mload(0x13e0), prod, f_q) - mstore(0x1500, prod) + mstore(0x14e0, prod) prod := mulmod(mload(0x1420), prod, f_q) - mstore(0x1520, prod) - - prod := mulmod(mload(0x1460), prod, f_q) - mstore(0x1540, prod) + mstore(0x1500, prod) - prod := mulmod(mload(0x1240), prod, f_q) - mstore(0x1560, prod) + prod := mulmod(mload(0x1200), prod, f_q) + mstore(0x1520, prod) } +mstore(0x1560, 32) +mstore(0x1580, 32) mstore(0x15a0, 32) -mstore(0x15c0, 32) -mstore(0x15e0, 32) -mstore(0x1600, mload(0x1560)) -mstore(0x1620, 21888242871839275222246405745257275088548364400416034343698204186575808495615) -mstore(0x1640, 21888242871839275222246405745257275088548364400416034343698204186575808495617) -success := and(eq(staticcall(gas(), 0x5, 0x15a0, 0xc0, 0x1580, 0x20), 1), success) +mstore(0x15c0, mload(0x1520)) +mstore(0x15e0, 21888242871839275222246405745257275088548364400416034343698204186575808495615) +mstore(0x1600, 21888242871839275222246405745257275088548364400416034343698204186575808495617) +success := and(eq(staticcall(gas(), 0x5, 0x1560, 0xc0, 0x1540, 0x20), 1), success) { - let inv := mload(0x1580) + let inv := mload(0x1540) let v - v := mload(0x1240) - mstore(4672, mulmod(mload(0x1540), inv, f_q)) - inv := mulmod(v, inv, f_q) - - v := mload(0x1460) - mstore(5216, mulmod(mload(0x1520), inv, f_q)) + v := mload(0x1200) + mstore(4608, mulmod(mload(0x1500), inv, f_q)) inv := mulmod(v, inv, f_q) v := mload(0x1420) - mstore(5152, mulmod(mload(0x1500), inv, f_q)) + mstore(5152, mulmod(mload(0x14e0), inv, f_q)) inv := mulmod(v, inv, f_q) v := mload(0x13e0) - mstore(5088, mulmod(mload(0x14e0), inv, f_q)) + mstore(5088, mulmod(mload(0x14c0), inv, f_q)) inv := mulmod(v, inv, f_q) v := mload(0x13a0) - mstore(5024, mulmod(mload(0x14c0), inv, f_q)) + mstore(5024, mulmod(mload(0x14a0), inv, f_q)) inv := mulmod(v, inv, f_q) v := mload(0x1360) - mstore(4960, mulmod(mload(0x14a0), inv, f_q)) + mstore(4960, mulmod(mload(0x1480), inv, f_q)) inv := mulmod(v, inv, f_q) v := mload(0x1320) - mstore(4896, mulmod(mload(0x1480), inv, f_q)) + mstore(4896, mulmod(mload(0x1460), inv, f_q)) inv := mulmod(v, inv, f_q) v := mload(0x12e0) - mstore(4832, mulmod(mload(0x12a0), inv, f_q)) + mstore(4832, mulmod(mload(0x1440), inv, f_q)) inv := mulmod(v, inv, f_q) - mstore(0x12a0, inv) + + v := mload(0x12a0) + mstore(4768, mulmod(mload(0x1260), inv, f_q)) + inv := mulmod(v, inv, f_q) + mstore(0x1260, inv) } -mstore(0x1660, mulmod(mload(0x1280), mload(0x12a0), f_q)) -mstore(0x1680, mulmod(mload(0x12c0), mload(0x12e0), f_q)) -mstore(0x16a0, mulmod(mload(0x1300), mload(0x1320), f_q)) -mstore(0x16c0, mulmod(mload(0x1340), mload(0x1360), f_q)) -mstore(0x16e0, mulmod(mload(0x1380), mload(0x13a0), f_q)) -mstore(0x1700, mulmod(mload(0x13c0), mload(0x13e0), f_q)) -mstore(0x1720, mulmod(mload(0x1400), mload(0x1420), f_q)) -mstore(0x1740, mulmod(mload(0x1440), mload(0x1460), f_q)) +mstore(0x1620, mulmod(mload(0x1240), mload(0x1260), f_q)) +mstore(0x1640, mulmod(mload(0x1280), mload(0x12a0), f_q)) +mstore(0x1660, mulmod(mload(0x12c0), mload(0x12e0), f_q)) +mstore(0x1680, mulmod(mload(0x1300), mload(0x1320), f_q)) +mstore(0x16a0, mulmod(mload(0x1340), mload(0x1360), f_q)) +mstore(0x16c0, mulmod(mload(0x1380), mload(0x13a0), f_q)) +mstore(0x16e0, mulmod(mload(0x13c0), mload(0x13e0), f_q)) +mstore(0x1700, mulmod(mload(0x1400), mload(0x1420), f_q)) { - let result := mulmod(mload(0x1720), mload(0x20), f_q) -result := addmod(mulmod(mload(0x1740), mload(0x40), f_q), result, f_q) -mstore(5984, result) + let result := mulmod(mload(0x16e0), mload(0x20), f_q) +result := addmod(mulmod(mload(0x1700), mload(0x40), f_q), result, f_q) +mstore(5920, result) } -mstore(0x1780, addmod(mload(0x940), sub(f_q, mload(0x8c0)), f_q)) -mstore(0x17a0, mulmod(mload(0x1780), mload(0xae0), f_q)) -mstore(0x17c0, mulmod(mload(0x6e0), mload(0x17a0), f_q)) -mstore(0x17e0, mulmod(100, mload(0x900), f_q)) -mstore(0x1800, addmod(mload(0x17e0), mload(0x940), f_q)) -mstore(0x1820, addmod(mload(0x960), sub(f_q, mload(0x1800)), f_q)) -mstore(0x1840, mulmod(mload(0x1820), mload(0xb40), f_q)) -mstore(0x1860, addmod(mload(0x17c0), mload(0x1840), f_q)) -mstore(0x1880, mulmod(mload(0x6e0), mload(0x1860), f_q)) -mstore(0x18a0, addmod(mload(0x900), sub(f_q, mload(0x8c0)), f_q)) -mstore(0x18c0, mulmod(mload(0x18a0), mload(0xb20), f_q)) +mstore(0x1740, mulmod(mload(0x720), 0, f_q)) +mstore(0x1760, mulmod(mload(0x1c0), mload(0xa40), f_q)) +mstore(0x1780, addmod(1, sub(f_q, mload(0xa40)), f_q)) +mstore(0x17a0, mulmod(256, mload(0x1780), f_q)) +mstore(0x17c0, addmod(mload(0x1760), mload(0x17a0), f_q)) +mstore(0x17e0, mulmod(mload(0x17c0), mload(0x920), f_q)) +mstore(0x1800, addmod(mload(0x17e0), mload(0x9a0), f_q)) +mstore(0x1820, addmod(mload(0x980), sub(f_q, mload(0x1800)), f_q)) +mstore(0x1840, mulmod(mload(0x1820), mload(0xaa0), f_q)) +mstore(0x1860, addmod(mload(0x1740), mload(0x1840), f_q)) +mstore(0x1880, mulmod(mload(0x720), mload(0x1860), f_q)) +mstore(0x18a0, addmod(mload(0x920), sub(f_q, mload(0x900)), f_q)) +mstore(0x18c0, mulmod(mload(0x18a0), mload(0xa80), f_q)) mstore(0x18e0, addmod(mload(0x1880), mload(0x18c0), f_q)) -mstore(0x1900, mulmod(mload(0x6e0), mload(0x18e0), f_q)) -mstore(0x1920, mulmod(100, mload(0xa80), f_q)) -mstore(0x1940, addmod(1, sub(f_q, mload(0xa80)), f_q)) -mstore(0x1960, mulmod(256, mload(0x1940), f_q)) -mstore(0x1980, addmod(mload(0x1920), mload(0x1960), f_q)) -mstore(0x19a0, mulmod(mload(0x1980), mload(0x9a0), f_q)) -mstore(0x19c0, addmod(mload(0x19a0), mload(0x9c0), f_q)) -mstore(0x19e0, addmod(mload(0x980), sub(f_q, mload(0x19c0)), f_q)) -mstore(0x1a00, mulmod(mload(0x19e0), mload(0xae0), f_q)) -mstore(0x1a20, addmod(mload(0x1900), mload(0x1a00), f_q)) -mstore(0x1a40, mulmod(mload(0x6e0), mload(0x1a20), f_q)) -mstore(0x1a60, addmod(mload(0x9a0), sub(f_q, mload(0x8e0)), f_q)) -mstore(0x1a80, mulmod(mload(0x1a60), mload(0xac0), f_q)) -mstore(0x1aa0, addmod(mload(0x1a40), mload(0x1a80), f_q)) -mstore(0x1ac0, mulmod(mload(0x6e0), mload(0x1aa0), f_q)) -mstore(0x1ae0, addmod(mload(0x9a0), sub(f_q, mload(0x8c0)), f_q)) -mstore(0x1b00, mulmod(mload(0x1ae0), mload(0xb00), f_q)) -mstore(0x1b20, addmod(mload(0x1ac0), mload(0x1b00), f_q)) -mstore(0x1b40, mulmod(mload(0x6e0), mload(0x1b20), f_q)) -mstore(0x1b60, addmod(1, sub(f_q, mload(0xc40)), f_q)) -mstore(0x1b80, mulmod(mload(0x1b60), mload(0x1720), f_q)) -mstore(0x1ba0, addmod(mload(0x1b40), mload(0x1b80), f_q)) -mstore(0x1bc0, mulmod(mload(0x6e0), mload(0x1ba0), f_q)) -mstore(0x1be0, mulmod(mload(0xca0), mload(0xca0), f_q)) -mstore(0x1c00, addmod(mload(0x1be0), sub(f_q, mload(0xca0)), f_q)) -mstore(0x1c20, mulmod(mload(0x1c00), mload(0x1660), f_q)) -mstore(0x1c40, addmod(mload(0x1bc0), mload(0x1c20), f_q)) -mstore(0x1c60, mulmod(mload(0x6e0), mload(0x1c40), f_q)) -mstore(0x1c80, addmod(mload(0xca0), sub(f_q, mload(0xc80)), f_q)) -mstore(0x1ca0, mulmod(mload(0x1c80), mload(0x1720), f_q)) -mstore(0x1cc0, addmod(mload(0x1c60), mload(0x1ca0), f_q)) -mstore(0x1ce0, mulmod(mload(0x6e0), mload(0x1cc0), f_q)) -mstore(0x1d00, addmod(1, sub(f_q, mload(0x1660)), f_q)) -mstore(0x1d20, addmod(mload(0x1680), mload(0x16a0), f_q)) -mstore(0x1d40, addmod(mload(0x1d20), mload(0x16c0), f_q)) -mstore(0x1d60, addmod(mload(0x1d40), mload(0x16e0), f_q)) -mstore(0x1d80, addmod(mload(0x1d60), mload(0x1700), f_q)) -mstore(0x1da0, addmod(mload(0x1d00), sub(f_q, mload(0x1d80)), f_q)) -mstore(0x1dc0, mulmod(mload(0xba0), mload(0x4e0), f_q)) -mstore(0x1de0, addmod(mload(0x8c0), mload(0x1dc0), f_q)) -mstore(0x1e00, addmod(mload(0x1de0), mload(0x540), f_q)) -mstore(0x1e20, mulmod(mload(0xbc0), mload(0x4e0), f_q)) -mstore(0x1e40, addmod(mload(0x8e0), mload(0x1e20), f_q)) -mstore(0x1e60, addmod(mload(0x1e40), mload(0x540), f_q)) -mstore(0x1e80, mulmod(mload(0x1e60), mload(0x1e00), f_q)) -mstore(0x1ea0, mulmod(mload(0xbe0), mload(0x4e0), f_q)) -mstore(0x1ec0, addmod(mload(0x900), mload(0x1ea0), f_q)) -mstore(0x1ee0, addmod(mload(0x1ec0), mload(0x540), f_q)) -mstore(0x1f00, mulmod(mload(0x1ee0), mload(0x1e80), f_q)) -mstore(0x1f20, mulmod(mload(0xc00), mload(0x4e0), f_q)) -mstore(0x1f40, addmod(mload(0x920), mload(0x1f20), f_q)) -mstore(0x1f60, addmod(mload(0x1f40), mload(0x540), f_q)) -mstore(0x1f80, mulmod(mload(0x1f60), mload(0x1f00), f_q)) -mstore(0x1fa0, mulmod(mload(0x1f80), mload(0xc60), f_q)) -mstore(0x1fc0, mulmod(1, mload(0x4e0), f_q)) -mstore(0x1fe0, mulmod(mload(0x880), mload(0x1fc0), f_q)) -mstore(0x2000, addmod(mload(0x8c0), mload(0x1fe0), f_q)) -mstore(0x2020, addmod(mload(0x2000), mload(0x540), f_q)) -mstore(0x2040, mulmod(4131629893567559867359510883348571134090853742863529169391034518566172092834, mload(0x4e0), f_q)) -mstore(0x2060, mulmod(mload(0x880), mload(0x2040), f_q)) -mstore(0x2080, addmod(mload(0x8e0), mload(0x2060), f_q)) -mstore(0x20a0, addmod(mload(0x2080), mload(0x540), f_q)) -mstore(0x20c0, mulmod(mload(0x20a0), mload(0x2020), f_q)) -mstore(0x20e0, mulmod(8910878055287538404433155982483128285667088683464058436815641868457422632747, mload(0x4e0), f_q)) -mstore(0x2100, mulmod(mload(0x880), mload(0x20e0), f_q)) -mstore(0x2120, addmod(mload(0x900), mload(0x2100), f_q)) -mstore(0x2140, addmod(mload(0x2120), mload(0x540), f_q)) -mstore(0x2160, mulmod(mload(0x2140), mload(0x20c0), f_q)) -mstore(0x2180, mulmod(11166246659983828508719468090013646171463329086121580628794302409516816350802, mload(0x4e0), f_q)) -mstore(0x21a0, mulmod(mload(0x880), mload(0x2180), f_q)) -mstore(0x21c0, addmod(mload(0x920), mload(0x21a0), f_q)) -mstore(0x21e0, addmod(mload(0x21c0), mload(0x540), f_q)) -mstore(0x2200, mulmod(mload(0x21e0), mload(0x2160), f_q)) -mstore(0x2220, mulmod(mload(0x2200), mload(0xc40), f_q)) -mstore(0x2240, addmod(mload(0x1fa0), sub(f_q, mload(0x2220)), f_q)) -mstore(0x2260, mulmod(mload(0x2240), mload(0x1da0), f_q)) -mstore(0x2280, addmod(mload(0x1ce0), mload(0x2260), f_q)) -mstore(0x22a0, mulmod(mload(0x6e0), mload(0x2280), f_q)) -mstore(0x22c0, mulmod(mload(0xc20), mload(0x4e0), f_q)) -mstore(0x22e0, addmod(mload(0x1760), mload(0x22c0), f_q)) -mstore(0x2300, addmod(mload(0x22e0), mload(0x540), f_q)) -mstore(0x2320, mulmod(mload(0x2300), mload(0xcc0), f_q)) -mstore(0x2340, mulmod(284840088355319032285349970403338060113257071685626700086398481893096618818, mload(0x4e0), f_q)) -mstore(0x2360, mulmod(mload(0x880), mload(0x2340), f_q)) -mstore(0x2380, addmod(mload(0x1760), mload(0x2360), f_q)) -mstore(0x23a0, addmod(mload(0x2380), mload(0x540), f_q)) -mstore(0x23c0, mulmod(mload(0x23a0), mload(0xca0), f_q)) -mstore(0x23e0, addmod(mload(0x2320), sub(f_q, mload(0x23c0)), f_q)) -mstore(0x2400, mulmod(mload(0x23e0), mload(0x1da0), f_q)) -mstore(0x2420, addmod(mload(0x22a0), mload(0x2400), f_q)) -mstore(0x2440, mulmod(mload(0x6e0), mload(0x2420), f_q)) -mstore(0x2460, addmod(1, sub(f_q, mload(0xce0)), f_q)) -mstore(0x2480, mulmod(mload(0x2460), mload(0x1720), f_q)) -mstore(0x24a0, addmod(mload(0x2440), mload(0x2480), f_q)) -mstore(0x24c0, mulmod(mload(0x6e0), mload(0x24a0), f_q)) -mstore(0x24e0, mulmod(mload(0xce0), mload(0xce0), f_q)) -mstore(0x2500, addmod(mload(0x24e0), sub(f_q, mload(0xce0)), f_q)) -mstore(0x2520, mulmod(mload(0x2500), mload(0x1660), f_q)) -mstore(0x2540, addmod(mload(0x24c0), mload(0x2520), f_q)) -mstore(0x2560, mulmod(mload(0x6e0), mload(0x2540), f_q)) -mstore(0x2580, addmod(mload(0xd20), mload(0x4e0), f_q)) -mstore(0x25a0, mulmod(mload(0x2580), mload(0xd00), f_q)) -mstore(0x25c0, addmod(mload(0xd60), mload(0x540), f_q)) -mstore(0x25e0, mulmod(mload(0x25c0), mload(0x25a0), f_q)) -mstore(0x2600, mulmod(1, mload(0xb60), f_q)) -mstore(0x2620, mulmod(mload(0x380), mload(0x2600), f_q)) -mstore(0x2640, mulmod(mload(0x8c0), mload(0xb60), f_q)) -mstore(0x2660, addmod(mload(0x2620), mload(0x2640), f_q)) -mstore(0x2680, mulmod(mload(0x380), mload(0x2660), f_q)) -mstore(0x26a0, mulmod(mload(0xa60), mload(0xb60), f_q)) -mstore(0x26c0, addmod(mload(0x2680), mload(0x26a0), f_q)) -mstore(0x26e0, mulmod(mload(0x380), mload(0x26c0), f_q)) -mstore(0x2700, mulmod(mload(0x900), mload(0xb60), f_q)) -mstore(0x2720, addmod(mload(0x26e0), mload(0x2700), f_q)) -mstore(0x2740, addmod(mload(0x2720), mload(0x4e0), f_q)) -mstore(0x2760, mulmod(mload(0x2740), mload(0xce0), f_q)) -mstore(0x2780, mulmod(mload(0x380), mload(0x9e0), f_q)) -mstore(0x27a0, addmod(mload(0x2780), mload(0xa00), f_q)) -mstore(0x27c0, mulmod(mload(0x380), mload(0x27a0), f_q)) -mstore(0x27e0, addmod(mload(0x27c0), mload(0xa20), f_q)) -mstore(0x2800, mulmod(mload(0x380), mload(0x27e0), f_q)) -mstore(0x2820, addmod(mload(0x2800), mload(0xa40), f_q)) -mstore(0x2840, addmod(mload(0x2820), mload(0x540), f_q)) -mstore(0x2860, mulmod(mload(0x2840), mload(0x2760), f_q)) -mstore(0x2880, addmod(mload(0x25e0), sub(f_q, mload(0x2860)), f_q)) -mstore(0x28a0, mulmod(mload(0x2880), mload(0x1da0), f_q)) -mstore(0x28c0, addmod(mload(0x2560), mload(0x28a0), f_q)) -mstore(0x28e0, mulmod(mload(0x6e0), mload(0x28c0), f_q)) -mstore(0x2900, addmod(mload(0xd20), sub(f_q, mload(0xd60)), f_q)) -mstore(0x2920, mulmod(mload(0x2900), mload(0x1720), f_q)) -mstore(0x2940, addmod(mload(0x28e0), mload(0x2920), f_q)) -mstore(0x2960, mulmod(mload(0x6e0), mload(0x2940), f_q)) -mstore(0x2980, mulmod(mload(0x2900), mload(0x1da0), f_q)) -mstore(0x29a0, addmod(mload(0xd20), sub(f_q, mload(0xd40)), f_q)) -mstore(0x29c0, mulmod(mload(0x29a0), mload(0x2980), f_q)) -mstore(0x29e0, addmod(mload(0x2960), mload(0x29c0), f_q)) -mstore(0x2a00, mulmod(mload(0x6e0), mload(0x29e0), f_q)) -mstore(0x2a20, addmod(1, sub(f_q, mload(0xd80)), f_q)) -mstore(0x2a40, mulmod(mload(0x2a20), mload(0x1720), f_q)) -mstore(0x2a60, addmod(mload(0x2a00), mload(0x2a40), f_q)) -mstore(0x2a80, mulmod(mload(0x6e0), mload(0x2a60), f_q)) -mstore(0x2aa0, mulmod(mload(0xd80), mload(0xd80), f_q)) -mstore(0x2ac0, addmod(mload(0x2aa0), sub(f_q, mload(0xd80)), f_q)) -mstore(0x2ae0, mulmod(mload(0x2ac0), mload(0x1660), f_q)) -mstore(0x2b00, addmod(mload(0x2a80), mload(0x2ae0), f_q)) -mstore(0x2b20, mulmod(mload(0x6e0), mload(0x2b00), f_q)) -mstore(0x2b40, addmod(mload(0xdc0), mload(0x4e0), f_q)) -mstore(0x2b60, mulmod(mload(0x2b40), mload(0xda0), f_q)) -mstore(0x2b80, addmod(mload(0xe00), mload(0x540), f_q)) -mstore(0x2ba0, mulmod(mload(0x2b80), mload(0x2b60), f_q)) -mstore(0x2bc0, addmod(1, sub(f_q, mload(0xac0)), f_q)) -mstore(0x2be0, mulmod(mload(0x2bc0), 1, f_q)) -mstore(0x2c00, addmod(1, sub(f_q, mload(0xb00)), f_q)) -mstore(0x2c20, mulmod(mload(0x2c00), mload(0x2be0), f_q)) -mstore(0x2c40, addmod(1, sub(f_q, mload(0x2c20)), f_q)) -mstore(0x2c60, mulmod(mload(0x8e0), mload(0x2c40), f_q)) -mstore(0x2c80, addmod(mload(0x2c60), mload(0x4e0), f_q)) -mstore(0x2ca0, mulmod(mload(0x2c80), mload(0xd80), f_q)) -mstore(0x2cc0, addmod(mload(0xaa0), mload(0x540), f_q)) -mstore(0x2ce0, mulmod(mload(0x2cc0), mload(0x2ca0), f_q)) -mstore(0x2d00, addmod(mload(0x2ba0), sub(f_q, mload(0x2ce0)), f_q)) -mstore(0x2d20, mulmod(mload(0x2d00), mload(0x1da0), f_q)) -mstore(0x2d40, addmod(mload(0x2b20), mload(0x2d20), f_q)) -mstore(0x2d60, mulmod(mload(0x6e0), mload(0x2d40), f_q)) -mstore(0x2d80, addmod(mload(0xdc0), sub(f_q, mload(0xe00)), f_q)) -mstore(0x2da0, mulmod(mload(0x2d80), mload(0x1720), f_q)) -mstore(0x2dc0, addmod(mload(0x2d60), mload(0x2da0), f_q)) -mstore(0x2de0, mulmod(mload(0x6e0), mload(0x2dc0), f_q)) -mstore(0x2e00, mulmod(mload(0x2d80), mload(0x1da0), f_q)) -mstore(0x2e20, addmod(mload(0xdc0), sub(f_q, mload(0xde0)), f_q)) -mstore(0x2e40, mulmod(mload(0x2e20), mload(0x2e00), f_q)) -mstore(0x2e60, addmod(mload(0x2de0), mload(0x2e40), f_q)) -mstore(0x2e80, mulmod(mload(0x1220), mload(0x1220), f_q)) -mstore(0x2ea0, mulmod(mload(0x2e80), mload(0x1220), f_q)) -mstore(0x2ec0, mulmod(mload(0x2ea0), mload(0x1220), f_q)) -mstore(0x2ee0, mulmod(mload(0x2ec0), mload(0x1220), f_q)) -mstore(0x2f00, mulmod(1, mload(0x1220), f_q)) -mstore(0x2f20, mulmod(1, mload(0x2e80), f_q)) -mstore(0x2f40, mulmod(1, mload(0x2ea0), f_q)) -mstore(0x2f60, mulmod(1, mload(0x2ec0), f_q)) -mstore(0x2f80, mulmod(mload(0x2e60), mload(0x1240), f_q)) -mstore(0x2fa0, mulmod(mload(0xfa0), mload(0xfa0), f_q)) -mstore(0x2fc0, mulmod(mload(0x2fa0), mload(0xfa0), f_q)) -mstore(0x2fe0, mulmod(mload(0x2fc0), mload(0xfa0), f_q)) -mstore(0x3000, mulmod(mload(0xe40), mload(0xe40), f_q)) -mstore(0x3020, mulmod(mload(0x3000), mload(0xe40), f_q)) -mstore(0x3040, mulmod(mload(0x3020), mload(0xe40), f_q)) -mstore(0x3060, mulmod(mload(0x3040), mload(0xe40), f_q)) -mstore(0x3080, mulmod(mload(0x3060), mload(0xe40), f_q)) -mstore(0x30a0, mulmod(mload(0x3080), mload(0xe40), f_q)) -mstore(0x30c0, mulmod(mload(0x30a0), mload(0xe40), f_q)) -mstore(0x30e0, mulmod(mload(0x30c0), mload(0xe40), f_q)) -mstore(0x3100, mulmod(mload(0x30e0), mload(0xe40), f_q)) -mstore(0x3120, mulmod(mload(0x3100), mload(0xe40), f_q)) -mstore(0x3140, mulmod(mload(0x3120), mload(0xe40), f_q)) -mstore(0x3160, mulmod(mload(0x3140), mload(0xe40), f_q)) -mstore(0x3180, mulmod(mload(0x3160), mload(0xe40), f_q)) -mstore(0x31a0, mulmod(mload(0x3180), mload(0xe40), f_q)) -mstore(0x31c0, mulmod(mload(0x31a0), mload(0xe40), f_q)) -mstore(0x31e0, mulmod(mload(0x31c0), mload(0xe40), f_q)) -mstore(0x3200, mulmod(mload(0x31e0), mload(0xe40), f_q)) -mstore(0x3220, mulmod(mload(0x3200), mload(0xe40), f_q)) -mstore(0x3240, mulmod(mload(0x3220), mload(0xe40), f_q)) -mstore(0x3260, mulmod(mload(0x3240), mload(0xe40), f_q)) -mstore(0x3280, mulmod(mload(0x3260), mload(0xe40), f_q)) -mstore(0x32a0, mulmod(mload(0x3280), mload(0xe40), f_q)) -mstore(0x32c0, mulmod(mload(0x32a0), mload(0xe40), f_q)) -mstore(0x32e0, mulmod(mload(0x32c0), mload(0xe40), f_q)) -mstore(0x3300, mulmod(mload(0x32e0), mload(0xe40), f_q)) -mstore(0x3320, mulmod(mload(0x3300), mload(0xe40), f_q)) -mstore(0x3340, mulmod(mload(0x3320), mload(0xe40), f_q)) -mstore(0x3360, mulmod(mload(0x3340), mload(0xe40), f_q)) -mstore(0x3380, mulmod(mload(0x3360), mload(0xe40), f_q)) -mstore(0x33a0, mulmod(mload(0x3380), mload(0xe40), f_q)) -mstore(0x33c0, mulmod(mload(0x33a0), mload(0xe40), f_q)) -mstore(0x33e0, mulmod(sub(f_q, mload(0x8c0)), 1, f_q)) -mstore(0x3400, mulmod(sub(f_q, mload(0x8e0)), mload(0xe40), f_q)) -mstore(0x3420, mulmod(1, mload(0xe40), f_q)) -mstore(0x3440, addmod(mload(0x33e0), mload(0x3400), f_q)) -mstore(0x3460, mulmod(sub(f_q, mload(0x900)), mload(0x3000), f_q)) -mstore(0x3480, mulmod(1, mload(0x3000), f_q)) -mstore(0x34a0, addmod(mload(0x3440), mload(0x3460), f_q)) -mstore(0x34c0, mulmod(sub(f_q, mload(0x920)), mload(0x3020), f_q)) -mstore(0x34e0, mulmod(1, mload(0x3020), f_q)) -mstore(0x3500, addmod(mload(0x34a0), mload(0x34c0), f_q)) -mstore(0x3520, mulmod(sub(f_q, mload(0x9a0)), mload(0x3040), f_q)) -mstore(0x3540, mulmod(1, mload(0x3040), f_q)) -mstore(0x3560, addmod(mload(0x3500), mload(0x3520), f_q)) -mstore(0x3580, mulmod(sub(f_q, mload(0x9e0)), mload(0x3060), f_q)) -mstore(0x35a0, mulmod(1, mload(0x3060), f_q)) -mstore(0x35c0, addmod(mload(0x3560), mload(0x3580), f_q)) -mstore(0x35e0, mulmod(sub(f_q, mload(0xa00)), mload(0x3080), f_q)) -mstore(0x3600, mulmod(1, mload(0x3080), f_q)) -mstore(0x3620, addmod(mload(0x35c0), mload(0x35e0), f_q)) -mstore(0x3640, mulmod(sub(f_q, mload(0xa20)), mload(0x30a0), f_q)) -mstore(0x3660, mulmod(1, mload(0x30a0), f_q)) -mstore(0x3680, addmod(mload(0x3620), mload(0x3640), f_q)) -mstore(0x36a0, mulmod(sub(f_q, mload(0xa40)), mload(0x30c0), f_q)) -mstore(0x36c0, mulmod(1, mload(0x30c0), f_q)) -mstore(0x36e0, addmod(mload(0x3680), mload(0x36a0), f_q)) -mstore(0x3700, mulmod(sub(f_q, mload(0xa60)), mload(0x30e0), f_q)) -mstore(0x3720, mulmod(1, mload(0x30e0), f_q)) -mstore(0x3740, addmod(mload(0x36e0), mload(0x3700), f_q)) -mstore(0x3760, mulmod(sub(f_q, mload(0xc40)), mload(0x3100), f_q)) -mstore(0x3780, mulmod(1, mload(0x3100), f_q)) -mstore(0x37a0, addmod(mload(0x3740), mload(0x3760), f_q)) -mstore(0x37c0, mulmod(sub(f_q, mload(0xca0)), mload(0x3120), f_q)) -mstore(0x37e0, mulmod(1, mload(0x3120), f_q)) -mstore(0x3800, addmod(mload(0x37a0), mload(0x37c0), f_q)) -mstore(0x3820, mulmod(sub(f_q, mload(0xce0)), mload(0x3140), f_q)) -mstore(0x3840, mulmod(1, mload(0x3140), f_q)) -mstore(0x3860, addmod(mload(0x3800), mload(0x3820), f_q)) -mstore(0x3880, mulmod(sub(f_q, mload(0xd20)), mload(0x3160), f_q)) -mstore(0x38a0, mulmod(1, mload(0x3160), f_q)) -mstore(0x38c0, addmod(mload(0x3860), mload(0x3880), f_q)) -mstore(0x38e0, mulmod(sub(f_q, mload(0xd60)), mload(0x3180), f_q)) -mstore(0x3900, mulmod(1, mload(0x3180), f_q)) -mstore(0x3920, addmod(mload(0x38c0), mload(0x38e0), f_q)) -mstore(0x3940, mulmod(sub(f_q, mload(0xd80)), mload(0x31a0), f_q)) -mstore(0x3960, mulmod(1, mload(0x31a0), f_q)) -mstore(0x3980, addmod(mload(0x3920), mload(0x3940), f_q)) -mstore(0x39a0, mulmod(sub(f_q, mload(0xdc0)), mload(0x31c0), f_q)) -mstore(0x39c0, mulmod(1, mload(0x31c0), f_q)) -mstore(0x39e0, addmod(mload(0x3980), mload(0x39a0), f_q)) -mstore(0x3a00, mulmod(sub(f_q, mload(0xe00)), mload(0x31e0), f_q)) -mstore(0x3a20, mulmod(1, mload(0x31e0), f_q)) -mstore(0x3a40, addmod(mload(0x39e0), mload(0x3a00), f_q)) -mstore(0x3a60, mulmod(sub(f_q, mload(0xaa0)), mload(0x3200), f_q)) -mstore(0x3a80, mulmod(1, mload(0x3200), f_q)) -mstore(0x3aa0, addmod(mload(0x3a40), mload(0x3a60), f_q)) -mstore(0x3ac0, mulmod(sub(f_q, mload(0xac0)), mload(0x3220), f_q)) -mstore(0x3ae0, mulmod(1, mload(0x3220), f_q)) -mstore(0x3b00, addmod(mload(0x3aa0), mload(0x3ac0), f_q)) -mstore(0x3b20, mulmod(sub(f_q, mload(0xae0)), mload(0x3240), f_q)) -mstore(0x3b40, mulmod(1, mload(0x3240), f_q)) -mstore(0x3b60, addmod(mload(0x3b00), mload(0x3b20), f_q)) -mstore(0x3b80, mulmod(sub(f_q, mload(0xb00)), mload(0x3260), f_q)) -mstore(0x3ba0, mulmod(1, mload(0x3260), f_q)) -mstore(0x3bc0, addmod(mload(0x3b60), mload(0x3b80), f_q)) -mstore(0x3be0, mulmod(sub(f_q, mload(0xb20)), mload(0x3280), f_q)) -mstore(0x3c00, mulmod(1, mload(0x3280), f_q)) -mstore(0x3c20, addmod(mload(0x3bc0), mload(0x3be0), f_q)) -mstore(0x3c40, mulmod(sub(f_q, mload(0xb40)), mload(0x32a0), f_q)) -mstore(0x3c60, mulmod(1, mload(0x32a0), f_q)) -mstore(0x3c80, addmod(mload(0x3c20), mload(0x3c40), f_q)) -mstore(0x3ca0, addmod(mload(0x3c00), mload(0x3c60), f_q)) -mstore(0x3cc0, mulmod(sub(f_q, mload(0xb60)), mload(0x32c0), f_q)) -mstore(0x3ce0, mulmod(1, mload(0x32c0), f_q)) -mstore(0x3d00, addmod(mload(0x3c80), mload(0x3cc0), f_q)) -mstore(0x3d20, mulmod(sub(f_q, mload(0xba0)), mload(0x32e0), f_q)) -mstore(0x3d40, mulmod(1, mload(0x32e0), f_q)) -mstore(0x3d60, addmod(mload(0x3d00), mload(0x3d20), f_q)) -mstore(0x3d80, mulmod(sub(f_q, mload(0xbc0)), mload(0x3300), f_q)) -mstore(0x3da0, mulmod(1, mload(0x3300), f_q)) -mstore(0x3dc0, addmod(mload(0x3d60), mload(0x3d80), f_q)) -mstore(0x3de0, mulmod(sub(f_q, mload(0xbe0)), mload(0x3320), f_q)) -mstore(0x3e00, mulmod(1, mload(0x3320), f_q)) -mstore(0x3e20, addmod(mload(0x3dc0), mload(0x3de0), f_q)) -mstore(0x3e40, mulmod(sub(f_q, mload(0xc00)), mload(0x3340), f_q)) -mstore(0x3e60, mulmod(1, mload(0x3340), f_q)) -mstore(0x3e80, addmod(mload(0x3e20), mload(0x3e40), f_q)) -mstore(0x3ea0, mulmod(sub(f_q, mload(0xc20)), mload(0x3360), f_q)) -mstore(0x3ec0, mulmod(1, mload(0x3360), f_q)) -mstore(0x3ee0, addmod(mload(0x3e80), mload(0x3ea0), f_q)) -mstore(0x3f00, mulmod(sub(f_q, mload(0x2f80)), mload(0x3380), f_q)) -mstore(0x3f20, mulmod(1, mload(0x3380), f_q)) -mstore(0x3f40, mulmod(mload(0x2f00), mload(0x3380), f_q)) -mstore(0x3f60, mulmod(mload(0x2f20), mload(0x3380), f_q)) -mstore(0x3f80, mulmod(mload(0x2f40), mload(0x3380), f_q)) -mstore(0x3fa0, mulmod(mload(0x2f60), mload(0x3380), f_q)) -mstore(0x3fc0, addmod(mload(0x3ee0), mload(0x3f00), f_q)) -mstore(0x3fe0, mulmod(sub(f_q, mload(0xb80)), mload(0x33a0), f_q)) -mstore(0x4000, mulmod(1, mload(0x33a0), f_q)) -mstore(0x4020, addmod(mload(0x3fc0), mload(0x3fe0), f_q)) -mstore(0x4040, mulmod(mload(0x4020), 1, f_q)) -mstore(0x4060, mulmod(mload(0x3420), 1, f_q)) -mstore(0x4080, mulmod(mload(0x3480), 1, f_q)) -mstore(0x40a0, mulmod(mload(0x34e0), 1, f_q)) -mstore(0x40c0, mulmod(mload(0x3540), 1, f_q)) -mstore(0x40e0, mulmod(mload(0x35a0), 1, f_q)) -mstore(0x4100, mulmod(mload(0x3600), 1, f_q)) -mstore(0x4120, mulmod(mload(0x3660), 1, f_q)) -mstore(0x4140, mulmod(mload(0x36c0), 1, f_q)) -mstore(0x4160, mulmod(mload(0x3720), 1, f_q)) -mstore(0x4180, mulmod(mload(0x3780), 1, f_q)) -mstore(0x41a0, mulmod(mload(0x37e0), 1, f_q)) -mstore(0x41c0, mulmod(mload(0x3840), 1, f_q)) -mstore(0x41e0, mulmod(mload(0x38a0), 1, f_q)) -mstore(0x4200, mulmod(mload(0x3900), 1, f_q)) -mstore(0x4220, mulmod(mload(0x3960), 1, f_q)) -mstore(0x4240, mulmod(mload(0x39c0), 1, f_q)) -mstore(0x4260, mulmod(mload(0x3a20), 1, f_q)) -mstore(0x4280, mulmod(mload(0x3a80), 1, f_q)) -mstore(0x42a0, mulmod(mload(0x3ae0), 1, f_q)) -mstore(0x42c0, mulmod(mload(0x3b40), 1, f_q)) -mstore(0x42e0, mulmod(mload(0x3ba0), 1, f_q)) -mstore(0x4300, mulmod(mload(0x3ca0), 1, f_q)) -mstore(0x4320, mulmod(mload(0x3ce0), 1, f_q)) -mstore(0x4340, mulmod(mload(0x3d40), 1, f_q)) -mstore(0x4360, mulmod(mload(0x3da0), 1, f_q)) -mstore(0x4380, mulmod(mload(0x3e00), 1, f_q)) -mstore(0x43a0, mulmod(mload(0x3e60), 1, f_q)) -mstore(0x43c0, mulmod(mload(0x3ec0), 1, f_q)) -mstore(0x43e0, mulmod(mload(0x3f20), 1, f_q)) -mstore(0x4400, mulmod(mload(0x3f40), 1, f_q)) -mstore(0x4420, mulmod(mload(0x3f60), 1, f_q)) -mstore(0x4440, mulmod(mload(0x3f80), 1, f_q)) -mstore(0x4460, mulmod(mload(0x3fa0), 1, f_q)) -mstore(0x4480, mulmod(mload(0x4000), 1, f_q)) -mstore(0x44a0, mulmod(sub(f_q, mload(0x940)), 1, f_q)) -mstore(0x44c0, mulmod(sub(f_q, mload(0x960)), mload(0xe40), f_q)) -mstore(0x44e0, addmod(mload(0x44a0), mload(0x44c0), f_q)) -mstore(0x4500, mulmod(sub(f_q, mload(0x980)), mload(0x3000), f_q)) -mstore(0x4520, addmod(mload(0x44e0), mload(0x4500), f_q)) -mstore(0x4540, mulmod(sub(f_q, mload(0x9c0)), mload(0x3020), f_q)) -mstore(0x4560, addmod(mload(0x4520), mload(0x4540), f_q)) -mstore(0x4580, mulmod(sub(f_q, mload(0xc60)), mload(0x3040), f_q)) -mstore(0x45a0, addmod(mload(0x4560), mload(0x4580), f_q)) -mstore(0x45c0, mulmod(sub(f_q, mload(0xcc0)), mload(0x3060), f_q)) -mstore(0x45e0, addmod(mload(0x45a0), mload(0x45c0), f_q)) -mstore(0x4600, mulmod(sub(f_q, mload(0xd00)), mload(0x3080), f_q)) -mstore(0x4620, addmod(mload(0x45e0), mload(0x4600), f_q)) -mstore(0x4640, mulmod(sub(f_q, mload(0xda0)), mload(0x30a0), f_q)) -mstore(0x4660, addmod(mload(0x4620), mload(0x4640), f_q)) -mstore(0x4680, mulmod(sub(f_q, mload(0xa80)), mload(0x30c0), f_q)) -mstore(0x46a0, addmod(mload(0x4660), mload(0x4680), f_q)) -mstore(0x46c0, mulmod(mload(0x46a0), mload(0xfa0), f_q)) -mstore(0x46e0, mulmod(1, mload(0xfa0), f_q)) -mstore(0x4700, mulmod(mload(0x3420), mload(0xfa0), f_q)) -mstore(0x4720, mulmod(mload(0x3480), mload(0xfa0), f_q)) -mstore(0x4740, mulmod(mload(0x34e0), mload(0xfa0), f_q)) -mstore(0x4760, mulmod(mload(0x3540), mload(0xfa0), f_q)) -mstore(0x4780, mulmod(mload(0x35a0), mload(0xfa0), f_q)) -mstore(0x47a0, mulmod(mload(0x3600), mload(0xfa0), f_q)) -mstore(0x47c0, mulmod(mload(0x3660), mload(0xfa0), f_q)) -mstore(0x47e0, mulmod(mload(0x36c0), mload(0xfa0), f_q)) -mstore(0x4800, addmod(mload(0x4040), mload(0x46c0), f_q)) -mstore(0x4820, addmod(1, mload(0x46e0), f_q)) -mstore(0x4840, addmod(mload(0x4080), mload(0x4700), f_q)) -mstore(0x4860, addmod(mload(0x40c0), mload(0x4720), f_q)) -mstore(0x4880, addmod(mload(0x4060), mload(0x4740), f_q)) -mstore(0x48a0, addmod(mload(0x4180), mload(0x4760), f_q)) -mstore(0x48c0, addmod(mload(0x41a0), mload(0x4780), f_q)) -mstore(0x48e0, addmod(mload(0x41c0), mload(0x47a0), f_q)) -mstore(0x4900, addmod(mload(0x4220), mload(0x47c0), f_q)) -mstore(0x4920, mulmod(sub(f_q, mload(0xc80)), 1, f_q)) -mstore(0x4940, mulmod(mload(0x4920), mload(0x2fa0), f_q)) -mstore(0x4960, mulmod(1, mload(0x2fa0), f_q)) -mstore(0x4980, addmod(mload(0x4800), mload(0x4940), f_q)) -mstore(0x49a0, addmod(mload(0x48a0), mload(0x4960), f_q)) -mstore(0x49c0, mulmod(sub(f_q, mload(0xd40)), 1, f_q)) -mstore(0x49e0, mulmod(sub(f_q, mload(0xde0)), mload(0xe40), f_q)) -mstore(0x4a00, addmod(mload(0x49c0), mload(0x49e0), f_q)) -mstore(0x4a20, mulmod(mload(0x4a00), mload(0x2fc0), f_q)) -mstore(0x4a40, mulmod(1, mload(0x2fc0), f_q)) -mstore(0x4a60, mulmod(mload(0x3420), mload(0x2fc0), f_q)) -mstore(0x4a80, addmod(mload(0x4980), mload(0x4a20), f_q)) -mstore(0x4aa0, addmod(mload(0x41e0), mload(0x4a40), f_q)) -mstore(0x4ac0, addmod(mload(0x4240), mload(0x4a60), f_q)) -mstore(0x4ae0, mulmod(1, mload(0x880), f_q)) -mstore(0x4b00, mulmod(1, mload(0x4ae0), f_q)) -mstore(0x4b20, mulmod(5854133144571823792863860130267644613802765696134002830362054821530146160770, mload(0x880), f_q)) -mstore(0x4b40, mulmod(mload(0x46e0), mload(0x4b20), f_q)) -mstore(0x4b60, mulmod(15837174511167031493871940795515473313759957271874477857633393696392913897559, mload(0x880), f_q)) -mstore(0x4b80, mulmod(mload(0x4960), mload(0x4b60), f_q)) -mstore(0x4ba0, mulmod(14686510910986211321976396297238126901237973400949744736326777596334651355305, mload(0x880), f_q)) -mstore(0x4bc0, mulmod(mload(0x4a40), mload(0x4ba0), f_q)) -mstore(0x4be0, 0x0000000000000000000000000000000000000000000000000000000000000001) - mstore(0x4c00, 0x0000000000000000000000000000000000000000000000000000000000000002) -mstore(0x4c20, mload(0x4a80)) -success := and(eq(staticcall(gas(), 0x7, 0x4be0, 0x60, 0x4be0, 0x40), 1), success) -mstore(0x4c40, mload(0x2a0)) - mstore(0x4c60, mload(0x2c0)) -mstore(0x4c80, mload(0x4820)) -success := and(eq(staticcall(gas(), 0x7, 0x4c40, 0x60, 0x4c40, 0x40), 1), success) -mstore(0x4ca0, mload(0x4be0)) - mstore(0x4cc0, mload(0x4c00)) -mstore(0x4ce0, mload(0x4c40)) - mstore(0x4d00, mload(0x4c60)) -success := and(eq(staticcall(gas(), 0x6, 0x4ca0, 0x80, 0x4ca0, 0x40), 1), success) -mstore(0x4d20, mload(0x1a0)) - mstore(0x4d40, mload(0x1c0)) -mstore(0x4d60, mload(0x4880)) -success := and(eq(staticcall(gas(), 0x7, 0x4d20, 0x60, 0x4d20, 0x40), 1), success) -mstore(0x4d80, mload(0x4ca0)) - mstore(0x4da0, mload(0x4cc0)) -mstore(0x4dc0, mload(0x4d20)) - mstore(0x4de0, mload(0x4d40)) -success := and(eq(staticcall(gas(), 0x6, 0x4d80, 0x80, 0x4d80, 0x40), 1), success) -mstore(0x4e00, mload(0x320)) - mstore(0x4e20, mload(0x340)) -mstore(0x4e40, mload(0x4840)) -success := and(eq(staticcall(gas(), 0x7, 0x4e00, 0x60, 0x4e00, 0x40), 1), success) -mstore(0x4e60, mload(0x4d80)) - mstore(0x4e80, mload(0x4da0)) -mstore(0x4ea0, mload(0x4e00)) - mstore(0x4ec0, mload(0x4e20)) -success := and(eq(staticcall(gas(), 0x6, 0x4e60, 0x80, 0x4e60, 0x40), 1), success) -mstore(0x4ee0, mload(0xe0)) - mstore(0x4f00, mload(0x100)) -mstore(0x4f20, mload(0x40a0)) -success := and(eq(staticcall(gas(), 0x7, 0x4ee0, 0x60, 0x4ee0, 0x40), 1), success) -mstore(0x4f40, mload(0x4e60)) - mstore(0x4f60, mload(0x4e80)) -mstore(0x4f80, mload(0x4ee0)) - mstore(0x4fa0, mload(0x4f00)) -success := and(eq(staticcall(gas(), 0x6, 0x4f40, 0x80, 0x4f40, 0x40), 1), success) -mstore(0x4fc0, mload(0x2e0)) - mstore(0x4fe0, mload(0x300)) -mstore(0x5000, mload(0x4860)) -success := and(eq(staticcall(gas(), 0x7, 0x4fc0, 0x60, 0x4fc0, 0x40), 1), success) -mstore(0x5020, mload(0x4f40)) - mstore(0x5040, mload(0x4f60)) -mstore(0x5060, mload(0x4fc0)) - mstore(0x5080, mload(0x4fe0)) -success := and(eq(staticcall(gas(), 0x6, 0x5020, 0x80, 0x5020, 0x40), 1), success) -mstore(0x50a0, mload(0x120)) - mstore(0x50c0, mload(0x140)) -mstore(0x50e0, mload(0x40e0)) -success := and(eq(staticcall(gas(), 0x7, 0x50a0, 0x60, 0x50a0, 0x40), 1), success) -mstore(0x5100, mload(0x5020)) - mstore(0x5120, mload(0x5040)) -mstore(0x5140, mload(0x50a0)) - mstore(0x5160, mload(0x50c0)) -success := and(eq(staticcall(gas(), 0x6, 0x5100, 0x80, 0x5100, 0x40), 1), success) -mstore(0x5180, mload(0x220)) - mstore(0x51a0, mload(0x240)) -mstore(0x51c0, mload(0x4100)) -success := and(eq(staticcall(gas(), 0x7, 0x5180, 0x60, 0x5180, 0x40), 1), success) -mstore(0x51e0, mload(0x5100)) - mstore(0x5200, mload(0x5120)) -mstore(0x5220, mload(0x5180)) - mstore(0x5240, mload(0x51a0)) -success := and(eq(staticcall(gas(), 0x6, 0x51e0, 0x80, 0x51e0, 0x40), 1), success) -mstore(0x5260, mload(0x160)) - mstore(0x5280, mload(0x180)) -mstore(0x52a0, mload(0x4120)) -success := and(eq(staticcall(gas(), 0x7, 0x5260, 0x60, 0x5260, 0x40), 1), success) -mstore(0x52c0, mload(0x51e0)) - mstore(0x52e0, mload(0x5200)) -mstore(0x5300, mload(0x5260)) - mstore(0x5320, mload(0x5280)) -success := and(eq(staticcall(gas(), 0x6, 0x52c0, 0x80, 0x52c0, 0x40), 1), success) -mstore(0x5340, mload(0x260)) - mstore(0x5360, mload(0x280)) -mstore(0x5380, mload(0x4140)) -success := and(eq(staticcall(gas(), 0x7, 0x5340, 0x60, 0x5340, 0x40), 1), success) -mstore(0x53a0, mload(0x52c0)) - mstore(0x53c0, mload(0x52e0)) -mstore(0x53e0, mload(0x5340)) - mstore(0x5400, mload(0x5360)) -success := and(eq(staticcall(gas(), 0x6, 0x53a0, 0x80, 0x53a0, 0x40), 1), success) -mstore(0x5420, mload(0x1e0)) - mstore(0x5440, mload(0x200)) -mstore(0x5460, mload(0x4160)) -success := and(eq(staticcall(gas(), 0x7, 0x5420, 0x60, 0x5420, 0x40), 1), success) -mstore(0x5480, mload(0x53a0)) - mstore(0x54a0, mload(0x53c0)) -mstore(0x54c0, mload(0x5420)) - mstore(0x54e0, mload(0x5440)) -success := and(eq(staticcall(gas(), 0x6, 0x5480, 0x80, 0x5480, 0x40), 1), success) -mstore(0x5500, mload(0x580)) - mstore(0x5520, mload(0x5a0)) -mstore(0x5540, mload(0x49a0)) -success := and(eq(staticcall(gas(), 0x7, 0x5500, 0x60, 0x5500, 0x40), 1), success) -mstore(0x5560, mload(0x5480)) - mstore(0x5580, mload(0x54a0)) -mstore(0x55a0, mload(0x5500)) - mstore(0x55c0, mload(0x5520)) -success := and(eq(staticcall(gas(), 0x6, 0x5560, 0x80, 0x5560, 0x40), 1), success) -mstore(0x55e0, mload(0x5c0)) - mstore(0x5600, mload(0x5e0)) -mstore(0x5620, mload(0x48c0)) -success := and(eq(staticcall(gas(), 0x7, 0x55e0, 0x60, 0x55e0, 0x40), 1), success) -mstore(0x5640, mload(0x5560)) - mstore(0x5660, mload(0x5580)) -mstore(0x5680, mload(0x55e0)) - mstore(0x56a0, mload(0x5600)) -success := and(eq(staticcall(gas(), 0x6, 0x5640, 0x80, 0x5640, 0x40), 1), success) -mstore(0x56c0, mload(0x600)) - mstore(0x56e0, mload(0x620)) -mstore(0x5700, mload(0x48e0)) -success := and(eq(staticcall(gas(), 0x7, 0x56c0, 0x60, 0x56c0, 0x40), 1), success) -mstore(0x5720, mload(0x5640)) - mstore(0x5740, mload(0x5660)) -mstore(0x5760, mload(0x56c0)) - mstore(0x5780, mload(0x56e0)) -success := and(eq(staticcall(gas(), 0x6, 0x5720, 0x80, 0x5720, 0x40), 1), success) -mstore(0x57a0, mload(0x3c0)) - mstore(0x57c0, mload(0x3e0)) -mstore(0x57e0, mload(0x4aa0)) -success := and(eq(staticcall(gas(), 0x7, 0x57a0, 0x60, 0x57a0, 0x40), 1), success) -mstore(0x5800, mload(0x5720)) - mstore(0x5820, mload(0x5740)) -mstore(0x5840, mload(0x57a0)) - mstore(0x5860, mload(0x57c0)) -success := and(eq(staticcall(gas(), 0x6, 0x5800, 0x80, 0x5800, 0x40), 1), success) -mstore(0x5880, mload(0x400)) - mstore(0x58a0, mload(0x420)) -mstore(0x58c0, mload(0x4200)) -success := and(eq(staticcall(gas(), 0x7, 0x5880, 0x60, 0x5880, 0x40), 1), success) -mstore(0x58e0, mload(0x5800)) - mstore(0x5900, mload(0x5820)) -mstore(0x5920, mload(0x5880)) - mstore(0x5940, mload(0x58a0)) -success := and(eq(staticcall(gas(), 0x6, 0x58e0, 0x80, 0x58e0, 0x40), 1), success) -mstore(0x5960, mload(0x640)) - mstore(0x5980, mload(0x660)) -mstore(0x59a0, mload(0x4900)) -success := and(eq(staticcall(gas(), 0x7, 0x5960, 0x60, 0x5960, 0x40), 1), success) -mstore(0x59c0, mload(0x58e0)) - mstore(0x59e0, mload(0x5900)) -mstore(0x5a00, mload(0x5960)) - mstore(0x5a20, mload(0x5980)) -success := and(eq(staticcall(gas(), 0x6, 0x59c0, 0x80, 0x59c0, 0x40), 1), success) -mstore(0x5a40, mload(0x440)) - mstore(0x5a60, mload(0x460)) -mstore(0x5a80, mload(0x4ac0)) -success := and(eq(staticcall(gas(), 0x7, 0x5a40, 0x60, 0x5a40, 0x40), 1), success) -mstore(0x5aa0, mload(0x59c0)) - mstore(0x5ac0, mload(0x59e0)) -mstore(0x5ae0, mload(0x5a40)) - mstore(0x5b00, mload(0x5a60)) -success := and(eq(staticcall(gas(), 0x6, 0x5aa0, 0x80, 0x5aa0, 0x40), 1), success) -mstore(0x5b20, mload(0x480)) - mstore(0x5b40, mload(0x4a0)) -mstore(0x5b60, mload(0x4260)) -success := and(eq(staticcall(gas(), 0x7, 0x5b20, 0x60, 0x5b20, 0x40), 1), success) -mstore(0x5b80, mload(0x5aa0)) - mstore(0x5ba0, mload(0x5ac0)) -mstore(0x5bc0, mload(0x5b20)) - mstore(0x5be0, mload(0x5b40)) -success := and(eq(staticcall(gas(), 0x6, 0x5b80, 0x80, 0x5b80, 0x40), 1), success) -mstore(0x5c00, 0x041b8ce40a32d4715d4e880a92d53814e79ba2fd43ef0922f08276d1986efe97) - mstore(0x5c20, 0x1dabe5006f692c2334059182de7218200341f19804f32985f1508d6011fa6c20) -mstore(0x5c40, mload(0x4280)) -success := and(eq(staticcall(gas(), 0x7, 0x5c00, 0x60, 0x5c00, 0x40), 1), success) -mstore(0x5c60, mload(0x5b80)) - mstore(0x5c80, mload(0x5ba0)) -mstore(0x5ca0, mload(0x5c00)) - mstore(0x5cc0, mload(0x5c20)) -success := and(eq(staticcall(gas(), 0x6, 0x5c60, 0x80, 0x5c60, 0x40), 1), success) -mstore(0x5ce0, 0x14d8557a47386d2030e571c4722ce0977a891f04e2d523475ad10a3af7eee7d0) - mstore(0x5d00, 0x161c220fb7bbd04dfcd16023306eaaaf29086eeb483f404820f349f4492c056c) -mstore(0x5d20, mload(0x42a0)) -success := and(eq(staticcall(gas(), 0x7, 0x5ce0, 0x60, 0x5ce0, 0x40), 1), success) -mstore(0x5d40, mload(0x5c60)) - mstore(0x5d60, mload(0x5c80)) -mstore(0x5d80, mload(0x5ce0)) - mstore(0x5da0, mload(0x5d00)) -success := and(eq(staticcall(gas(), 0x6, 0x5d40, 0x80, 0x5d40, 0x40), 1), success) -mstore(0x5dc0, 0x0c62090a82c819ffd4858aeacfa2cbec887fc29a32eb0ee16947bac190938508) - mstore(0x5de0, 0x0fdc1a4a969bd357d74bbd82f7d125e4b3039005a7fb7bd31bfc2e3de90918c0) -mstore(0x5e00, mload(0x42c0)) -success := and(eq(staticcall(gas(), 0x7, 0x5dc0, 0x60, 0x5dc0, 0x40), 1), success) -mstore(0x5e20, mload(0x5d40)) - mstore(0x5e40, mload(0x5d60)) -mstore(0x5e60, mload(0x5dc0)) - mstore(0x5e80, mload(0x5de0)) -success := and(eq(staticcall(gas(), 0x6, 0x5e20, 0x80, 0x5e20, 0x40), 1), success) -mstore(0x5ea0, 0x22f579d958ae3edb46b30f6337bbc5452a2940d131ba187dff9d0a28815b6ffd) - mstore(0x5ec0, 0x0a0481ba238e34d162f8ee09c58af51914b232370d1731578ff36eaf6861a98a) -mstore(0x5ee0, mload(0x42e0)) -success := and(eq(staticcall(gas(), 0x7, 0x5ea0, 0x60, 0x5ea0, 0x40), 1), success) -mstore(0x5f00, mload(0x5e20)) - mstore(0x5f20, mload(0x5e40)) -mstore(0x5f40, mload(0x5ea0)) - mstore(0x5f60, mload(0x5ec0)) -success := and(eq(staticcall(gas(), 0x6, 0x5f00, 0x80, 0x5f00, 0x40), 1), success) -mstore(0x5f80, 0x0000000000000000000000000000000000000000000000000000000000000000) - mstore(0x5fa0, 0x0000000000000000000000000000000000000000000000000000000000000000) -mstore(0x5fc0, mload(0x4300)) -success := and(eq(staticcall(gas(), 0x7, 0x5f80, 0x60, 0x5f80, 0x40), 1), success) -mstore(0x5fe0, mload(0x5f00)) - mstore(0x6000, mload(0x5f20)) -mstore(0x6020, mload(0x5f80)) - mstore(0x6040, mload(0x5fa0)) -success := and(eq(staticcall(gas(), 0x6, 0x5fe0, 0x80, 0x5fe0, 0x40), 1), success) -mstore(0x6060, 0x16ef984d055f19db031836fa1de24b6c4c4640628449ebb0209cdbba676201c8) - mstore(0x6080, 0x1fbc84546bfdb04bdfe310a9b7ae4719459c7d6e95b98b209b2a2a55362c8a49) -mstore(0x60a0, mload(0x4320)) -success := and(eq(staticcall(gas(), 0x7, 0x6060, 0x60, 0x6060, 0x40), 1), success) -mstore(0x60c0, mload(0x5fe0)) - mstore(0x60e0, mload(0x6000)) -mstore(0x6100, mload(0x6060)) - mstore(0x6120, mload(0x6080)) -success := and(eq(staticcall(gas(), 0x6, 0x60c0, 0x80, 0x60c0, 0x40), 1), success) -mstore(0x6140, 0x009a67d3d0b1b909f489d3276c99c9c1b15abb5978d03b8ac86fc5a93db71d97) - mstore(0x6160, 0x301f55dffd6d776d3fda552a0f6a3be28dc765597100839c998b82bf3222d6f0) -mstore(0x6180, mload(0x4340)) -success := and(eq(staticcall(gas(), 0x7, 0x6140, 0x60, 0x6140, 0x40), 1), success) -mstore(0x61a0, mload(0x60c0)) - mstore(0x61c0, mload(0x60e0)) -mstore(0x61e0, mload(0x6140)) - mstore(0x6200, mload(0x6160)) -success := and(eq(staticcall(gas(), 0x6, 0x61a0, 0x80, 0x61a0, 0x40), 1), success) -mstore(0x6220, 0x0127df15e164f40fb0f2577ddcf44bd6977bd37fd16c5238cb6c4679683f8c93) - mstore(0x6240, 0x305140fb6cf1094df4cc45fe89f765576f4ed96c6205a4db594566fbc3e20e3d) -mstore(0x6260, mload(0x4360)) -success := and(eq(staticcall(gas(), 0x7, 0x6220, 0x60, 0x6220, 0x40), 1), success) -mstore(0x6280, mload(0x61a0)) - mstore(0x62a0, mload(0x61c0)) -mstore(0x62c0, mload(0x6220)) - mstore(0x62e0, mload(0x6240)) -success := and(eq(staticcall(gas(), 0x6, 0x6280, 0x80, 0x6280, 0x40), 1), success) -mstore(0x6300, 0x2247c214d0433a25aae0f2305fe03a6cb29c18d7ecd5466ac4be91a656cb08d6) - mstore(0x6320, 0x1bdbb7ab00c9b49ed330453e012c1471a0778217fef3fcb6e8a392bb59a00311) -mstore(0x6340, mload(0x4380)) -success := and(eq(staticcall(gas(), 0x7, 0x6300, 0x60, 0x6300, 0x40), 1), success) -mstore(0x6360, mload(0x6280)) - mstore(0x6380, mload(0x62a0)) -mstore(0x63a0, mload(0x6300)) - mstore(0x63c0, mload(0x6320)) -success := and(eq(staticcall(gas(), 0x6, 0x6360, 0x80, 0x6360, 0x40), 1), success) -mstore(0x63e0, 0x04e83dfe8692b4a4fd1a6de593805b926e4da0d23935d746198112e7936922a9) - mstore(0x6400, 0x14b48c4c0e4232b2646eb56d2ea4fa7cd42350de640ff1d2c4df3c0bcaac2e30) -mstore(0x6420, mload(0x43a0)) -success := and(eq(staticcall(gas(), 0x7, 0x63e0, 0x60, 0x63e0, 0x40), 1), success) -mstore(0x6440, mload(0x6360)) - mstore(0x6460, mload(0x6380)) -mstore(0x6480, mload(0x63e0)) - mstore(0x64a0, mload(0x6400)) -success := and(eq(staticcall(gas(), 0x6, 0x6440, 0x80, 0x6440, 0x40), 1), success) -mstore(0x64c0, 0x1a3637709bc16972c9a084491f5647a60761cf350c64d8a1cdc26a7981e747d9) - mstore(0x64e0, 0x163924b6138f7cdd048a40ddebb93e76d2e2733cfc34293b9440eaec25e16347) -mstore(0x6500, mload(0x43c0)) -success := and(eq(staticcall(gas(), 0x7, 0x64c0, 0x60, 0x64c0, 0x40), 1), success) -mstore(0x6520, mload(0x6440)) - mstore(0x6540, mload(0x6460)) -mstore(0x6560, mload(0x64c0)) - mstore(0x6580, mload(0x64e0)) -success := and(eq(staticcall(gas(), 0x6, 0x6520, 0x80, 0x6520, 0x40), 1), success) -mstore(0x65a0, mload(0x720)) - mstore(0x65c0, mload(0x740)) -mstore(0x65e0, mload(0x43e0)) -success := and(eq(staticcall(gas(), 0x7, 0x65a0, 0x60, 0x65a0, 0x40), 1), success) -mstore(0x6600, mload(0x6520)) - mstore(0x6620, mload(0x6540)) -mstore(0x6640, mload(0x65a0)) - mstore(0x6660, mload(0x65c0)) -success := and(eq(staticcall(gas(), 0x6, 0x6600, 0x80, 0x6600, 0x40), 1), success) -mstore(0x6680, mload(0x760)) - mstore(0x66a0, mload(0x780)) -mstore(0x66c0, mload(0x4400)) -success := and(eq(staticcall(gas(), 0x7, 0x6680, 0x60, 0x6680, 0x40), 1), success) -mstore(0x66e0, mload(0x6600)) - mstore(0x6700, mload(0x6620)) -mstore(0x6720, mload(0x6680)) - mstore(0x6740, mload(0x66a0)) -success := and(eq(staticcall(gas(), 0x6, 0x66e0, 0x80, 0x66e0, 0x40), 1), success) -mstore(0x6760, mload(0x7a0)) - mstore(0x6780, mload(0x7c0)) -mstore(0x67a0, mload(0x4420)) -success := and(eq(staticcall(gas(), 0x7, 0x6760, 0x60, 0x6760, 0x40), 1), success) -mstore(0x67c0, mload(0x66e0)) - mstore(0x67e0, mload(0x6700)) -mstore(0x6800, mload(0x6760)) - mstore(0x6820, mload(0x6780)) -success := and(eq(staticcall(gas(), 0x6, 0x67c0, 0x80, 0x67c0, 0x40), 1), success) -mstore(0x6840, mload(0x7e0)) - mstore(0x6860, mload(0x800)) -mstore(0x6880, mload(0x4440)) -success := and(eq(staticcall(gas(), 0x7, 0x6840, 0x60, 0x6840, 0x40), 1), success) -mstore(0x68a0, mload(0x67c0)) - mstore(0x68c0, mload(0x67e0)) -mstore(0x68e0, mload(0x6840)) - mstore(0x6900, mload(0x6860)) -success := and(eq(staticcall(gas(), 0x6, 0x68a0, 0x80, 0x68a0, 0x40), 1), success) -mstore(0x6920, mload(0x820)) - mstore(0x6940, mload(0x840)) -mstore(0x6960, mload(0x4460)) -success := and(eq(staticcall(gas(), 0x7, 0x6920, 0x60, 0x6920, 0x40), 1), success) -mstore(0x6980, mload(0x68a0)) - mstore(0x69a0, mload(0x68c0)) -mstore(0x69c0, mload(0x6920)) - mstore(0x69e0, mload(0x6940)) -success := and(eq(staticcall(gas(), 0x6, 0x6980, 0x80, 0x6980, 0x40), 1), success) -mstore(0x6a00, mload(0x680)) - mstore(0x6a20, mload(0x6a0)) -mstore(0x6a40, mload(0x4480)) -success := and(eq(staticcall(gas(), 0x7, 0x6a00, 0x60, 0x6a00, 0x40), 1), success) -mstore(0x6a60, mload(0x6980)) - mstore(0x6a80, mload(0x69a0)) -mstore(0x6aa0, mload(0x6a00)) - mstore(0x6ac0, mload(0x6a20)) -success := and(eq(staticcall(gas(), 0x6, 0x6a60, 0x80, 0x6a60, 0x40), 1), success) -mstore(0x6ae0, 0x2767948ff64b7bcfe1c5d7dc2e4682629090bdb6f08446520481b790d820a496) - mstore(0x6b00, 0x2f4c48cab536d61cd07e8c81ae31687cc1d145e661277866cf135100fecca814) -mstore(0x6b20, mload(0x47e0)) -success := and(eq(staticcall(gas(), 0x7, 0x6ae0, 0x60, 0x6ae0, 0x40), 1), success) -mstore(0x6b40, mload(0x6a60)) - mstore(0x6b60, mload(0x6a80)) -mstore(0x6b80, mload(0x6ae0)) - mstore(0x6ba0, mload(0x6b00)) -success := and(eq(staticcall(gas(), 0x6, 0x6b40, 0x80, 0x6b40, 0x40), 1), success) -mstore(0x6bc0, mload(0xe80)) - mstore(0x6be0, mload(0xea0)) -mstore(0x6c00, mload(0x4b00)) -success := and(eq(staticcall(gas(), 0x7, 0x6bc0, 0x60, 0x6bc0, 0x40), 1), success) -mstore(0x6c20, mload(0x6b40)) - mstore(0x6c40, mload(0x6b60)) -mstore(0x6c60, mload(0x6bc0)) - mstore(0x6c80, mload(0x6be0)) -success := and(eq(staticcall(gas(), 0x6, 0x6c20, 0x80, 0x6c20, 0x40), 1), success) -mstore(0x6ca0, mload(0xec0)) - mstore(0x6cc0, mload(0xee0)) -mstore(0x6ce0, mload(0x4b40)) -success := and(eq(staticcall(gas(), 0x7, 0x6ca0, 0x60, 0x6ca0, 0x40), 1), success) -mstore(0x6d00, mload(0x6c20)) - mstore(0x6d20, mload(0x6c40)) -mstore(0x6d40, mload(0x6ca0)) - mstore(0x6d60, mload(0x6cc0)) -success := and(eq(staticcall(gas(), 0x6, 0x6d00, 0x80, 0x6d00, 0x40), 1), success) -mstore(0x6d80, mload(0xf00)) - mstore(0x6da0, mload(0xf20)) -mstore(0x6dc0, mload(0x4b80)) -success := and(eq(staticcall(gas(), 0x7, 0x6d80, 0x60, 0x6d80, 0x40), 1), success) -mstore(0x6de0, mload(0x6d00)) - mstore(0x6e00, mload(0x6d20)) -mstore(0x6e20, mload(0x6d80)) - mstore(0x6e40, mload(0x6da0)) -success := and(eq(staticcall(gas(), 0x6, 0x6de0, 0x80, 0x6de0, 0x40), 1), success) -mstore(0x6e60, mload(0xf40)) - mstore(0x6e80, mload(0xf60)) -mstore(0x6ea0, mload(0x4bc0)) -success := and(eq(staticcall(gas(), 0x7, 0x6e60, 0x60, 0x6e60, 0x40), 1), success) -mstore(0x6ec0, mload(0x6de0)) - mstore(0x6ee0, mload(0x6e00)) -mstore(0x6f00, mload(0x6e60)) - mstore(0x6f20, mload(0x6e80)) -success := and(eq(staticcall(gas(), 0x6, 0x6ec0, 0x80, 0x6ec0, 0x40), 1), success) -mstore(0x6f40, mload(0xec0)) - mstore(0x6f60, mload(0xee0)) -mstore(0x6f80, mload(0x46e0)) -success := and(eq(staticcall(gas(), 0x7, 0x6f40, 0x60, 0x6f40, 0x40), 1), success) -mstore(0x6fa0, mload(0xe80)) - mstore(0x6fc0, mload(0xea0)) -mstore(0x6fe0, mload(0x6f40)) - mstore(0x7000, mload(0x6f60)) -success := and(eq(staticcall(gas(), 0x6, 0x6fa0, 0x80, 0x6fa0, 0x40), 1), success) -mstore(0x7020, mload(0xf00)) - mstore(0x7040, mload(0xf20)) -mstore(0x7060, mload(0x4960)) -success := and(eq(staticcall(gas(), 0x7, 0x7020, 0x60, 0x7020, 0x40), 1), success) -mstore(0x7080, mload(0x6fa0)) - mstore(0x70a0, mload(0x6fc0)) -mstore(0x70c0, mload(0x7020)) - mstore(0x70e0, mload(0x7040)) -success := and(eq(staticcall(gas(), 0x6, 0x7080, 0x80, 0x7080, 0x40), 1), success) -mstore(0x7100, mload(0xf40)) - mstore(0x7120, mload(0xf60)) -mstore(0x7140, mload(0x4a40)) -success := and(eq(staticcall(gas(), 0x7, 0x7100, 0x60, 0x7100, 0x40), 1), success) -mstore(0x7160, mload(0x7080)) - mstore(0x7180, mload(0x70a0)) -mstore(0x71a0, mload(0x7100)) - mstore(0x71c0, mload(0x7120)) -success := and(eq(staticcall(gas(), 0x6, 0x7160, 0x80, 0x7160, 0x40), 1), success) -mstore(0x71e0, mload(0x6ec0)) - mstore(0x7200, mload(0x6ee0)) -mstore(0x7220, 0x198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2) - mstore(0x7240, 0x1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed) - mstore(0x7260, 0x090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b) - mstore(0x7280, 0x12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa) -mstore(0x72a0, mload(0x7160)) - mstore(0x72c0, mload(0x7180)) -mstore(0x72e0, 0x14631798b621d5bd412c165d8abc38f46dead3be96362907e4912b28b6fd11bc) - mstore(0x7300, 0x0e134e99deb76ba1c9bd801150a9894b048a1a275d6c469543f19a417a60c9da) - mstore(0x7320, 0x2904d8151b69e71a466ba4b6b46fce5a2b81857fac86ac132756f144a0a11e3a) - mstore(0x7340, 0x2c2ed8a68646af208c79efe7cfbb2bdf8d9b7e9b9e447eebababe9cf5fc61ac4) -success := and(eq(staticcall(gas(), 0x8, 0x71e0, 0x180, 0x71e0, 0x20), 1), success) -success := and(eq(mload(0x71e0), 1), success) +mstore(0x1900, mulmod(mload(0x720), mload(0x18e0), f_q)) +mstore(0x1920, addmod(1, sub(f_q, mload(0xc00)), f_q)) +mstore(0x1940, mulmod(mload(0x1920), mload(0x16e0), f_q)) +mstore(0x1960, addmod(mload(0x1900), mload(0x1940), f_q)) +mstore(0x1980, mulmod(mload(0x720), mload(0x1960), f_q)) +mstore(0x19a0, mulmod(mload(0xc60), mload(0xc60), f_q)) +mstore(0x19c0, addmod(mload(0x19a0), sub(f_q, mload(0xc60)), f_q)) +mstore(0x19e0, mulmod(mload(0x19c0), mload(0x1620), f_q)) +mstore(0x1a00, addmod(mload(0x1980), mload(0x19e0), f_q)) +mstore(0x1a20, mulmod(mload(0x720), mload(0x1a00), f_q)) +mstore(0x1a40, addmod(mload(0xc60), sub(f_q, mload(0xc40)), f_q)) +mstore(0x1a60, mulmod(mload(0x1a40), mload(0x16e0), f_q)) +mstore(0x1a80, addmod(mload(0x1a20), mload(0x1a60), f_q)) +mstore(0x1aa0, mulmod(mload(0x720), mload(0x1a80), f_q)) +mstore(0x1ac0, addmod(1, sub(f_q, mload(0x1620)), f_q)) +mstore(0x1ae0, addmod(mload(0x1640), mload(0x1660), f_q)) +mstore(0x1b00, addmod(mload(0x1ae0), mload(0x1680), f_q)) +mstore(0x1b20, addmod(mload(0x1b00), mload(0x16a0), f_q)) +mstore(0x1b40, addmod(mload(0x1b20), mload(0x16c0), f_q)) +mstore(0x1b60, addmod(mload(0x1ac0), sub(f_q, mload(0x1b40)), f_q)) +mstore(0x1b80, mulmod(mload(0xb60), mload(0x520), f_q)) +mstore(0x1ba0, addmod(mload(0x900), mload(0x1b80), f_q)) +mstore(0x1bc0, addmod(mload(0x1ba0), mload(0x580), f_q)) +mstore(0x1be0, mulmod(mload(0xb80), mload(0x520), f_q)) +mstore(0x1c00, addmod(mload(0x920), mload(0x1be0), f_q)) +mstore(0x1c20, addmod(mload(0x1c00), mload(0x580), f_q)) +mstore(0x1c40, mulmod(mload(0x1c20), mload(0x1bc0), f_q)) +mstore(0x1c60, mulmod(mload(0xba0), mload(0x520), f_q)) +mstore(0x1c80, addmod(mload(0x940), mload(0x1c60), f_q)) +mstore(0x1ca0, addmod(mload(0x1c80), mload(0x580), f_q)) +mstore(0x1cc0, mulmod(mload(0x1ca0), mload(0x1c40), f_q)) +mstore(0x1ce0, mulmod(mload(0xbc0), mload(0x520), f_q)) +mstore(0x1d00, addmod(mload(0x960), mload(0x1ce0), f_q)) +mstore(0x1d20, addmod(mload(0x1d00), mload(0x580), f_q)) +mstore(0x1d40, mulmod(mload(0x1d20), mload(0x1cc0), f_q)) +mstore(0x1d60, mulmod(mload(0x1d40), mload(0xc20), f_q)) +mstore(0x1d80, mulmod(1, mload(0x520), f_q)) +mstore(0x1da0, mulmod(mload(0x8c0), mload(0x1d80), f_q)) +mstore(0x1dc0, addmod(mload(0x900), mload(0x1da0), f_q)) +mstore(0x1de0, addmod(mload(0x1dc0), mload(0x580), f_q)) +mstore(0x1e00, mulmod(4131629893567559867359510883348571134090853742863529169391034518566172092834, mload(0x520), f_q)) +mstore(0x1e20, mulmod(mload(0x8c0), mload(0x1e00), f_q)) +mstore(0x1e40, addmod(mload(0x920), mload(0x1e20), f_q)) +mstore(0x1e60, addmod(mload(0x1e40), mload(0x580), f_q)) +mstore(0x1e80, mulmod(mload(0x1e60), mload(0x1de0), f_q)) +mstore(0x1ea0, mulmod(8910878055287538404433155982483128285667088683464058436815641868457422632747, mload(0x520), f_q)) +mstore(0x1ec0, mulmod(mload(0x8c0), mload(0x1ea0), f_q)) +mstore(0x1ee0, addmod(mload(0x940), mload(0x1ec0), f_q)) +mstore(0x1f00, addmod(mload(0x1ee0), mload(0x580), f_q)) +mstore(0x1f20, mulmod(mload(0x1f00), mload(0x1e80), f_q)) +mstore(0x1f40, mulmod(11166246659983828508719468090013646171463329086121580628794302409516816350802, mload(0x520), f_q)) +mstore(0x1f60, mulmod(mload(0x8c0), mload(0x1f40), f_q)) +mstore(0x1f80, addmod(mload(0x960), mload(0x1f60), f_q)) +mstore(0x1fa0, addmod(mload(0x1f80), mload(0x580), f_q)) +mstore(0x1fc0, mulmod(mload(0x1fa0), mload(0x1f20), f_q)) +mstore(0x1fe0, mulmod(mload(0x1fc0), mload(0xc00), f_q)) +mstore(0x2000, addmod(mload(0x1d60), sub(f_q, mload(0x1fe0)), f_q)) +mstore(0x2020, mulmod(mload(0x2000), mload(0x1b60), f_q)) +mstore(0x2040, addmod(mload(0x1aa0), mload(0x2020), f_q)) +mstore(0x2060, mulmod(mload(0x720), mload(0x2040), f_q)) +mstore(0x2080, mulmod(mload(0xbe0), mload(0x520), f_q)) +mstore(0x20a0, addmod(mload(0x1720), mload(0x2080), f_q)) +mstore(0x20c0, addmod(mload(0x20a0), mload(0x580), f_q)) +mstore(0x20e0, mulmod(mload(0x20c0), mload(0xc80), f_q)) +mstore(0x2100, mulmod(284840088355319032285349970403338060113257071685626700086398481893096618818, mload(0x520), f_q)) +mstore(0x2120, mulmod(mload(0x8c0), mload(0x2100), f_q)) +mstore(0x2140, addmod(mload(0x1720), mload(0x2120), f_q)) +mstore(0x2160, addmod(mload(0x2140), mload(0x580), f_q)) +mstore(0x2180, mulmod(mload(0x2160), mload(0xc60), f_q)) +mstore(0x21a0, addmod(mload(0x20e0), sub(f_q, mload(0x2180)), f_q)) +mstore(0x21c0, mulmod(mload(0x21a0), mload(0x1b60), f_q)) +mstore(0x21e0, addmod(mload(0x2060), mload(0x21c0), f_q)) +mstore(0x2200, mulmod(mload(0x720), mload(0x21e0), f_q)) +mstore(0x2220, addmod(1, sub(f_q, mload(0xca0)), f_q)) +mstore(0x2240, mulmod(mload(0x2220), mload(0x16e0), f_q)) +mstore(0x2260, addmod(mload(0x2200), mload(0x2240), f_q)) +mstore(0x2280, mulmod(mload(0x720), mload(0x2260), f_q)) +mstore(0x22a0, mulmod(mload(0xca0), mload(0xca0), f_q)) +mstore(0x22c0, addmod(mload(0x22a0), sub(f_q, mload(0xca0)), f_q)) +mstore(0x22e0, mulmod(mload(0x22c0), mload(0x1620), f_q)) +mstore(0x2300, addmod(mload(0x2280), mload(0x22e0), f_q)) +mstore(0x2320, mulmod(mload(0x720), mload(0x2300), f_q)) +mstore(0x2340, addmod(mload(0xce0), mload(0x520), f_q)) +mstore(0x2360, mulmod(mload(0x2340), mload(0xcc0), f_q)) +mstore(0x2380, addmod(mload(0xd20), mload(0x580), f_q)) +mstore(0x23a0, mulmod(mload(0x2380), mload(0x2360), f_q)) +mstore(0x23c0, mulmod(1, mload(0xb20), f_q)) +mstore(0x23e0, mulmod(mload(0x3c0), mload(0x23c0), f_q)) +mstore(0x2400, mulmod(mload(0x920), mload(0xb20), f_q)) +mstore(0x2420, addmod(mload(0x23e0), mload(0x2400), f_q)) +mstore(0x2440, mulmod(mload(0x3c0), mload(0x2420), f_q)) +mstore(0x2460, mulmod(320, mload(0xb20), f_q)) +mstore(0x2480, addmod(mload(0x2440), mload(0x2460), f_q)) +mstore(0x24a0, mulmod(mload(0x3c0), mload(0x2480), f_q)) +mstore(0x24c0, mulmod(mload(0x940), mload(0xb20), f_q)) +mstore(0x24e0, addmod(mload(0x24a0), mload(0x24c0), f_q)) +mstore(0x2500, addmod(mload(0x24e0), mload(0x520), f_q)) +mstore(0x2520, mulmod(mload(0x2500), mload(0xca0), f_q)) +mstore(0x2540, mulmod(mload(0x3c0), mload(0x9c0), f_q)) +mstore(0x2560, addmod(mload(0x2540), mload(0x9e0), f_q)) +mstore(0x2580, mulmod(mload(0x3c0), mload(0x2560), f_q)) +mstore(0x25a0, addmod(mload(0x2580), mload(0xa00), f_q)) +mstore(0x25c0, mulmod(mload(0x3c0), mload(0x25a0), f_q)) +mstore(0x25e0, addmod(mload(0x25c0), mload(0xa20), f_q)) +mstore(0x2600, addmod(mload(0x25e0), mload(0x580), f_q)) +mstore(0x2620, mulmod(mload(0x2600), mload(0x2520), f_q)) +mstore(0x2640, addmod(mload(0x23a0), sub(f_q, mload(0x2620)), f_q)) +mstore(0x2660, mulmod(mload(0x2640), mload(0x1b60), f_q)) +mstore(0x2680, addmod(mload(0x2320), mload(0x2660), f_q)) +mstore(0x26a0, mulmod(mload(0x720), mload(0x2680), f_q)) +mstore(0x26c0, addmod(mload(0xce0), sub(f_q, mload(0xd20)), f_q)) +mstore(0x26e0, mulmod(mload(0x26c0), mload(0x16e0), f_q)) +mstore(0x2700, addmod(mload(0x26a0), mload(0x26e0), f_q)) +mstore(0x2720, mulmod(mload(0x720), mload(0x2700), f_q)) +mstore(0x2740, mulmod(mload(0x26c0), mload(0x1b60), f_q)) +mstore(0x2760, addmod(mload(0xce0), sub(f_q, mload(0xd00)), f_q)) +mstore(0x2780, mulmod(mload(0x2760), mload(0x2740), f_q)) +mstore(0x27a0, addmod(mload(0x2720), mload(0x2780), f_q)) +mstore(0x27c0, mulmod(mload(0x720), mload(0x27a0), f_q)) +mstore(0x27e0, addmod(1, sub(f_q, mload(0xd40)), f_q)) +mstore(0x2800, mulmod(mload(0x27e0), mload(0x16e0), f_q)) +mstore(0x2820, addmod(mload(0x27c0), mload(0x2800), f_q)) +mstore(0x2840, mulmod(mload(0x720), mload(0x2820), f_q)) +mstore(0x2860, mulmod(mload(0xd40), mload(0xd40), f_q)) +mstore(0x2880, addmod(mload(0x2860), sub(f_q, mload(0xd40)), f_q)) +mstore(0x28a0, mulmod(mload(0x2880), mload(0x1620), f_q)) +mstore(0x28c0, addmod(mload(0x2840), mload(0x28a0), f_q)) +mstore(0x28e0, mulmod(mload(0x720), mload(0x28c0), f_q)) +mstore(0x2900, addmod(mload(0xd80), mload(0x520), f_q)) +mstore(0x2920, mulmod(mload(0x2900), mload(0xd60), f_q)) +mstore(0x2940, addmod(mload(0xdc0), mload(0x580), f_q)) +mstore(0x2960, mulmod(mload(0x2940), mload(0x2920), f_q)) +mstore(0x2980, addmod(1, sub(f_q, mload(0xa80)), f_q)) +mstore(0x29a0, mulmod(mload(0x2980), 1, f_q)) +mstore(0x29c0, addmod(1, sub(f_q, mload(0xac0)), f_q)) +mstore(0x29e0, mulmod(mload(0x29c0), mload(0x29a0), f_q)) +mstore(0x2a00, addmod(1, sub(f_q, mload(0x29e0)), f_q)) +mstore(0x2a20, mulmod(mload(0x900), mload(0x2a00), f_q)) +mstore(0x2a40, addmod(mload(0x2a20), mload(0x520), f_q)) +mstore(0x2a60, mulmod(mload(0x2a40), mload(0xd40), f_q)) +mstore(0x2a80, addmod(mload(0xa60), mload(0x580), f_q)) +mstore(0x2aa0, mulmod(mload(0x2a80), mload(0x2a60), f_q)) +mstore(0x2ac0, addmod(mload(0x2960), sub(f_q, mload(0x2aa0)), f_q)) +mstore(0x2ae0, mulmod(mload(0x2ac0), mload(0x1b60), f_q)) +mstore(0x2b00, addmod(mload(0x28e0), mload(0x2ae0), f_q)) +mstore(0x2b20, mulmod(mload(0x720), mload(0x2b00), f_q)) +mstore(0x2b40, addmod(mload(0xd80), sub(f_q, mload(0xdc0)), f_q)) +mstore(0x2b60, mulmod(mload(0x2b40), mload(0x16e0), f_q)) +mstore(0x2b80, addmod(mload(0x2b20), mload(0x2b60), f_q)) +mstore(0x2ba0, mulmod(mload(0x720), mload(0x2b80), f_q)) +mstore(0x2bc0, mulmod(mload(0x2b40), mload(0x1b60), f_q)) +mstore(0x2be0, addmod(mload(0xd80), sub(f_q, mload(0xda0)), f_q)) +mstore(0x2c00, mulmod(mload(0x2be0), mload(0x2bc0), f_q)) +mstore(0x2c20, addmod(mload(0x2ba0), mload(0x2c00), f_q)) +mstore(0x2c40, mulmod(mload(0x11e0), mload(0x11e0), f_q)) +mstore(0x2c60, mulmod(mload(0x2c40), mload(0x11e0), f_q)) +mstore(0x2c80, mulmod(mload(0x2c60), mload(0x11e0), f_q)) +mstore(0x2ca0, mulmod(mload(0x2c80), mload(0x11e0), f_q)) +mstore(0x2cc0, mulmod(1, mload(0x11e0), f_q)) +mstore(0x2ce0, mulmod(1, mload(0x2c40), f_q)) +mstore(0x2d00, mulmod(1, mload(0x2c60), f_q)) +mstore(0x2d20, mulmod(1, mload(0x2c80), f_q)) +mstore(0x2d40, mulmod(mload(0x2c20), mload(0x1200), f_q)) +mstore(0x2d60, mulmod(mload(0xf60), mload(0xf60), f_q)) +mstore(0x2d80, mulmod(mload(0x2d60), mload(0xf60), f_q)) +mstore(0x2da0, mulmod(mload(0x2d80), mload(0xf60), f_q)) +mstore(0x2dc0, mulmod(mload(0xe00), mload(0xe00), f_q)) +mstore(0x2de0, mulmod(mload(0x2dc0), mload(0xe00), f_q)) +mstore(0x2e00, mulmod(mload(0x2de0), mload(0xe00), f_q)) +mstore(0x2e20, mulmod(mload(0x2e00), mload(0xe00), f_q)) +mstore(0x2e40, mulmod(mload(0x2e20), mload(0xe00), f_q)) +mstore(0x2e60, mulmod(mload(0x2e40), mload(0xe00), f_q)) +mstore(0x2e80, mulmod(mload(0x2e60), mload(0xe00), f_q)) +mstore(0x2ea0, mulmod(mload(0x2e80), mload(0xe00), f_q)) +mstore(0x2ec0, mulmod(mload(0x2ea0), mload(0xe00), f_q)) +mstore(0x2ee0, mulmod(mload(0x2ec0), mload(0xe00), f_q)) +mstore(0x2f00, mulmod(mload(0x2ee0), mload(0xe00), f_q)) +mstore(0x2f20, mulmod(mload(0x2f00), mload(0xe00), f_q)) +mstore(0x2f40, mulmod(mload(0x2f20), mload(0xe00), f_q)) +mstore(0x2f60, mulmod(mload(0x2f40), mload(0xe00), f_q)) +mstore(0x2f80, mulmod(mload(0x2f60), mload(0xe00), f_q)) +mstore(0x2fa0, mulmod(mload(0x2f80), mload(0xe00), f_q)) +mstore(0x2fc0, mulmod(mload(0x2fa0), mload(0xe00), f_q)) +mstore(0x2fe0, mulmod(mload(0x2fc0), mload(0xe00), f_q)) +mstore(0x3000, mulmod(mload(0x2fe0), mload(0xe00), f_q)) +mstore(0x3020, mulmod(mload(0x3000), mload(0xe00), f_q)) +mstore(0x3040, mulmod(mload(0x3020), mload(0xe00), f_q)) +mstore(0x3060, mulmod(mload(0x3040), mload(0xe00), f_q)) +mstore(0x3080, mulmod(mload(0x3060), mload(0xe00), f_q)) +mstore(0x30a0, mulmod(mload(0x3080), mload(0xe00), f_q)) +mstore(0x30c0, mulmod(mload(0x30a0), mload(0xe00), f_q)) +mstore(0x30e0, mulmod(mload(0x30c0), mload(0xe00), f_q)) +mstore(0x3100, mulmod(mload(0x30e0), mload(0xe00), f_q)) +mstore(0x3120, mulmod(mload(0x3100), mload(0xe00), f_q)) +mstore(0x3140, mulmod(mload(0x3120), mload(0xe00), f_q)) +mstore(0x3160, mulmod(sub(f_q, mload(0x900)), 1, f_q)) +mstore(0x3180, mulmod(sub(f_q, mload(0x920)), mload(0xe00), f_q)) +mstore(0x31a0, mulmod(1, mload(0xe00), f_q)) +mstore(0x31c0, addmod(mload(0x3160), mload(0x3180), f_q)) +mstore(0x31e0, mulmod(sub(f_q, mload(0x940)), mload(0x2dc0), f_q)) +mstore(0x3200, mulmod(1, mload(0x2dc0), f_q)) +mstore(0x3220, addmod(mload(0x31c0), mload(0x31e0), f_q)) +mstore(0x3240, mulmod(sub(f_q, mload(0x960)), mload(0x2de0), f_q)) +mstore(0x3260, mulmod(1, mload(0x2de0), f_q)) +mstore(0x3280, addmod(mload(0x3220), mload(0x3240), f_q)) +mstore(0x32a0, mulmod(sub(f_q, mload(0x9c0)), mload(0x2e00), f_q)) +mstore(0x32c0, mulmod(1, mload(0x2e00), f_q)) +mstore(0x32e0, addmod(mload(0x3280), mload(0x32a0), f_q)) +mstore(0x3300, mulmod(sub(f_q, mload(0x9e0)), mload(0x2e20), f_q)) +mstore(0x3320, mulmod(1, mload(0x2e20), f_q)) +mstore(0x3340, addmod(mload(0x32e0), mload(0x3300), f_q)) +mstore(0x3360, mulmod(sub(f_q, mload(0xa00)), mload(0x2e40), f_q)) +mstore(0x3380, mulmod(1, mload(0x2e40), f_q)) +mstore(0x33a0, addmod(mload(0x3340), mload(0x3360), f_q)) +mstore(0x33c0, mulmod(sub(f_q, mload(0xa20)), mload(0x2e60), f_q)) +mstore(0x33e0, mulmod(1, mload(0x2e60), f_q)) +mstore(0x3400, addmod(mload(0x33a0), mload(0x33c0), f_q)) +mstore(0x3420, mulmod(sub(f_q, mload(0xc00)), mload(0x2e80), f_q)) +mstore(0x3440, mulmod(1, mload(0x2e80), f_q)) +mstore(0x3460, addmod(mload(0x3400), mload(0x3420), f_q)) +mstore(0x3480, mulmod(sub(f_q, mload(0xc60)), mload(0x2ea0), f_q)) +mstore(0x34a0, mulmod(1, mload(0x2ea0), f_q)) +mstore(0x34c0, addmod(mload(0x3460), mload(0x3480), f_q)) +mstore(0x34e0, mulmod(sub(f_q, mload(0xca0)), mload(0x2ec0), f_q)) +mstore(0x3500, mulmod(1, mload(0x2ec0), f_q)) +mstore(0x3520, addmod(mload(0x34c0), mload(0x34e0), f_q)) +mstore(0x3540, mulmod(sub(f_q, mload(0xce0)), mload(0x2ee0), f_q)) +mstore(0x3560, mulmod(1, mload(0x2ee0), f_q)) +mstore(0x3580, addmod(mload(0x3520), mload(0x3540), f_q)) +mstore(0x35a0, mulmod(sub(f_q, mload(0xd20)), mload(0x2f00), f_q)) +mstore(0x35c0, mulmod(1, mload(0x2f00), f_q)) +mstore(0x35e0, addmod(mload(0x3580), mload(0x35a0), f_q)) +mstore(0x3600, mulmod(sub(f_q, mload(0xd40)), mload(0x2f20), f_q)) +mstore(0x3620, mulmod(1, mload(0x2f20), f_q)) +mstore(0x3640, addmod(mload(0x35e0), mload(0x3600), f_q)) +mstore(0x3660, mulmod(sub(f_q, mload(0xd80)), mload(0x2f40), f_q)) +mstore(0x3680, mulmod(1, mload(0x2f40), f_q)) +mstore(0x36a0, addmod(mload(0x3640), mload(0x3660), f_q)) +mstore(0x36c0, mulmod(sub(f_q, mload(0xdc0)), mload(0x2f60), f_q)) +mstore(0x36e0, mulmod(1, mload(0x2f60), f_q)) +mstore(0x3700, addmod(mload(0x36a0), mload(0x36c0), f_q)) +mstore(0x3720, mulmod(sub(f_q, mload(0xa60)), mload(0x2f80), f_q)) +mstore(0x3740, mulmod(1, mload(0x2f80), f_q)) +mstore(0x3760, addmod(mload(0x3700), mload(0x3720), f_q)) +mstore(0x3780, mulmod(sub(f_q, mload(0xa80)), mload(0x2fa0), f_q)) +mstore(0x37a0, mulmod(1, mload(0x2fa0), f_q)) +mstore(0x37c0, addmod(mload(0x3760), mload(0x3780), f_q)) +mstore(0x37e0, mulmod(sub(f_q, mload(0xaa0)), mload(0x2fc0), f_q)) +mstore(0x3800, mulmod(1, mload(0x2fc0), f_q)) +mstore(0x3820, addmod(mload(0x37c0), mload(0x37e0), f_q)) +mstore(0x3840, mulmod(sub(f_q, mload(0xac0)), mload(0x2fe0), f_q)) +mstore(0x3860, mulmod(1, mload(0x2fe0), f_q)) +mstore(0x3880, addmod(mload(0x3820), mload(0x3840), f_q)) +mstore(0x38a0, mulmod(sub(f_q, mload(0xae0)), mload(0x3000), f_q)) +mstore(0x38c0, mulmod(1, mload(0x3000), f_q)) +mstore(0x38e0, addmod(mload(0x3880), mload(0x38a0), f_q)) +mstore(0x3900, mulmod(sub(f_q, mload(0xb00)), mload(0x3020), f_q)) +mstore(0x3920, mulmod(1, mload(0x3020), f_q)) +mstore(0x3940, addmod(mload(0x38e0), mload(0x3900), f_q)) +mstore(0x3960, addmod(mload(0x38c0), mload(0x3920), f_q)) +mstore(0x3980, mulmod(sub(f_q, mload(0xb20)), mload(0x3040), f_q)) +mstore(0x39a0, mulmod(1, mload(0x3040), f_q)) +mstore(0x39c0, addmod(mload(0x3940), mload(0x3980), f_q)) +mstore(0x39e0, mulmod(sub(f_q, mload(0xb60)), mload(0x3060), f_q)) +mstore(0x3a00, mulmod(1, mload(0x3060), f_q)) +mstore(0x3a20, addmod(mload(0x39c0), mload(0x39e0), f_q)) +mstore(0x3a40, mulmod(sub(f_q, mload(0xb80)), mload(0x3080), f_q)) +mstore(0x3a60, mulmod(1, mload(0x3080), f_q)) +mstore(0x3a80, addmod(mload(0x3a20), mload(0x3a40), f_q)) +mstore(0x3aa0, mulmod(sub(f_q, mload(0xba0)), mload(0x30a0), f_q)) +mstore(0x3ac0, mulmod(1, mload(0x30a0), f_q)) +mstore(0x3ae0, addmod(mload(0x3a80), mload(0x3aa0), f_q)) +mstore(0x3b00, mulmod(sub(f_q, mload(0xbc0)), mload(0x30c0), f_q)) +mstore(0x3b20, mulmod(1, mload(0x30c0), f_q)) +mstore(0x3b40, addmod(mload(0x3ae0), mload(0x3b00), f_q)) +mstore(0x3b60, mulmod(sub(f_q, mload(0xbe0)), mload(0x30e0), f_q)) +mstore(0x3b80, mulmod(1, mload(0x30e0), f_q)) +mstore(0x3ba0, addmod(mload(0x3b40), mload(0x3b60), f_q)) +mstore(0x3bc0, mulmod(sub(f_q, mload(0x2d40)), mload(0x3100), f_q)) +mstore(0x3be0, mulmod(1, mload(0x3100), f_q)) +mstore(0x3c00, mulmod(mload(0x2cc0), mload(0x3100), f_q)) +mstore(0x3c20, mulmod(mload(0x2ce0), mload(0x3100), f_q)) +mstore(0x3c40, mulmod(mload(0x2d00), mload(0x3100), f_q)) +mstore(0x3c60, mulmod(mload(0x2d20), mload(0x3100), f_q)) +mstore(0x3c80, addmod(mload(0x3ba0), mload(0x3bc0), f_q)) +mstore(0x3ca0, mulmod(sub(f_q, mload(0xb40)), mload(0x3120), f_q)) +mstore(0x3cc0, mulmod(1, mload(0x3120), f_q)) +mstore(0x3ce0, addmod(mload(0x3c80), mload(0x3ca0), f_q)) +mstore(0x3d00, mulmod(mload(0x3ce0), 1, f_q)) +mstore(0x3d20, mulmod(mload(0x31a0), 1, f_q)) +mstore(0x3d40, mulmod(mload(0x3200), 1, f_q)) +mstore(0x3d60, mulmod(mload(0x3260), 1, f_q)) +mstore(0x3d80, mulmod(mload(0x32c0), 1, f_q)) +mstore(0x3da0, mulmod(mload(0x3320), 1, f_q)) +mstore(0x3dc0, mulmod(mload(0x3380), 1, f_q)) +mstore(0x3de0, mulmod(mload(0x33e0), 1, f_q)) +mstore(0x3e00, mulmod(mload(0x3440), 1, f_q)) +mstore(0x3e20, mulmod(mload(0x34a0), 1, f_q)) +mstore(0x3e40, mulmod(mload(0x3500), 1, f_q)) +mstore(0x3e60, mulmod(mload(0x3560), 1, f_q)) +mstore(0x3e80, mulmod(mload(0x35c0), 1, f_q)) +mstore(0x3ea0, mulmod(mload(0x3620), 1, f_q)) +mstore(0x3ec0, mulmod(mload(0x3680), 1, f_q)) +mstore(0x3ee0, mulmod(mload(0x36e0), 1, f_q)) +mstore(0x3f00, mulmod(mload(0x3740), 1, f_q)) +mstore(0x3f20, mulmod(mload(0x37a0), 1, f_q)) +mstore(0x3f40, mulmod(mload(0x3800), 1, f_q)) +mstore(0x3f60, mulmod(mload(0x3860), 1, f_q)) +mstore(0x3f80, mulmod(mload(0x3960), 1, f_q)) +mstore(0x3fa0, mulmod(mload(0x39a0), 1, f_q)) +mstore(0x3fc0, mulmod(mload(0x3a00), 1, f_q)) +mstore(0x3fe0, mulmod(mload(0x3a60), 1, f_q)) +mstore(0x4000, mulmod(mload(0x3ac0), 1, f_q)) +mstore(0x4020, mulmod(mload(0x3b20), 1, f_q)) +mstore(0x4040, mulmod(mload(0x3b80), 1, f_q)) +mstore(0x4060, mulmod(mload(0x3be0), 1, f_q)) +mstore(0x4080, mulmod(mload(0x3c00), 1, f_q)) +mstore(0x40a0, mulmod(mload(0x3c20), 1, f_q)) +mstore(0x40c0, mulmod(mload(0x3c40), 1, f_q)) +mstore(0x40e0, mulmod(mload(0x3c60), 1, f_q)) +mstore(0x4100, mulmod(mload(0x3cc0), 1, f_q)) +mstore(0x4120, mulmod(sub(f_q, mload(0x980)), 1, f_q)) +mstore(0x4140, mulmod(sub(f_q, mload(0x9a0)), mload(0xe00), f_q)) +mstore(0x4160, addmod(mload(0x4120), mload(0x4140), f_q)) +mstore(0x4180, mulmod(sub(f_q, mload(0xc20)), mload(0x2dc0), f_q)) +mstore(0x41a0, addmod(mload(0x4160), mload(0x4180), f_q)) +mstore(0x41c0, mulmod(sub(f_q, mload(0xc80)), mload(0x2de0), f_q)) +mstore(0x41e0, addmod(mload(0x41a0), mload(0x41c0), f_q)) +mstore(0x4200, mulmod(sub(f_q, mload(0xcc0)), mload(0x2e00), f_q)) +mstore(0x4220, addmod(mload(0x41e0), mload(0x4200), f_q)) +mstore(0x4240, mulmod(sub(f_q, mload(0xd60)), mload(0x2e20), f_q)) +mstore(0x4260, addmod(mload(0x4220), mload(0x4240), f_q)) +mstore(0x4280, mulmod(sub(f_q, mload(0xa40)), mload(0x2e40), f_q)) +mstore(0x42a0, addmod(mload(0x4260), mload(0x4280), f_q)) +mstore(0x42c0, mulmod(mload(0x42a0), mload(0xf60), f_q)) +mstore(0x42e0, mulmod(1, mload(0xf60), f_q)) +mstore(0x4300, mulmod(mload(0x31a0), mload(0xf60), f_q)) +mstore(0x4320, mulmod(mload(0x3200), mload(0xf60), f_q)) +mstore(0x4340, mulmod(mload(0x3260), mload(0xf60), f_q)) +mstore(0x4360, mulmod(mload(0x32c0), mload(0xf60), f_q)) +mstore(0x4380, mulmod(mload(0x3320), mload(0xf60), f_q)) +mstore(0x43a0, mulmod(mload(0x3380), mload(0xf60), f_q)) +mstore(0x43c0, addmod(mload(0x3d00), mload(0x42c0), f_q)) +mstore(0x43e0, addmod(mload(0x3d20), mload(0x42e0), f_q)) +mstore(0x4400, addmod(1, mload(0x4300), f_q)) +mstore(0x4420, addmod(mload(0x3e00), mload(0x4320), f_q)) +mstore(0x4440, addmod(mload(0x3e20), mload(0x4340), f_q)) +mstore(0x4460, addmod(mload(0x3e40), mload(0x4360), f_q)) +mstore(0x4480, addmod(mload(0x3ea0), mload(0x4380), f_q)) +mstore(0x44a0, mulmod(sub(f_q, mload(0xc40)), 1, f_q)) +mstore(0x44c0, mulmod(mload(0x44a0), mload(0x2d60), f_q)) +mstore(0x44e0, mulmod(1, mload(0x2d60), f_q)) +mstore(0x4500, addmod(mload(0x43c0), mload(0x44c0), f_q)) +mstore(0x4520, addmod(mload(0x4420), mload(0x44e0), f_q)) +mstore(0x4540, mulmod(sub(f_q, mload(0xd00)), 1, f_q)) +mstore(0x4560, mulmod(sub(f_q, mload(0xda0)), mload(0xe00), f_q)) +mstore(0x4580, addmod(mload(0x4540), mload(0x4560), f_q)) +mstore(0x45a0, mulmod(mload(0x4580), mload(0x2d80), f_q)) +mstore(0x45c0, mulmod(1, mload(0x2d80), f_q)) +mstore(0x45e0, mulmod(mload(0x31a0), mload(0x2d80), f_q)) +mstore(0x4600, addmod(mload(0x4500), mload(0x45a0), f_q)) +mstore(0x4620, addmod(mload(0x3e60), mload(0x45c0), f_q)) +mstore(0x4640, addmod(mload(0x3ec0), mload(0x45e0), f_q)) +mstore(0x4660, mulmod(1, mload(0x8c0), f_q)) +mstore(0x4680, mulmod(1, mload(0x4660), f_q)) +mstore(0x46a0, mulmod(5854133144571823792863860130267644613802765696134002830362054821530146160770, mload(0x8c0), f_q)) +mstore(0x46c0, mulmod(mload(0x42e0), mload(0x46a0), f_q)) +mstore(0x46e0, mulmod(15837174511167031493871940795515473313759957271874477857633393696392913897559, mload(0x8c0), f_q)) +mstore(0x4700, mulmod(mload(0x44e0), mload(0x46e0), f_q)) +mstore(0x4720, mulmod(14686510910986211321976396297238126901237973400949744736326777596334651355305, mload(0x8c0), f_q)) +mstore(0x4740, mulmod(mload(0x45c0), mload(0x4720), f_q)) +mstore(0x4760, 0x0000000000000000000000000000000000000000000000000000000000000001) + mstore(0x4780, 0x0000000000000000000000000000000000000000000000000000000000000002) +mstore(0x47a0, mload(0x4600)) +success := and(eq(staticcall(gas(), 0x7, 0x4760, 0x60, 0x4760, 0x40), 1), success) +mstore(0x47c0, mload(0x160)) + mstore(0x47e0, mload(0x180)) +mstore(0x4800, mload(0x4400)) +success := and(eq(staticcall(gas(), 0x7, 0x47c0, 0x60, 0x47c0, 0x40), 1), success) +mstore(0x4820, mload(0x4760)) + mstore(0x4840, mload(0x4780)) +mstore(0x4860, mload(0x47c0)) + mstore(0x4880, mload(0x47e0)) +success := and(eq(staticcall(gas(), 0x6, 0x4820, 0x80, 0x4820, 0x40), 1), success) +mstore(0x48a0, mload(0x320)) + mstore(0x48c0, mload(0x340)) +mstore(0x48e0, mload(0x43e0)) +success := and(eq(staticcall(gas(), 0x7, 0x48a0, 0x60, 0x48a0, 0x40), 1), success) +mstore(0x4900, mload(0x4820)) + mstore(0x4920, mload(0x4840)) +mstore(0x4940, mload(0x48a0)) + mstore(0x4960, mload(0x48c0)) +success := and(eq(staticcall(gas(), 0x6, 0x4900, 0x80, 0x4900, 0x40), 1), success) +mstore(0x4980, mload(0x360)) + mstore(0x49a0, mload(0x380)) +mstore(0x49c0, mload(0x3d40)) +success := and(eq(staticcall(gas(), 0x7, 0x4980, 0x60, 0x4980, 0x40), 1), success) +mstore(0x49e0, mload(0x4900)) + mstore(0x4a00, mload(0x4920)) +mstore(0x4a20, mload(0x4980)) + mstore(0x4a40, mload(0x49a0)) +success := and(eq(staticcall(gas(), 0x6, 0x49e0, 0x80, 0x49e0, 0x40), 1), success) +mstore(0x4a60, mload(0x260)) + mstore(0x4a80, mload(0x280)) +mstore(0x4aa0, mload(0x3d60)) +success := and(eq(staticcall(gas(), 0x7, 0x4a60, 0x60, 0x4a60, 0x40), 1), success) +mstore(0x4ac0, mload(0x49e0)) + mstore(0x4ae0, mload(0x4a00)) +mstore(0x4b00, mload(0x4a60)) + mstore(0x4b20, mload(0x4a80)) +success := and(eq(staticcall(gas(), 0x6, 0x4ac0, 0x80, 0x4ac0, 0x40), 1), success) +mstore(0x4b40, mload(0xe0)) + mstore(0x4b60, mload(0x100)) +mstore(0x4b80, mload(0x3d80)) +success := and(eq(staticcall(gas(), 0x7, 0x4b40, 0x60, 0x4b40, 0x40), 1), success) +mstore(0x4ba0, mload(0x4ac0)) + mstore(0x4bc0, mload(0x4ae0)) +mstore(0x4be0, mload(0x4b40)) + mstore(0x4c00, mload(0x4b60)) +success := and(eq(staticcall(gas(), 0x6, 0x4ba0, 0x80, 0x4ba0, 0x40), 1), success) +mstore(0x4c20, mload(0x2a0)) + mstore(0x4c40, mload(0x2c0)) +mstore(0x4c60, mload(0x3da0)) +success := and(eq(staticcall(gas(), 0x7, 0x4c20, 0x60, 0x4c20, 0x40), 1), success) +mstore(0x4c80, mload(0x4ba0)) + mstore(0x4ca0, mload(0x4bc0)) +mstore(0x4cc0, mload(0x4c20)) + mstore(0x4ce0, mload(0x4c40)) +success := and(eq(staticcall(gas(), 0x6, 0x4c80, 0x80, 0x4c80, 0x40), 1), success) +mstore(0x4d00, mload(0x120)) + mstore(0x4d20, mload(0x140)) +mstore(0x4d40, mload(0x3dc0)) +success := and(eq(staticcall(gas(), 0x7, 0x4d00, 0x60, 0x4d00, 0x40), 1), success) +mstore(0x4d60, mload(0x4c80)) + mstore(0x4d80, mload(0x4ca0)) +mstore(0x4da0, mload(0x4d00)) + mstore(0x4dc0, mload(0x4d20)) +success := and(eq(staticcall(gas(), 0x6, 0x4d60, 0x80, 0x4d60, 0x40), 1), success) +mstore(0x4de0, mload(0x2e0)) + mstore(0x4e00, mload(0x300)) +mstore(0x4e20, mload(0x3de0)) +success := and(eq(staticcall(gas(), 0x7, 0x4de0, 0x60, 0x4de0, 0x40), 1), success) +mstore(0x4e40, mload(0x4d60)) + mstore(0x4e60, mload(0x4d80)) +mstore(0x4e80, mload(0x4de0)) + mstore(0x4ea0, mload(0x4e00)) +success := and(eq(staticcall(gas(), 0x6, 0x4e40, 0x80, 0x4e40, 0x40), 1), success) +mstore(0x4ec0, mload(0x5c0)) + mstore(0x4ee0, mload(0x5e0)) +mstore(0x4f00, mload(0x4520)) +success := and(eq(staticcall(gas(), 0x7, 0x4ec0, 0x60, 0x4ec0, 0x40), 1), success) +mstore(0x4f20, mload(0x4e40)) + mstore(0x4f40, mload(0x4e60)) +mstore(0x4f60, mload(0x4ec0)) + mstore(0x4f80, mload(0x4ee0)) +success := and(eq(staticcall(gas(), 0x6, 0x4f20, 0x80, 0x4f20, 0x40), 1), success) +mstore(0x4fa0, mload(0x600)) + mstore(0x4fc0, mload(0x620)) +mstore(0x4fe0, mload(0x4440)) +success := and(eq(staticcall(gas(), 0x7, 0x4fa0, 0x60, 0x4fa0, 0x40), 1), success) +mstore(0x5000, mload(0x4f20)) + mstore(0x5020, mload(0x4f40)) +mstore(0x5040, mload(0x4fa0)) + mstore(0x5060, mload(0x4fc0)) +success := and(eq(staticcall(gas(), 0x6, 0x5000, 0x80, 0x5000, 0x40), 1), success) +mstore(0x5080, mload(0x640)) + mstore(0x50a0, mload(0x660)) +mstore(0x50c0, mload(0x4460)) +success := and(eq(staticcall(gas(), 0x7, 0x5080, 0x60, 0x5080, 0x40), 1), success) +mstore(0x50e0, mload(0x5000)) + mstore(0x5100, mload(0x5020)) +mstore(0x5120, mload(0x5080)) + mstore(0x5140, mload(0x50a0)) +success := and(eq(staticcall(gas(), 0x6, 0x50e0, 0x80, 0x50e0, 0x40), 1), success) +mstore(0x5160, mload(0x400)) + mstore(0x5180, mload(0x420)) +mstore(0x51a0, mload(0x4620)) +success := and(eq(staticcall(gas(), 0x7, 0x5160, 0x60, 0x5160, 0x40), 1), success) +mstore(0x51c0, mload(0x50e0)) + mstore(0x51e0, mload(0x5100)) +mstore(0x5200, mload(0x5160)) + mstore(0x5220, mload(0x5180)) +success := and(eq(staticcall(gas(), 0x6, 0x51c0, 0x80, 0x51c0, 0x40), 1), success) +mstore(0x5240, mload(0x440)) + mstore(0x5260, mload(0x460)) +mstore(0x5280, mload(0x3e80)) +success := and(eq(staticcall(gas(), 0x7, 0x5240, 0x60, 0x5240, 0x40), 1), success) +mstore(0x52a0, mload(0x51c0)) + mstore(0x52c0, mload(0x51e0)) +mstore(0x52e0, mload(0x5240)) + mstore(0x5300, mload(0x5260)) +success := and(eq(staticcall(gas(), 0x6, 0x52a0, 0x80, 0x52a0, 0x40), 1), success) +mstore(0x5320, mload(0x680)) + mstore(0x5340, mload(0x6a0)) +mstore(0x5360, mload(0x4480)) +success := and(eq(staticcall(gas(), 0x7, 0x5320, 0x60, 0x5320, 0x40), 1), success) +mstore(0x5380, mload(0x52a0)) + mstore(0x53a0, mload(0x52c0)) +mstore(0x53c0, mload(0x5320)) + mstore(0x53e0, mload(0x5340)) +success := and(eq(staticcall(gas(), 0x6, 0x5380, 0x80, 0x5380, 0x40), 1), success) +mstore(0x5400, mload(0x480)) + mstore(0x5420, mload(0x4a0)) +mstore(0x5440, mload(0x4640)) +success := and(eq(staticcall(gas(), 0x7, 0x5400, 0x60, 0x5400, 0x40), 1), success) +mstore(0x5460, mload(0x5380)) + mstore(0x5480, mload(0x53a0)) +mstore(0x54a0, mload(0x5400)) + mstore(0x54c0, mload(0x5420)) +success := and(eq(staticcall(gas(), 0x6, 0x5460, 0x80, 0x5460, 0x40), 1), success) +mstore(0x54e0, mload(0x4c0)) + mstore(0x5500, mload(0x4e0)) +mstore(0x5520, mload(0x3ee0)) +success := and(eq(staticcall(gas(), 0x7, 0x54e0, 0x60, 0x54e0, 0x40), 1), success) +mstore(0x5540, mload(0x5460)) + mstore(0x5560, mload(0x5480)) +mstore(0x5580, mload(0x54e0)) + mstore(0x55a0, mload(0x5500)) +success := and(eq(staticcall(gas(), 0x6, 0x5540, 0x80, 0x5540, 0x40), 1), success) +mstore(0x55c0, 0x20d27cee6f62b9cf0824005b7b29f31d91c4b4c8de945bf50a9fbeb20fc79dd5) + mstore(0x55e0, 0x00ad016680ecf259ea399e3ea1985b2ef18cc7d08bd48a7899658bbf96ad457f) +mstore(0x5600, mload(0x3f00)) +success := and(eq(staticcall(gas(), 0x7, 0x55c0, 0x60, 0x55c0, 0x40), 1), success) +mstore(0x5620, mload(0x5540)) + mstore(0x5640, mload(0x5560)) +mstore(0x5660, mload(0x55c0)) + mstore(0x5680, mload(0x55e0)) +success := and(eq(staticcall(gas(), 0x6, 0x5620, 0x80, 0x5620, 0x40), 1), success) +mstore(0x56a0, 0x040e7fade2c74938e81fc41d57ec74d4c69aab70bcf534fbe293068c9a1088c4) + mstore(0x56c0, 0x1fbbbddc552b9965f655834f34ecc67375118985a1db09eb95d8d97a4caea007) +mstore(0x56e0, mload(0x3f20)) +success := and(eq(staticcall(gas(), 0x7, 0x56a0, 0x60, 0x56a0, 0x40), 1), success) +mstore(0x5700, mload(0x5620)) + mstore(0x5720, mload(0x5640)) +mstore(0x5740, mload(0x56a0)) + mstore(0x5760, mload(0x56c0)) +success := and(eq(staticcall(gas(), 0x6, 0x5700, 0x80, 0x5700, 0x40), 1), success) +mstore(0x5780, 0x0f24d1f95ec8f320d5aa85582e5b03c11f1d74f49d9995c58ea25752b4643581) + mstore(0x57a0, 0x1eff525bddf71f3c5131f97a6ab66b29c1c094ef2ed7ec26efba1e9cde72c306) +mstore(0x57c0, mload(0x3f40)) +success := and(eq(staticcall(gas(), 0x7, 0x5780, 0x60, 0x5780, 0x40), 1), success) +mstore(0x57e0, mload(0x5700)) + mstore(0x5800, mload(0x5720)) +mstore(0x5820, mload(0x5780)) + mstore(0x5840, mload(0x57a0)) +success := and(eq(staticcall(gas(), 0x6, 0x57e0, 0x80, 0x57e0, 0x40), 1), success) +mstore(0x5860, 0x295a04ef97b33d153294b19ff7db2dbc2c1783542d8163ecacc7ab2e74ea8d35) + mstore(0x5880, 0x0fc1fc7d1c3adc234fe11bfab267359e3c70e72cf182006ac301130cf16e45a9) +mstore(0x58a0, mload(0x3f60)) +success := and(eq(staticcall(gas(), 0x7, 0x5860, 0x60, 0x5860, 0x40), 1), success) +mstore(0x58c0, mload(0x57e0)) + mstore(0x58e0, mload(0x5800)) +mstore(0x5900, mload(0x5860)) + mstore(0x5920, mload(0x5880)) +success := and(eq(staticcall(gas(), 0x6, 0x58c0, 0x80, 0x58c0, 0x40), 1), success) +mstore(0x5940, 0x0000000000000000000000000000000000000000000000000000000000000000) + mstore(0x5960, 0x0000000000000000000000000000000000000000000000000000000000000000) +mstore(0x5980, mload(0x3f80)) +success := and(eq(staticcall(gas(), 0x7, 0x5940, 0x60, 0x5940, 0x40), 1), success) +mstore(0x59a0, mload(0x58c0)) + mstore(0x59c0, mload(0x58e0)) +mstore(0x59e0, mload(0x5940)) + mstore(0x5a00, mload(0x5960)) +success := and(eq(staticcall(gas(), 0x6, 0x59a0, 0x80, 0x59a0, 0x40), 1), success) +mstore(0x5a20, 0x19188946a2875d90d8fac20a52175bc7fc8a093220c89665bc379cf4edbef704) + mstore(0x5a40, 0x0e96d5c7272650e81fefec1f91d7b3e8672f1ef7ae606a0aed4cc91d364b3b6c) +mstore(0x5a60, mload(0x3fa0)) +success := and(eq(staticcall(gas(), 0x7, 0x5a20, 0x60, 0x5a20, 0x40), 1), success) +mstore(0x5a80, mload(0x59a0)) + mstore(0x5aa0, mload(0x59c0)) +mstore(0x5ac0, mload(0x5a20)) + mstore(0x5ae0, mload(0x5a40)) +success := and(eq(staticcall(gas(), 0x6, 0x5a80, 0x80, 0x5a80, 0x40), 1), success) +mstore(0x5b00, 0x14d85020c3d1946a192768ccf34bc6b2b12a3d349420af7f3a0d658ec5c70064) + mstore(0x5b20, 0x050fc305b408c824e4ed32cc0f0015b8055198eac48bee671a3f2522e31c89d8) +mstore(0x5b40, mload(0x3fc0)) +success := and(eq(staticcall(gas(), 0x7, 0x5b00, 0x60, 0x5b00, 0x40), 1), success) +mstore(0x5b60, mload(0x5a80)) + mstore(0x5b80, mload(0x5aa0)) +mstore(0x5ba0, mload(0x5b00)) + mstore(0x5bc0, mload(0x5b20)) +success := and(eq(staticcall(gas(), 0x6, 0x5b60, 0x80, 0x5b60, 0x40), 1), success) +mstore(0x5be0, 0x170e9674fda6bc38da57745e72ced5e695a814e1035995c783db73a4215e43b4) + mstore(0x5c00, 0x0fb27481ec92c7ba36485ef4f15c9cb2385d627d8dbf6b2f7b7b2303c9e91980) +mstore(0x5c20, mload(0x3fe0)) +success := and(eq(staticcall(gas(), 0x7, 0x5be0, 0x60, 0x5be0, 0x40), 1), success) +mstore(0x5c40, mload(0x5b60)) + mstore(0x5c60, mload(0x5b80)) +mstore(0x5c80, mload(0x5be0)) + mstore(0x5ca0, mload(0x5c00)) +success := and(eq(staticcall(gas(), 0x6, 0x5c40, 0x80, 0x5c40, 0x40), 1), success) +mstore(0x5cc0, 0x027beed3134a76b6b90a669d181b02ca3499aaf7b06a669314b49b04bcde9f0b) + mstore(0x5ce0, 0x0c5565cb9709b5a0a4285d051e15a52c161cac35ea27b7b0173edd9e0ced99ad) +mstore(0x5d00, mload(0x4000)) +success := and(eq(staticcall(gas(), 0x7, 0x5cc0, 0x60, 0x5cc0, 0x40), 1), success) +mstore(0x5d20, mload(0x5c40)) + mstore(0x5d40, mload(0x5c60)) +mstore(0x5d60, mload(0x5cc0)) + mstore(0x5d80, mload(0x5ce0)) +success := and(eq(staticcall(gas(), 0x6, 0x5d20, 0x80, 0x5d20, 0x40), 1), success) +mstore(0x5da0, 0x2826dcf14a991ce4c21f80ae1e814565f8a489388c7cd9b455f27a9f84b657ed) + mstore(0x5dc0, 0x2b8dc208203c58e1034afaa7906c8cde3b5e3ecbb111a0997cbffb3ba5b4422c) +mstore(0x5de0, mload(0x4020)) +success := and(eq(staticcall(gas(), 0x7, 0x5da0, 0x60, 0x5da0, 0x40), 1), success) +mstore(0x5e00, mload(0x5d20)) + mstore(0x5e20, mload(0x5d40)) +mstore(0x5e40, mload(0x5da0)) + mstore(0x5e60, mload(0x5dc0)) +success := and(eq(staticcall(gas(), 0x6, 0x5e00, 0x80, 0x5e00, 0x40), 1), success) +mstore(0x5e80, 0x066b8032d0498080100f9e2c20554ce7a3e0d9ff491563643023d8631d54018b) + mstore(0x5ea0, 0x1df01ac9ae1b168770bbf1d957aa1d2b8397c113fc2252a26304d1d7fa9ba67b) +mstore(0x5ec0, mload(0x4040)) +success := and(eq(staticcall(gas(), 0x7, 0x5e80, 0x60, 0x5e80, 0x40), 1), success) +mstore(0x5ee0, mload(0x5e00)) + mstore(0x5f00, mload(0x5e20)) +mstore(0x5f20, mload(0x5e80)) + mstore(0x5f40, mload(0x5ea0)) +success := and(eq(staticcall(gas(), 0x6, 0x5ee0, 0x80, 0x5ee0, 0x40), 1), success) +mstore(0x5f60, mload(0x760)) + mstore(0x5f80, mload(0x780)) +mstore(0x5fa0, mload(0x4060)) +success := and(eq(staticcall(gas(), 0x7, 0x5f60, 0x60, 0x5f60, 0x40), 1), success) +mstore(0x5fc0, mload(0x5ee0)) + mstore(0x5fe0, mload(0x5f00)) +mstore(0x6000, mload(0x5f60)) + mstore(0x6020, mload(0x5f80)) +success := and(eq(staticcall(gas(), 0x6, 0x5fc0, 0x80, 0x5fc0, 0x40), 1), success) +mstore(0x6040, mload(0x7a0)) + mstore(0x6060, mload(0x7c0)) +mstore(0x6080, mload(0x4080)) +success := and(eq(staticcall(gas(), 0x7, 0x6040, 0x60, 0x6040, 0x40), 1), success) +mstore(0x60a0, mload(0x5fc0)) + mstore(0x60c0, mload(0x5fe0)) +mstore(0x60e0, mload(0x6040)) + mstore(0x6100, mload(0x6060)) +success := and(eq(staticcall(gas(), 0x6, 0x60a0, 0x80, 0x60a0, 0x40), 1), success) +mstore(0x6120, mload(0x7e0)) + mstore(0x6140, mload(0x800)) +mstore(0x6160, mload(0x40a0)) +success := and(eq(staticcall(gas(), 0x7, 0x6120, 0x60, 0x6120, 0x40), 1), success) +mstore(0x6180, mload(0x60a0)) + mstore(0x61a0, mload(0x60c0)) +mstore(0x61c0, mload(0x6120)) + mstore(0x61e0, mload(0x6140)) +success := and(eq(staticcall(gas(), 0x6, 0x6180, 0x80, 0x6180, 0x40), 1), success) +mstore(0x6200, mload(0x820)) + mstore(0x6220, mload(0x840)) +mstore(0x6240, mload(0x40c0)) +success := and(eq(staticcall(gas(), 0x7, 0x6200, 0x60, 0x6200, 0x40), 1), success) +mstore(0x6260, mload(0x6180)) + mstore(0x6280, mload(0x61a0)) +mstore(0x62a0, mload(0x6200)) + mstore(0x62c0, mload(0x6220)) +success := and(eq(staticcall(gas(), 0x6, 0x6260, 0x80, 0x6260, 0x40), 1), success) +mstore(0x62e0, mload(0x860)) + mstore(0x6300, mload(0x880)) +mstore(0x6320, mload(0x40e0)) +success := and(eq(staticcall(gas(), 0x7, 0x62e0, 0x60, 0x62e0, 0x40), 1), success) +mstore(0x6340, mload(0x6260)) + mstore(0x6360, mload(0x6280)) +mstore(0x6380, mload(0x62e0)) + mstore(0x63a0, mload(0x6300)) +success := and(eq(staticcall(gas(), 0x6, 0x6340, 0x80, 0x6340, 0x40), 1), success) +mstore(0x63c0, mload(0x6c0)) + mstore(0x63e0, mload(0x6e0)) +mstore(0x6400, mload(0x4100)) +success := and(eq(staticcall(gas(), 0x7, 0x63c0, 0x60, 0x63c0, 0x40), 1), success) +mstore(0x6420, mload(0x6340)) + mstore(0x6440, mload(0x6360)) +mstore(0x6460, mload(0x63c0)) + mstore(0x6480, mload(0x63e0)) +success := and(eq(staticcall(gas(), 0x6, 0x6420, 0x80, 0x6420, 0x40), 1), success) +mstore(0x64a0, 0x0dcb1cdd3657c399ece58217a56c692dbe284bf69a7ab9d5c314ccfbb5783bc7) + mstore(0x64c0, 0x0b62ed66ad3fb16d0494a009f61c4457d28815267af9dc3e56faf696c42ec70b) +mstore(0x64e0, mload(0x43a0)) +success := and(eq(staticcall(gas(), 0x7, 0x64a0, 0x60, 0x64a0, 0x40), 1), success) +mstore(0x6500, mload(0x6420)) + mstore(0x6520, mload(0x6440)) +mstore(0x6540, mload(0x64a0)) + mstore(0x6560, mload(0x64c0)) +success := and(eq(staticcall(gas(), 0x6, 0x6500, 0x80, 0x6500, 0x40), 1), success) +mstore(0x6580, mload(0xe40)) + mstore(0x65a0, mload(0xe60)) +mstore(0x65c0, mload(0x4680)) +success := and(eq(staticcall(gas(), 0x7, 0x6580, 0x60, 0x6580, 0x40), 1), success) +mstore(0x65e0, mload(0x6500)) + mstore(0x6600, mload(0x6520)) +mstore(0x6620, mload(0x6580)) + mstore(0x6640, mload(0x65a0)) +success := and(eq(staticcall(gas(), 0x6, 0x65e0, 0x80, 0x65e0, 0x40), 1), success) +mstore(0x6660, mload(0xe80)) + mstore(0x6680, mload(0xea0)) +mstore(0x66a0, mload(0x46c0)) +success := and(eq(staticcall(gas(), 0x7, 0x6660, 0x60, 0x6660, 0x40), 1), success) +mstore(0x66c0, mload(0x65e0)) + mstore(0x66e0, mload(0x6600)) +mstore(0x6700, mload(0x6660)) + mstore(0x6720, mload(0x6680)) +success := and(eq(staticcall(gas(), 0x6, 0x66c0, 0x80, 0x66c0, 0x40), 1), success) +mstore(0x6740, mload(0xec0)) + mstore(0x6760, mload(0xee0)) +mstore(0x6780, mload(0x4700)) +success := and(eq(staticcall(gas(), 0x7, 0x6740, 0x60, 0x6740, 0x40), 1), success) +mstore(0x67a0, mload(0x66c0)) + mstore(0x67c0, mload(0x66e0)) +mstore(0x67e0, mload(0x6740)) + mstore(0x6800, mload(0x6760)) +success := and(eq(staticcall(gas(), 0x6, 0x67a0, 0x80, 0x67a0, 0x40), 1), success) +mstore(0x6820, mload(0xf00)) + mstore(0x6840, mload(0xf20)) +mstore(0x6860, mload(0x4740)) +success := and(eq(staticcall(gas(), 0x7, 0x6820, 0x60, 0x6820, 0x40), 1), success) +mstore(0x6880, mload(0x67a0)) + mstore(0x68a0, mload(0x67c0)) +mstore(0x68c0, mload(0x6820)) + mstore(0x68e0, mload(0x6840)) +success := and(eq(staticcall(gas(), 0x6, 0x6880, 0x80, 0x6880, 0x40), 1), success) +mstore(0x6900, mload(0xe80)) + mstore(0x6920, mload(0xea0)) +mstore(0x6940, mload(0x42e0)) +success := and(eq(staticcall(gas(), 0x7, 0x6900, 0x60, 0x6900, 0x40), 1), success) +mstore(0x6960, mload(0xe40)) + mstore(0x6980, mload(0xe60)) +mstore(0x69a0, mload(0x6900)) + mstore(0x69c0, mload(0x6920)) +success := and(eq(staticcall(gas(), 0x6, 0x6960, 0x80, 0x6960, 0x40), 1), success) +mstore(0x69e0, mload(0xec0)) + mstore(0x6a00, mload(0xee0)) +mstore(0x6a20, mload(0x44e0)) +success := and(eq(staticcall(gas(), 0x7, 0x69e0, 0x60, 0x69e0, 0x40), 1), success) +mstore(0x6a40, mload(0x6960)) + mstore(0x6a60, mload(0x6980)) +mstore(0x6a80, mload(0x69e0)) + mstore(0x6aa0, mload(0x6a00)) +success := and(eq(staticcall(gas(), 0x6, 0x6a40, 0x80, 0x6a40, 0x40), 1), success) +mstore(0x6ac0, mload(0xf00)) + mstore(0x6ae0, mload(0xf20)) +mstore(0x6b00, mload(0x45c0)) +success := and(eq(staticcall(gas(), 0x7, 0x6ac0, 0x60, 0x6ac0, 0x40), 1), success) +mstore(0x6b20, mload(0x6a40)) + mstore(0x6b40, mload(0x6a60)) +mstore(0x6b60, mload(0x6ac0)) + mstore(0x6b80, mload(0x6ae0)) +success := and(eq(staticcall(gas(), 0x6, 0x6b20, 0x80, 0x6b20, 0x40), 1), success) +mstore(0x6ba0, mload(0x6880)) + mstore(0x6bc0, mload(0x68a0)) +mstore(0x6be0, 0x198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2) + mstore(0x6c00, 0x1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed) + mstore(0x6c20, 0x090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b) + mstore(0x6c40, 0x12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa) +mstore(0x6c60, mload(0x6b20)) + mstore(0x6c80, mload(0x6b40)) +mstore(0x6ca0, 0x23154cd76fc1a1456722405944669193fa5bb5dca6bf2d82a753c2bd4a301844) + mstore(0x6cc0, 0x08faab3e0053f08c27e98f5f55d9e6828d5bec3ca616b4f8014ba8a57f087bec) + mstore(0x6ce0, 0x2491c974cda41f8748723ea2e5235649e0b01b17471d0152d93be5a0865f3f3e) + mstore(0x6d00, 0x078a2487b80fcbfd3b4036c306540ec111c685b7842bd153042a4357b30db70a) +success := and(eq(staticcall(gas(), 0x8, 0x6ba0, 0x180, 0x6ba0, 0x20), 1), success) +success := and(eq(mload(0x6ba0), 1), success) if not(success) { revert(0, 0) } // keccak256("taiko") mstore(0x00, 0x93ac8fdbfc0b0608f9195474a0dd6242f019f5abc3c4e26ad51fefb059cc0177) return(0, 32) - } } } \ No newline at end of file diff --git a/snarkVerifier/data/zkchain_proof.json b/snarkVerifier/data/zkchain_proof.json index 6fa3b21..9e54051 100644 --- a/snarkVerifier/data/zkchain_proof.json +++ b/snarkVerifier/data/zkchain_proof.json @@ -13,12 +13,12 @@ "circuit": { "duration": 291422, "instance": [ - "0x4205e19e33d59ed9784c4442d236295b", - "0x28a972d4892d1f03b69f2c70cfc00de4" + "0x718ada8ceea49d98714082f90e68dc5c", + "0x3d496b8b0fd74fe930c241bc8211242b" ], "k": 21, "label": "pi-600000", - "proof": "0x26116fb9f37b3300e99dbdc84fd1f78ff36b293c1f10cd65f0943b1a076ee22d29f14fef497593c99616747ab40ba9f9d7165e5cac99961494cf1d9e46737f9501f58a652ebcc3247c29a3cdd37b0e1931f3dd82333928e03b9b44d5151e060a154e6333d18bda6117e0632f7645d42c71dc17c9b390455e704a6a3561ae7479223c07305966f2b57c2862226e43233dc33d9b5519a320cab93d7833d76fa9ed20231f11b777a51b06bf763cd0a25f31b6c920ce12edfc1b5862cc4c2fde1fd613ba00e1dd1820507325e9fb47a0e80b49b63f7b586641e212c8d4033c21af572157f18110a1e72516ba69ba393c088552b8354522e3d14ead80c40ce872376a27ee0126f696a686a2bd5fb3bb729c1872348a82089b767fa20cc8f0642eb5402c9ff337c21299eab22066e52e8e1914fbaad6023460f2496e4c92a6f03931ee2f0864abb41414d49998a7d2e6a949a53e33f29c3112349e2d00b7a22cf0d17b08e2d3e79f52f29e616292d17a3d5d0fa5e23326b6a722d9c729936f2a8e625507269254eee0a3e80b193d712da49fd4f2ba434292874fc610e315782aa9a91900e568b770e188417f16df58f891fe08a1d0eaa51308e8c5cfd76b9760fd735404b5c07a203689f2b6db48bee74f69a217961cec19a01f8e564f0349aabef6771bc8b981cbf593d49e847bba6e561f4352cd2aed1a8a00957e7c3a2a23f13ad01642f503bb72c6e9fefe493f7979daec6e51ceb2be2fc8c566f58cc6ddd9c63016c6359d6a43b791e07b4b7bea2e0e5155b2610c41fa960fc75344b36467b62a1393b68583b7729f65f8671631b24c4a52e580cc1f1f5ff72614aadb3669075f2a4f22a21828d6dfb26da87af4a8d85d2c1da069543ae55b20aef8590ba7213828119c4483c419d49ae550119efe09297c4f3c1c3a73544e6d3795e89a2f8c8e1365b3eacb1907d7ffaea6736bfe734a6cc8628ae804cc31770c1b289e36a20b1c057a2c4a5838a02e825549f49fad57660b7b7ef70147c2efd97c56e76da2a21baab4425905663885cea804d327af8ad08a5eaa37169f6298ef638571149296229081ad401a4ffd34f47061046b408820fe6e804f3af3fe3abeaaf4dc7d41e92139e5259f41290a48c6c996ecace0fc121b17ac3b87146a56382bc0750a24702f92232659b8e9ace0a45e3fa6931a74fdb84c6b722eefec125a282528beedef26b36b0d931e9a3dcb5af52236cfed996164fb86452843b841d7e8f985e7167000d205df3e6a4488c16f3ea48980904f1c13cc72d9a8ec8fb74c949575dc901b2e7a7a569f5e2f457dd25e608cb2489843791c4ef257cf80cd3920024e0461591e1495e284dcda1b76f13099b1470b265f6901dd374daf0bb4bb0f44dc51fb29162208cb2213fd0552ba8ca3b2ebf7735cc2abc4c49478bdf4f502ef17d5a66e234235a20779944e1311bc511992f6d2d4dd27a57b9a142c3297de64657fa66517a88a7859bf36c33bc147d3d4c13034f446e70b1dc28dc6d5b1c194dcf600320229d758169545027b2054a28136eb84eb0dcd343758843dd8d177790267f1342b87882675603b6175bcf4035c1af136f4c575767a7aa987bba9c094a2f5058418ddfad94c71cd73395bdff8f6cff1f9b3f917f9d86a6e5b70c40716982bc95721496a665e919f3d431987a984195261990ad91d835e35a050accda77d53e5d92ed4f86b7ac60edc4691cc2fcfe2083b1f6788ff5e118fe261b7d06d0d82a6162bde213fc628627fb4651e216ac6a587962b00868982cbd6826b5a1e077a6f232cc39b5b2d5a8533355cf8c2f92d5eb9530eb45e04cf7407516b5baa5201801d26776d2b612f119bdca394f33d00e41432f461ca4e77b5e6eac77a40ec06693b1ac600903f39df28bba5d65494aabd5158ee2276f778793819348b4bfb94da630a202c4c19097e2ec33b3a513ab993e3aaa2a1c3af646e218dba8f39aebc4858038cf5fc87e2017346576998e663e2ece3907d43d17e49bfed9ff97b6822bf071408bea3c08a27f250d6b3ed0f7b9611f1b72156e328d19b27586e6b4e2d42852b643b055c991989b26d68f3e5533cf5b411adf6331abfb4afb7d7f7b1f5453927ccf506ffa53433c4f925c5c2a917498e10464d3d85f5f8a7b499a8184dd6b1078fcc3665aef6a94e9cbeac97f3296ca1a85d30ee0cd079086a3cfff3ac204004ed551183c6a5757ea9f80fb78ec24b9800e8f5dc449d508a5b3fccaa8ad37e0502447dc9531e1bb1befdaec4bc7d75c9a05e3915b9351d3d03a2bedb4535a728ffa3341901a74490f9c6f60c71a1753ca1b3188e34e46dfd0edb550aaecf870514fe85341163dedb902e85113ba8c828586bd1c0867b11a0a626a1ac64f2442875f50b4a59bfa6b46e28642c86cc51f3cc20d86c0b41eb0393cc20bd2c1b2f04ebf20d97e72e9d46dae40a495d4e22deafef15ef326e4d3012f0714404bcec00746fa1a9b6deaffe4ada68c155a17026bb963f9fd9b42b9906c011526c9a840f3f5fb430a38d3020957ca4ccdae67991c431758c8ab6e74659709624242a57077715e614c4ea546e9f6700a5c077d0248631688194fb2603108d9a8d44dd0c1618760d2b70f7b20dab44ad22c132a7b319c031933d3dfc5b8530cc2ac9fcbe1ccfd0eed4abcfb33ca60e6300a0556f04ab3ea364daf2f3552453718509c1ff17a623a7f164833b0dcb77f6940859985e8f766f77d1ae2c49b57a241d1202a005617a009f28bec9c4b4fc0ddf0e99dba570fda35a1d9298a00e18731764f2762148c441c5e2e7539387945243bd6546db651de41dd72909a20566ff2ecd318c079d9fb20be93e3d2ea2d3e798270fb8d401ad212b10eff5f46de4e53c90f35914c4146a651b08e73dce63c0427d3dccc5691019ab2eadd29484e72c5e7d0f0f174c1d4acb2634f12e3698332aad61356432daf703225e4457af16fbb62a740626199c3bcc2d388821b229b8825c8eb77a22c6964555fbe9e049eb1161b880a80cef010853fec79a74a12f0a27e9fd2a9f14a8a8421f0814b52a9d1cf9ade26d2a96834e8d0ee8ba816bf556d294cba6617032a2af5a5121889031d4d57c5ca6248d0dd049e50b20fa73f7b8336cf1aba9b44ce8cbd6ac0459b9e14776810f4c2538eec91c92807a2d46e341cc7b9ed5447b2f1ad9454fbb773cf370b2dc3ba30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028f358e45c2eb9e40eb79c12393924bee0e591b7ea0895f2519edec13f036b6b10c8ed4fffe51466adfd9d35f5cd946c0846a7bf28e8a5ff816c34c1a0b4bc970f1d9fe3e17a6e5675e3e225c246de111c8a92c0eaea3d2beeba3b35e0ffde0f02c36c7f50d2ecf72187de437515eb7bffa781dd504b0daa8ee3cde1c0992c1216cca32edd8e112b22d2b3335aeaad3ce8c50bb3ac9deb51d6db76dcf578a2b421df6f98926eac1ce28db33779eac28a012dee43292431d4f2468f7ac1da786c25ca1cc3b49e6f9ee92aec2db24ccc731d0f427a27ba762fe2f44e88c2bdb4a412dea38c0fcac2199648b3f9f9aa4fd3ef2e61f104a1ed15e5fa69a1caf391840debe8eeb0c94d28ccb842feb262b638b5fa395bb7e13864f3835b86c4ac99310a8267866c2275b3c930ec4b19e58657587f5060b03eef29cc6ec22837a5cb360b8df006f47c254006deb8571103356aefc70b391599e69e04ec16c56d46e5941f1d593d88307a8e77865e265c9e8b8f92d29557a7e9656c48b8fe2130c10f46286bea07e64b165c495e847180e64de095f069c375b17964d7110740b2e70ebb0ec72126617a69cc61300ff61275a0e77b3e2fbe6605e8a090523991d9f3f6061cc3deb53b7b6edd9f9aadfe9fb4d61d590f0f8685d257850f9b1ea2ea054d1b16244b44059bd34f0e9afea8482e5ed5e744695df24406b8494489d20357a20f0b49ca7ce293100b2262d0e7ebf12a7afd68470476fa01c3ae9204f41e336f0812d1cf7e13d638cfb9621877d9461764a7b036f4793c2c9535276709c89c89950fb247e767ff43b2e5a071f38024edf4b231c0cd8795d7a1ae9c9dcb4de8e2c412a205d7118be10b6ff80ed8f90b9570ca2dad45fc65bb4dd03fa09d4c406907038dbc0c33f22231aeb8e27d736122e8d4ab9c7769d072392aebdcadd770bf28076363141b3a82504ce1886effaa194578e45b921ecbb64298b3d12c2d27a862110d87f3b4d8a7073b539a65d4a1152b7e8b214dee3a2174c7cbe93719cb94f20072e33365cef16e939a21380b395fdfb68347e420cfa634ec3a064281a88d9d1947138c8f1d1d9d7bca3edcba6a5bb59f62534429172f95bfe606955d452f441377d1622643735ea7ccdc5a93e9a265539862b8a1d196cde5e5a6ba869143963058f57d2454d0ddd9f046f3ee47d7af4bad279111729468b556d06857e251e92679219748fec444bd9cee4526fc99a796019ebc2a7a46609f127b9d32de88fc1da6cfe9ec19bac90006af19022fe4e5d6c433e22fd770fa9b28b10339d3d08b1dfd3597710104de5c168c0e279fc2fb94e84b84483e9034331d76fa1dc7a1da", + "proof": "0x16e036a5aca51825a193eb3d5c5d8331f597d2629ea231ffac1f2c397b12c0eb1d29febfd91f732f27443bdd8840172633b95ca1a7ce3d2faab288e27a37ab25148fb513b7449a62da487082045104c1084da5c4897700c0ca08dbe3f0a4e28d0840963ee8f5fb463686b195a6645654970ccc7efeb9feea4b16bb81b8c0f84720142c550be2f341f3d22690798c99d28382da108f63a8a3e767c52d80640d3627e333cb43dc080f5baa32a2487ffa4f47d944802b3032789fc48d1a76f0a70c01b5e35da94aa76ee41bc8cfa5fe504c7ec0d44193167b7189901b2bceb7276c1c89c672378e96c0a23b79a24c9eeb7c53ed7fb062fc0ed196d80d0b60a0ad4b0e9d9816a83ec869af378d4773e1e5f1e5569a4ab0ea41bf75c31845e99c7b1d1e88dbd0663ec0a8ae9869f03a8494c002ee530d2de710b0b61e490762f60cdb210fd43ce066cb185acb7628bf37b7fbaef72cd226c8df6427c526e80317f73604cb334628fd2abb70b77d3878b0bd332bd1be0e032730fec7b81d254ea3bd981f8e833ba06e2fb2c054fe9179be104c2134f7b2e92f28c94f26384fa96a560c106fc74d59d0e7235235bdf1758b24a33dab25246f274053c05292b611425977036b09403478d4e2bc3cbf62b09a74fe2fbdf7c32710f73f1bb6eb6b4696eada184f17e3cca2fdc95cf5188186989848ae2822f356bb89372ddf4e867abdeb4a15347d151adc2f7232b07a6b4b6775e18b48f97ef3a698c1d128734329957d5f1e25a6636a14808e4846e1584386d68f4ae518fcbbd73ae1d5039ea94c3a295d027b5775425a08acc5c2c8f8a8ccb292f5993f88143458765afe9867324d64a20ca9e9bcb9c6d85b59a769e8bbd68df42429b74c9b3a72f207f6a3ebc90f56ce080bdf1bca4fe286b6b6b234633f13f9333de9171adf9fa3d674e32432444b610925643f2ba85e1efc4e296143d41b0eb275f78552da7ad7063cb5f45d86d9dc2ecaa3fadca4e05ecc300a2e3280e415530f528506a6e7be95b33d9c271baa33264ebd7a277e4505eea63b229dde96c55d02ae427bef23fe952896718c4376b50ae151d8520004e68016df194c8655a8a37274dfbed5353d50980276308002b328376f2f449f360936a0633c530cf5be7b8c3561b63c2ee86a438fb6ad22472a06d3c72e5a8f375bbb2f6297f356ac8506b472298dc1f83d340479df14ded5dd2fe3abd0eee9e16298a1b08077bf3b3d3c7ceca7b8e60eab8841df315a78c0c30545664cd4621088b362f8d3aa32e80c8ca48783f8654fffa0624628cc820eeb266404951368eb760e4741f98d04096c1e9a6f6cf11d4cd684b40287db35ba7b2418b5044cf9844279d1bb7ccd16af79ddf03f35b5b39060da862466162455b40be580317ee6ff27bec758b6cadedbf184dc44d8b9ca97ec2616b2d7c1ab18d011ae39bf819d3eaa12a08ff4708e3cb74b2e720bff10e4822168e9c05f3e9850025dde20307c19a0dd9c9aa4b2d97702e1405a54fde560410e9b2abcc95fb5a7078f5c29e75f57ab4501ea49d60453a9a49c2799d41c25af72f4f8dd3f2fd58108399cfabf29716f8d1f08826266775dfeff5b9e9aec442ba896c30ccfaa68a2049107362262ca2d40ff1dca8e3ef0d2347e35faf7756c2c85bf44b0bd0f6bb819385e8ad6212bca95b6118dfc1f879f2a80d91eaae446218f362dd84c3dc37621b278a9d431cee3dff5c17d10fcb75d5e33a1221849673a93e786324df0d1d9240c3114a250eb45140a1b5a33b212510bd46dc0a8ba349c22fd601e62741dec2296cbccf14e87f8c39feff13506c6485ed2ba15d94cc086529830a749e74dde009df90dceef1f8ecd5aa046ce049a8f9b30715b4e27da439ee0733dc02e411a12e8bd5343c3555545813e11f55e68b4c9817d6dc924b45194317304417551f4249f30f9e8e4ec5304f1dc2d9c70ac9f9318156c8c5a701b90f105870d2485ce2cb44bd41fb25f1b6d82baa5b12d55f9a87bf40b26041878305c27dd25eb8aa521fde796fdfe1daf1987f071f71b86ce4cd6fabf832cfe22c38a51820a10d2140804f748b57c8d5d621d9eebf03d8c6a7a3b6e834e94d6dd217e99f9b8d0da87137944d795bf3dc48bc03359fba0c1214d2ef7f9b51b608df88e8d64bbd97d6809a8b65449a8d4b0c03974c0989205b924a9ad70e42c58c0e2e568b23222733f114a8db890b1dd2b5a9ef2783ed17988718bccb718535420462614ec2d68a6cb2bf7a537162335c620c2dc8df70367b0354fc2e623774fc18ee77748b26cda9e154dc42ad60724a396f8346f69a21f7179eaf966fe7320db776efc30953fee930f9e5ffe634eb9d04cf4d38a322a62b575cd9f41037b9c5f380d0eda1b5400e906c62055422c76ce4c10ca14620111d04ac63d73611530f5ea1947c4c99d6dd126f7e3adfc77149b7f72691ab78b893bf058d4f1e814398c864566e44466a0b6012c08e0c987192d0644391a95d3a01f8d84ce6edb90a0751124220b30cd43d50a084cc0444a2261d906ae0fc50900adc618a9d87e4fb1051c8bddc875e66c3d0ff5ffac5752fb1e2f5419b5e7429505cb849c91f9e9e151003a8dc5f2e7bd2619fcba42b51dfa05373354cec37e6df2e0742a660981133b3968f0417e3c495f06fc279d3abbbf2d66ffbbcdaf6d9578dac980d8972fc707625799a895cec03e049593195b24d326bc0d636f394a4fa7d47a60070d896af4fc14f791e469ad880e615ac731b1dde57c371c9b38d3008fece2c5fac70ee57787e90015cf06f0701cd3f1a5df00b85fe7df2770cd01e05632301c786519d8eec1c624e6de9c7c7f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a9befaf83880a1bec9516bed9458a8ae66eb56d77f724f56c63fe916cb4b9772f37ec6c556f01a93f5999d99a3e4ef814d6e6c9a54f91f2d5db360efaf6866a0461dc44ded35b31e15121632c3f1e5a979e94377fd1521a49eaaccc2e6ddce518d8fe8dcc631e731958227ed8830b9e378a127826344b6a4b838b47bf0681ae045417090d097e26afeadb6fab63f395af86d43ed1e017f6e3ce919a818e7c8e252d4ee8c6a764434fc45f52166ba9d83dd2e2f1d5f50c5a599c0655eaffe34d19f869744047ad2f0a0e01c8d00bbfbc7114794717ef22154b7ce54be992f60b223238d6db967856c28efb706674d5c8e7fb3a818ca50cd3ea7aae1988cf59170dc6888ce37b0f70c599750835094d96be084f2480c9826a13b580315b5083972b9aca785ae55a0125c4c3a4ef64f28c5b1af7d3b5c84e061c26252349a6f0b911c57368af7050e995e45e3956959f766bf59e32133d096a75aa9b50ab971c9514bbb4894c46daa3130707dd9c61977eec9f040ab04f991bfd98a4ad87afef410dde858a671cbfedf5f0c7bcfb81bedb3c5e40e1e774e95b5cec4e941998b6c61c1ea123ce8d7ff7cdf5735734020f9e1a446dd5df894bce173a7aa6dfe5a9aa018841d7936b838c1b81a9a0587864405277f1749180cb2a241d944e23b89c591e348eef9e2e27dce9b2fed563d0bdd27367d050ff46a8a99c39fb51a775a5e825e1b960cb8186cb1c3c11a0fd586ed96521d7e9e682d9d04e5c115af461040d03a4ccfcf874407ebe489b1e1600fa2e058c1e99b0fe0f9d974ea4ed27a6dcad276f9c89254ceb936ea2cf0cf779f06fcae6d3e803cc77c99fc4e8121bd890de1db9976a186506c53cfe4155dec66001748800fdb2100dc9257197d59888ed3e2c253291d7818cd20aed291b05c1ea93cbd0bc089752fd3570516a081579018f15933b07c86ce8a2114d94e9ca50ff649ebeff3a0e5b944966086c564883221e2491428fcf30ca027e5e40d13973e0a4c075adf0e488f27f0922324ad8a884c726c5ce864fa788a5f7a3c553080d22248c27848cc0a124865f35cb31441cabac209d31cb12337ae88ea662500409e54aabcc0f1cedca1399afca7e0477f27838233d110fcf3c640794a4c87e1af34e6416a2a11b87d2dcdc64adfde74fddbb6b2a38e8d5724318a8707e8548bcf9f7949b55b30f312a0e7d7bcbdda7476a4fc6238fec44d031bcd4fa55723aab3addfef9a26f8d59931408c875fc551530b5100ad4c35c47849b9cb46d90deef8327252f52772098aa782dd1887c647e3653ec00dec2f291c3a1863b89bb9d993e5680523f450b83bc0db1eddddb51ddaeeab0", "randomness": "0x" }, "config": {