From c35afdab3d1f59fe4a316acfb2c552baa0852a11 Mon Sep 17 00:00:00 2001 From: Ilya Lesokhin Date: Sun, 14 Jul 2024 16:41:46 +0300 Subject: [PATCH] feat: support holes in range_check96 segment --- .../cairo1/compiled/test_contract.casm.json | 1367 ++++++++++------- .../cairo1/test_contract.cairo | 10 + .../src/execution/entry_point_execution.rs | 61 +- .../transaction/account_transactions_test.rs | 43 + 4 files changed, 892 insertions(+), 589 deletions(-) diff --git a/crates/blockifier/feature_contracts/cairo1/compiled/test_contract.casm.json b/crates/blockifier/feature_contracts/cairo1/compiled/test_contract.casm.json index 87e6145404..10184338ef 100644 --- a/crates/blockifier/feature_contracts/cairo1/compiled/test_contract.casm.json +++ b/crates/blockifier/feature_contracts/cairo1/compiled/test_contract.casm.json @@ -100,9 +100,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x44b3", + "0x4511", "0x482480017fff8000", - "0x44b2", + "0x4510", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -275,9 +275,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x4404", + "0x4462", "0x482480017fff8000", - "0x4403", + "0x4461", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -536,7 +536,7 @@ "0x48127ffa7fff8000", "0x480080007ff88000", "0x1104800180018000", - "0x15c8", + "0x1626", "0x20680017fff7ffa", "0xb", "0x48127ff87fff8000", @@ -588,9 +588,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x42cb", + "0x4329", "0x482480017fff8000", - "0x42ca", + "0x4328", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -805,7 +805,7 @@ "0x48127ffa7fff8000", "0x480080007ff88000", "0x1104800180018000", - "0x14bb", + "0x1519", "0x20680017fff7ffa", "0xb", "0x48127ff87fff8000", @@ -870,7 +870,7 @@ "0x48127ffa7fff8000", "0x480080007ff88000", "0x1104800180018000", - "0x147a", + "0x14d8", "0x20680017fff7ffa", "0xb", "0x48127ff87fff8000", @@ -922,9 +922,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x417d", + "0x41db", "0x482480017fff8000", - "0x417c", + "0x41da", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -950,7 +950,7 @@ "0x48127ff07fff8000", "0x48127ff07fff8000", "0x1104800180018000", - "0x1486", + "0x14e4", "0x20680017fff7ffd", "0xc", "0x40780017fff7fff", @@ -1128,9 +1128,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x40af", + "0x410d", "0x482480017fff8000", - "0x40ae", + "0x410c", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -1245,7 +1245,7 @@ "0x480a7ffc7fff8000", "0x480a7ffd7fff8000", "0x1104800180018000", - "0x13c9", + "0x1427", "0x20680017fff7ffc", "0xf2", "0x48127ff97fff8000", @@ -1256,7 +1256,7 @@ "0x40137ffa7fff8001", "0x40137ffb7fff8002", "0x1104800180018000", - "0x148b", + "0x14e9", "0x20680017fff7feb", "0xdf", "0x20680017fff7fee", @@ -1344,9 +1344,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3fd7", + "0x4035", "0x482480017fff8000", - "0x3fd6", + "0x4034", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -1388,7 +1388,7 @@ "0x48127fdb7fff8000", "0x48127fdf7fff8000", "0x1104800180018000", - "0x18bc", + "0x191a", "0x20680017fff7ffd", "0xc", "0x40780017fff7fff", @@ -1630,7 +1630,7 @@ "0x48127ffa7fff8000", "0x480080007ff88000", "0x1104800180018000", - "0x1182", + "0x11e0", "0x20680017fff7ffa", "0xb", "0x48127ff87fff8000", @@ -1682,9 +1682,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3e85", + "0x3ee3", "0x482480017fff8000", - "0x3e84", + "0x3ee2", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -1969,9 +1969,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3d66", + "0x3dc4", "0x482480017fff8000", - "0x3d65", + "0x3dc3", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -1993,7 +1993,7 @@ "0x48127fee7fff8000", "0x48127ff27fff8000", "0x1104800180018000", - "0x17cf", + "0x182d", "0x482480017fc88000", "0x1", "0x48127ffa7fff8000", @@ -2186,9 +2186,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3c8d", + "0x3ceb", "0x482480017fff8000", - "0x3c8c", + "0x3cea", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -2350,7 +2350,7 @@ "0x48127ffa7fff8000", "0x480080007ff88000", "0x1104800180018000", - "0xeb2", + "0xf10", "0x20680017fff7ffa", "0xb", "0x48127ff87fff8000", @@ -2402,9 +2402,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3bb5", + "0x3c13", "0x482480017fff8000", - "0x3bb4", + "0x3c12", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -2541,9 +2541,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3b2a", + "0x3b88", "0x482480017fff8000", - "0x3b29", + "0x3b87", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -2575,7 +2575,7 @@ "0x48127ff77fff8000", "0x480080007ffc8000", "0x1104800180018000", - "0x15d1", + "0x162f", "0x40780017fff7fff", "0x1", "0x48127ffa7fff8000", @@ -2732,7 +2732,7 @@ "0x48127ffa7fff8000", "0x480080007ff88000", "0x1104800180018000", - "0xd34", + "0xd92", "0x20680017fff7ffa", "0xb", "0x48127ff87fff8000", @@ -2814,9 +2814,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3a19", + "0x3a77", "0x482480017fff8000", - "0x3a18", + "0x3a76", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -2992,9 +2992,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3967", + "0x39c5", "0x482480017fff8000", - "0x3966", + "0x39c4", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -3013,7 +3013,7 @@ "0x48127ffe7fff8000", "0x480a7ffb7fff8000", "0x1104800180018000", - "0x14d9", + "0x1537", "0x20680017fff7ffd", "0xc", "0x40780017fff7fff", @@ -3096,9 +3096,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x38ff", + "0x395d", "0x482480017fff8000", - "0x38fe", + "0x395c", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -3117,7 +3117,7 @@ "0x48127ffe7fff8000", "0x480a7ffb7fff8000", "0x1104800180018000", - "0x1545", + "0x15a3", "0x20680017fff7ffd", "0xc", "0x40780017fff7fff", @@ -3201,9 +3201,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3896", + "0x38f4", "0x482480017fff8000", - "0x3895", + "0x38f3", "0x480080007fff8000", "0x480080017fff8000", "0x484480017fff8000", @@ -3226,7 +3226,7 @@ "0x480a7ff97fff8000", "0x480a7ffb7fff8000", "0x1104800180018000", - "0x152b", + "0x1589", "0x20680017fff7ffd", "0xd", "0x40780017fff7fff", @@ -3313,9 +3313,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3826", + "0x3884", "0x482480017fff8000", - "0x3825", + "0x3883", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -3334,7 +3334,7 @@ "0x48127ffe7fff8000", "0x480a7ffb7fff8000", "0x1104800180018000", - "0x161f", + "0x167d", "0x20680017fff7ffd", "0xc", "0x40780017fff7fff", @@ -3459,9 +3459,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3794", + "0x37f2", "0x482480017fff8000", - "0x3793", + "0x37f1", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -3609,7 +3609,7 @@ "0x48127ffa7fff8000", "0x480080007ff88000", "0x1104800180018000", - "0x9c7", + "0xa25", "0x20680017fff7ffa", "0xb", "0x48127ff87fff8000", @@ -3661,9 +3661,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x36ca", + "0x3728", "0x482480017fff8000", - "0x36c9", + "0x3727", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -3684,7 +3684,7 @@ "0x48127ff47fff8000", "0x48127ff47fff8000", "0x1104800180018000", - "0x164a", + "0x16a8", "0x20680017fff7ffd", "0xe", "0x40780017fff7fff", @@ -3783,9 +3783,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3650", + "0x36ae", "0x482480017fff8000", - "0x364f", + "0x36ad", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -3897,9 +3897,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x35de", + "0x363c", "0x482480017fff8000", - "0x35dd", + "0x363b", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -3918,7 +3918,7 @@ "0x48127ffe7fff8000", "0x48127ff67fff8000", "0x1104800180018000", - "0x16af", + "0x170d", "0x20680017fff7ffd", "0xc", "0x40780017fff7fff", @@ -4036,9 +4036,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3553", + "0x35b1", "0x482480017fff8000", - "0x3552", + "0x35b0", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -4057,7 +4057,7 @@ "0x48127ffe7fff8000", "0x48127ff67fff8000", "0x1104800180018000", - "0x1654", + "0x16b2", "0x20680017fff7ffd", "0xc", "0x40780017fff7fff", @@ -4241,9 +4241,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3486", + "0x34e4", "0x482480017fff8000", - "0x3485", + "0x34e3", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -4485,9 +4485,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3392", + "0x33f0", "0x482480017fff8000", - "0x3391", + "0x33ef", "0x480080007fff8000", "0x480080007fff8000", "0x484480017fff8000", @@ -4513,7 +4513,7 @@ "0x48127feb7fff8000", "0x48127fef7fff8000", "0x1104800180018000", - "0x14b8", + "0x1516", "0x20680017fff7ffd", "0xd", "0x40780017fff7fff", @@ -4628,7 +4628,7 @@ "0x480a7ffc7fff8000", "0x480a7ffd7fff8000", "0x1104800180018000", - "0x1508", + "0x1566", "0x20680017fff7ffc", "0x63", "0x48307ffa80007ffb", @@ -4653,9 +4653,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x32ea", + "0x3348", "0x482480017fff8000", - "0x32e9", + "0x3347", "0x480080007fff8000", "0x480080007fff8000", "0x484480017fff8000", @@ -4686,7 +4686,7 @@ "0x48127feb7fff8000", "0x48127feb7fff8000", "0x1104800180018000", - "0x1592", + "0x15f0", "0x20680017fff7ffd", "0xe", "0x40780017fff7fff", @@ -4821,7 +4821,7 @@ "0x48127ff67fff8000", "0x48127ff67fff8000", "0x1104800180018000", - "0x1447", + "0x14a5", "0x20680017fff7ffc", "0x60", "0x48307ffa80007ffb", @@ -4844,9 +4844,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x322b", + "0x3289", "0x482480017fff8000", - "0x322a", + "0x3288", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -5001,9 +5001,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x318e", + "0x31ec", "0x482480017fff8000", - "0x318d", + "0x31eb", "0x480080007fff8000", "0x480080027fff8000", "0x482480017fff8000", @@ -5024,7 +5024,7 @@ "0x48127ffd7fff8000", "0x480a7ffb7fff8000", "0x1104800180018000", - "0x1562", + "0x15c0", "0x20680017fff7ffd", "0xd", "0x40780017fff7fff", @@ -5133,9 +5133,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x310a", + "0x3168", "0x482480017fff8000", - "0x3109", + "0x3167", "0x480080007fff8000", "0x480080007fff8000", "0x484480017fff8000", @@ -5159,7 +5159,7 @@ "0x480a7ffb7fff8000", "0x48127ff17fff8000", "0x1104800180018000", - "0x15fd", + "0x165b", "0x20680017fff7ffd", "0xd", "0x40780017fff7fff", @@ -5282,9 +5282,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3075", + "0x30d3", "0x482480017fff8000", - "0x3074", + "0x30d2", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -5420,9 +5420,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x2feb", + "0x3049", "0x482480017fff8000", - "0x2fea", + "0x3048", "0x480080007fff8000", "0x480080047fff8000", "0x484480017fff8000", @@ -5450,7 +5450,7 @@ "0x480a7ff77fff8000", "0x48127ffb7fff8000", "0x1104800180018000", - "0x1608", + "0x1666", "0x20680017fff7ffd", "0xf", "0x40780017fff7fff", @@ -5517,6 +5517,100 @@ "0x7", "0x482680017ffa8000", "0x100000000000000000000000000000000", + "0x400280007ff87fff", + "0x10780017fff7fff", + "0x49", + "0x4825800180007ffa", + "0x0", + "0x400280007ff87fff", + "0x482680017ff88000", + "0x1", + "0x48297ffc80007ffd", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0x11", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473", + "0x400080007ffe7fff", + "0x48127ffc7fff8000", + "0x480a7ff97fff8000", + "0x48127ff97fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ff97fff8000", + "0x482480017ff88000", + "0x1", + "0x208b7fff7fff7ffe", + "0x1104800180018000", + "0x2fcb", + "0x482480017fff8000", + "0x2fca", + "0x480080007fff8000", + "0xa0680017fff8000", + "0x9", + "0x4824800180007ff8", + "0x0", + "0x482480017fff8000", + "0x100000000000000000000000000000000", + "0x400080007ff77fff", + "0x10780017fff7fff", + "0x12", + "0x4824800180007ff8", + "0x0", + "0x400080007ff87fff", + "0x40780017fff7fff", + "0x1", + "0x482480017ff78000", + "0x1", + "0x482680017ff98000", + "0xc", + "0x48127ffc7fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x0", + "0x48127ffa7fff8000", + "0x48127ff97fff8000", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x4f7574206f6620676173", + "0x400080007ffe7fff", + "0x482480017ff58000", + "0x1", + "0x480a7ff97fff8000", + "0x48127ff27fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ff97fff8000", + "0x482480017ff88000", + "0x1", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x4f7574206f6620676173", + "0x400080007ffe7fff", + "0x482680017ff88000", + "0x1", + "0x480a7ff97fff8000", + "0x480a7ffa7fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ff97fff8000", + "0x482480017ff88000", + "0x1", + "0x208b7fff7fff7ffe", + "0xa0680017fff8000", + "0x7", + "0x482680017ffa8000", + "0x100000000000000000000000000000000", "0x400280007ff97fff", "0x10780017fff7fff", "0x8d", @@ -17717,6 +17811,7 @@ 150, 156, 128, + 94, 161, 250, 187, @@ -22350,7 +22445,55 @@ ] ], [ - 5570, + 5528, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 5548, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -7 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 5560, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 5573, [ { "AllocSegment": { @@ -22364,6 +22507,54 @@ ], [ 5589, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 5605, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -6 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 5664, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 5683, [ { "TestLessThanOrEqual": { @@ -22385,7 +22576,7 @@ ] ], [ - 5601, + 5695, [ { "AllocSegment": { @@ -22398,7 +22589,7 @@ ] ], [ - 5614, + 5708, [ { "AllocSegment": { @@ -22411,7 +22602,7 @@ ] ], [ - 5629, + 5723, [ { "AllocSegment": { @@ -22424,7 +22615,7 @@ ] ], [ - 5643, + 5737, [ { "AllocSegment": { @@ -22437,7 +22628,7 @@ ] ], [ - 5657, + 5751, [ { "AllocSegment": { @@ -22450,7 +22641,7 @@ ] ], [ - 5672, + 5766, [ { "TestLessThanOrEqual": { @@ -22472,7 +22663,7 @@ ] ], [ - 5726, + 5820, [ { "TestLessThan": { @@ -22494,7 +22685,7 @@ ] ], [ - 5730, + 5824, [ { "LinearSplit": { @@ -22523,7 +22714,7 @@ ] ], [ - 5740, + 5834, [ { "LinearSplit": { @@ -22552,7 +22743,7 @@ ] ], [ - 5776, + 5870, [ { "AllocSegment": { @@ -22565,7 +22756,7 @@ ] ], [ - 5795, + 5889, [ { "TestLessThanOrEqual": { @@ -22587,7 +22778,7 @@ ] ], [ - 5818, + 5912, [ { "SystemCall": { @@ -22602,7 +22793,7 @@ ] ], [ - 5821, + 5915, [ { "AllocSegment": { @@ -22615,7 +22806,7 @@ ] ], [ - 5843, + 5937, [ { "AllocSegment": { @@ -22628,7 +22819,7 @@ ] ], [ - 5858, + 5952, [ { "AllocSegment": { @@ -22641,7 +22832,7 @@ ] ], [ - 5879, + 5973, [ { "AllocSegment": { @@ -22654,7 +22845,7 @@ ] ], [ - 5893, + 5987, [ { "AllocSegment": { @@ -22667,7 +22858,7 @@ ] ], [ - 5907, + 6001, [ { "AllocSegment": { @@ -22680,7 +22871,7 @@ ] ], [ - 5922, + 6016, [ { "TestLessThanOrEqual": { @@ -22702,7 +22893,7 @@ ] ], [ - 5981, + 6075, [ { "AllocSegment": { @@ -22715,7 +22906,7 @@ ] ], [ - 6000, + 6094, [ { "TestLessThanOrEqual": { @@ -22737,7 +22928,7 @@ ] ], [ - 6026, + 6120, [ { "SystemCall": { @@ -22752,7 +22943,7 @@ ] ], [ - 6029, + 6123, [ { "AllocSegment": { @@ -22765,7 +22956,7 @@ ] ], [ - 6051, + 6145, [ { "AllocSegment": { @@ -22778,7 +22969,7 @@ ] ], [ - 6066, + 6160, [ { "AllocSegment": { @@ -22791,7 +22982,7 @@ ] ], [ - 6080, + 6174, [ { "AllocSegment": { @@ -22804,7 +22995,7 @@ ] ], [ - 6094, + 6188, [ { "AllocSegment": { @@ -22817,7 +23008,7 @@ ] ], [ - 6109, + 6203, [ { "TestLessThanOrEqual": { @@ -22839,7 +23030,7 @@ ] ], [ - 6181, + 6275, [ { "AllocSegment": { @@ -22852,7 +23043,7 @@ ] ], [ - 6201, + 6295, [ { "TestLessThanOrEqual": { @@ -22874,7 +23065,7 @@ ] ], [ - 6226, + 6320, [ { "SystemCall": { @@ -22889,7 +23080,7 @@ ] ], [ - 6234, + 6328, [ { "TestLessThan": { @@ -22920,7 +23111,7 @@ ] ], [ - 6259, + 6353, [ { "AllocSegment": { @@ -22933,7 +23124,7 @@ ] ], [ - 6292, + 6386, [ { "AllocSegment": { @@ -22946,7 +23137,7 @@ ] ], [ - 6329, + 6423, [ { "TestLessThan": { @@ -22974,7 +23165,7 @@ ] ], [ - 6333, + 6427, [ { "LinearSplit": { @@ -23003,7 +23194,7 @@ ] ], [ - 6375, + 6469, [ { "TestLessThan": { @@ -23031,7 +23222,7 @@ ] ], [ - 6379, + 6473, [ { "LinearSplit": { @@ -23060,7 +23251,7 @@ ] ], [ - 6420, + 6514, [ { "TestLessThan": { @@ -23082,7 +23273,7 @@ ] ], [ - 6424, + 6518, [ { "LinearSplit": { @@ -23111,7 +23302,7 @@ ] ], [ - 6434, + 6528, [ { "LinearSplit": { @@ -23140,7 +23331,7 @@ ] ], [ - 6558, + 6652, [ { "TestLessThan": { @@ -23162,7 +23353,7 @@ ] ], [ - 6562, + 6656, [ { "LinearSplit": { @@ -23191,7 +23382,7 @@ ] ], [ - 6572, + 6666, [ { "LinearSplit": { @@ -23220,7 +23411,7 @@ ] ], [ - 6604, + 6698, [ { "TestLessThan": { @@ -23242,7 +23433,7 @@ ] ], [ - 6606, + 6700, [ { "DivMod": { @@ -23268,7 +23459,7 @@ ] ], [ - 6726, + 6820, [ { "AllocSegment": { @@ -23281,7 +23472,7 @@ ] ], [ - 6840, + 6934, [ { "TestLessThan": { @@ -23303,7 +23494,7 @@ ] ], [ - 6842, + 6936, [ { "DivMod": { @@ -23329,7 +23520,7 @@ ] ], [ - 6895, + 6989, [ { "TestLessThan": { @@ -23357,7 +23548,7 @@ ] ], [ - 6899, + 6993, [ { "LinearSplit": { @@ -23386,7 +23577,7 @@ ] ], [ - 6941, + 7035, [ { "TestLessThan": { @@ -23414,7 +23605,7 @@ ] ], [ - 6945, + 7039, [ { "LinearSplit": { @@ -23443,7 +23634,7 @@ ] ], [ - 7723, + 7817, [ { "SystemCall": { @@ -23458,7 +23649,7 @@ ] ], [ - 7956, + 8050, [ { "AllocSegment": { @@ -23471,7 +23662,7 @@ ] ], [ - 7970, + 8064, [ { "AllocSegment": { @@ -23484,7 +23675,7 @@ ] ], [ - 7984, + 8078, [ { "AllocSegment": { @@ -23497,7 +23688,7 @@ ] ], [ - 8048, + 8142, [ { "AllocSegment": { @@ -23510,7 +23701,7 @@ ] ], [ - 8062, + 8156, [ { "AllocSegment": { @@ -23523,7 +23714,7 @@ ] ], [ - 8085, + 8179, [ { "AllocSegment": { @@ -23536,7 +23727,7 @@ ] ], [ - 8109, + 8203, [ { "SystemCall": { @@ -23551,7 +23742,7 @@ ] ], [ - 8112, + 8206, [ { "AllocSegment": { @@ -23564,7 +23755,7 @@ ] ], [ - 8128, + 8222, [ { "SystemCall": { @@ -23585,7 +23776,7 @@ ] ], [ - 8165, + 8259, [ { "GetSegmentArenaIndex": { @@ -23604,7 +23795,7 @@ ] ], [ - 8206, + 8300, [ { "AllocSegment": { @@ -23617,7 +23808,7 @@ ] ], [ - 8214, + 8308, [ { "InitSquashData": { @@ -23652,7 +23843,7 @@ ] ], [ - 8233, + 8327, [ { "GetCurrentAccessIndex": { @@ -23667,7 +23858,7 @@ ] ], [ - 8246, + 8340, [ { "ShouldSkipSquashLoop": { @@ -23680,7 +23871,7 @@ ] ], [ - 8248, + 8342, [ { "GetCurrentAccessDelta": { @@ -23693,7 +23884,7 @@ ] ], [ - 8259, + 8353, [ { "ShouldContinueSquashLoop": { @@ -23706,7 +23897,7 @@ ] ], [ - 8273, + 8367, [ { "GetNextDictKey": { @@ -23719,7 +23910,7 @@ ] ], [ - 8292, + 8386, [ { "AssertLeFindSmallArcs": { @@ -23752,7 +23943,7 @@ ] ], [ - 8304, + 8398, [ { "AssertLeIsFirstArcExcluded": { @@ -23765,7 +23956,7 @@ ] ], [ - 8316, + 8410, [ { "AssertLeIsSecondArcExcluded": { @@ -23778,7 +23969,7 @@ ] ], [ - 8347, + 8441, [ { "AllocSegment": { @@ -23791,7 +23982,7 @@ ] ], [ - 8355, + 8449, [ { "AllocSegment": { @@ -23804,7 +23995,7 @@ ] ], [ - 8386, + 8480, [ { "SystemCall": { @@ -23819,7 +24010,7 @@ ] ], [ - 8400, + 8494, [ { "AllocSegment": { @@ -23832,7 +24023,7 @@ ] ], [ - 8420, + 8514, [ { "AllocSegment": { @@ -23845,7 +24036,7 @@ ] ], [ - 8434, + 8528, [ { "AllocSegment": { @@ -23858,7 +24049,7 @@ ] ], [ - 8448, + 8542, [ { "SystemCall": { @@ -23873,7 +24064,7 @@ ] ], [ - 8451, + 8545, [ { "AllocSegment": { @@ -23886,7 +24077,7 @@ ] ], [ - 8474, + 8568, [ { "TestLessThan": { @@ -23911,7 +24102,7 @@ ] ], [ - 8502, + 8596, [ { "AllocSegment": { @@ -23924,7 +24115,7 @@ ] ], [ - 8516, + 8610, [ { "AllocSegment": { @@ -23937,7 +24128,7 @@ ] ], [ - 8559, + 8653, [ { "AllocSegment": { @@ -23950,7 +24141,7 @@ ] ], [ - 8598, + 8692, [ { "AllocSegment": { @@ -23963,7 +24154,7 @@ ] ], [ - 8658, + 8752, [ { "SystemCall": { @@ -23978,7 +24169,7 @@ ] ], [ - 8668, + 8762, [ { "AllocSegment": { @@ -23991,7 +24182,7 @@ ] ], [ - 8699, + 8793, [ { "SystemCall": { @@ -24006,7 +24197,7 @@ ] ], [ - 8702, + 8796, [ { "AllocSegment": { @@ -24019,7 +24210,7 @@ ] ], [ - 8726, + 8820, [ { "TestLessThan": { @@ -24044,7 +24235,7 @@ ] ], [ - 8760, + 8854, [ { "SystemCall": { @@ -24059,7 +24250,7 @@ ] ], [ - 8775, + 8869, [ { "SystemCall": { @@ -24074,7 +24265,7 @@ ] ], [ - 8821, + 8915, [ { "AllocSegment": { @@ -24087,7 +24278,7 @@ ] ], [ - 8840, + 8934, [ { "DivMod": { @@ -24116,7 +24307,7 @@ ] ], [ - 8846, + 8940, [ { "TestLessThan": { @@ -24138,7 +24329,7 @@ ] ], [ - 8897, + 8991, [ { "AllocSegment": { @@ -24151,7 +24342,7 @@ ] ], [ - 8928, + 9022, [ { "AllocSegment": { @@ -24164,7 +24355,7 @@ ] ], [ - 8953, + 9047, [ { "AllocSegment": { @@ -24177,7 +24368,7 @@ ] ], [ - 8968, + 9062, [ { "AllocSegment": { @@ -24190,7 +24381,7 @@ ] ], [ - 9010, + 9104, [ { "SystemCall": { @@ -24205,7 +24396,7 @@ ] ], [ - 9022, + 9116, [ { "AllocSegment": { @@ -24218,7 +24409,7 @@ ] ], [ - 9052, + 9146, [ { "SystemCall": { @@ -24233,7 +24424,7 @@ ] ], [ - 9057, + 9151, [ { "AllocSegment": { @@ -24246,7 +24437,7 @@ ] ], [ - 9080, + 9174, [ { "TestLessThan": { @@ -24271,7 +24462,7 @@ ] ], [ - 9114, + 9208, [ { "SystemCall": { @@ -24286,7 +24477,7 @@ ] ], [ - 9129, + 9223, [ { "SystemCall": { @@ -24301,7 +24492,7 @@ ] ], [ - 9177, + 9271, [ { "AllocSegment": { @@ -24314,7 +24505,7 @@ ] ], [ - 9195, + 9289, [ { "DivMod": { @@ -24343,7 +24534,7 @@ ] ], [ - 9201, + 9295, [ { "TestLessThan": { @@ -24365,7 +24556,7 @@ ] ], [ - 9230, + 9324, [ { "SystemCall": { @@ -24380,7 +24571,7 @@ ] ], [ - 9280, + 9374, [ { "AllocSegment": { @@ -24393,7 +24584,7 @@ ] ], [ - 9318, + 9412, [ { "AllocSegment": { @@ -24406,7 +24597,7 @@ ] ], [ - 9345, + 9439, [ { "AllocSegment": { @@ -24419,7 +24610,7 @@ ] ], [ - 9361, + 9455, [ { "AllocSegment": { @@ -24432,7 +24623,7 @@ ] ], [ - 9387, + 9481, [ { "TestLessThanOrEqual": { @@ -24454,7 +24645,7 @@ ] ], [ - 9401, + 9495, [ { "TestLessThan": { @@ -24476,7 +24667,7 @@ ] ], [ - 9476, + 9570, [ { "TestLessThan": { @@ -24498,7 +24689,7 @@ ] ], [ - 9480, + 9574, [ { "LinearSplit": { @@ -24527,7 +24718,7 @@ ] ], [ - 9490, + 9584, [ { "LinearSplit": { @@ -24556,7 +24747,7 @@ ] ], [ - 9508, + 9602, [ { "SystemCall": { @@ -24571,7 +24762,7 @@ ] ], [ - 9526, + 9620, [ { "AllocSegment": { @@ -24584,7 +24775,7 @@ ] ], [ - 9545, + 9639, [ { "TestLessThan": { @@ -24606,7 +24797,7 @@ ] ], [ - 9549, + 9643, [ { "LinearSplit": { @@ -24635,7 +24826,7 @@ ] ], [ - 9559, + 9653, [ { "LinearSplit": { @@ -24664,7 +24855,7 @@ ] ], [ - 9577, + 9671, [ { "SystemCall": { @@ -24679,7 +24870,7 @@ ] ], [ - 9595, + 9689, [ { "AllocSegment": { @@ -24692,7 +24883,7 @@ ] ], [ - 9626, + 9720, [ { "AllocSegment": { @@ -24705,7 +24896,7 @@ ] ], [ - 9650, + 9744, [ { "AllocSegment": { @@ -24718,7 +24909,7 @@ ] ], [ - 9664, + 9758, [ { "AllocSegment": { @@ -24731,7 +24922,7 @@ ] ], [ - 9678, + 9772, [ { "AllocSegment": { @@ -24744,7 +24935,7 @@ ] ], [ - 9692, + 9786, [ { "AllocSegment": { @@ -24757,7 +24948,7 @@ ] ], [ - 9707, + 9801, [ { "AllocSegment": { @@ -24770,7 +24961,7 @@ ] ], [ - 9722, + 9816, [ { "TestLessThanOrEqual": { @@ -24792,7 +24983,7 @@ ] ], [ - 9736, + 9830, [ { "AllocSegment": { @@ -24805,7 +24996,7 @@ ] ], [ - 9756, + 9850, [ { "AllocSegment": { @@ -24818,7 +25009,7 @@ ] ], [ - 9770, + 9864, [ { "TestLessThanOrEqual": { @@ -24840,7 +25031,7 @@ ] ], [ - 9800, + 9894, [ { "AllocSegment": { @@ -24853,7 +25044,7 @@ ] ], [ - 9819, + 9913, [ { "TestLessThan": { @@ -24875,7 +25066,7 @@ ] ], [ - 9823, + 9917, [ { "LinearSplit": { @@ -24904,7 +25095,7 @@ ] ], [ - 9834, + 9928, [ { "LinearSplit": { @@ -24933,7 +25124,7 @@ ] ], [ - 9860, + 9954, [ { "SystemCall": { @@ -24948,7 +25139,7 @@ ] ], [ - 9875, + 9969, [ { "SystemCall": { @@ -24969,7 +25160,7 @@ ] ], [ - 9883, + 9977, [ { "TestLessThan": { @@ -24991,7 +25182,7 @@ ] ], [ - 9887, + 9981, [ { "LinearSplit": { @@ -25020,7 +25211,7 @@ ] ], [ - 9898, + 9992, [ { "LinearSplit": { @@ -25049,7 +25240,7 @@ ] ], [ - 9928, + 10022, [ { "SystemCall": { @@ -25070,7 +25261,7 @@ ] ], [ - 9944, + 10038, [ { "SystemCall": { @@ -25091,7 +25282,7 @@ ] ], [ - 10052, + 10146, [ { "TestLessThan": { @@ -25113,7 +25304,7 @@ ] ], [ - 10054, + 10148, [ { "DivMod": { @@ -25139,7 +25330,7 @@ ] ], [ - 10099, + 10193, [ { "TestLessThan": { @@ -25161,7 +25352,7 @@ ] ], [ - 10101, + 10195, [ { "DivMod": { @@ -25187,7 +25378,7 @@ ] ], [ - 10210, + 10304, [ { "TestLessThan": { @@ -25209,7 +25400,7 @@ ] ], [ - 10214, + 10308, [ { "LinearSplit": { @@ -25238,7 +25429,7 @@ ] ], [ - 10225, + 10319, [ { "LinearSplit": { @@ -25267,7 +25458,7 @@ ] ], [ - 10251, + 10345, [ { "SystemCall": { @@ -25282,7 +25473,7 @@ ] ], [ - 10266, + 10360, [ { "SystemCall": { @@ -25303,7 +25494,7 @@ ] ], [ - 10273, + 10367, [ { "TestLessThan": { @@ -25325,7 +25516,7 @@ ] ], [ - 10275, + 10369, [ { "DivMod": { @@ -25351,7 +25542,7 @@ ] ], [ - 10296, + 10390, [ { "TestLessThan": { @@ -25373,7 +25564,7 @@ ] ], [ - 10298, + 10392, [ { "DivMod": { @@ -25399,7 +25590,7 @@ ] ], [ - 10328, + 10422, [ { "TestLessThan": { @@ -25421,7 +25612,7 @@ ] ], [ - 10332, + 10426, [ { "LinearSplit": { @@ -25450,7 +25641,7 @@ ] ], [ - 10343, + 10437, [ { "LinearSplit": { @@ -25479,7 +25670,7 @@ ] ], [ - 10374, + 10468, [ { "SystemCall": { @@ -25494,7 +25685,7 @@ ] ], [ - 10389, + 10483, [ { "SystemCall": { @@ -25515,7 +25706,7 @@ ] ], [ - 10433, + 10527, [ { "AllocSegment": { @@ -25528,7 +25719,7 @@ ] ], [ - 10452, + 10546, [ { "AllocSegment": { @@ -25541,7 +25732,7 @@ ] ], [ - 10534, + 10628, [ { "RandomEcPoint": { @@ -25569,7 +25760,7 @@ ] ], [ - 10598, + 10692, [ { "RandomEcPoint": { @@ -25597,7 +25788,7 @@ ] ], [ - 10668, + 10762, [ { "AllocSegment": { @@ -25610,7 +25801,7 @@ ] ], [ - 10694, + 10788, [ { "SystemCall": { @@ -25625,7 +25816,7 @@ ] ], [ - 10711, + 10805, [ { "SystemCall": { @@ -25646,7 +25837,7 @@ ] ], [ - 10753, + 10847, [ { "AllocSegment": { @@ -25659,7 +25850,7 @@ ] ], [ - 10770, + 10864, [ { "AllocSegment": { @@ -25672,7 +25863,7 @@ ] ], [ - 10789, + 10883, [ { "SystemCall": { @@ -25687,7 +25878,7 @@ ] ], [ - 10799, + 10893, [ { "TestLessThan": { @@ -25709,7 +25900,7 @@ ] ], [ - 10803, + 10897, [ { "LinearSplit": { @@ -25738,7 +25929,7 @@ ] ], [ - 10814, + 10908, [ { "LinearSplit": { @@ -25767,7 +25958,7 @@ ] ], [ - 10858, + 10952, [ { "SystemCall": { @@ -25788,7 +25979,7 @@ ] ], [ - 10873, + 10967, [ { "SystemCall": { @@ -25809,7 +26000,7 @@ ] ], [ - 10883, + 10977, [ { "TestLessThan": { @@ -25834,7 +26025,7 @@ ] ], [ - 10898, + 10992, [ { "TestLessThan": { @@ -25859,7 +26050,7 @@ ] ], [ - 10914, + 11008, [ { "TestLessThan": { @@ -25881,7 +26072,7 @@ ] ], [ - 10918, + 11012, [ { "LinearSplit": { @@ -25910,7 +26101,7 @@ ] ], [ - 10929, + 11023, [ { "LinearSplit": { @@ -25939,7 +26130,7 @@ ] ], [ - 10958, + 11052, [ { "SystemCall": { @@ -25954,7 +26145,7 @@ ] ], [ - 10974, + 11068, [ { "SystemCall": { @@ -25975,7 +26166,7 @@ ] ], [ - 11016, + 11110, [ { "AllocSegment": { @@ -25988,7 +26179,7 @@ ] ], [ - 11034, + 11128, [ { "AllocSegment": { @@ -26001,7 +26192,7 @@ ] ], [ - 11136, + 11230, [ { "AllocSegment": { @@ -26014,7 +26205,7 @@ ] ], [ - 11211, + 11305, [ { "EvalCircuit": { @@ -26047,7 +26238,7 @@ ] ], [ - 11268, + 11362, [ { "AllocSegment": { @@ -26060,7 +26251,7 @@ ] ], [ - 11324, + 11418, [ { "AllocSegment": { @@ -26073,7 +26264,7 @@ ] ], [ - 11417, + 11511, [ { "AllocSegment": { @@ -26086,7 +26277,7 @@ ] ], [ - 11438, + 11532, [ { "AllocSegment": { @@ -26099,7 +26290,7 @@ ] ], [ - 11509, + 11603, [ { "AllocSegment": { @@ -26112,7 +26303,7 @@ ] ], [ - 11537, + 11631, [ { "AllocSegment": { @@ -26125,7 +26316,7 @@ ] ], [ - 11575, + 11669, [ { "TestLessThan": { @@ -26153,7 +26344,7 @@ ] ], [ - 11579, + 11673, [ { "LinearSplit": { @@ -26182,7 +26373,7 @@ ] ], [ - 11601, + 11695, [ { "TestLessThanOrEqual": { @@ -26207,7 +26398,7 @@ ] ], [ - 11615, + 11709, [ { "TestLessThan": { @@ -26229,7 +26420,7 @@ ] ], [ - 11625, + 11719, [ { "TestLessThanOrEqual": { @@ -26254,7 +26445,7 @@ ] ], [ - 11648, + 11742, [ { "AllocSegment": { @@ -26267,7 +26458,7 @@ ] ], [ - 11669, + 11763, [ { "AllocSegment": { @@ -26280,7 +26471,7 @@ ] ], [ - 11690, + 11784, [ { "AllocSegment": { @@ -26293,7 +26484,7 @@ ] ], [ - 11738, + 11832, [ { "TestLessThanOrEqual": { @@ -26315,7 +26506,7 @@ ] ], [ - 11798, + 11892, [ { "AllocSegment": { @@ -26328,7 +26519,7 @@ ] ], [ - 11818, + 11912, [ { "TestLessThanOrEqual": { @@ -26350,7 +26541,7 @@ ] ], [ - 11897, + 11991, [ { "AllocSegment": { @@ -26363,7 +26554,7 @@ ] ], [ - 11927, + 12021, [ { "AllocSegment": { @@ -26376,7 +26567,7 @@ ] ], [ - 11947, + 12041, [ { "TestLessThanOrEqual": { @@ -26398,7 +26589,7 @@ ] ], [ - 12048, + 12142, [ { "AllocSegment": { @@ -26411,7 +26602,7 @@ ] ], [ - 12078, + 12172, [ { "AllocSegment": { @@ -26424,7 +26615,7 @@ ] ], [ - 12098, + 12192, [ { "TestLessThanOrEqual": { @@ -26446,7 +26637,7 @@ ] ], [ - 12169, + 12263, [ { "AllocSegment": { @@ -26459,7 +26650,7 @@ ] ], [ - 12190, + 12284, [ { "DivMod": { @@ -26488,7 +26679,7 @@ ] ], [ - 12248, + 12342, [ { "AllocSegment": { @@ -26501,7 +26692,7 @@ ] ], [ - 12301, + 12395, [ { "AllocSegment": { @@ -26514,7 +26705,7 @@ ] ], [ - 12314, + 12408, [ { "DivMod": { @@ -26543,7 +26734,7 @@ ] ], [ - 12322, + 12416, [ { "TestLessThan": { @@ -26574,7 +26765,7 @@ ] ], [ - 12339, + 12433, [ { "AllocSegment": { @@ -26587,7 +26778,7 @@ ] ], [ - 12363, + 12457, [ { "TestLessThan": { @@ -26609,7 +26800,7 @@ ] ], [ - 12387, + 12481, [ { "TestLessThan": { @@ -26631,7 +26822,7 @@ ] ], [ - 12396, + 12490, [ { "TestLessThan": { @@ -26653,7 +26844,7 @@ ] ], [ - 12413, + 12507, [ { "AllocSegment": { @@ -26666,7 +26857,7 @@ ] ], [ - 12427, + 12521, [ { "AllocSegment": { @@ -26679,7 +26870,7 @@ ] ], [ - 12443, + 12537, [ { "TestLessThan": { @@ -26710,7 +26901,7 @@ ] ], [ - 12465, + 12559, [ { "AllocSegment": { @@ -26723,7 +26914,7 @@ ] ], [ - 12479, + 12573, [ { "AllocSegment": { @@ -26736,7 +26927,7 @@ ] ], [ - 12536, + 12630, [ { "DivMod": { @@ -26765,7 +26956,7 @@ ] ], [ - 12545, + 12639, [ { "TestLessThan": { @@ -26787,7 +26978,7 @@ ] ], [ - 12555, + 12649, [ { "TestLessThan": { @@ -26818,7 +27009,7 @@ ] ], [ - 12577, + 12671, [ { "AllocSegment": { @@ -26831,7 +27022,7 @@ ] ], [ - 12592, + 12686, [ { "AllocSegment": { @@ -26844,7 +27035,7 @@ ] ], [ - 12617, + 12711, [ { "TestLessThan": { @@ -26875,7 +27066,7 @@ ] ], [ - 12631, + 12725, [ { "DivMod": { @@ -26904,7 +27095,7 @@ ] ], [ - 12648, + 12742, [ { "TestLessThan": { @@ -26926,7 +27117,7 @@ ] ], [ - 12660, + 12754, [ { "TestLessThan": { @@ -26948,7 +27139,7 @@ ] ], [ - 12670, + 12764, [ { "TestLessThan": { @@ -26979,7 +27170,7 @@ ] ], [ - 12693, + 12787, [ { "AllocSegment": { @@ -26992,7 +27183,7 @@ ] ], [ - 12708, + 12802, [ { "AllocSegment": { @@ -27005,7 +27196,7 @@ ] ], [ - 12723, + 12817, [ { "AllocSegment": { @@ -27018,7 +27209,7 @@ ] ], [ - 12738, + 12832, [ { "AllocSegment": { @@ -27031,7 +27222,7 @@ ] ], [ - 12751, + 12845, [ { "TestLessThanOrEqual": { @@ -27053,7 +27244,7 @@ ] ], [ - 12761, + 12855, [ { "TestLessThanOrEqualAddress": { @@ -27084,7 +27275,7 @@ ] ], [ - 12798, + 12892, [ { "SystemCall": { @@ -27099,7 +27290,7 @@ ] ], [ - 12831, + 12925, [ { "AllocSegment": { @@ -27112,7 +27303,7 @@ ] ], [ - 12865, + 12959, [ { "TestLessThan": { @@ -27134,7 +27325,7 @@ ] ], [ - 12887, + 12981, [ { "TestLessThan": { @@ -27156,7 +27347,7 @@ ] ], [ - 12924, + 13018, [ { "TestLessThan": { @@ -27178,7 +27369,7 @@ ] ], [ - 12946, + 13040, [ { "TestLessThan": { @@ -27200,7 +27391,7 @@ ] ], [ - 13022, + 13116, [ { "AllocSegment": { @@ -27213,7 +27404,7 @@ ] ], [ - 13087, + 13181, [ { "TestLessThan": { @@ -27235,7 +27426,7 @@ ] ], [ - 13111, + 13205, [ { "TestLessThan": { @@ -27257,7 +27448,7 @@ ] ], [ - 13152, + 13246, [ { "TestLessThan": { @@ -27279,7 +27470,7 @@ ] ], [ - 13178, + 13272, [ { "TestLessThan": { @@ -27301,7 +27492,7 @@ ] ], [ - 13222, + 13316, [ { "U256InvModN": { @@ -27358,7 +27549,7 @@ ] ], [ - 13240, + 13334, [ { "WideMul128": { @@ -27555,7 +27746,7 @@ ] ], [ - 13293, + 13387, [ { "WideMul128": { @@ -27608,7 +27799,7 @@ ] ], [ - 13297, + 13391, [ { "TestLessThan": { @@ -27630,7 +27821,7 @@ ] ], [ - 13311, + 13405, [ { "TestLessThan": { @@ -27652,7 +27843,7 @@ ] ], [ - 13324, + 13418, [ { "DivMod": { @@ -27678,7 +27869,7 @@ ] ], [ - 13334, + 13428, [ { "DivMod": { @@ -27704,7 +27895,7 @@ ] ], [ - 13345, + 13439, [ { "DivMod": { @@ -27730,7 +27921,7 @@ ] ], [ - 13354, + 13448, [ { "DivMod": { @@ -27756,7 +27947,7 @@ ] ], [ - 13364, + 13458, [ { "DivMod": { @@ -27782,7 +27973,7 @@ ] ], [ - 13375, + 13469, [ { "DivMod": { @@ -27808,7 +27999,7 @@ ] ], [ - 13384, + 13478, [ { "DivMod": { @@ -27834,7 +28025,7 @@ ] ], [ - 13394, + 13488, [ { "DivMod": { @@ -27860,7 +28051,7 @@ ] ], [ - 13405, + 13499, [ { "DivMod": { @@ -27886,7 +28077,7 @@ ] ], [ - 13414, + 13508, [ { "DivMod": { @@ -27912,7 +28103,7 @@ ] ], [ - 13424, + 13518, [ { "DivMod": { @@ -27938,7 +28129,7 @@ ] ], [ - 13435, + 13529, [ { "DivMod": { @@ -27964,7 +28155,7 @@ ] ], [ - 13444, + 13538, [ { "DivMod": { @@ -27990,7 +28181,7 @@ ] ], [ - 13454, + 13548, [ { "DivMod": { @@ -28016,7 +28207,7 @@ ] ], [ - 13465, + 13559, [ { "DivMod": { @@ -28042,7 +28233,7 @@ ] ], [ - 13474, + 13568, [ { "DivMod": { @@ -28068,7 +28259,7 @@ ] ], [ - 13484, + 13578, [ { "DivMod": { @@ -28094,7 +28285,7 @@ ] ], [ - 13495, + 13589, [ { "DivMod": { @@ -28120,7 +28311,7 @@ ] ], [ - 13504, + 13598, [ { "DivMod": { @@ -28146,7 +28337,7 @@ ] ], [ - 13514, + 13608, [ { "DivMod": { @@ -28172,7 +28363,7 @@ ] ], [ - 13525, + 13619, [ { "DivMod": { @@ -28198,7 +28389,7 @@ ] ], [ - 13534, + 13628, [ { "DivMod": { @@ -28224,7 +28415,7 @@ ] ], [ - 13544, + 13638, [ { "DivMod": { @@ -28250,7 +28441,7 @@ ] ], [ - 13555, + 13649, [ { "DivMod": { @@ -28276,7 +28467,7 @@ ] ], [ - 13603, + 13697, [ { "SystemCall": { @@ -28291,7 +28482,7 @@ ] ], [ - 13620, + 13714, [ { "SystemCall": { @@ -28306,7 +28497,7 @@ ] ], [ - 13632, + 13726, [ { "SystemCall": { @@ -28327,7 +28518,7 @@ ] ], [ - 13643, + 13737, [ { "SystemCall": { @@ -28348,7 +28539,7 @@ ] ], [ - 13653, + 13747, [ { "SystemCall": { @@ -28369,7 +28560,7 @@ ] ], [ - 13738, + 13832, [ { "AllocSegment": { @@ -28382,7 +28573,7 @@ ] ], [ - 13767, + 13861, [ { "DivMod": { @@ -28408,7 +28599,7 @@ ] ], [ - 13777, + 13871, [ { "DivMod": { @@ -28434,7 +28625,7 @@ ] ], [ - 13788, + 13882, [ { "DivMod": { @@ -28460,7 +28651,7 @@ ] ], [ - 13797, + 13891, [ { "DivMod": { @@ -28486,7 +28677,7 @@ ] ], [ - 13807, + 13901, [ { "DivMod": { @@ -28512,7 +28703,7 @@ ] ], [ - 13818, + 13912, [ { "DivMod": { @@ -28538,7 +28729,7 @@ ] ], [ - 13827, + 13921, [ { "AllocSegment": { @@ -28551,7 +28742,7 @@ ] ], [ - 13896, + 13990, [ { "TestLessThan": { @@ -28582,7 +28773,7 @@ ] ], [ - 13911, + 14005, [ { "TestLessThan": { @@ -28604,7 +28795,7 @@ ] ], [ - 13930, + 14024, [ { "TestLessThan": { @@ -28626,7 +28817,7 @@ ] ], [ - 13949, + 14043, [ { "TestLessThan": { @@ -28648,7 +28839,7 @@ ] ], [ - 13959, + 14053, [ { "TestLessThan": { @@ -28670,7 +28861,7 @@ ] ], [ - 13961, + 14055, [ { "DivMod": { @@ -28696,7 +28887,7 @@ ] ], [ - 13998, + 14092, [ { "TestLessThan": { @@ -28718,7 +28909,7 @@ ] ], [ - 14017, + 14111, [ { "AllocSegment": { @@ -28731,7 +28922,7 @@ ] ], [ - 14028, + 14122, [ { "DivMod": { @@ -28760,7 +28951,7 @@ ] ], [ - 14034, + 14128, [ { "TestLessThan": { @@ -28782,7 +28973,7 @@ ] ], [ - 14048, + 14142, [ { "TestLessThan": { @@ -28804,7 +28995,7 @@ ] ], [ - 14062, + 14156, [ { "TestLessThan": { @@ -28826,7 +29017,7 @@ ] ], [ - 14073, + 14167, [ { "TestLessThan": { @@ -28848,7 +29039,7 @@ ] ], [ - 14102, + 14196, [ { "AllocSegment": { @@ -28861,7 +29052,7 @@ ] ], [ - 14127, + 14221, [ { "TestLessThan": { @@ -28883,7 +29074,7 @@ ] ], [ - 14131, + 14225, [ { "LinearSplit": { @@ -28912,7 +29103,7 @@ ] ], [ - 14141, + 14235, [ { "LinearSplit": { @@ -28941,7 +29132,7 @@ ] ], [ - 14161, + 14255, [ { "AllocSegment": { @@ -28954,7 +29145,7 @@ ] ], [ - 14182, + 14276, [ { "AllocSegment": { @@ -28967,7 +29158,7 @@ ] ], [ - 14203, + 14297, [ { "AllocSegment": { @@ -28980,7 +29171,7 @@ ] ], [ - 14223, + 14317, [ { "TestLessThan": { @@ -29002,7 +29193,7 @@ ] ], [ - 14225, + 14319, [ { "DivMod": { @@ -29028,7 +29219,7 @@ ] ], [ - 14269, + 14363, [ { "AllocSegment": { @@ -29041,7 +29232,7 @@ ] ], [ - 14280, + 14374, [ { "DivMod": { @@ -29070,7 +29261,7 @@ ] ], [ - 14286, + 14380, [ { "TestLessThan": { @@ -29092,7 +29283,7 @@ ] ], [ - 14300, + 14394, [ { "TestLessThan": { @@ -29114,7 +29305,7 @@ ] ], [ - 14318, + 14412, [ { "TestLessThan": { @@ -29136,7 +29327,7 @@ ] ], [ - 14331, + 14425, [ { "TestLessThan": { @@ -29158,7 +29349,7 @@ ] ], [ - 14342, + 14436, [ { "TestLessThan": { @@ -29180,7 +29371,7 @@ ] ], [ - 14371, + 14465, [ { "AllocSegment": { @@ -29193,7 +29384,7 @@ ] ], [ - 14396, + 14490, [ { "TestLessThan": { @@ -29215,7 +29406,7 @@ ] ], [ - 14400, + 14494, [ { "LinearSplit": { @@ -29244,7 +29435,7 @@ ] ], [ - 14410, + 14504, [ { "LinearSplit": { @@ -29273,7 +29464,7 @@ ] ], [ - 14430, + 14524, [ { "AllocSegment": { @@ -29286,7 +29477,7 @@ ] ], [ - 14451, + 14545, [ { "AllocSegment": { @@ -29299,7 +29490,7 @@ ] ], [ - 14472, + 14566, [ { "AllocSegment": { @@ -29312,7 +29503,7 @@ ] ], [ - 14501, + 14595, [ { "TestLessThan": { @@ -29334,7 +29525,7 @@ ] ], [ - 14503, + 14597, [ { "DivMod": { @@ -29360,7 +29551,7 @@ ] ], [ - 14540, + 14634, [ { "TestLessThan": { @@ -29382,7 +29573,7 @@ ] ], [ - 14551, + 14645, [ { "TestLessThan": { @@ -29404,7 +29595,7 @@ ] ], [ - 14562, + 14656, [ { "TestLessThan": { @@ -29426,7 +29617,7 @@ ] ], [ - 14591, + 14685, [ { "AllocSegment": { @@ -29439,7 +29630,7 @@ ] ], [ - 14616, + 14710, [ { "TestLessThan": { @@ -29461,7 +29652,7 @@ ] ], [ - 14620, + 14714, [ { "LinearSplit": { @@ -29490,7 +29681,7 @@ ] ], [ - 14630, + 14724, [ { "LinearSplit": { @@ -29519,7 +29710,7 @@ ] ], [ - 14656, + 14750, [ { "AllocSegment": { @@ -29532,7 +29723,7 @@ ] ], [ - 14677, + 14771, [ { "AllocSegment": { @@ -29545,7 +29736,7 @@ ] ], [ - 14699, + 14793, [ { "AllocSegment": { @@ -29558,7 +29749,7 @@ ] ], [ - 14721, + 14815, [ { "TestLessThan": { @@ -29580,7 +29771,7 @@ ] ], [ - 14732, + 14826, [ { "TestLessThan": { @@ -29602,7 +29793,7 @@ ] ], [ - 14761, + 14855, [ { "AllocSegment": { @@ -29615,7 +29806,7 @@ ] ], [ - 14786, + 14880, [ { "TestLessThan": { @@ -29637,7 +29828,7 @@ ] ], [ - 14790, + 14884, [ { "LinearSplit": { @@ -29666,7 +29857,7 @@ ] ], [ - 14800, + 14894, [ { "LinearSplit": { @@ -29695,7 +29886,7 @@ ] ], [ - 14823, + 14917, [ { "AllocSegment": { @@ -29708,7 +29899,7 @@ ] ], [ - 14868, + 14962, [ { "TestLessThan": { @@ -29730,7 +29921,7 @@ ] ], [ - 14879, + 14973, [ { "TestLessThan": { @@ -29752,7 +29943,7 @@ ] ], [ - 14908, + 15002, [ { "AllocSegment": { @@ -29765,7 +29956,7 @@ ] ], [ - 14931, + 15025, [ { "TestLessThan": { @@ -29796,7 +29987,7 @@ ] ], [ - 14955, + 15049, [ { "AllocSegment": { @@ -29809,7 +30000,7 @@ ] ], [ - 14999, + 15093, [ { "AllocSegment": { @@ -29822,7 +30013,7 @@ ] ], [ - 15026, + 15120, [ { "TestLessThanOrEqual": { @@ -29844,7 +30035,7 @@ ] ], [ - 15078, + 15172, [ { "AllocSegment": { @@ -29857,7 +30048,7 @@ ] ], [ - 15135, + 15229, [ { "TestLessThan": { @@ -29885,7 +30076,7 @@ ] ], [ - 15139, + 15233, [ { "LinearSplit": { @@ -29914,7 +30105,7 @@ ] ], [ - 15181, + 15275, [ { "TestLessThan": { @@ -29936,7 +30127,7 @@ ] ], [ - 15183, + 15277, [ { "DivMod": { @@ -29962,7 +30153,7 @@ ] ], [ - 15270, + 15364, [ { "DivMod": { @@ -29991,7 +30182,7 @@ ] ], [ - 15276, + 15370, [ { "TestLessThan": { @@ -30013,7 +30204,7 @@ ] ], [ - 15287, + 15381, [ { "TestLessThan": { @@ -30035,7 +30226,7 @@ ] ], [ - 15297, + 15391, [ { "TestLessThan": { @@ -30057,7 +30248,7 @@ ] ], [ - 15311, + 15405, [ { "DivMod": { @@ -30086,7 +30277,7 @@ ] ], [ - 15317, + 15411, [ { "TestLessThan": { @@ -30108,7 +30299,7 @@ ] ], [ - 15331, + 15425, [ { "TestLessThan": { @@ -30130,7 +30321,7 @@ ] ], [ - 15341, + 15435, [ { "TestLessThan": { @@ -30152,7 +30343,7 @@ ] ], [ - 15363, + 15457, [ { "AllocSegment": { @@ -30165,7 +30356,7 @@ ] ], [ - 15377, + 15471, [ { "AllocSegment": { @@ -30178,7 +30369,7 @@ ] ], [ - 15395, + 15489, [ { "AllocSegment": { @@ -30191,7 +30382,7 @@ ] ], [ - 15409, + 15503, [ { "AllocSegment": { @@ -30204,7 +30395,7 @@ ] ], [ - 15425, + 15519, [ { "TestLessThanOrEqual": { @@ -30226,7 +30417,7 @@ ] ], [ - 15452, + 15546, [ { "TestLessThan": { @@ -30248,7 +30439,7 @@ ] ], [ - 15469, + 15563, [ { "AllocSegment": { @@ -30261,7 +30452,7 @@ ] ], [ - 15494, + 15588, [ { "AllocSegment": { @@ -30274,7 +30465,7 @@ ] ], [ - 15739, + 15833, [ { "SystemCall": { @@ -30289,7 +30480,7 @@ ] ], [ - 15765, + 15859, [ { "SystemCall": { @@ -30304,7 +30495,7 @@ ] ], [ - 15779, + 15873, [ { "U256InvModN": { @@ -30361,7 +30552,7 @@ ] ], [ - 15797, + 15891, [ { "WideMul128": { @@ -30558,7 +30749,7 @@ ] ], [ - 15850, + 15944, [ { "WideMul128": { @@ -30611,7 +30802,7 @@ ] ], [ - 15854, + 15948, [ { "TestLessThan": { @@ -30633,7 +30824,7 @@ ] ], [ - 15868, + 15962, [ { "TestLessThan": { @@ -30655,7 +30846,7 @@ ] ], [ - 15881, + 15975, [ { "DivMod": { @@ -30681,7 +30872,7 @@ ] ], [ - 15891, + 15985, [ { "DivMod": { @@ -30707,7 +30898,7 @@ ] ], [ - 15902, + 15996, [ { "DivMod": { @@ -30733,7 +30924,7 @@ ] ], [ - 15911, + 16005, [ { "DivMod": { @@ -30759,7 +30950,7 @@ ] ], [ - 15921, + 16015, [ { "DivMod": { @@ -30785,7 +30976,7 @@ ] ], [ - 15932, + 16026, [ { "DivMod": { @@ -30811,7 +31002,7 @@ ] ], [ - 15941, + 16035, [ { "DivMod": { @@ -30837,7 +31028,7 @@ ] ], [ - 15951, + 16045, [ { "DivMod": { @@ -30863,7 +31054,7 @@ ] ], [ - 15962, + 16056, [ { "DivMod": { @@ -30889,7 +31080,7 @@ ] ], [ - 15971, + 16065, [ { "DivMod": { @@ -30915,7 +31106,7 @@ ] ], [ - 15981, + 16075, [ { "DivMod": { @@ -30941,7 +31132,7 @@ ] ], [ - 15992, + 16086, [ { "DivMod": { @@ -30967,7 +31158,7 @@ ] ], [ - 16001, + 16095, [ { "DivMod": { @@ -30993,7 +31184,7 @@ ] ], [ - 16011, + 16105, [ { "DivMod": { @@ -31019,7 +31210,7 @@ ] ], [ - 16022, + 16116, [ { "DivMod": { @@ -31045,7 +31236,7 @@ ] ], [ - 16031, + 16125, [ { "DivMod": { @@ -31071,7 +31262,7 @@ ] ], [ - 16041, + 16135, [ { "DivMod": { @@ -31097,7 +31288,7 @@ ] ], [ - 16052, + 16146, [ { "DivMod": { @@ -31123,7 +31314,7 @@ ] ], [ - 16061, + 16155, [ { "DivMod": { @@ -31149,7 +31340,7 @@ ] ], [ - 16071, + 16165, [ { "DivMod": { @@ -31175,7 +31366,7 @@ ] ], [ - 16082, + 16176, [ { "DivMod": { @@ -31201,7 +31392,7 @@ ] ], [ - 16091, + 16185, [ { "DivMod": { @@ -31227,7 +31418,7 @@ ] ], [ - 16101, + 16195, [ { "DivMod": { @@ -31253,7 +31444,7 @@ ] ], [ - 16112, + 16206, [ { "DivMod": { @@ -31279,7 +31470,7 @@ ] ], [ - 16136, + 16230, [ { "TestLessThan": { @@ -31301,7 +31492,7 @@ ] ], [ - 16161, + 16255, [ { "TestLessThan": { @@ -31323,7 +31514,7 @@ ] ], [ - 16181, + 16275, [ { "TestLessThan": { @@ -31345,7 +31536,7 @@ ] ], [ - 16226, + 16320, [ { "SystemCall": { @@ -31360,7 +31551,7 @@ ] ], [ - 16238, + 16332, [ { "SystemCall": { @@ -31381,7 +31572,7 @@ ] ], [ - 16249, + 16343, [ { "SystemCall": { @@ -31402,7 +31593,7 @@ ] ], [ - 16295, + 16389, [ { "AllocSegment": { @@ -31415,7 +31606,7 @@ ] ], [ - 16311, + 16405, [ { "DivMod": { @@ -31441,7 +31632,7 @@ ] ], [ - 16321, + 16415, [ { "DivMod": { @@ -31467,7 +31658,7 @@ ] ], [ - 16332, + 16426, [ { "DivMod": { @@ -31493,7 +31684,7 @@ ] ], [ - 16341, + 16435, [ { "DivMod": { @@ -31519,7 +31710,7 @@ ] ], [ - 16351, + 16445, [ { "DivMod": { @@ -31545,7 +31736,7 @@ ] ], [ - 16362, + 16456, [ { "DivMod": { @@ -31571,7 +31762,7 @@ ] ], [ - 16371, + 16465, [ { "AllocSegment": { @@ -31584,7 +31775,7 @@ ] ], [ - 16388, + 16482, [ { "AllocSegment": { @@ -31597,7 +31788,7 @@ ] ], [ - 16445, + 16539, [ { "SystemCall": { @@ -31612,7 +31803,7 @@ ] ], [ - 16452, + 16546, [ { "AllocConstantSize": { @@ -31628,7 +31819,7 @@ ] ], [ - 16456, + 16550, [ { "AllocSegment": { @@ -31641,7 +31832,7 @@ ] ], [ - 16491, + 16585, [ { "SystemCall": { @@ -31656,7 +31847,7 @@ ] ], [ - 16564, + 16658, [ { "DivMod": { @@ -31685,7 +31876,7 @@ ] ], [ - 16570, + 16664, [ { "TestLessThan": { @@ -31707,7 +31898,7 @@ ] ], [ - 16637, + 16731, [ { "WideMul128": { @@ -31736,7 +31927,7 @@ ] ], [ - 16639, + 16733, [ { "DivMod": { @@ -31762,7 +31953,7 @@ ] ], [ - 16649, + 16743, [ { "DivMod": { @@ -31788,7 +31979,7 @@ ] ], [ - 16660, + 16754, [ { "DivMod": { @@ -31814,7 +32005,7 @@ ] ], [ - 16669, + 16763, [ { "WideMul128": { @@ -31843,7 +32034,7 @@ ] ], [ - 16671, + 16765, [ { "DivMod": { @@ -31869,7 +32060,7 @@ ] ], [ - 16681, + 16775, [ { "DivMod": { @@ -31895,7 +32086,7 @@ ] ], [ - 16692, + 16786, [ { "DivMod": { @@ -31921,7 +32112,7 @@ ] ], [ - 16702, + 16796, [ { "TestLessThan": { @@ -31943,7 +32134,7 @@ ] ], [ - 16724, + 16818, [ { "WideMul128": { @@ -31972,7 +32163,7 @@ ] ], [ - 16726, + 16820, [ { "DivMod": { @@ -31998,7 +32189,7 @@ ] ], [ - 16736, + 16830, [ { "DivMod": { @@ -32024,7 +32215,7 @@ ] ], [ - 16747, + 16841, [ { "DivMod": { @@ -32050,7 +32241,7 @@ ] ], [ - 16757, + 16851, [ { "TestLessThan": { @@ -32072,7 +32263,7 @@ ] ], [ - 16780, + 16874, [ { "TestLessThan": { @@ -32094,7 +32285,7 @@ ] ], [ - 16802, + 16896, [ { "WideMul128": { @@ -32123,7 +32314,7 @@ ] ], [ - 16804, + 16898, [ { "DivMod": { @@ -32149,7 +32340,7 @@ ] ], [ - 16814, + 16908, [ { "DivMod": { @@ -32175,7 +32366,7 @@ ] ], [ - 16825, + 16919, [ { "DivMod": { @@ -32201,7 +32392,7 @@ ] ], [ - 16835, + 16929, [ { "TestLessThan": { @@ -32223,7 +32414,7 @@ ] ], [ - 16854, + 16948, [ { "TestLessThan": { @@ -32245,7 +32436,7 @@ ] ], [ - 16877, + 16971, [ { "TestLessThan": { @@ -32267,7 +32458,7 @@ ] ], [ - 16896, + 16990, [ { "TestLessThan": { @@ -32289,7 +32480,7 @@ ] ], [ - 16915, + 17009, [ { "TestLessThan": { @@ -32311,7 +32502,7 @@ ] ], [ - 16938, + 17032, [ { "TestLessThan": { @@ -32333,7 +32524,7 @@ ] ], [ - 16960, + 17054, [ { "Uint512DivModByUint256": { @@ -32402,7 +32593,7 @@ ] ], [ - 16978, + 17072, [ { "WideMul128": { @@ -32527,7 +32718,7 @@ ] ], [ - 17007, + 17101, [ { "TestLessThan": { @@ -32552,7 +32743,7 @@ ] ], [ - 17019, + 17113, [ { "TestLessThan": { @@ -32577,7 +32768,7 @@ ] ], [ - 17034, + 17128, [ { "DivMod": { @@ -32603,7 +32794,7 @@ ] ], [ - 17044, + 17138, [ { "DivMod": { @@ -32629,7 +32820,7 @@ ] ], [ - 17055, + 17149, [ { "DivMod": { @@ -32655,7 +32846,7 @@ ] ], [ - 17064, + 17158, [ { "DivMod": { @@ -32681,7 +32872,7 @@ ] ], [ - 17074, + 17168, [ { "DivMod": { @@ -32707,7 +32898,7 @@ ] ], [ - 17085, + 17179, [ { "DivMod": { @@ -32733,7 +32924,7 @@ ] ], [ - 17094, + 17188, [ { "DivMod": { @@ -32759,7 +32950,7 @@ ] ], [ - 17104, + 17198, [ { "DivMod": { @@ -32785,7 +32976,7 @@ ] ], [ - 17115, + 17209, [ { "DivMod": { @@ -32811,7 +33002,7 @@ ] ], [ - 17124, + 17218, [ { "DivMod": { @@ -32837,7 +33028,7 @@ ] ], [ - 17134, + 17228, [ { "DivMod": { @@ -32863,7 +33054,7 @@ ] ], [ - 17145, + 17239, [ { "DivMod": { @@ -32889,7 +33080,7 @@ ] ], [ - 17154, + 17248, [ { "DivMod": { @@ -32915,7 +33106,7 @@ ] ], [ - 17164, + 17258, [ { "DivMod": { @@ -32941,7 +33132,7 @@ ] ], [ - 17175, + 17269, [ { "DivMod": { @@ -32967,7 +33158,7 @@ ] ], [ - 17189, + 17283, [ { "TestLessThan": { @@ -32989,7 +33180,7 @@ ] ], [ - 17307, + 17401, [ { "AllocSegment": { @@ -33002,7 +33193,7 @@ ] ], [ - 17330, + 17424, [ { "TestLessThanOrEqual": { @@ -33027,7 +33218,7 @@ ] ], [ - 17405, + 17499, [ { "AllocSegment": { @@ -33040,7 +33231,7 @@ ] ], [ - 17460, + 17554, [ { "DivMod": { @@ -33069,7 +33260,7 @@ ] ], [ - 17466, + 17560, [ { "TestLessThan": { @@ -33091,7 +33282,7 @@ ] ], [ - 17479, + 17573, [ { "TestLessThan": { @@ -33113,7 +33304,7 @@ ] ], [ - 17489, + 17583, [ { "TestLessThan": { @@ -33135,7 +33326,7 @@ ] ], [ - 17537, + 17631, [ { "DivMod": { @@ -33164,7 +33355,7 @@ ] ], [ - 17543, + 17637, [ { "TestLessThan": { @@ -33186,7 +33377,7 @@ ] ], [ - 17559, + 17653, [ { "TestLessThan": { @@ -33208,7 +33399,7 @@ ] ], [ - 17569, + 17663, [ { "TestLessThan": { @@ -33230,7 +33421,7 @@ ] ], [ - 17592, + 17686, [ { "AllocSegment": { @@ -33243,7 +33434,7 @@ ] ], [ - 17606, + 17700, [ { "AllocSegment": { @@ -33256,7 +33447,7 @@ ] ], [ - 17625, + 17719, [ { "AllocSegment": { @@ -33269,7 +33460,7 @@ ] ], [ - 17639, + 17733, [ { "AllocSegment": { @@ -33394,6 +33585,14 @@ "range_check" ] }, + { + "selector": "0x21d859f3ad4181efd93ae2e562b5728d4bad1a7e9d3b1416b8643d17c008847", + "offset": 5511, + "builtins": [ + "range_check", + "range_check96" + ] + }, { "selector": "0x23039bef544cff56442d9f61ae9b13cf9e36fcce009102c5b678aac93f37b36", "offset": 1048, @@ -33501,14 +33700,14 @@ "L1_HANDLER": [ { "selector": "0x205500a208d0d49d79197fea83cc3f5fde99ac2e1909ae0a5d9f394c0c52ed0", - "offset": 5672, + "offset": 5766, "builtins": [ "range_check" ] }, { "selector": "0x39edbbb129ad752107a94d40c3873cae369a46fd2fc578d075679aa67e85d12", - "offset": 5511, + "offset": 5605, "builtins": [ "range_check" ] @@ -33517,7 +33716,7 @@ "CONSTRUCTOR": [ { "selector": "0x28ffe4ff0f226a9107253e17a904099aa4f63a02a5621de0576e5aa71bc5194", - "offset": 5922, + "offset": 6016, "builtins": [ "range_check" ] diff --git a/crates/blockifier/feature_contracts/cairo1/test_contract.cairo b/crates/blockifier/feature_contracts/cairo1/test_contract.cairo index 56d6d15732..8bf7f5056c 100644 --- a/crates/blockifier/feature_contracts/cairo1/test_contract.cairo +++ b/crates/blockifier/feature_contracts/cairo1/test_contract.cairo @@ -553,4 +553,14 @@ mod TestContract { assert!(outputs.get_output(mul) == u384 { limb0: 6, limb1: 0, limb2: 0, limb3: 0 }); } + + + // Add drop for AddInputResult as it only has PanicDestruct. + impl AddInputResultDrop of Drop>; + + #[external(v0)] + fn test_missing_rc96_values(ref self: ContractState) { + let in1 = CircuitElement::> {}; + (in1,).new_inputs(); + } } diff --git a/crates/blockifier/src/execution/entry_point_execution.rs b/crates/blockifier/src/execution/entry_point_execution.rs index 8f726cd0f6..06151c6675 100644 --- a/crates/blockifier/src/execution/entry_point_execution.rs +++ b/crates/blockifier/src/execution/entry_point_execution.rs @@ -3,9 +3,12 @@ use std::collections::HashSet; use cairo_vm::types::builtin_name::BuiltinName; use cairo_vm::types::layout_name::LayoutName; use cairo_vm::types::relocatable::{MaybeRelocatable, Relocatable}; +use cairo_vm::vm::errors::cairo_run_errors::CairoRunError; use cairo_vm::vm::errors::vm_errors::VirtualMachineError; +use cairo_vm::vm::runners::builtin_runner::BuiltinRunner; use cairo_vm::vm::runners::cairo_runner::{CairoArg, CairoRunner, ExecutionResources}; -use num_traits::ToPrimitive; +use cairo_vm::vm::security::verify_secure_runner; +use num_traits::{ToPrimitive, Zero}; use starknet_api::felt; use starknet_types_core::felt::Felt; @@ -280,17 +283,65 @@ pub fn run_entry_point( args: Args, program_segment_size: usize, ) -> EntryPointExecutionResult<()> { - let verify_secure = true; + // Note that we run `verify_secure_runner` manually after filling the holes in the rc96 segment. + let verify_secure = false; let args: Vec<&CairoArg> = args.iter().collect(); - let result = runner.run_from_entrypoint( + runner.run_from_entrypoint( entry_point.pc(), &args, verify_secure, Some(program_segment_size), hint_processor, - ); + )?; + + let opt_rc96_idx = + entry_point.builtins.iter().rev().position(|name| name.as_str() == "range_check96_builtin"); + + let opt_rc96_index_and_runner = runner.vm.get_builtin_runners().iter().find_map(|builtin| { + let rc96_offset = opt_rc96_idx?; + if let BuiltinRunner::RangeCheck96(rc96_builtin_runner) = builtin { + Some((rc96_offset, rc96_builtin_runner)) + } else { + None + } + }); + + // Fill holes in the rc96 segment. + if let Some((rc96_offset, rc96_builtin_runner)) = opt_rc96_index_and_runner { + // 'EntryPointReturnValues' is returned after the implicits and its size is 5, + // So the last implicit is at offset 5 + 1. + let implicits_offset = 6; + let rc_96_stop_ptr = (runner.vm.get_ap() - (implicits_offset + rc96_offset)) + .map_err(|err| CairoRunError::VirtualMachine(VirtualMachineError::Math(err)))?; + + let rc96_base = rc96_builtin_runner.base(); + let rc96_segment: isize = + rc96_base.try_into().expect("Builtin segment index must fit in isize."); - Ok(result?) + let Relocatable { segment_index: rc96_stop_segment, offset: stop_offset } = + runner.vm.get_relocatable(rc_96_stop_ptr).map_err(CairoRunError::MemoryError)?; + assert_eq!(rc96_stop_segment, rc96_segment); + + runner + .vm + .segments + .segment_used_sizes + .as_mut() + .expect("Segments used sizes should be calculated at this point")[rc96_base] = + stop_offset; + + for offset in 0..stop_offset { + // If the value is already set, ignore the error. + let _ = runner + .vm + .insert_value(Relocatable { segment_index: rc96_segment, offset }, Felt::zero()); + } + } + + verify_secure_runner(runner, false, Some(program_segment_size)) + .map_err(CairoRunError::VirtualMachine)?; + + Ok(()) } pub fn finalize_execution( diff --git a/crates/blockifier/src/transaction/account_transactions_test.rs b/crates/blockifier/src/transaction/account_transactions_test.rs index 79c74ef721..6563222cc7 100644 --- a/crates/blockifier/src/transaction/account_transactions_test.rs +++ b/crates/blockifier/src/transaction/account_transactions_test.rs @@ -1,6 +1,7 @@ use std::collections::{HashMap, HashSet}; use std::sync::Arc; +use cairo_vm::types::builtin_name::BuiltinName; use cairo_vm::vm::runners::cairo_runner::ResourceTracker; use pretty_assertions::assert_eq; use rstest::rstest; @@ -84,6 +85,48 @@ fn test_circuit(block_context: BlockContext, max_resource_bounds: ResourceBounds assert_eq!(tx_execution_info.transaction_receipt.gas, GasVector::from_l1_gas(6682)); } +#[rstest] +fn test_missing_rc96_values( + block_context: BlockContext, + max_resource_bounds: ResourceBoundsMapping, +) { + let test_contract = FeatureContract::TestContract(CairoVersion::Cairo1); + let account = FeatureContract::AccountWithoutValidations(CairoVersion::Cairo1); + let chain_info = &block_context.chain_info; + let state = &mut test_state(chain_info, BALANCE, &[(test_contract, 1), (account, 1)]); + let test_contract_address = test_contract.get_instance_address(0); + let account_address = account.get_instance_address(0); + let mut nonce_manager = NonceManager::default(); + + // Invoke a function that changes the state and reverts. + let tx_args = invoke_tx_args! { + sender_address: account_address, + calldata: create_calldata( + test_contract_address, + "test_missing_rc96_values", + &[] + ), + nonce: nonce_manager.next(account_address) + }; + let tx_execution_info = run_invoke_tx( + state, + &block_context, + invoke_tx_args! { + resource_bounds: max_resource_bounds, + ..tx_args + }, + ) + .unwrap(); + + assert_eq!(tx_execution_info.revert_error, None); + assert_eq!( + tx_execution_info.transaction_receipt.resources.vm_resources.builtin_instance_counter + [&BuiltinName::range_check96], + 12 + ); + assert_eq!(tx_execution_info.transaction_receipt.gas, GasVector::from_l1_gas(6551)); +} + #[rstest] fn test_fee_enforcement( block_context: BlockContext,