From 2eb6c99a66b1e2422ed972b8bd82ccb5583926f4 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 | 1394 ++++++++++------- .../cairo1/test_contract.cairo | 13 + .../src/execution/entry_point_execution.rs | 50 +- .../transaction/account_transactions_test.rs | 43 + 4 files changed, 913 insertions(+), 587 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..5008b46922 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", + "0x452a", "0x482480017fff8000", - "0x44b2", + "0x4529", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -275,9 +275,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x4404", + "0x447b", "0x482480017fff8000", - "0x4403", + "0x447a", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -536,7 +536,7 @@ "0x48127ffa7fff8000", "0x480080007ff88000", "0x1104800180018000", - "0x15c8", + "0x163f", "0x20680017fff7ffa", "0xb", "0x48127ff87fff8000", @@ -588,9 +588,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x42cb", + "0x4342", "0x482480017fff8000", - "0x42ca", + "0x4341", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -805,7 +805,7 @@ "0x48127ffa7fff8000", "0x480080007ff88000", "0x1104800180018000", - "0x14bb", + "0x1532", "0x20680017fff7ffa", "0xb", "0x48127ff87fff8000", @@ -870,7 +870,7 @@ "0x48127ffa7fff8000", "0x480080007ff88000", "0x1104800180018000", - "0x147a", + "0x14f1", "0x20680017fff7ffa", "0xb", "0x48127ff87fff8000", @@ -922,9 +922,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x417d", + "0x41f4", "0x482480017fff8000", - "0x417c", + "0x41f3", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -950,7 +950,7 @@ "0x48127ff07fff8000", "0x48127ff07fff8000", "0x1104800180018000", - "0x1486", + "0x14fd", "0x20680017fff7ffd", "0xc", "0x40780017fff7fff", @@ -1128,9 +1128,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x40af", + "0x4126", "0x482480017fff8000", - "0x40ae", + "0x4125", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -1245,7 +1245,7 @@ "0x480a7ffc7fff8000", "0x480a7ffd7fff8000", "0x1104800180018000", - "0x13c9", + "0x1440", "0x20680017fff7ffc", "0xf2", "0x48127ff97fff8000", @@ -1256,7 +1256,7 @@ "0x40137ffa7fff8001", "0x40137ffb7fff8002", "0x1104800180018000", - "0x148b", + "0x1502", "0x20680017fff7feb", "0xdf", "0x20680017fff7fee", @@ -1344,9 +1344,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3fd7", + "0x404e", "0x482480017fff8000", - "0x3fd6", + "0x404d", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -1388,7 +1388,7 @@ "0x48127fdb7fff8000", "0x48127fdf7fff8000", "0x1104800180018000", - "0x18bc", + "0x1933", "0x20680017fff7ffd", "0xc", "0x40780017fff7fff", @@ -1630,7 +1630,7 @@ "0x48127ffa7fff8000", "0x480080007ff88000", "0x1104800180018000", - "0x1182", + "0x11f9", "0x20680017fff7ffa", "0xb", "0x48127ff87fff8000", @@ -1682,9 +1682,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3e85", + "0x3efc", "0x482480017fff8000", - "0x3e84", + "0x3efb", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -1969,9 +1969,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3d66", + "0x3ddd", "0x482480017fff8000", - "0x3d65", + "0x3ddc", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -1993,7 +1993,7 @@ "0x48127fee7fff8000", "0x48127ff27fff8000", "0x1104800180018000", - "0x17cf", + "0x1846", "0x482480017fc88000", "0x1", "0x48127ffa7fff8000", @@ -2186,9 +2186,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3c8d", + "0x3d04", "0x482480017fff8000", - "0x3c8c", + "0x3d03", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -2350,7 +2350,7 @@ "0x48127ffa7fff8000", "0x480080007ff88000", "0x1104800180018000", - "0xeb2", + "0xf29", "0x20680017fff7ffa", "0xb", "0x48127ff87fff8000", @@ -2402,9 +2402,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3bb5", + "0x3c2c", "0x482480017fff8000", - "0x3bb4", + "0x3c2b", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -2541,9 +2541,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3b2a", + "0x3ba1", "0x482480017fff8000", - "0x3b29", + "0x3ba0", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -2575,7 +2575,7 @@ "0x48127ff77fff8000", "0x480080007ffc8000", "0x1104800180018000", - "0x15d1", + "0x1648", "0x40780017fff7fff", "0x1", "0x48127ffa7fff8000", @@ -2732,7 +2732,7 @@ "0x48127ffa7fff8000", "0x480080007ff88000", "0x1104800180018000", - "0xd34", + "0xdab", "0x20680017fff7ffa", "0xb", "0x48127ff87fff8000", @@ -2814,9 +2814,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3a19", + "0x3a90", "0x482480017fff8000", - "0x3a18", + "0x3a8f", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -2992,9 +2992,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3967", + "0x39de", "0x482480017fff8000", - "0x3966", + "0x39dd", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -3013,7 +3013,7 @@ "0x48127ffe7fff8000", "0x480a7ffb7fff8000", "0x1104800180018000", - "0x14d9", + "0x1550", "0x20680017fff7ffd", "0xc", "0x40780017fff7fff", @@ -3096,9 +3096,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x38ff", + "0x3976", "0x482480017fff8000", - "0x38fe", + "0x3975", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -3117,7 +3117,7 @@ "0x48127ffe7fff8000", "0x480a7ffb7fff8000", "0x1104800180018000", - "0x1545", + "0x15bc", "0x20680017fff7ffd", "0xc", "0x40780017fff7fff", @@ -3201,9 +3201,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3896", + "0x390d", "0x482480017fff8000", - "0x3895", + "0x390c", "0x480080007fff8000", "0x480080017fff8000", "0x484480017fff8000", @@ -3226,7 +3226,7 @@ "0x480a7ff97fff8000", "0x480a7ffb7fff8000", "0x1104800180018000", - "0x152b", + "0x15a2", "0x20680017fff7ffd", "0xd", "0x40780017fff7fff", @@ -3313,9 +3313,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3826", + "0x389d", "0x482480017fff8000", - "0x3825", + "0x389c", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -3334,7 +3334,7 @@ "0x48127ffe7fff8000", "0x480a7ffb7fff8000", "0x1104800180018000", - "0x161f", + "0x1696", "0x20680017fff7ffd", "0xc", "0x40780017fff7fff", @@ -3459,9 +3459,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3794", + "0x380b", "0x482480017fff8000", - "0x3793", + "0x380a", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -3609,7 +3609,7 @@ "0x48127ffa7fff8000", "0x480080007ff88000", "0x1104800180018000", - "0x9c7", + "0xa3e", "0x20680017fff7ffa", "0xb", "0x48127ff87fff8000", @@ -3661,9 +3661,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x36ca", + "0x3741", "0x482480017fff8000", - "0x36c9", + "0x3740", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -3684,7 +3684,7 @@ "0x48127ff47fff8000", "0x48127ff47fff8000", "0x1104800180018000", - "0x164a", + "0x16c1", "0x20680017fff7ffd", "0xe", "0x40780017fff7fff", @@ -3783,9 +3783,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3650", + "0x36c7", "0x482480017fff8000", - "0x364f", + "0x36c6", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -3897,9 +3897,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x35de", + "0x3655", "0x482480017fff8000", - "0x35dd", + "0x3654", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -3918,7 +3918,7 @@ "0x48127ffe7fff8000", "0x48127ff67fff8000", "0x1104800180018000", - "0x16af", + "0x1726", "0x20680017fff7ffd", "0xc", "0x40780017fff7fff", @@ -4036,9 +4036,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3553", + "0x35ca", "0x482480017fff8000", - "0x3552", + "0x35c9", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -4057,7 +4057,7 @@ "0x48127ffe7fff8000", "0x48127ff67fff8000", "0x1104800180018000", - "0x1654", + "0x16cb", "0x20680017fff7ffd", "0xc", "0x40780017fff7fff", @@ -4241,9 +4241,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3486", + "0x34fd", "0x482480017fff8000", - "0x3485", + "0x34fc", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -4485,9 +4485,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3392", + "0x3409", "0x482480017fff8000", - "0x3391", + "0x3408", "0x480080007fff8000", "0x480080007fff8000", "0x484480017fff8000", @@ -4513,7 +4513,7 @@ "0x48127feb7fff8000", "0x48127fef7fff8000", "0x1104800180018000", - "0x14b8", + "0x152f", "0x20680017fff7ffd", "0xd", "0x40780017fff7fff", @@ -4628,7 +4628,7 @@ "0x480a7ffc7fff8000", "0x480a7ffd7fff8000", "0x1104800180018000", - "0x1508", + "0x157f", "0x20680017fff7ffc", "0x63", "0x48307ffa80007ffb", @@ -4653,9 +4653,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x32ea", + "0x3361", "0x482480017fff8000", - "0x32e9", + "0x3360", "0x480080007fff8000", "0x480080007fff8000", "0x484480017fff8000", @@ -4686,7 +4686,7 @@ "0x48127feb7fff8000", "0x48127feb7fff8000", "0x1104800180018000", - "0x1592", + "0x1609", "0x20680017fff7ffd", "0xe", "0x40780017fff7fff", @@ -4821,7 +4821,7 @@ "0x48127ff67fff8000", "0x48127ff67fff8000", "0x1104800180018000", - "0x1447", + "0x14be", "0x20680017fff7ffc", "0x60", "0x48307ffa80007ffb", @@ -4844,9 +4844,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x322b", + "0x32a2", "0x482480017fff8000", - "0x322a", + "0x32a1", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -5001,9 +5001,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x318e", + "0x3205", "0x482480017fff8000", - "0x318d", + "0x3204", "0x480080007fff8000", "0x480080027fff8000", "0x482480017fff8000", @@ -5024,7 +5024,7 @@ "0x48127ffd7fff8000", "0x480a7ffb7fff8000", "0x1104800180018000", - "0x1562", + "0x15d9", "0x20680017fff7ffd", "0xd", "0x40780017fff7fff", @@ -5133,9 +5133,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x310a", + "0x3181", "0x482480017fff8000", - "0x3109", + "0x3180", "0x480080007fff8000", "0x480080007fff8000", "0x484480017fff8000", @@ -5159,7 +5159,7 @@ "0x480a7ffb7fff8000", "0x48127ff17fff8000", "0x1104800180018000", - "0x15fd", + "0x1674", "0x20680017fff7ffd", "0xd", "0x40780017fff7fff", @@ -5282,9 +5282,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3075", + "0x30ec", "0x482480017fff8000", - "0x3074", + "0x30eb", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -5420,9 +5420,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x2feb", + "0x3062", "0x482480017fff8000", - "0x2fea", + "0x3061", "0x480080007fff8000", "0x480080047fff8000", "0x484480017fff8000", @@ -5450,7 +5450,7 @@ "0x480a7ff77fff8000", "0x48127ffb7fff8000", "0x1104800180018000", - "0x1608", + "0x167f", "0x20680017fff7ffd", "0xf", "0x40780017fff7fff", @@ -5517,6 +5517,125 @@ "0x7", "0x482680017ffa8000", "0x100000000000000000000000000000000", + "0x400280007ff87fff", + "0x10780017fff7fff", + "0x62", + "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", + "0x2fe4", + "0x482480017fff8000", + "0x2fe3", + "0x480080007fff8000", + "0xa0680017fff8000", + "0x9", + "0x4824800180007ff8", + "0x0", + "0x482480017fff8000", + "0x100000000000000000000000000000000", + "0x400080007ff77fff", + "0x10780017fff7fff", + "0x2b", + "0x4824800180007ff8", + "0x0", + "0x400080007ff87fff", + "0x482680017ff98000", + "0x10", + "0x482680017ff98000", + "0x14", + "0x480680017fff8000", + "0x3", + "0x480680017fff8000", + "0x0", + "0x480680017fff8000", + "0x0", + "0x480680017fff8000", + "0x0", + "0x482480017ff28000", + "0x1", + "0x482680017ff98000", + "0x18", + "0x400080007ff87ffa", + "0x400080017ff87ffb", + "0x400080027ff87ffc", + "0x400080037ff87ffd", + "0x482480017ff88000", + "0x4", + "0x48307fff80007ff8", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0x2", + "0x40780017fff7fff", + "0x1", + "0x48127ffb7fff8000", + "0x48127ffb7fff8000", + "0x48127ff27fff8000", + "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 +17836,7 @@ 150, 156, 128, + 119, 161, 250, 187, @@ -22350,7 +22470,7 @@ ] ], [ - 5570, + 5528, [ { "AllocSegment": { @@ -22363,7 +22483,7 @@ ] ], [ - 5589, + 5548, [ { "TestLessThanOrEqual": { @@ -22373,7 +22493,7 @@ "rhs": { "Deref": { "register": "AP", - "offset": -17 + "offset": -7 } }, "dst": { @@ -22385,7 +22505,20 @@ ] ], [ - 5601, + 5587, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 5598, [ { "AllocSegment": { @@ -22411,7 +22544,64 @@ ] ], [ - 5629, + 5630, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -6 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 5689, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 5708, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -17 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 5720, [ { "AllocSegment": { @@ -22424,7 +22614,7 @@ ] ], [ - 5643, + 5733, [ { "AllocSegment": { @@ -22437,7 +22627,7 @@ ] ], [ - 5657, + 5748, [ { "AllocSegment": { @@ -22450,7 +22640,33 @@ ] ], [ - 5672, + 5762, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 5776, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 5791, [ { "TestLessThanOrEqual": { @@ -22472,7 +22688,7 @@ ] ], [ - 5726, + 5845, [ { "TestLessThan": { @@ -22494,7 +22710,7 @@ ] ], [ - 5730, + 5849, [ { "LinearSplit": { @@ -22523,7 +22739,7 @@ ] ], [ - 5740, + 5859, [ { "LinearSplit": { @@ -22552,7 +22768,7 @@ ] ], [ - 5776, + 5895, [ { "AllocSegment": { @@ -22565,7 +22781,7 @@ ] ], [ - 5795, + 5914, [ { "TestLessThanOrEqual": { @@ -22587,7 +22803,7 @@ ] ], [ - 5818, + 5937, [ { "SystemCall": { @@ -22602,7 +22818,7 @@ ] ], [ - 5821, + 5940, [ { "AllocSegment": { @@ -22615,7 +22831,7 @@ ] ], [ - 5843, + 5962, [ { "AllocSegment": { @@ -22628,7 +22844,7 @@ ] ], [ - 5858, + 5977, [ { "AllocSegment": { @@ -22641,7 +22857,7 @@ ] ], [ - 5879, + 5998, [ { "AllocSegment": { @@ -22654,7 +22870,7 @@ ] ], [ - 5893, + 6012, [ { "AllocSegment": { @@ -22667,7 +22883,7 @@ ] ], [ - 5907, + 6026, [ { "AllocSegment": { @@ -22680,7 +22896,7 @@ ] ], [ - 5922, + 6041, [ { "TestLessThanOrEqual": { @@ -22702,7 +22918,7 @@ ] ], [ - 5981, + 6100, [ { "AllocSegment": { @@ -22715,7 +22931,7 @@ ] ], [ - 6000, + 6119, [ { "TestLessThanOrEqual": { @@ -22737,7 +22953,7 @@ ] ], [ - 6026, + 6145, [ { "SystemCall": { @@ -22752,7 +22968,7 @@ ] ], [ - 6029, + 6148, [ { "AllocSegment": { @@ -22765,7 +22981,7 @@ ] ], [ - 6051, + 6170, [ { "AllocSegment": { @@ -22778,7 +22994,7 @@ ] ], [ - 6066, + 6185, [ { "AllocSegment": { @@ -22791,7 +23007,7 @@ ] ], [ - 6080, + 6199, [ { "AllocSegment": { @@ -22804,7 +23020,7 @@ ] ], [ - 6094, + 6213, [ { "AllocSegment": { @@ -22817,7 +23033,7 @@ ] ], [ - 6109, + 6228, [ { "TestLessThanOrEqual": { @@ -22839,7 +23055,7 @@ ] ], [ - 6181, + 6300, [ { "AllocSegment": { @@ -22852,7 +23068,7 @@ ] ], [ - 6201, + 6320, [ { "TestLessThanOrEqual": { @@ -22874,7 +23090,7 @@ ] ], [ - 6226, + 6345, [ { "SystemCall": { @@ -22889,7 +23105,7 @@ ] ], [ - 6234, + 6353, [ { "TestLessThan": { @@ -22920,7 +23136,7 @@ ] ], [ - 6259, + 6378, [ { "AllocSegment": { @@ -22933,7 +23149,7 @@ ] ], [ - 6292, + 6411, [ { "AllocSegment": { @@ -22946,7 +23162,7 @@ ] ], [ - 6329, + 6448, [ { "TestLessThan": { @@ -22974,7 +23190,7 @@ ] ], [ - 6333, + 6452, [ { "LinearSplit": { @@ -23003,7 +23219,7 @@ ] ], [ - 6375, + 6494, [ { "TestLessThan": { @@ -23031,7 +23247,7 @@ ] ], [ - 6379, + 6498, [ { "LinearSplit": { @@ -23060,7 +23276,7 @@ ] ], [ - 6420, + 6539, [ { "TestLessThan": { @@ -23082,7 +23298,7 @@ ] ], [ - 6424, + 6543, [ { "LinearSplit": { @@ -23111,7 +23327,7 @@ ] ], [ - 6434, + 6553, [ { "LinearSplit": { @@ -23140,7 +23356,7 @@ ] ], [ - 6558, + 6677, [ { "TestLessThan": { @@ -23162,7 +23378,7 @@ ] ], [ - 6562, + 6681, [ { "LinearSplit": { @@ -23191,7 +23407,7 @@ ] ], [ - 6572, + 6691, [ { "LinearSplit": { @@ -23220,7 +23436,7 @@ ] ], [ - 6604, + 6723, [ { "TestLessThan": { @@ -23242,7 +23458,7 @@ ] ], [ - 6606, + 6725, [ { "DivMod": { @@ -23268,7 +23484,7 @@ ] ], [ - 6726, + 6845, [ { "AllocSegment": { @@ -23281,7 +23497,7 @@ ] ], [ - 6840, + 6959, [ { "TestLessThan": { @@ -23303,7 +23519,7 @@ ] ], [ - 6842, + 6961, [ { "DivMod": { @@ -23329,7 +23545,7 @@ ] ], [ - 6895, + 7014, [ { "TestLessThan": { @@ -23357,7 +23573,7 @@ ] ], [ - 6899, + 7018, [ { "LinearSplit": { @@ -23386,7 +23602,7 @@ ] ], [ - 6941, + 7060, [ { "TestLessThan": { @@ -23414,7 +23630,7 @@ ] ], [ - 6945, + 7064, [ { "LinearSplit": { @@ -23443,7 +23659,7 @@ ] ], [ - 7723, + 7842, [ { "SystemCall": { @@ -23458,7 +23674,7 @@ ] ], [ - 7956, + 8075, [ { "AllocSegment": { @@ -23471,7 +23687,7 @@ ] ], [ - 7970, + 8089, [ { "AllocSegment": { @@ -23484,7 +23700,7 @@ ] ], [ - 7984, + 8103, [ { "AllocSegment": { @@ -23497,7 +23713,7 @@ ] ], [ - 8048, + 8167, [ { "AllocSegment": { @@ -23510,7 +23726,7 @@ ] ], [ - 8062, + 8181, [ { "AllocSegment": { @@ -23523,7 +23739,7 @@ ] ], [ - 8085, + 8204, [ { "AllocSegment": { @@ -23536,7 +23752,7 @@ ] ], [ - 8109, + 8228, [ { "SystemCall": { @@ -23551,7 +23767,7 @@ ] ], [ - 8112, + 8231, [ { "AllocSegment": { @@ -23564,7 +23780,7 @@ ] ], [ - 8128, + 8247, [ { "SystemCall": { @@ -23585,7 +23801,7 @@ ] ], [ - 8165, + 8284, [ { "GetSegmentArenaIndex": { @@ -23604,7 +23820,7 @@ ] ], [ - 8206, + 8325, [ { "AllocSegment": { @@ -23617,7 +23833,7 @@ ] ], [ - 8214, + 8333, [ { "InitSquashData": { @@ -23652,7 +23868,7 @@ ] ], [ - 8233, + 8352, [ { "GetCurrentAccessIndex": { @@ -23667,7 +23883,7 @@ ] ], [ - 8246, + 8365, [ { "ShouldSkipSquashLoop": { @@ -23680,7 +23896,7 @@ ] ], [ - 8248, + 8367, [ { "GetCurrentAccessDelta": { @@ -23693,7 +23909,7 @@ ] ], [ - 8259, + 8378, [ { "ShouldContinueSquashLoop": { @@ -23706,7 +23922,7 @@ ] ], [ - 8273, + 8392, [ { "GetNextDictKey": { @@ -23719,7 +23935,7 @@ ] ], [ - 8292, + 8411, [ { "AssertLeFindSmallArcs": { @@ -23752,7 +23968,7 @@ ] ], [ - 8304, + 8423, [ { "AssertLeIsFirstArcExcluded": { @@ -23765,7 +23981,7 @@ ] ], [ - 8316, + 8435, [ { "AssertLeIsSecondArcExcluded": { @@ -23778,7 +23994,7 @@ ] ], [ - 8347, + 8466, [ { "AllocSegment": { @@ -23791,7 +24007,7 @@ ] ], [ - 8355, + 8474, [ { "AllocSegment": { @@ -23804,7 +24020,7 @@ ] ], [ - 8386, + 8505, [ { "SystemCall": { @@ -23819,7 +24035,7 @@ ] ], [ - 8400, + 8519, [ { "AllocSegment": { @@ -23832,7 +24048,7 @@ ] ], [ - 8420, + 8539, [ { "AllocSegment": { @@ -23845,7 +24061,7 @@ ] ], [ - 8434, + 8553, [ { "AllocSegment": { @@ -23858,7 +24074,7 @@ ] ], [ - 8448, + 8567, [ { "SystemCall": { @@ -23873,7 +24089,7 @@ ] ], [ - 8451, + 8570, [ { "AllocSegment": { @@ -23886,7 +24102,7 @@ ] ], [ - 8474, + 8593, [ { "TestLessThan": { @@ -23911,7 +24127,7 @@ ] ], [ - 8502, + 8621, [ { "AllocSegment": { @@ -23924,7 +24140,7 @@ ] ], [ - 8516, + 8635, [ { "AllocSegment": { @@ -23937,7 +24153,7 @@ ] ], [ - 8559, + 8678, [ { "AllocSegment": { @@ -23950,7 +24166,7 @@ ] ], [ - 8598, + 8717, [ { "AllocSegment": { @@ -23963,7 +24179,7 @@ ] ], [ - 8658, + 8777, [ { "SystemCall": { @@ -23978,7 +24194,7 @@ ] ], [ - 8668, + 8787, [ { "AllocSegment": { @@ -23991,7 +24207,7 @@ ] ], [ - 8699, + 8818, [ { "SystemCall": { @@ -24006,7 +24222,7 @@ ] ], [ - 8702, + 8821, [ { "AllocSegment": { @@ -24019,7 +24235,7 @@ ] ], [ - 8726, + 8845, [ { "TestLessThan": { @@ -24044,7 +24260,7 @@ ] ], [ - 8760, + 8879, [ { "SystemCall": { @@ -24059,7 +24275,7 @@ ] ], [ - 8775, + 8894, [ { "SystemCall": { @@ -24074,7 +24290,7 @@ ] ], [ - 8821, + 8940, [ { "AllocSegment": { @@ -24087,7 +24303,7 @@ ] ], [ - 8840, + 8959, [ { "DivMod": { @@ -24116,7 +24332,7 @@ ] ], [ - 8846, + 8965, [ { "TestLessThan": { @@ -24138,7 +24354,7 @@ ] ], [ - 8897, + 9016, [ { "AllocSegment": { @@ -24151,7 +24367,7 @@ ] ], [ - 8928, + 9047, [ { "AllocSegment": { @@ -24164,7 +24380,7 @@ ] ], [ - 8953, + 9072, [ { "AllocSegment": { @@ -24177,7 +24393,7 @@ ] ], [ - 8968, + 9087, [ { "AllocSegment": { @@ -24190,7 +24406,7 @@ ] ], [ - 9010, + 9129, [ { "SystemCall": { @@ -24205,7 +24421,7 @@ ] ], [ - 9022, + 9141, [ { "AllocSegment": { @@ -24218,7 +24434,7 @@ ] ], [ - 9052, + 9171, [ { "SystemCall": { @@ -24233,7 +24449,7 @@ ] ], [ - 9057, + 9176, [ { "AllocSegment": { @@ -24246,7 +24462,7 @@ ] ], [ - 9080, + 9199, [ { "TestLessThan": { @@ -24271,7 +24487,7 @@ ] ], [ - 9114, + 9233, [ { "SystemCall": { @@ -24286,7 +24502,7 @@ ] ], [ - 9129, + 9248, [ { "SystemCall": { @@ -24301,7 +24517,7 @@ ] ], [ - 9177, + 9296, [ { "AllocSegment": { @@ -24314,7 +24530,7 @@ ] ], [ - 9195, + 9314, [ { "DivMod": { @@ -24343,7 +24559,7 @@ ] ], [ - 9201, + 9320, [ { "TestLessThan": { @@ -24365,7 +24581,7 @@ ] ], [ - 9230, + 9349, [ { "SystemCall": { @@ -24380,7 +24596,7 @@ ] ], [ - 9280, + 9399, [ { "AllocSegment": { @@ -24393,7 +24609,7 @@ ] ], [ - 9318, + 9437, [ { "AllocSegment": { @@ -24406,7 +24622,7 @@ ] ], [ - 9345, + 9464, [ { "AllocSegment": { @@ -24419,7 +24635,7 @@ ] ], [ - 9361, + 9480, [ { "AllocSegment": { @@ -24432,7 +24648,7 @@ ] ], [ - 9387, + 9506, [ { "TestLessThanOrEqual": { @@ -24454,7 +24670,7 @@ ] ], [ - 9401, + 9520, [ { "TestLessThan": { @@ -24476,7 +24692,7 @@ ] ], [ - 9476, + 9595, [ { "TestLessThan": { @@ -24498,7 +24714,7 @@ ] ], [ - 9480, + 9599, [ { "LinearSplit": { @@ -24527,7 +24743,7 @@ ] ], [ - 9490, + 9609, [ { "LinearSplit": { @@ -24556,7 +24772,7 @@ ] ], [ - 9508, + 9627, [ { "SystemCall": { @@ -24571,7 +24787,7 @@ ] ], [ - 9526, + 9645, [ { "AllocSegment": { @@ -24584,7 +24800,7 @@ ] ], [ - 9545, + 9664, [ { "TestLessThan": { @@ -24606,7 +24822,7 @@ ] ], [ - 9549, + 9668, [ { "LinearSplit": { @@ -24635,7 +24851,7 @@ ] ], [ - 9559, + 9678, [ { "LinearSplit": { @@ -24664,7 +24880,7 @@ ] ], [ - 9577, + 9696, [ { "SystemCall": { @@ -24679,7 +24895,7 @@ ] ], [ - 9595, + 9714, [ { "AllocSegment": { @@ -24692,7 +24908,7 @@ ] ], [ - 9626, + 9745, [ { "AllocSegment": { @@ -24705,7 +24921,7 @@ ] ], [ - 9650, + 9769, [ { "AllocSegment": { @@ -24718,7 +24934,7 @@ ] ], [ - 9664, + 9783, [ { "AllocSegment": { @@ -24731,7 +24947,7 @@ ] ], [ - 9678, + 9797, [ { "AllocSegment": { @@ -24744,7 +24960,7 @@ ] ], [ - 9692, + 9811, [ { "AllocSegment": { @@ -24757,7 +24973,7 @@ ] ], [ - 9707, + 9826, [ { "AllocSegment": { @@ -24770,7 +24986,7 @@ ] ], [ - 9722, + 9841, [ { "TestLessThanOrEqual": { @@ -24792,7 +25008,7 @@ ] ], [ - 9736, + 9855, [ { "AllocSegment": { @@ -24805,7 +25021,7 @@ ] ], [ - 9756, + 9875, [ { "AllocSegment": { @@ -24818,7 +25034,7 @@ ] ], [ - 9770, + 9889, [ { "TestLessThanOrEqual": { @@ -24840,7 +25056,7 @@ ] ], [ - 9800, + 9919, [ { "AllocSegment": { @@ -24853,7 +25069,7 @@ ] ], [ - 9819, + 9938, [ { "TestLessThan": { @@ -24875,7 +25091,7 @@ ] ], [ - 9823, + 9942, [ { "LinearSplit": { @@ -24904,7 +25120,7 @@ ] ], [ - 9834, + 9953, [ { "LinearSplit": { @@ -24933,7 +25149,7 @@ ] ], [ - 9860, + 9979, [ { "SystemCall": { @@ -24948,7 +25164,7 @@ ] ], [ - 9875, + 9994, [ { "SystemCall": { @@ -24969,7 +25185,7 @@ ] ], [ - 9883, + 10002, [ { "TestLessThan": { @@ -24991,7 +25207,7 @@ ] ], [ - 9887, + 10006, [ { "LinearSplit": { @@ -25020,7 +25236,7 @@ ] ], [ - 9898, + 10017, [ { "LinearSplit": { @@ -25049,7 +25265,7 @@ ] ], [ - 9928, + 10047, [ { "SystemCall": { @@ -25070,7 +25286,7 @@ ] ], [ - 9944, + 10063, [ { "SystemCall": { @@ -25091,7 +25307,7 @@ ] ], [ - 10052, + 10171, [ { "TestLessThan": { @@ -25113,7 +25329,7 @@ ] ], [ - 10054, + 10173, [ { "DivMod": { @@ -25139,7 +25355,7 @@ ] ], [ - 10099, + 10218, [ { "TestLessThan": { @@ -25161,7 +25377,7 @@ ] ], [ - 10101, + 10220, [ { "DivMod": { @@ -25187,7 +25403,7 @@ ] ], [ - 10210, + 10329, [ { "TestLessThan": { @@ -25209,7 +25425,7 @@ ] ], [ - 10214, + 10333, [ { "LinearSplit": { @@ -25238,7 +25454,7 @@ ] ], [ - 10225, + 10344, [ { "LinearSplit": { @@ -25267,7 +25483,7 @@ ] ], [ - 10251, + 10370, [ { "SystemCall": { @@ -25282,7 +25498,7 @@ ] ], [ - 10266, + 10385, [ { "SystemCall": { @@ -25303,7 +25519,7 @@ ] ], [ - 10273, + 10392, [ { "TestLessThan": { @@ -25325,7 +25541,7 @@ ] ], [ - 10275, + 10394, [ { "DivMod": { @@ -25351,7 +25567,7 @@ ] ], [ - 10296, + 10415, [ { "TestLessThan": { @@ -25373,7 +25589,7 @@ ] ], [ - 10298, + 10417, [ { "DivMod": { @@ -25399,7 +25615,7 @@ ] ], [ - 10328, + 10447, [ { "TestLessThan": { @@ -25421,7 +25637,7 @@ ] ], [ - 10332, + 10451, [ { "LinearSplit": { @@ -25450,7 +25666,7 @@ ] ], [ - 10343, + 10462, [ { "LinearSplit": { @@ -25479,7 +25695,7 @@ ] ], [ - 10374, + 10493, [ { "SystemCall": { @@ -25494,7 +25710,7 @@ ] ], [ - 10389, + 10508, [ { "SystemCall": { @@ -25515,7 +25731,7 @@ ] ], [ - 10433, + 10552, [ { "AllocSegment": { @@ -25528,7 +25744,7 @@ ] ], [ - 10452, + 10571, [ { "AllocSegment": { @@ -25541,7 +25757,7 @@ ] ], [ - 10534, + 10653, [ { "RandomEcPoint": { @@ -25569,7 +25785,7 @@ ] ], [ - 10598, + 10717, [ { "RandomEcPoint": { @@ -25597,7 +25813,7 @@ ] ], [ - 10668, + 10787, [ { "AllocSegment": { @@ -25610,7 +25826,7 @@ ] ], [ - 10694, + 10813, [ { "SystemCall": { @@ -25625,7 +25841,7 @@ ] ], [ - 10711, + 10830, [ { "SystemCall": { @@ -25646,7 +25862,7 @@ ] ], [ - 10753, + 10872, [ { "AllocSegment": { @@ -25659,7 +25875,7 @@ ] ], [ - 10770, + 10889, [ { "AllocSegment": { @@ -25672,7 +25888,7 @@ ] ], [ - 10789, + 10908, [ { "SystemCall": { @@ -25687,7 +25903,7 @@ ] ], [ - 10799, + 10918, [ { "TestLessThan": { @@ -25709,7 +25925,7 @@ ] ], [ - 10803, + 10922, [ { "LinearSplit": { @@ -25738,7 +25954,7 @@ ] ], [ - 10814, + 10933, [ { "LinearSplit": { @@ -25767,7 +25983,7 @@ ] ], [ - 10858, + 10977, [ { "SystemCall": { @@ -25788,7 +26004,7 @@ ] ], [ - 10873, + 10992, [ { "SystemCall": { @@ -25809,7 +26025,7 @@ ] ], [ - 10883, + 11002, [ { "TestLessThan": { @@ -25834,7 +26050,7 @@ ] ], [ - 10898, + 11017, [ { "TestLessThan": { @@ -25859,7 +26075,7 @@ ] ], [ - 10914, + 11033, [ { "TestLessThan": { @@ -25881,7 +26097,7 @@ ] ], [ - 10918, + 11037, [ { "LinearSplit": { @@ -25910,7 +26126,7 @@ ] ], [ - 10929, + 11048, [ { "LinearSplit": { @@ -25939,7 +26155,7 @@ ] ], [ - 10958, + 11077, [ { "SystemCall": { @@ -25954,7 +26170,7 @@ ] ], [ - 10974, + 11093, [ { "SystemCall": { @@ -25975,7 +26191,7 @@ ] ], [ - 11016, + 11135, [ { "AllocSegment": { @@ -25988,7 +26204,7 @@ ] ], [ - 11034, + 11153, [ { "AllocSegment": { @@ -26001,7 +26217,7 @@ ] ], [ - 11136, + 11255, [ { "AllocSegment": { @@ -26014,7 +26230,7 @@ ] ], [ - 11211, + 11330, [ { "EvalCircuit": { @@ -26047,7 +26263,7 @@ ] ], [ - 11268, + 11387, [ { "AllocSegment": { @@ -26060,7 +26276,7 @@ ] ], [ - 11324, + 11443, [ { "AllocSegment": { @@ -26073,7 +26289,7 @@ ] ], [ - 11417, + 11536, [ { "AllocSegment": { @@ -26086,7 +26302,7 @@ ] ], [ - 11438, + 11557, [ { "AllocSegment": { @@ -26099,7 +26315,7 @@ ] ], [ - 11509, + 11628, [ { "AllocSegment": { @@ -26112,7 +26328,7 @@ ] ], [ - 11537, + 11656, [ { "AllocSegment": { @@ -26125,7 +26341,7 @@ ] ], [ - 11575, + 11694, [ { "TestLessThan": { @@ -26153,7 +26369,7 @@ ] ], [ - 11579, + 11698, [ { "LinearSplit": { @@ -26182,7 +26398,7 @@ ] ], [ - 11601, + 11720, [ { "TestLessThanOrEqual": { @@ -26207,7 +26423,7 @@ ] ], [ - 11615, + 11734, [ { "TestLessThan": { @@ -26229,7 +26445,7 @@ ] ], [ - 11625, + 11744, [ { "TestLessThanOrEqual": { @@ -26254,7 +26470,7 @@ ] ], [ - 11648, + 11767, [ { "AllocSegment": { @@ -26267,7 +26483,7 @@ ] ], [ - 11669, + 11788, [ { "AllocSegment": { @@ -26280,7 +26496,7 @@ ] ], [ - 11690, + 11809, [ { "AllocSegment": { @@ -26293,7 +26509,7 @@ ] ], [ - 11738, + 11857, [ { "TestLessThanOrEqual": { @@ -26315,7 +26531,7 @@ ] ], [ - 11798, + 11917, [ { "AllocSegment": { @@ -26328,7 +26544,7 @@ ] ], [ - 11818, + 11937, [ { "TestLessThanOrEqual": { @@ -26350,7 +26566,7 @@ ] ], [ - 11897, + 12016, [ { "AllocSegment": { @@ -26363,7 +26579,7 @@ ] ], [ - 11927, + 12046, [ { "AllocSegment": { @@ -26376,7 +26592,7 @@ ] ], [ - 11947, + 12066, [ { "TestLessThanOrEqual": { @@ -26398,7 +26614,7 @@ ] ], [ - 12048, + 12167, [ { "AllocSegment": { @@ -26411,7 +26627,7 @@ ] ], [ - 12078, + 12197, [ { "AllocSegment": { @@ -26424,7 +26640,7 @@ ] ], [ - 12098, + 12217, [ { "TestLessThanOrEqual": { @@ -26446,7 +26662,7 @@ ] ], [ - 12169, + 12288, [ { "AllocSegment": { @@ -26459,7 +26675,7 @@ ] ], [ - 12190, + 12309, [ { "DivMod": { @@ -26488,7 +26704,7 @@ ] ], [ - 12248, + 12367, [ { "AllocSegment": { @@ -26501,7 +26717,7 @@ ] ], [ - 12301, + 12420, [ { "AllocSegment": { @@ -26514,7 +26730,7 @@ ] ], [ - 12314, + 12433, [ { "DivMod": { @@ -26543,7 +26759,7 @@ ] ], [ - 12322, + 12441, [ { "TestLessThan": { @@ -26574,7 +26790,7 @@ ] ], [ - 12339, + 12458, [ { "AllocSegment": { @@ -26587,7 +26803,7 @@ ] ], [ - 12363, + 12482, [ { "TestLessThan": { @@ -26609,7 +26825,7 @@ ] ], [ - 12387, + 12506, [ { "TestLessThan": { @@ -26631,7 +26847,7 @@ ] ], [ - 12396, + 12515, [ { "TestLessThan": { @@ -26653,7 +26869,7 @@ ] ], [ - 12413, + 12532, [ { "AllocSegment": { @@ -26666,7 +26882,7 @@ ] ], [ - 12427, + 12546, [ { "AllocSegment": { @@ -26679,7 +26895,7 @@ ] ], [ - 12443, + 12562, [ { "TestLessThan": { @@ -26710,7 +26926,7 @@ ] ], [ - 12465, + 12584, [ { "AllocSegment": { @@ -26723,7 +26939,7 @@ ] ], [ - 12479, + 12598, [ { "AllocSegment": { @@ -26736,7 +26952,7 @@ ] ], [ - 12536, + 12655, [ { "DivMod": { @@ -26765,7 +26981,7 @@ ] ], [ - 12545, + 12664, [ { "TestLessThan": { @@ -26787,7 +27003,7 @@ ] ], [ - 12555, + 12674, [ { "TestLessThan": { @@ -26818,7 +27034,7 @@ ] ], [ - 12577, + 12696, [ { "AllocSegment": { @@ -26831,7 +27047,7 @@ ] ], [ - 12592, + 12711, [ { "AllocSegment": { @@ -26844,7 +27060,7 @@ ] ], [ - 12617, + 12736, [ { "TestLessThan": { @@ -26875,7 +27091,7 @@ ] ], [ - 12631, + 12750, [ { "DivMod": { @@ -26904,7 +27120,7 @@ ] ], [ - 12648, + 12767, [ { "TestLessThan": { @@ -26926,7 +27142,7 @@ ] ], [ - 12660, + 12779, [ { "TestLessThan": { @@ -26948,7 +27164,7 @@ ] ], [ - 12670, + 12789, [ { "TestLessThan": { @@ -26979,7 +27195,7 @@ ] ], [ - 12693, + 12812, [ { "AllocSegment": { @@ -26992,7 +27208,7 @@ ] ], [ - 12708, + 12827, [ { "AllocSegment": { @@ -27005,7 +27221,7 @@ ] ], [ - 12723, + 12842, [ { "AllocSegment": { @@ -27018,7 +27234,7 @@ ] ], [ - 12738, + 12857, [ { "AllocSegment": { @@ -27031,7 +27247,7 @@ ] ], [ - 12751, + 12870, [ { "TestLessThanOrEqual": { @@ -27053,7 +27269,7 @@ ] ], [ - 12761, + 12880, [ { "TestLessThanOrEqualAddress": { @@ -27084,7 +27300,7 @@ ] ], [ - 12798, + 12917, [ { "SystemCall": { @@ -27099,7 +27315,7 @@ ] ], [ - 12831, + 12950, [ { "AllocSegment": { @@ -27112,7 +27328,7 @@ ] ], [ - 12865, + 12984, [ { "TestLessThan": { @@ -27134,7 +27350,7 @@ ] ], [ - 12887, + 13006, [ { "TestLessThan": { @@ -27156,7 +27372,7 @@ ] ], [ - 12924, + 13043, [ { "TestLessThan": { @@ -27178,7 +27394,7 @@ ] ], [ - 12946, + 13065, [ { "TestLessThan": { @@ -27200,7 +27416,7 @@ ] ], [ - 13022, + 13141, [ { "AllocSegment": { @@ -27213,7 +27429,7 @@ ] ], [ - 13087, + 13206, [ { "TestLessThan": { @@ -27235,7 +27451,7 @@ ] ], [ - 13111, + 13230, [ { "TestLessThan": { @@ -27257,7 +27473,7 @@ ] ], [ - 13152, + 13271, [ { "TestLessThan": { @@ -27279,7 +27495,7 @@ ] ], [ - 13178, + 13297, [ { "TestLessThan": { @@ -27301,7 +27517,7 @@ ] ], [ - 13222, + 13341, [ { "U256InvModN": { @@ -27358,7 +27574,7 @@ ] ], [ - 13240, + 13359, [ { "WideMul128": { @@ -27555,7 +27771,7 @@ ] ], [ - 13293, + 13412, [ { "WideMul128": { @@ -27608,7 +27824,7 @@ ] ], [ - 13297, + 13416, [ { "TestLessThan": { @@ -27630,7 +27846,7 @@ ] ], [ - 13311, + 13430, [ { "TestLessThan": { @@ -27652,7 +27868,7 @@ ] ], [ - 13324, + 13443, [ { "DivMod": { @@ -27678,7 +27894,7 @@ ] ], [ - 13334, + 13453, [ { "DivMod": { @@ -27704,7 +27920,7 @@ ] ], [ - 13345, + 13464, [ { "DivMod": { @@ -27730,7 +27946,7 @@ ] ], [ - 13354, + 13473, [ { "DivMod": { @@ -27756,7 +27972,7 @@ ] ], [ - 13364, + 13483, [ { "DivMod": { @@ -27782,7 +27998,7 @@ ] ], [ - 13375, + 13494, [ { "DivMod": { @@ -27808,7 +28024,7 @@ ] ], [ - 13384, + 13503, [ { "DivMod": { @@ -27834,7 +28050,7 @@ ] ], [ - 13394, + 13513, [ { "DivMod": { @@ -27860,7 +28076,7 @@ ] ], [ - 13405, + 13524, [ { "DivMod": { @@ -27886,7 +28102,7 @@ ] ], [ - 13414, + 13533, [ { "DivMod": { @@ -27912,7 +28128,7 @@ ] ], [ - 13424, + 13543, [ { "DivMod": { @@ -27938,7 +28154,7 @@ ] ], [ - 13435, + 13554, [ { "DivMod": { @@ -27964,7 +28180,7 @@ ] ], [ - 13444, + 13563, [ { "DivMod": { @@ -27990,7 +28206,7 @@ ] ], [ - 13454, + 13573, [ { "DivMod": { @@ -28016,7 +28232,7 @@ ] ], [ - 13465, + 13584, [ { "DivMod": { @@ -28042,7 +28258,7 @@ ] ], [ - 13474, + 13593, [ { "DivMod": { @@ -28068,7 +28284,7 @@ ] ], [ - 13484, + 13603, [ { "DivMod": { @@ -28094,7 +28310,7 @@ ] ], [ - 13495, + 13614, [ { "DivMod": { @@ -28120,7 +28336,7 @@ ] ], [ - 13504, + 13623, [ { "DivMod": { @@ -28146,7 +28362,7 @@ ] ], [ - 13514, + 13633, [ { "DivMod": { @@ -28172,7 +28388,7 @@ ] ], [ - 13525, + 13644, [ { "DivMod": { @@ -28198,7 +28414,7 @@ ] ], [ - 13534, + 13653, [ { "DivMod": { @@ -28224,7 +28440,7 @@ ] ], [ - 13544, + 13663, [ { "DivMod": { @@ -28250,7 +28466,7 @@ ] ], [ - 13555, + 13674, [ { "DivMod": { @@ -28276,7 +28492,7 @@ ] ], [ - 13603, + 13722, [ { "SystemCall": { @@ -28291,7 +28507,7 @@ ] ], [ - 13620, + 13739, [ { "SystemCall": { @@ -28306,7 +28522,7 @@ ] ], [ - 13632, + 13751, [ { "SystemCall": { @@ -28327,7 +28543,7 @@ ] ], [ - 13643, + 13762, [ { "SystemCall": { @@ -28348,7 +28564,7 @@ ] ], [ - 13653, + 13772, [ { "SystemCall": { @@ -28369,7 +28585,7 @@ ] ], [ - 13738, + 13857, [ { "AllocSegment": { @@ -28382,7 +28598,7 @@ ] ], [ - 13767, + 13886, [ { "DivMod": { @@ -28408,7 +28624,7 @@ ] ], [ - 13777, + 13896, [ { "DivMod": { @@ -28434,7 +28650,7 @@ ] ], [ - 13788, + 13907, [ { "DivMod": { @@ -28460,7 +28676,7 @@ ] ], [ - 13797, + 13916, [ { "DivMod": { @@ -28486,7 +28702,7 @@ ] ], [ - 13807, + 13926, [ { "DivMod": { @@ -28512,7 +28728,7 @@ ] ], [ - 13818, + 13937, [ { "DivMod": { @@ -28538,7 +28754,7 @@ ] ], [ - 13827, + 13946, [ { "AllocSegment": { @@ -28551,7 +28767,7 @@ ] ], [ - 13896, + 14015, [ { "TestLessThan": { @@ -28582,7 +28798,7 @@ ] ], [ - 13911, + 14030, [ { "TestLessThan": { @@ -28604,7 +28820,7 @@ ] ], [ - 13930, + 14049, [ { "TestLessThan": { @@ -28626,7 +28842,7 @@ ] ], [ - 13949, + 14068, [ { "TestLessThan": { @@ -28648,7 +28864,7 @@ ] ], [ - 13959, + 14078, [ { "TestLessThan": { @@ -28670,7 +28886,7 @@ ] ], [ - 13961, + 14080, [ { "DivMod": { @@ -28696,7 +28912,7 @@ ] ], [ - 13998, + 14117, [ { "TestLessThan": { @@ -28718,7 +28934,7 @@ ] ], [ - 14017, + 14136, [ { "AllocSegment": { @@ -28731,7 +28947,7 @@ ] ], [ - 14028, + 14147, [ { "DivMod": { @@ -28760,7 +28976,7 @@ ] ], [ - 14034, + 14153, [ { "TestLessThan": { @@ -28782,7 +28998,7 @@ ] ], [ - 14048, + 14167, [ { "TestLessThan": { @@ -28804,7 +29020,7 @@ ] ], [ - 14062, + 14181, [ { "TestLessThan": { @@ -28826,7 +29042,7 @@ ] ], [ - 14073, + 14192, [ { "TestLessThan": { @@ -28848,7 +29064,7 @@ ] ], [ - 14102, + 14221, [ { "AllocSegment": { @@ -28861,7 +29077,7 @@ ] ], [ - 14127, + 14246, [ { "TestLessThan": { @@ -28883,7 +29099,7 @@ ] ], [ - 14131, + 14250, [ { "LinearSplit": { @@ -28912,7 +29128,7 @@ ] ], [ - 14141, + 14260, [ { "LinearSplit": { @@ -28941,7 +29157,7 @@ ] ], [ - 14161, + 14280, [ { "AllocSegment": { @@ -28954,7 +29170,7 @@ ] ], [ - 14182, + 14301, [ { "AllocSegment": { @@ -28967,7 +29183,7 @@ ] ], [ - 14203, + 14322, [ { "AllocSegment": { @@ -28980,7 +29196,7 @@ ] ], [ - 14223, + 14342, [ { "TestLessThan": { @@ -29002,7 +29218,7 @@ ] ], [ - 14225, + 14344, [ { "DivMod": { @@ -29028,7 +29244,7 @@ ] ], [ - 14269, + 14388, [ { "AllocSegment": { @@ -29041,7 +29257,7 @@ ] ], [ - 14280, + 14399, [ { "DivMod": { @@ -29070,7 +29286,7 @@ ] ], [ - 14286, + 14405, [ { "TestLessThan": { @@ -29092,7 +29308,7 @@ ] ], [ - 14300, + 14419, [ { "TestLessThan": { @@ -29114,7 +29330,7 @@ ] ], [ - 14318, + 14437, [ { "TestLessThan": { @@ -29136,7 +29352,7 @@ ] ], [ - 14331, + 14450, [ { "TestLessThan": { @@ -29158,7 +29374,7 @@ ] ], [ - 14342, + 14461, [ { "TestLessThan": { @@ -29180,7 +29396,7 @@ ] ], [ - 14371, + 14490, [ { "AllocSegment": { @@ -29193,7 +29409,7 @@ ] ], [ - 14396, + 14515, [ { "TestLessThan": { @@ -29215,7 +29431,7 @@ ] ], [ - 14400, + 14519, [ { "LinearSplit": { @@ -29244,7 +29460,7 @@ ] ], [ - 14410, + 14529, [ { "LinearSplit": { @@ -29273,7 +29489,7 @@ ] ], [ - 14430, + 14549, [ { "AllocSegment": { @@ -29286,7 +29502,7 @@ ] ], [ - 14451, + 14570, [ { "AllocSegment": { @@ -29299,7 +29515,7 @@ ] ], [ - 14472, + 14591, [ { "AllocSegment": { @@ -29312,7 +29528,7 @@ ] ], [ - 14501, + 14620, [ { "TestLessThan": { @@ -29334,7 +29550,7 @@ ] ], [ - 14503, + 14622, [ { "DivMod": { @@ -29360,7 +29576,7 @@ ] ], [ - 14540, + 14659, [ { "TestLessThan": { @@ -29382,7 +29598,7 @@ ] ], [ - 14551, + 14670, [ { "TestLessThan": { @@ -29404,7 +29620,7 @@ ] ], [ - 14562, + 14681, [ { "TestLessThan": { @@ -29426,7 +29642,7 @@ ] ], [ - 14591, + 14710, [ { "AllocSegment": { @@ -29439,7 +29655,7 @@ ] ], [ - 14616, + 14735, [ { "TestLessThan": { @@ -29461,7 +29677,7 @@ ] ], [ - 14620, + 14739, [ { "LinearSplit": { @@ -29490,7 +29706,7 @@ ] ], [ - 14630, + 14749, [ { "LinearSplit": { @@ -29519,7 +29735,7 @@ ] ], [ - 14656, + 14775, [ { "AllocSegment": { @@ -29532,7 +29748,7 @@ ] ], [ - 14677, + 14796, [ { "AllocSegment": { @@ -29545,7 +29761,7 @@ ] ], [ - 14699, + 14818, [ { "AllocSegment": { @@ -29558,7 +29774,7 @@ ] ], [ - 14721, + 14840, [ { "TestLessThan": { @@ -29580,7 +29796,7 @@ ] ], [ - 14732, + 14851, [ { "TestLessThan": { @@ -29602,7 +29818,7 @@ ] ], [ - 14761, + 14880, [ { "AllocSegment": { @@ -29615,7 +29831,7 @@ ] ], [ - 14786, + 14905, [ { "TestLessThan": { @@ -29637,7 +29853,7 @@ ] ], [ - 14790, + 14909, [ { "LinearSplit": { @@ -29666,7 +29882,7 @@ ] ], [ - 14800, + 14919, [ { "LinearSplit": { @@ -29695,7 +29911,7 @@ ] ], [ - 14823, + 14942, [ { "AllocSegment": { @@ -29708,7 +29924,7 @@ ] ], [ - 14868, + 14987, [ { "TestLessThan": { @@ -29730,7 +29946,7 @@ ] ], [ - 14879, + 14998, [ { "TestLessThan": { @@ -29752,7 +29968,7 @@ ] ], [ - 14908, + 15027, [ { "AllocSegment": { @@ -29765,7 +29981,7 @@ ] ], [ - 14931, + 15050, [ { "TestLessThan": { @@ -29796,7 +30012,7 @@ ] ], [ - 14955, + 15074, [ { "AllocSegment": { @@ -29809,7 +30025,7 @@ ] ], [ - 14999, + 15118, [ { "AllocSegment": { @@ -29822,7 +30038,7 @@ ] ], [ - 15026, + 15145, [ { "TestLessThanOrEqual": { @@ -29844,7 +30060,7 @@ ] ], [ - 15078, + 15197, [ { "AllocSegment": { @@ -29857,7 +30073,7 @@ ] ], [ - 15135, + 15254, [ { "TestLessThan": { @@ -29885,7 +30101,7 @@ ] ], [ - 15139, + 15258, [ { "LinearSplit": { @@ -29914,7 +30130,7 @@ ] ], [ - 15181, + 15300, [ { "TestLessThan": { @@ -29936,7 +30152,7 @@ ] ], [ - 15183, + 15302, [ { "DivMod": { @@ -29962,7 +30178,7 @@ ] ], [ - 15270, + 15389, [ { "DivMod": { @@ -29991,7 +30207,7 @@ ] ], [ - 15276, + 15395, [ { "TestLessThan": { @@ -30013,7 +30229,7 @@ ] ], [ - 15287, + 15406, [ { "TestLessThan": { @@ -30035,7 +30251,7 @@ ] ], [ - 15297, + 15416, [ { "TestLessThan": { @@ -30057,7 +30273,7 @@ ] ], [ - 15311, + 15430, [ { "DivMod": { @@ -30086,7 +30302,7 @@ ] ], [ - 15317, + 15436, [ { "TestLessThan": { @@ -30108,7 +30324,7 @@ ] ], [ - 15331, + 15450, [ { "TestLessThan": { @@ -30130,7 +30346,7 @@ ] ], [ - 15341, + 15460, [ { "TestLessThan": { @@ -30152,7 +30368,7 @@ ] ], [ - 15363, + 15482, [ { "AllocSegment": { @@ -30165,7 +30381,7 @@ ] ], [ - 15377, + 15496, [ { "AllocSegment": { @@ -30178,7 +30394,7 @@ ] ], [ - 15395, + 15514, [ { "AllocSegment": { @@ -30191,7 +30407,7 @@ ] ], [ - 15409, + 15528, [ { "AllocSegment": { @@ -30204,7 +30420,7 @@ ] ], [ - 15425, + 15544, [ { "TestLessThanOrEqual": { @@ -30226,7 +30442,7 @@ ] ], [ - 15452, + 15571, [ { "TestLessThan": { @@ -30248,7 +30464,7 @@ ] ], [ - 15469, + 15588, [ { "AllocSegment": { @@ -30261,7 +30477,7 @@ ] ], [ - 15494, + 15613, [ { "AllocSegment": { @@ -30274,7 +30490,7 @@ ] ], [ - 15739, + 15858, [ { "SystemCall": { @@ -30289,7 +30505,7 @@ ] ], [ - 15765, + 15884, [ { "SystemCall": { @@ -30304,7 +30520,7 @@ ] ], [ - 15779, + 15898, [ { "U256InvModN": { @@ -30361,7 +30577,7 @@ ] ], [ - 15797, + 15916, [ { "WideMul128": { @@ -30558,7 +30774,7 @@ ] ], [ - 15850, + 15969, [ { "WideMul128": { @@ -30611,7 +30827,7 @@ ] ], [ - 15854, + 15973, [ { "TestLessThan": { @@ -30633,7 +30849,7 @@ ] ], [ - 15868, + 15987, [ { "TestLessThan": { @@ -30655,7 +30871,7 @@ ] ], [ - 15881, + 16000, [ { "DivMod": { @@ -30681,7 +30897,7 @@ ] ], [ - 15891, + 16010, [ { "DivMod": { @@ -30707,7 +30923,7 @@ ] ], [ - 15902, + 16021, [ { "DivMod": { @@ -30733,7 +30949,7 @@ ] ], [ - 15911, + 16030, [ { "DivMod": { @@ -30759,7 +30975,7 @@ ] ], [ - 15921, + 16040, [ { "DivMod": { @@ -30785,7 +31001,7 @@ ] ], [ - 15932, + 16051, [ { "DivMod": { @@ -30811,7 +31027,7 @@ ] ], [ - 15941, + 16060, [ { "DivMod": { @@ -30837,7 +31053,7 @@ ] ], [ - 15951, + 16070, [ { "DivMod": { @@ -30863,7 +31079,7 @@ ] ], [ - 15962, + 16081, [ { "DivMod": { @@ -30889,7 +31105,7 @@ ] ], [ - 15971, + 16090, [ { "DivMod": { @@ -30915,7 +31131,7 @@ ] ], [ - 15981, + 16100, [ { "DivMod": { @@ -30941,7 +31157,7 @@ ] ], [ - 15992, + 16111, [ { "DivMod": { @@ -30967,7 +31183,7 @@ ] ], [ - 16001, + 16120, [ { "DivMod": { @@ -30993,7 +31209,7 @@ ] ], [ - 16011, + 16130, [ { "DivMod": { @@ -31019,7 +31235,7 @@ ] ], [ - 16022, + 16141, [ { "DivMod": { @@ -31045,7 +31261,7 @@ ] ], [ - 16031, + 16150, [ { "DivMod": { @@ -31071,7 +31287,7 @@ ] ], [ - 16041, + 16160, [ { "DivMod": { @@ -31097,7 +31313,7 @@ ] ], [ - 16052, + 16171, [ { "DivMod": { @@ -31123,7 +31339,7 @@ ] ], [ - 16061, + 16180, [ { "DivMod": { @@ -31149,7 +31365,7 @@ ] ], [ - 16071, + 16190, [ { "DivMod": { @@ -31175,7 +31391,7 @@ ] ], [ - 16082, + 16201, [ { "DivMod": { @@ -31201,7 +31417,7 @@ ] ], [ - 16091, + 16210, [ { "DivMod": { @@ -31227,7 +31443,7 @@ ] ], [ - 16101, + 16220, [ { "DivMod": { @@ -31253,7 +31469,7 @@ ] ], [ - 16112, + 16231, [ { "DivMod": { @@ -31279,7 +31495,7 @@ ] ], [ - 16136, + 16255, [ { "TestLessThan": { @@ -31301,7 +31517,7 @@ ] ], [ - 16161, + 16280, [ { "TestLessThan": { @@ -31323,7 +31539,7 @@ ] ], [ - 16181, + 16300, [ { "TestLessThan": { @@ -31345,7 +31561,7 @@ ] ], [ - 16226, + 16345, [ { "SystemCall": { @@ -31360,7 +31576,7 @@ ] ], [ - 16238, + 16357, [ { "SystemCall": { @@ -31381,7 +31597,7 @@ ] ], [ - 16249, + 16368, [ { "SystemCall": { @@ -31402,7 +31618,7 @@ ] ], [ - 16295, + 16414, [ { "AllocSegment": { @@ -31415,7 +31631,7 @@ ] ], [ - 16311, + 16430, [ { "DivMod": { @@ -31441,7 +31657,7 @@ ] ], [ - 16321, + 16440, [ { "DivMod": { @@ -31467,7 +31683,7 @@ ] ], [ - 16332, + 16451, [ { "DivMod": { @@ -31493,7 +31709,7 @@ ] ], [ - 16341, + 16460, [ { "DivMod": { @@ -31519,7 +31735,7 @@ ] ], [ - 16351, + 16470, [ { "DivMod": { @@ -31545,7 +31761,7 @@ ] ], [ - 16362, + 16481, [ { "DivMod": { @@ -31571,7 +31787,7 @@ ] ], [ - 16371, + 16490, [ { "AllocSegment": { @@ -31584,7 +31800,7 @@ ] ], [ - 16388, + 16507, [ { "AllocSegment": { @@ -31597,7 +31813,7 @@ ] ], [ - 16445, + 16564, [ { "SystemCall": { @@ -31612,7 +31828,7 @@ ] ], [ - 16452, + 16571, [ { "AllocConstantSize": { @@ -31628,7 +31844,7 @@ ] ], [ - 16456, + 16575, [ { "AllocSegment": { @@ -31641,7 +31857,7 @@ ] ], [ - 16491, + 16610, [ { "SystemCall": { @@ -31656,7 +31872,7 @@ ] ], [ - 16564, + 16683, [ { "DivMod": { @@ -31685,7 +31901,7 @@ ] ], [ - 16570, + 16689, [ { "TestLessThan": { @@ -31707,7 +31923,7 @@ ] ], [ - 16637, + 16756, [ { "WideMul128": { @@ -31736,7 +31952,7 @@ ] ], [ - 16639, + 16758, [ { "DivMod": { @@ -31762,7 +31978,7 @@ ] ], [ - 16649, + 16768, [ { "DivMod": { @@ -31788,7 +32004,7 @@ ] ], [ - 16660, + 16779, [ { "DivMod": { @@ -31814,7 +32030,7 @@ ] ], [ - 16669, + 16788, [ { "WideMul128": { @@ -31843,7 +32059,7 @@ ] ], [ - 16671, + 16790, [ { "DivMod": { @@ -31869,7 +32085,7 @@ ] ], [ - 16681, + 16800, [ { "DivMod": { @@ -31895,7 +32111,7 @@ ] ], [ - 16692, + 16811, [ { "DivMod": { @@ -31921,7 +32137,7 @@ ] ], [ - 16702, + 16821, [ { "TestLessThan": { @@ -31943,7 +32159,7 @@ ] ], [ - 16724, + 16843, [ { "WideMul128": { @@ -31972,7 +32188,7 @@ ] ], [ - 16726, + 16845, [ { "DivMod": { @@ -31998,7 +32214,7 @@ ] ], [ - 16736, + 16855, [ { "DivMod": { @@ -32024,7 +32240,7 @@ ] ], [ - 16747, + 16866, [ { "DivMod": { @@ -32050,7 +32266,7 @@ ] ], [ - 16757, + 16876, [ { "TestLessThan": { @@ -32072,7 +32288,7 @@ ] ], [ - 16780, + 16899, [ { "TestLessThan": { @@ -32094,7 +32310,7 @@ ] ], [ - 16802, + 16921, [ { "WideMul128": { @@ -32123,7 +32339,7 @@ ] ], [ - 16804, + 16923, [ { "DivMod": { @@ -32149,7 +32365,7 @@ ] ], [ - 16814, + 16933, [ { "DivMod": { @@ -32175,7 +32391,7 @@ ] ], [ - 16825, + 16944, [ { "DivMod": { @@ -32201,7 +32417,7 @@ ] ], [ - 16835, + 16954, [ { "TestLessThan": { @@ -32223,7 +32439,7 @@ ] ], [ - 16854, + 16973, [ { "TestLessThan": { @@ -32245,7 +32461,7 @@ ] ], [ - 16877, + 16996, [ { "TestLessThan": { @@ -32267,7 +32483,7 @@ ] ], [ - 16896, + 17015, [ { "TestLessThan": { @@ -32289,7 +32505,7 @@ ] ], [ - 16915, + 17034, [ { "TestLessThan": { @@ -32311,7 +32527,7 @@ ] ], [ - 16938, + 17057, [ { "TestLessThan": { @@ -32333,7 +32549,7 @@ ] ], [ - 16960, + 17079, [ { "Uint512DivModByUint256": { @@ -32402,7 +32618,7 @@ ] ], [ - 16978, + 17097, [ { "WideMul128": { @@ -32527,7 +32743,7 @@ ] ], [ - 17007, + 17126, [ { "TestLessThan": { @@ -32552,7 +32768,7 @@ ] ], [ - 17019, + 17138, [ { "TestLessThan": { @@ -32577,7 +32793,7 @@ ] ], [ - 17034, + 17153, [ { "DivMod": { @@ -32603,7 +32819,7 @@ ] ], [ - 17044, + 17163, [ { "DivMod": { @@ -32629,7 +32845,7 @@ ] ], [ - 17055, + 17174, [ { "DivMod": { @@ -32655,7 +32871,7 @@ ] ], [ - 17064, + 17183, [ { "DivMod": { @@ -32681,7 +32897,7 @@ ] ], [ - 17074, + 17193, [ { "DivMod": { @@ -32707,7 +32923,7 @@ ] ], [ - 17085, + 17204, [ { "DivMod": { @@ -32733,7 +32949,7 @@ ] ], [ - 17094, + 17213, [ { "DivMod": { @@ -32759,7 +32975,7 @@ ] ], [ - 17104, + 17223, [ { "DivMod": { @@ -32785,7 +33001,7 @@ ] ], [ - 17115, + 17234, [ { "DivMod": { @@ -32811,7 +33027,7 @@ ] ], [ - 17124, + 17243, [ { "DivMod": { @@ -32837,7 +33053,7 @@ ] ], [ - 17134, + 17253, [ { "DivMod": { @@ -32863,7 +33079,7 @@ ] ], [ - 17145, + 17264, [ { "DivMod": { @@ -32889,7 +33105,7 @@ ] ], [ - 17154, + 17273, [ { "DivMod": { @@ -32915,7 +33131,7 @@ ] ], [ - 17164, + 17283, [ { "DivMod": { @@ -32941,7 +33157,7 @@ ] ], [ - 17175, + 17294, [ { "DivMod": { @@ -32967,7 +33183,7 @@ ] ], [ - 17189, + 17308, [ { "TestLessThan": { @@ -32989,7 +33205,7 @@ ] ], [ - 17307, + 17426, [ { "AllocSegment": { @@ -33002,7 +33218,7 @@ ] ], [ - 17330, + 17449, [ { "TestLessThanOrEqual": { @@ -33027,7 +33243,7 @@ ] ], [ - 17405, + 17524, [ { "AllocSegment": { @@ -33040,7 +33256,7 @@ ] ], [ - 17460, + 17579, [ { "DivMod": { @@ -33069,7 +33285,7 @@ ] ], [ - 17466, + 17585, [ { "TestLessThan": { @@ -33091,7 +33307,7 @@ ] ], [ - 17479, + 17598, [ { "TestLessThan": { @@ -33113,7 +33329,7 @@ ] ], [ - 17489, + 17608, [ { "TestLessThan": { @@ -33135,7 +33351,7 @@ ] ], [ - 17537, + 17656, [ { "DivMod": { @@ -33164,7 +33380,7 @@ ] ], [ - 17543, + 17662, [ { "TestLessThan": { @@ -33186,7 +33402,7 @@ ] ], [ - 17559, + 17678, [ { "TestLessThan": { @@ -33208,7 +33424,7 @@ ] ], [ - 17569, + 17688, [ { "TestLessThan": { @@ -33230,7 +33446,7 @@ ] ], [ - 17592, + 17711, [ { "AllocSegment": { @@ -33243,7 +33459,7 @@ ] ], [ - 17606, + 17725, [ { "AllocSegment": { @@ -33256,7 +33472,7 @@ ] ], [ - 17625, + 17744, [ { "AllocSegment": { @@ -33269,7 +33485,7 @@ ] ], [ - 17639, + 17758, [ { "AllocSegment": { @@ -33394,6 +33610,14 @@ "range_check" ] }, + { + "selector": "0x21d859f3ad4181efd93ae2e562b5728d4bad1a7e9d3b1416b8643d17c008847", + "offset": 5511, + "builtins": [ + "range_check", + "range_check96" + ] + }, { "selector": "0x23039bef544cff56442d9f61ae9b13cf9e36fcce009102c5b678aac93f37b36", "offset": 1048, @@ -33501,14 +33725,14 @@ "L1_HANDLER": [ { "selector": "0x205500a208d0d49d79197fea83cc3f5fde99ac2e1909ae0a5d9f394c0c52ed0", - "offset": 5672, + "offset": 5791, "builtins": [ "range_check" ] }, { "selector": "0x39edbbb129ad752107a94d40c3873cae369a46fd2fc578d075679aa67e85d12", - "offset": 5511, + "offset": 5630, "builtins": [ "range_check" ] @@ -33517,7 +33741,7 @@ "CONSTRUCTOR": [ { "selector": "0x28ffe4ff0f226a9107253e17a904099aa4f63a02a5621de0576e5aa71bc5194", - "offset": 5922, + "offset": 6041, "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..f87d29723c 100644 --- a/crates/blockifier/feature_contracts/cairo1/test_contract.cairo +++ b/crates/blockifier/feature_contracts/cairo1/test_contract.cairo @@ -553,4 +553,17 @@ 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(); + + + (in1,).new_inputs().next([3, 0, 0, 0]); + } } diff --git a/crates/blockifier/src/execution/entry_point_execution.rs b/crates/blockifier/src/execution/entry_point_execution.rs index 8f726cd0f6..dbf1636c72 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,7 +283,8 @@ 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( entry_point.pc(), @@ -290,6 +294,48 @@ pub fn run_entry_point( hint_processor, ); + let opt_rc96_idx = + entry_point.builtins.iter().rposition(|name| name.as_str() == "range_check96_builtin"); + + // Fill holes in the rc96 segment. + if let Some((rc96_offset, rc96_builtin_runner)) = + runner.vm.get_builtin_runners().iter().find_map(|builtin| { + let Some(rc96_offset) = opt_rc96_idx else { return None }; + + if let BuiltinRunner::RangeCheck96(rc96_builtin_runner) = builtin { + Some((rc96_offset, rc96_builtin_runner)) + } else { + None + } + }) + { + // 'EntryPointReturnValues' is returned after the implicits and its size is 5. + let implicits_offset = 5; + + let rc_96_stop_ptr = (runner.vm.get_ap() - (implicits_offset + rc96_offset)) + .map_err(|err| CairoRunError::VirtualMachine(VirtualMachineError::Math(err)))?; + + let rc96_base: isize = rc96_builtin_runner + .base() + .try_into() + .expect("Builtin segment index must fit in isize."); + + let Relocatable { segment_index, offset: stop_offset } = + runner.vm.get_relocatable(rc_96_stop_ptr).map_err(CairoRunError::MemoryError)?; + assert_eq!(segment_index, rc96_base); + + for offset in 0..stop_offset { + // If the value is already set, ignore the error. + let _ = runner + .vm + .insert_value(Relocatable { segment_index: rc96_base, offset }, Felt::zero()); + } + } + runner.vm.segments.compute_effective_sizes(); + + verify_secure_runner(runner, false, Some(program_segment_size)) + .map_err(CairoRunError::VirtualMachine)?; + Ok(result?) } diff --git a/crates/blockifier/src/transaction/account_transactions_test.rs b/crates/blockifier/src/transaction/account_transactions_test.rs index 79c74ef721..2774fa872a 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], + 20 + ); + assert_eq!(tx_execution_info.transaction_receipt.gas, GasVector::from_l1_gas(6567)); +} + #[rstest] fn test_fee_enforcement( block_context: BlockContext,