diff --git a/.cargo/.config.toml b/.cargo/.config.toml deleted file mode 100644 index f4ab6e5..0000000 --- a/.cargo/.config.toml +++ /dev/null @@ -1,2 +0,0 @@ -[env] -RUST_LOG = "info" \ No newline at end of file diff --git a/.cargo/config.toml b/.cargo/config.toml new file mode 100644 index 0000000..ada47ce --- /dev/null +++ b/.cargo/config.toml @@ -0,0 +1,3 @@ +[env] +RUST_LOG = "info" +RUST_MIN_STACK = "16777216" \ No newline at end of file diff --git a/README.md b/README.md index 1e8a8fb..1b73dfe 100644 --- a/README.md +++ b/README.md @@ -26,9 +26,9 @@ cargo test - [x] dex - [x] recursive - [x] recursive_with_poseidon - - [ ] small - - [ ] starknet - - [ ] starknet_with_keccak + - [x] small + - [x] starknet + - [x] starknet_with_keccak - **WASM Support:** - [ ] Wasm bindings for integration with web applications diff --git a/crates/air/src/layout/dex/autogenerated.rs b/crates/air/src/layout/dex/autogenerated.rs index 9029872..e1633ec 100644 --- a/crates/air/src/layout/dex/autogenerated.rs +++ b/crates/air/src/layout/dex/autogenerated.rs @@ -362,11 +362,11 @@ pub fn eval_composition_polynomial_inner( // Constraint: cpu/decode/opcode_range_check/bit. let mut value = (cpu_decode_opcode_range_check_bit_0 * cpu_decode_opcode_range_check_bit_0 - cpu_decode_opcode_range_check_bit_0) - * domain4.floor_div(&NonZeroFelt::from_felt_unchecked(domain0)); + * domain4.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); total_sum += constraint_coefficients[0] * value; // Constraint: cpu/decode/opcode_range_check/zero. - value = (column0_row0).floor_div(&NonZeroFelt::from_felt_unchecked(domain4)); + value = (column0_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain4)); total_sum += constraint_coefficients[1] * value; // Constraint: cpu/decode/opcode_range_check_input. @@ -376,30 +376,30 @@ pub fn eval_composition_polynomial_inner( + column19_row8) * global_values.offset_size + column19_row0)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[2] * value; // Constraint: cpu/decode/flag_op1_base_op0_bit. value = (cpu_decode_flag_op1_base_op0_0 * cpu_decode_flag_op1_base_op0_0 - cpu_decode_flag_op1_base_op0_0) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[3] * value; // Constraint: cpu/decode/flag_res_op1_bit. value = (cpu_decode_flag_res_op1_0 * cpu_decode_flag_res_op1_0 - cpu_decode_flag_res_op1_0) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[4] * value; // Constraint: cpu/decode/flag_pc_update_regular_bit. value = (cpu_decode_flag_pc_update_regular_0 * cpu_decode_flag_pc_update_regular_0 - cpu_decode_flag_pc_update_regular_0) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[5] * value; // Constraint: cpu/decode/fp_update_regular_bit. value = (cpu_decode_fp_update_regular_0 * cpu_decode_fp_update_regular_0 - cpu_decode_fp_update_regular_0) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[6] * value; // Constraint: cpu/operands/mem_dst_addr. @@ -407,7 +407,7 @@ pub fn eval_composition_polynomial_inner( - (cpu_decode_opcode_range_check_bit_0 * column19_row9 + (Felt::ONE - cpu_decode_opcode_range_check_bit_0) * column19_row1 + column19_row0)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[7] * value; // Constraint: cpu/operands/mem0_addr. @@ -415,7 +415,7 @@ pub fn eval_composition_polynomial_inner( - (cpu_decode_opcode_range_check_bit_1 * column19_row9 + (Felt::ONE - cpu_decode_opcode_range_check_bit_1) * column19_row1 + column19_row8)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[8] * value; // Constraint: cpu/operands/mem1_addr. @@ -425,12 +425,12 @@ pub fn eval_composition_polynomial_inner( + cpu_decode_opcode_range_check_bit_3 * column19_row9 + cpu_decode_flag_op1_base_op0_0 * column17_row5 + column19_row4)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[9] * value; // Constraint: cpu/operands/ops_mul. value = (column19_row5 - column17_row5 * column17_row13) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[10] * value; // Constraint: cpu/operands/res. @@ -438,17 +438,17 @@ pub fn eval_composition_polynomial_inner( - (cpu_decode_opcode_range_check_bit_5 * (column17_row5 + column17_row13) + cpu_decode_opcode_range_check_bit_6 * column19_row5 + cpu_decode_flag_res_op1_0 * column17_row13)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[11] * value; // Constraint: cpu/update_registers/update_pc/tmp0. value = (column19_row3 - cpu_decode_opcode_range_check_bit_9 * column17_row9) - * domain19.floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + * domain19.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[12] * value; // Constraint: cpu/update_registers/update_pc/tmp1. value = (column19_row11 - column19_row3 * column19_row13) - * domain19.floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + * domain19.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[13] * value; // Constraint: cpu/update_registers/update_pc/pc_cond_negative. @@ -457,12 +457,12 @@ pub fn eval_composition_polynomial_inner( - (cpu_decode_flag_pc_update_regular_0 * npc_reg_0 + cpu_decode_opcode_range_check_bit_7 * column19_row13 + cpu_decode_opcode_range_check_bit_8 * (column17_row0 + column19_row13))) - * domain19.floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + * domain19.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[14] * value; // Constraint: cpu/update_registers/update_pc/pc_cond_positive. value = ((column19_row11 - cpu_decode_opcode_range_check_bit_9) * (column17_row16 - npc_reg_0)) - * domain19.floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + * domain19.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[15] * value; // Constraint: cpu/update_registers/update_ap/ap_update. @@ -471,7 +471,7 @@ pub fn eval_composition_polynomial_inner( + cpu_decode_opcode_range_check_bit_10 * column19_row13 + cpu_decode_opcode_range_check_bit_11 + cpu_decode_opcode_range_check_bit_12 * Felt::TWO)) - * domain19.floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + * domain19.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[16] * value; // Constraint: cpu/update_registers/update_fp/fp_update. @@ -479,49 +479,49 @@ pub fn eval_composition_polynomial_inner( - (cpu_decode_fp_update_regular_0 * column19_row9 + cpu_decode_opcode_range_check_bit_13 * column17_row9 + cpu_decode_opcode_range_check_bit_12 * (column19_row1 + 2))) - * domain19.floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + * domain19.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[17] * value; // Constraint: cpu/opcodes/call/push_fp. value = (cpu_decode_opcode_range_check_bit_12 * (column17_row9 - column19_row9)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[18] * value; // Constraint: cpu/opcodes/call/push_pc. value = (cpu_decode_opcode_range_check_bit_12 * (column17_row5 - (column17_row0 + cpu_decode_opcode_range_check_bit_2 + 1))) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[19] * value; // Constraint: cpu/opcodes/call/off0. value = (cpu_decode_opcode_range_check_bit_12 * (column19_row0 - global_values.half_offset_size)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[20] * value; // Constraint: cpu/opcodes/call/off1. value = (cpu_decode_opcode_range_check_bit_12 * (column19_row8 - (global_values.half_offset_size + 1))) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[21] * value; // Constraint: cpu/opcodes/call/flags. value = (cpu_decode_opcode_range_check_bit_12 * (cpu_decode_opcode_range_check_bit_12 + cpu_decode_opcode_range_check_bit_12 + 1 + 1 - (cpu_decode_opcode_range_check_bit_0 + cpu_decode_opcode_range_check_bit_1 + 4))) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[22] * value; // Constraint: cpu/opcodes/ret/off0. value = (cpu_decode_opcode_range_check_bit_13 * (column19_row0 + 2 - global_values.half_offset_size)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[23] * value; // Constraint: cpu/opcodes/ret/off2. value = (cpu_decode_opcode_range_check_bit_13 * (column19_row4 + 1 - global_values.half_offset_size)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[24] * value; // Constraint: cpu/opcodes/ret/flags. @@ -531,42 +531,42 @@ pub fn eval_composition_polynomial_inner( + cpu_decode_opcode_range_check_bit_3 + cpu_decode_flag_res_op1_0 - 4)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[25] * value; // Constraint: cpu/opcodes/assert_eq/assert_eq. value = (cpu_decode_opcode_range_check_bit_14 * (column17_row9 - column19_row13)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[26] * value; // Constraint: initial_ap. value = (column19_row1 - global_values.initial_ap) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain20)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain20)); total_sum += constraint_coefficients[27] * value; // Constraint: initial_fp. value = (column19_row9 - global_values.initial_ap) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain20)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain20)); total_sum += constraint_coefficients[28] * value; // Constraint: initial_pc. value = (column17_row0 - global_values.initial_pc) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain20)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain20)); total_sum += constraint_coefficients[29] * value; // Constraint: final_ap. value = (column19_row1 - global_values.final_ap) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain19)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain19)); total_sum += constraint_coefficients[30] * value; // Constraint: final_fp. value = (column19_row9 - global_values.initial_ap) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain19)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain19)); total_sum += constraint_coefficients[31] * value; // Constraint: final_pc. value = (column17_row0 - global_values.final_pc) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain19)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain19)); total_sum += constraint_coefficients[32] * value; // Constraint: memory/multi_column_perm/perm/init0. @@ -577,7 +577,7 @@ pub fn eval_composition_polynomial_inner( + column17_row0 + global_values.memory_multi_column_perm_hash_interaction_elm0 * column17_row1 - global_values.memory_multi_column_perm_perm_interaction_elm) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain20)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain20)); total_sum += constraint_coefficients[33] * value; // Constraint: memory/multi_column_perm/perm/step0. @@ -589,34 +589,34 @@ pub fn eval_composition_polynomial_inner( - (column17_row2 + global_values.memory_multi_column_perm_hash_interaction_elm0 * column17_row3)) * column21_inter1_row0) - * domain21.floor_div(&NonZeroFelt::from_felt_unchecked(domain1)); + * domain21.field_div(&NonZeroFelt::from_felt_unchecked(domain1)); total_sum += constraint_coefficients[34] * value; // Constraint: memory/multi_column_perm/perm/last. value = (column21_inter1_row0 - global_values.memory_multi_column_perm_perm_public_memory_prod) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain21)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain21)); total_sum += constraint_coefficients[35] * value; // Constraint: memory/diff_is_bit. value = (memory_address_diff_0 * memory_address_diff_0 - memory_address_diff_0) - * domain21.floor_div(&NonZeroFelt::from_felt_unchecked(domain1)); + * domain21.field_div(&NonZeroFelt::from_felt_unchecked(domain1)); total_sum += constraint_coefficients[36] * value; // Constraint: memory/is_func. value = ((memory_address_diff_0 - 1) * (column18_row1 - column18_row3)) - * domain21.floor_div(&NonZeroFelt::from_felt_unchecked(domain1)); + * domain21.field_div(&NonZeroFelt::from_felt_unchecked(domain1)); total_sum += constraint_coefficients[37] * value; // Constraint: memory/initial_addr. - value = (column18_row0 - 1).floor_div(&NonZeroFelt::from_felt_unchecked(domain20)); + value = (column18_row0 - 1).field_div(&NonZeroFelt::from_felt_unchecked(domain20)); total_sum += constraint_coefficients[38] * value; // Constraint: public_memory_addr_zero. - value = (column17_row2).floor_div(&NonZeroFelt::from_felt_unchecked(domain3)); + value = (column17_row2).field_div(&NonZeroFelt::from_felt_unchecked(domain3)); total_sum += constraint_coefficients[39] * value; // Constraint: public_memory_value_zero. - value = (column17_row3).floor_div(&NonZeroFelt::from_felt_unchecked(domain3)); + value = (column17_row3).field_div(&NonZeroFelt::from_felt_unchecked(domain3)); total_sum += constraint_coefficients[40] * value; // Constraint: range_check16/perm/init0. @@ -624,7 +624,7 @@ pub fn eval_composition_polynomial_inner( * column21_inter1_row1 + column19_row0 - global_values.range_check16_perm_interaction_elm) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain20)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain20)); total_sum += constraint_coefficients[41] * value; // Constraint: range_check16/perm/step0. @@ -632,32 +632,32 @@ pub fn eval_composition_polynomial_inner( * column21_inter1_row5 - (global_values.range_check16_perm_interaction_elm - column19_row4) * column21_inter1_row1) - * domain22.floor_div(&NonZeroFelt::from_felt_unchecked(domain2)); + * domain22.field_div(&NonZeroFelt::from_felt_unchecked(domain2)); total_sum += constraint_coefficients[42] * value; // Constraint: range_check16/perm/last. value = (column21_inter1_row1 - global_values.range_check16_perm_public_memory_prod) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain22)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain22)); total_sum += constraint_coefficients[43] * value; // Constraint: range_check16/diff_is_bit. value = (range_check16_diff_0 * range_check16_diff_0 - range_check16_diff_0) - * domain22.floor_div(&NonZeroFelt::from_felt_unchecked(domain2)); + * domain22.field_div(&NonZeroFelt::from_felt_unchecked(domain2)); total_sum += constraint_coefficients[44] * value; // Constraint: range_check16/minimum. value = (column19_row2 - global_values.range_check_min) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain20)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain20)); total_sum += constraint_coefficients[45] * value; // Constraint: range_check16/maximum. value = (column19_row2 - global_values.range_check_max) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain22)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain22)); total_sum += constraint_coefficients[46] * value; // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/last_one_is_zero. value = (column14_row255 * (column3_row0 - (column3_row1 + column3_row1))) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[47] * value; // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/zeroes_between_ones0. @@ -665,98 +665,98 @@ pub fn eval_composition_polynomial_inner( * (column3_row1 - Felt::from_hex_unchecked("0x800000000000000000000000000000000000000000000000") * column3_row192)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[48] * value; // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/cumulative_bit192. value = (column14_row255 - column13_row255 * (column3_row192 - (column3_row193 + column3_row193))) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[49] * value; // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/zeroes_between_ones192. value = (column13_row255 * (column3_row193 - Felt::from(8) * column3_row196)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[50] * value; // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/cumulative_bit196. value = (column13_row255 - (column3_row251 - (column3_row252 + column3_row252)) * (column3_row196 - (column3_row197 + column3_row197))) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[51] * value; // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/zeroes_between_ones196. value = ((column3_row251 - (column3_row252 + column3_row252)) * (column3_row197 - Felt::from_hex_unchecked("0x40000000000000") * column3_row251)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[52] * value; // Constraint: pedersen/hash0/ec_subset_sum/booleanity_test. value = (pedersen_hash0_ec_subset_sum_bit_0 * (pedersen_hash0_ec_subset_sum_bit_0 - 1)) - * domain9.floor_div(&NonZeroFelt::from_felt_unchecked(domain0)); + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); total_sum += constraint_coefficients[53] * value; // Constraint: pedersen/hash0/ec_subset_sum/bit_extraction_end. - value = (column3_row0).floor_div(&NonZeroFelt::from_felt_unchecked(domain10)); + value = (column3_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain10)); total_sum += constraint_coefficients[54] * value; // Constraint: pedersen/hash0/ec_subset_sum/zeros_tail. - value = (column3_row0).floor_div(&NonZeroFelt::from_felt_unchecked(domain9)); + value = (column3_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain9)); total_sum += constraint_coefficients[55] * value; // Constraint: pedersen/hash0/ec_subset_sum/add_points/slope. value = (pedersen_hash0_ec_subset_sum_bit_0 * (column2_row0 - global_values.pedersen_points_y) - column13_row0 * (column1_row0 - global_values.pedersen_points_x)) - * domain9.floor_div(&NonZeroFelt::from_felt_unchecked(domain0)); + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); total_sum += constraint_coefficients[56] * value; // Constraint: pedersen/hash0/ec_subset_sum/add_points/x. value = (column13_row0 * column13_row0 - pedersen_hash0_ec_subset_sum_bit_0 * (column1_row0 + global_values.pedersen_points_x + column1_row1)) - * domain9.floor_div(&NonZeroFelt::from_felt_unchecked(domain0)); + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); total_sum += constraint_coefficients[57] * value; // Constraint: pedersen/hash0/ec_subset_sum/add_points/y. value = (pedersen_hash0_ec_subset_sum_bit_0 * (column2_row0 + column2_row1) - column13_row0 * (column1_row0 - column1_row1)) - * domain9.floor_div(&NonZeroFelt::from_felt_unchecked(domain0)); + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); total_sum += constraint_coefficients[58] * value; // Constraint: pedersen/hash0/ec_subset_sum/copy_point/x. value = (pedersen_hash0_ec_subset_sum_bit_neg_0 * (column1_row1 - column1_row0)) - * domain9.floor_div(&NonZeroFelt::from_felt_unchecked(domain0)); + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); total_sum += constraint_coefficients[59] * value; // Constraint: pedersen/hash0/ec_subset_sum/copy_point/y. value = (pedersen_hash0_ec_subset_sum_bit_neg_0 * (column2_row1 - column2_row0)) - * domain9.floor_div(&NonZeroFelt::from_felt_unchecked(domain0)); + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); total_sum += constraint_coefficients[60] * value; // Constraint: pedersen/hash0/copy_point/x. value = (column1_row256 - column1_row255) - * domain11.floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + * domain11.field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[61] * value; // Constraint: pedersen/hash0/copy_point/y. value = (column2_row256 - column2_row255) - * domain11.floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + * domain11.field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[62] * value; // Constraint: pedersen/hash0/init/x. value = (column1_row0 - global_values.pedersen_shift_point.x) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain12)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain12)); total_sum += constraint_coefficients[63] * value; // Constraint: pedersen/hash0/init/y. value = (column2_row0 - global_values.pedersen_shift_point.y) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain12)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain12)); total_sum += constraint_coefficients[64] * value; // Constraint: pedersen/hash1/ec_subset_sum/bit_unpacking/last_one_is_zero. value = (column16_row255 * (column6_row0 - (column6_row1 + column6_row1))) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[65] * value; // Constraint: pedersen/hash1/ec_subset_sum/bit_unpacking/zeroes_between_ones0. @@ -764,98 +764,98 @@ pub fn eval_composition_polynomial_inner( * (column6_row1 - Felt::from_hex_unchecked("0x800000000000000000000000000000000000000000000000") * column6_row192)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[66] * value; // Constraint: pedersen/hash1/ec_subset_sum/bit_unpacking/cumulative_bit192. value = (column16_row255 - column15_row255 * (column6_row192 - (column6_row193 + column6_row193))) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[67] * value; // Constraint: pedersen/hash1/ec_subset_sum/bit_unpacking/zeroes_between_ones192. value = (column15_row255 * (column6_row193 - Felt::from(8) * column6_row196)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[68] * value; // Constraint: pedersen/hash1/ec_subset_sum/bit_unpacking/cumulative_bit196. value = (column15_row255 - (column6_row251 - (column6_row252 + column6_row252)) * (column6_row196 - (column6_row197 + column6_row197))) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[69] * value; // Constraint: pedersen/hash1/ec_subset_sum/bit_unpacking/zeroes_between_ones196. value = ((column6_row251 - (column6_row252 + column6_row252)) * (column6_row197 - Felt::from_hex_unchecked("0x40000000000000") * column6_row251)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[70] * value; // Constraint: pedersen/hash1/ec_subset_sum/booleanity_test. value = (pedersen_hash1_ec_subset_sum_bit_0 * (pedersen_hash1_ec_subset_sum_bit_0 - 1)) - * domain9.floor_div(&NonZeroFelt::from_felt_unchecked(domain0)); + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); total_sum += constraint_coefficients[71] * value; // Constraint: pedersen/hash1/ec_subset_sum/bit_extraction_end. - value = (column6_row0).floor_div(&NonZeroFelt::from_felt_unchecked(domain10)); + value = (column6_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain10)); total_sum += constraint_coefficients[72] * value; // Constraint: pedersen/hash1/ec_subset_sum/zeros_tail. - value = (column6_row0).floor_div(&NonZeroFelt::from_felt_unchecked(domain9)); + value = (column6_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain9)); total_sum += constraint_coefficients[73] * value; // Constraint: pedersen/hash1/ec_subset_sum/add_points/slope. value = (pedersen_hash1_ec_subset_sum_bit_0 * (column5_row0 - global_values.pedersen_points_y) - column14_row0 * (column4_row0 - global_values.pedersen_points_x)) - * domain9.floor_div(&NonZeroFelt::from_felt_unchecked(domain0)); + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); total_sum += constraint_coefficients[74] * value; // Constraint: pedersen/hash1/ec_subset_sum/add_points/x. value = (column14_row0 * column14_row0 - pedersen_hash1_ec_subset_sum_bit_0 * (column4_row0 + global_values.pedersen_points_x + column4_row1)) - * domain9.floor_div(&NonZeroFelt::from_felt_unchecked(domain0)); + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); total_sum += constraint_coefficients[75] * value; // Constraint: pedersen/hash1/ec_subset_sum/add_points/y. value = (pedersen_hash1_ec_subset_sum_bit_0 * (column5_row0 + column5_row1) - column14_row0 * (column4_row0 - column4_row1)) - * domain9.floor_div(&NonZeroFelt::from_felt_unchecked(domain0)); + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); total_sum += constraint_coefficients[76] * value; // Constraint: pedersen/hash1/ec_subset_sum/copy_point/x. value = (pedersen_hash1_ec_subset_sum_bit_neg_0 * (column4_row1 - column4_row0)) - * domain9.floor_div(&NonZeroFelt::from_felt_unchecked(domain0)); + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); total_sum += constraint_coefficients[77] * value; // Constraint: pedersen/hash1/ec_subset_sum/copy_point/y. value = (pedersen_hash1_ec_subset_sum_bit_neg_0 * (column5_row1 - column5_row0)) - * domain9.floor_div(&NonZeroFelt::from_felt_unchecked(domain0)); + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); total_sum += constraint_coefficients[78] * value; // Constraint: pedersen/hash1/copy_point/x. value = (column4_row256 - column4_row255) - * domain11.floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + * domain11.field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[79] * value; // Constraint: pedersen/hash1/copy_point/y. value = (column5_row256 - column5_row255) - * domain11.floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + * domain11.field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[80] * value; // Constraint: pedersen/hash1/init/x. value = (column4_row0 - global_values.pedersen_shift_point.x) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain12)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain12)); total_sum += constraint_coefficients[81] * value; // Constraint: pedersen/hash1/init/y. value = (column5_row0 - global_values.pedersen_shift_point.y) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain12)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain12)); total_sum += constraint_coefficients[82] * value; // Constraint: pedersen/hash2/ec_subset_sum/bit_unpacking/last_one_is_zero. value = (column20_row145 * (column9_row0 - (column9_row1 + column9_row1))) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[83] * value; // Constraint: pedersen/hash2/ec_subset_sum/bit_unpacking/zeroes_between_ones0. @@ -863,98 +863,98 @@ pub fn eval_composition_polynomial_inner( * (column9_row1 - Felt::from_hex_unchecked("0x800000000000000000000000000000000000000000000000") * column9_row192)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[84] * value; // Constraint: pedersen/hash2/ec_subset_sum/bit_unpacking/cumulative_bit192. value = (column20_row145 - column20_row17 * (column9_row192 - (column9_row193 + column9_row193))) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[85] * value; // Constraint: pedersen/hash2/ec_subset_sum/bit_unpacking/zeroes_between_ones192. value = (column20_row17 * (column9_row193 - Felt::from(8) * column9_row196)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[86] * value; // Constraint: pedersen/hash2/ec_subset_sum/bit_unpacking/cumulative_bit196. value = (column20_row17 - (column9_row251 - (column9_row252 + column9_row252)) * (column9_row196 - (column9_row197 + column9_row197))) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[87] * value; // Constraint: pedersen/hash2/ec_subset_sum/bit_unpacking/zeroes_between_ones196. value = ((column9_row251 - (column9_row252 + column9_row252)) * (column9_row197 - Felt::from_hex_unchecked("0x40000000000000") * column9_row251)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[88] * value; // Constraint: pedersen/hash2/ec_subset_sum/booleanity_test. value = (pedersen_hash2_ec_subset_sum_bit_0 * (pedersen_hash2_ec_subset_sum_bit_0 - 1)) - * domain9.floor_div(&NonZeroFelt::from_felt_unchecked(domain0)); + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); total_sum += constraint_coefficients[89] * value; // Constraint: pedersen/hash2/ec_subset_sum/bit_extraction_end. - value = (column9_row0).floor_div(&NonZeroFelt::from_felt_unchecked(domain10)); + value = (column9_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain10)); total_sum += constraint_coefficients[90] * value; // Constraint: pedersen/hash2/ec_subset_sum/zeros_tail. - value = (column9_row0).floor_div(&NonZeroFelt::from_felt_unchecked(domain9)); + value = (column9_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain9)); total_sum += constraint_coefficients[91] * value; // Constraint: pedersen/hash2/ec_subset_sum/add_points/slope. value = (pedersen_hash2_ec_subset_sum_bit_0 * (column8_row0 - global_values.pedersen_points_y) - column15_row0 * (column7_row0 - global_values.pedersen_points_x)) - * domain9.floor_div(&NonZeroFelt::from_felt_unchecked(domain0)); + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); total_sum += constraint_coefficients[92] * value; // Constraint: pedersen/hash2/ec_subset_sum/add_points/x. value = (column15_row0 * column15_row0 - pedersen_hash2_ec_subset_sum_bit_0 * (column7_row0 + global_values.pedersen_points_x + column7_row1)) - * domain9.floor_div(&NonZeroFelt::from_felt_unchecked(domain0)); + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); total_sum += constraint_coefficients[93] * value; // Constraint: pedersen/hash2/ec_subset_sum/add_points/y. value = (pedersen_hash2_ec_subset_sum_bit_0 * (column8_row0 + column8_row1) - column15_row0 * (column7_row0 - column7_row1)) - * domain9.floor_div(&NonZeroFelt::from_felt_unchecked(domain0)); + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); total_sum += constraint_coefficients[94] * value; // Constraint: pedersen/hash2/ec_subset_sum/copy_point/x. value = (pedersen_hash2_ec_subset_sum_bit_neg_0 * (column7_row1 - column7_row0)) - * domain9.floor_div(&NonZeroFelt::from_felt_unchecked(domain0)); + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); total_sum += constraint_coefficients[95] * value; // Constraint: pedersen/hash2/ec_subset_sum/copy_point/y. value = (pedersen_hash2_ec_subset_sum_bit_neg_0 * (column8_row1 - column8_row0)) - * domain9.floor_div(&NonZeroFelt::from_felt_unchecked(domain0)); + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); total_sum += constraint_coefficients[96] * value; // Constraint: pedersen/hash2/copy_point/x. value = (column7_row256 - column7_row255) - * domain11.floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + * domain11.field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[97] * value; // Constraint: pedersen/hash2/copy_point/y. value = (column8_row256 - column8_row255) - * domain11.floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + * domain11.field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[98] * value; // Constraint: pedersen/hash2/init/x. value = (column7_row0 - global_values.pedersen_shift_point.x) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain12)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain12)); total_sum += constraint_coefficients[99] * value; // Constraint: pedersen/hash2/init/y. value = (column8_row0 - global_values.pedersen_shift_point.y) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain12)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain12)); total_sum += constraint_coefficients[100] * value; // Constraint: pedersen/hash3/ec_subset_sum/bit_unpacking/last_one_is_zero. value = (column20_row209 * (column12_row0 - (column12_row1 + column12_row1))) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[101] * value; // Constraint: pedersen/hash3/ec_subset_sum/bit_unpacking/zeroes_between_ones0. @@ -962,186 +962,186 @@ pub fn eval_composition_polynomial_inner( * (column12_row1 - Felt::from_hex_unchecked("0x800000000000000000000000000000000000000000000000") * column12_row192)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[102] * value; // Constraint: pedersen/hash3/ec_subset_sum/bit_unpacking/cumulative_bit192. value = (column20_row209 - column20_row81 * (column12_row192 - (column12_row193 + column12_row193))) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[103] * value; // Constraint: pedersen/hash3/ec_subset_sum/bit_unpacking/zeroes_between_ones192. value = (column20_row81 * (column12_row193 - Felt::from(8) * column12_row196)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[104] * value; // Constraint: pedersen/hash3/ec_subset_sum/bit_unpacking/cumulative_bit196. value = (column20_row81 - (column12_row251 - (column12_row252 + column12_row252)) * (column12_row196 - (column12_row197 + column12_row197))) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[105] * value; // Constraint: pedersen/hash3/ec_subset_sum/bit_unpacking/zeroes_between_ones196. value = ((column12_row251 - (column12_row252 + column12_row252)) * (column12_row197 - Felt::from_hex_unchecked("0x40000000000000") * column12_row251)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[106] * value; // Constraint: pedersen/hash3/ec_subset_sum/booleanity_test. value = (pedersen_hash3_ec_subset_sum_bit_0 * (pedersen_hash3_ec_subset_sum_bit_0 - 1)) - * domain9.floor_div(&NonZeroFelt::from_felt_unchecked(domain0)); + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); total_sum += constraint_coefficients[107] * value; // Constraint: pedersen/hash3/ec_subset_sum/bit_extraction_end. - value = (column12_row0).floor_div(&NonZeroFelt::from_felt_unchecked(domain10)); + value = (column12_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain10)); total_sum += constraint_coefficients[108] * value; // Constraint: pedersen/hash3/ec_subset_sum/zeros_tail. - value = (column12_row0).floor_div(&NonZeroFelt::from_felt_unchecked(domain9)); + value = (column12_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain9)); total_sum += constraint_coefficients[109] * value; // Constraint: pedersen/hash3/ec_subset_sum/add_points/slope. value = (pedersen_hash3_ec_subset_sum_bit_0 * (column11_row0 - global_values.pedersen_points_y) - column16_row0 * (column10_row0 - global_values.pedersen_points_x)) - * domain9.floor_div(&NonZeroFelt::from_felt_unchecked(domain0)); + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); total_sum += constraint_coefficients[110] * value; // Constraint: pedersen/hash3/ec_subset_sum/add_points/x. value = (column16_row0 * column16_row0 - pedersen_hash3_ec_subset_sum_bit_0 * (column10_row0 + global_values.pedersen_points_x + column10_row1)) - * domain9.floor_div(&NonZeroFelt::from_felt_unchecked(domain0)); + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); total_sum += constraint_coefficients[111] * value; // Constraint: pedersen/hash3/ec_subset_sum/add_points/y. value = (pedersen_hash3_ec_subset_sum_bit_0 * (column11_row0 + column11_row1) - column16_row0 * (column10_row0 - column10_row1)) - * domain9.floor_div(&NonZeroFelt::from_felt_unchecked(domain0)); + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); total_sum += constraint_coefficients[112] * value; // Constraint: pedersen/hash3/ec_subset_sum/copy_point/x. value = (pedersen_hash3_ec_subset_sum_bit_neg_0 * (column10_row1 - column10_row0)) - * domain9.floor_div(&NonZeroFelt::from_felt_unchecked(domain0)); + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); total_sum += constraint_coefficients[113] * value; // Constraint: pedersen/hash3/ec_subset_sum/copy_point/y. value = (pedersen_hash3_ec_subset_sum_bit_neg_0 * (column11_row1 - column11_row0)) - * domain9.floor_div(&NonZeroFelt::from_felt_unchecked(domain0)); + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); total_sum += constraint_coefficients[114] * value; // Constraint: pedersen/hash3/copy_point/x. value = (column10_row256 - column10_row255) - * domain11.floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + * domain11.field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[115] * value; // Constraint: pedersen/hash3/copy_point/y. value = (column11_row256 - column11_row255) - * domain11.floor_div(&NonZeroFelt::from_felt_unchecked(domain8)); + * domain11.field_div(&NonZeroFelt::from_felt_unchecked(domain8)); total_sum += constraint_coefficients[116] * value; // Constraint: pedersen/hash3/init/x. value = (column10_row0 - global_values.pedersen_shift_point.x) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain12)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain12)); total_sum += constraint_coefficients[117] * value; // Constraint: pedersen/hash3/init/y. value = (column11_row0 - global_values.pedersen_shift_point.y) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain12)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain12)); total_sum += constraint_coefficients[118] * value; // Constraint: pedersen/input0_value0. - value = (column17_row7 - column3_row0).floor_div(&NonZeroFelt::from_felt_unchecked(domain12)); + value = (column17_row7 - column3_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain12)); total_sum += constraint_coefficients[119] * value; // Constraint: pedersen/input0_value1. - value = (column17_row135 - column6_row0).floor_div(&NonZeroFelt::from_felt_unchecked(domain12)); + value = (column17_row135 - column6_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain12)); total_sum += constraint_coefficients[120] * value; // Constraint: pedersen/input0_value2. - value = (column17_row263 - column9_row0).floor_div(&NonZeroFelt::from_felt_unchecked(domain12)); + value = (column17_row263 - column9_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain12)); total_sum += constraint_coefficients[121] * value; // Constraint: pedersen/input0_value3. value = - (column17_row391 - column12_row0).floor_div(&NonZeroFelt::from_felt_unchecked(domain12)); + (column17_row391 - column12_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain12)); total_sum += constraint_coefficients[122] * value; // Constraint: pedersen/input0_addr. value = (column17_row134 - (column17_row38 + 1)) - * domain23.floor_div(&NonZeroFelt::from_felt_unchecked(domain7)); + * domain23.field_div(&NonZeroFelt::from_felt_unchecked(domain7)); total_sum += constraint_coefficients[123] * value; // Constraint: pedersen/init_addr. value = (column17_row6 - global_values.initial_pedersen_addr) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain20)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain20)); total_sum += constraint_coefficients[124] * value; // Constraint: pedersen/input1_value0. value = - (column17_row71 - column3_row256).floor_div(&NonZeroFelt::from_felt_unchecked(domain12)); + (column17_row71 - column3_row256).field_div(&NonZeroFelt::from_felt_unchecked(domain12)); total_sum += constraint_coefficients[125] * value; // Constraint: pedersen/input1_value1. value = - (column17_row199 - column6_row256).floor_div(&NonZeroFelt::from_felt_unchecked(domain12)); + (column17_row199 - column6_row256).field_div(&NonZeroFelt::from_felt_unchecked(domain12)); total_sum += constraint_coefficients[126] * value; // Constraint: pedersen/input1_value2. value = - (column17_row327 - column9_row256).floor_div(&NonZeroFelt::from_felt_unchecked(domain12)); + (column17_row327 - column9_row256).field_div(&NonZeroFelt::from_felt_unchecked(domain12)); total_sum += constraint_coefficients[127] * value; // Constraint: pedersen/input1_value3. value = - (column17_row455 - column12_row256).floor_div(&NonZeroFelt::from_felt_unchecked(domain12)); + (column17_row455 - column12_row256).field_div(&NonZeroFelt::from_felt_unchecked(domain12)); total_sum += constraint_coefficients[128] * value; // Constraint: pedersen/input1_addr. value = (column17_row70 - (column17_row6 + 1)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain7)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain7)); total_sum += constraint_coefficients[129] * value; // Constraint: pedersen/output_value0. value = - (column17_row39 - column1_row511).floor_div(&NonZeroFelt::from_felt_unchecked(domain12)); + (column17_row39 - column1_row511).field_div(&NonZeroFelt::from_felt_unchecked(domain12)); total_sum += constraint_coefficients[130] * value; // Constraint: pedersen/output_value1. value = - (column17_row167 - column4_row511).floor_div(&NonZeroFelt::from_felt_unchecked(domain12)); + (column17_row167 - column4_row511).field_div(&NonZeroFelt::from_felt_unchecked(domain12)); total_sum += constraint_coefficients[131] * value; // Constraint: pedersen/output_value2. value = - (column17_row295 - column7_row511).floor_div(&NonZeroFelt::from_felt_unchecked(domain12)); + (column17_row295 - column7_row511).field_div(&NonZeroFelt::from_felt_unchecked(domain12)); total_sum += constraint_coefficients[132] * value; // Constraint: pedersen/output_value3. value = - (column17_row423 - column10_row511).floor_div(&NonZeroFelt::from_felt_unchecked(domain12)); + (column17_row423 - column10_row511).field_div(&NonZeroFelt::from_felt_unchecked(domain12)); total_sum += constraint_coefficients[133] * value; // Constraint: pedersen/output_addr. value = (column17_row38 - (column17_row70 + 1)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain7)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain7)); total_sum += constraint_coefficients[134] * value; // Constraint: range_check_builtin/value. value = (range_check_builtin_value7_0 - column17_row103) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain7)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain7)); total_sum += constraint_coefficients[135] * value; // Constraint: range_check_builtin/addr_step. value = (column17_row230 - (column17_row102 + 1)) - * domain23.floor_div(&NonZeroFelt::from_felt_unchecked(domain7)); + * domain23.field_div(&NonZeroFelt::from_felt_unchecked(domain7)); total_sum += constraint_coefficients[136] * value; // Constraint: range_check_builtin/init_addr. value = (column17_row102 - global_values.initial_range_check_addr) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain20)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain20)); total_sum += constraint_coefficients[137] * value; // Constraint: ecdsa/signature0/doubling_key/slope. @@ -1150,190 +1150,190 @@ pub fn eval_composition_polynomial_inner( + ecdsa_signature0_doubling_key_x_squared + global_values.ecdsa_sig_config.alpha - (column19_row15 + column19_row15) * column20_row12) - * domain13.floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + * domain13.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[138] * value; // Constraint: ecdsa/signature0/doubling_key/x. value = (column20_row12 * column20_row12 - (column19_row7 + column19_row7 + column19_row23)) - * domain13.floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + * domain13.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[139] * value; // Constraint: ecdsa/signature0/doubling_key/y. value = (column19_row15 + column19_row31 - column20_row12 * (column19_row7 - column19_row23)) - * domain13.floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + * domain13.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[140] * value; // Constraint: ecdsa/signature0/exponentiate_generator/booleanity_test. value = (ecdsa_signature0_exponentiate_generator_bit_0 * (ecdsa_signature0_exponentiate_generator_bit_0 - 1)) - * domain16.floor_div(&NonZeroFelt::from_felt_unchecked(domain6)); + * domain16.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); total_sum += constraint_coefficients[141] * value; // Constraint: ecdsa/signature0/exponentiate_generator/bit_extraction_end. - value = (column20_row14).floor_div(&NonZeroFelt::from_felt_unchecked(domain17)); + value = (column20_row14).field_div(&NonZeroFelt::from_felt_unchecked(domain17)); total_sum += constraint_coefficients[142] * value; // Constraint: ecdsa/signature0/exponentiate_generator/zeros_tail. - value = (column20_row14).floor_div(&NonZeroFelt::from_felt_unchecked(domain6)); + value = (column20_row14).field_div(&NonZeroFelt::from_felt_unchecked(domain6)); total_sum += constraint_coefficients[143] * value; // Constraint: ecdsa/signature0/exponentiate_generator/add_points/slope. value = (ecdsa_signature0_exponentiate_generator_bit_0 * (column20_row22 - global_values.ecdsa_generator_points_y) - column20_row30 * (column20_row6 - global_values.ecdsa_generator_points_x)) - * domain16.floor_div(&NonZeroFelt::from_felt_unchecked(domain6)); + * domain16.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); total_sum += constraint_coefficients[144] * value; // Constraint: ecdsa/signature0/exponentiate_generator/add_points/x. value = (column20_row30 * column20_row30 - ecdsa_signature0_exponentiate_generator_bit_0 * (column20_row6 + global_values.ecdsa_generator_points_x + column20_row38)) - * domain16.floor_div(&NonZeroFelt::from_felt_unchecked(domain6)); + * domain16.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); total_sum += constraint_coefficients[145] * value; // Constraint: ecdsa/signature0/exponentiate_generator/add_points/y. value = (ecdsa_signature0_exponentiate_generator_bit_0 * (column20_row22 + column20_row54) - column20_row30 * (column20_row6 - column20_row38)) - * domain16.floor_div(&NonZeroFelt::from_felt_unchecked(domain6)); + * domain16.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); total_sum += constraint_coefficients[146] * value; // Constraint: ecdsa/signature0/exponentiate_generator/add_points/x_diff_inv. value = (column20_row1 * (column20_row6 - global_values.ecdsa_generator_points_x) - 1) - * domain16.floor_div(&NonZeroFelt::from_felt_unchecked(domain6)); + * domain16.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); total_sum += constraint_coefficients[147] * value; // Constraint: ecdsa/signature0/exponentiate_generator/copy_point/x. value = (ecdsa_signature0_exponentiate_generator_bit_neg_0 * (column20_row38 - column20_row6)) - * domain16.floor_div(&NonZeroFelt::from_felt_unchecked(domain6)); + * domain16.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); total_sum += constraint_coefficients[148] * value; // Constraint: ecdsa/signature0/exponentiate_generator/copy_point/y. value = (ecdsa_signature0_exponentiate_generator_bit_neg_0 * (column20_row54 - column20_row22)) - * domain16.floor_div(&NonZeroFelt::from_felt_unchecked(domain6)); + * domain16.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); total_sum += constraint_coefficients[149] * value; // Constraint: ecdsa/signature0/exponentiate_key/booleanity_test. value = (ecdsa_signature0_exponentiate_key_bit_0 * (ecdsa_signature0_exponentiate_key_bit_0 - 1)) - * domain13.floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + * domain13.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[150] * value; // Constraint: ecdsa/signature0/exponentiate_key/bit_extraction_end. - value = (column20_row4).floor_div(&NonZeroFelt::from_felt_unchecked(domain14)); + value = (column20_row4).field_div(&NonZeroFelt::from_felt_unchecked(domain14)); total_sum += constraint_coefficients[151] * value; // Constraint: ecdsa/signature0/exponentiate_key/zeros_tail. - value = (column20_row4).floor_div(&NonZeroFelt::from_felt_unchecked(domain13)); + value = (column20_row4).field_div(&NonZeroFelt::from_felt_unchecked(domain13)); total_sum += constraint_coefficients[152] * value; // Constraint: ecdsa/signature0/exponentiate_key/add_points/slope. value = (ecdsa_signature0_exponentiate_key_bit_0 * (column20_row8 - column19_row15) - column20_row2 * (column20_row0 - column19_row7)) - * domain13.floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + * domain13.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[153] * value; // Constraint: ecdsa/signature0/exponentiate_key/add_points/x. value = (column20_row2 * column20_row2 - ecdsa_signature0_exponentiate_key_bit_0 * (column20_row0 + column19_row7 + column20_row16)) - * domain13.floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + * domain13.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[154] * value; // Constraint: ecdsa/signature0/exponentiate_key/add_points/y. value = (ecdsa_signature0_exponentiate_key_bit_0 * (column20_row8 + column20_row24) - column20_row2 * (column20_row0 - column20_row16)) - * domain13.floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + * domain13.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[155] * value; // Constraint: ecdsa/signature0/exponentiate_key/add_points/x_diff_inv. value = (column20_row10 * (column20_row0 - column19_row7) - 1) - * domain13.floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + * domain13.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[156] * value; // Constraint: ecdsa/signature0/exponentiate_key/copy_point/x. value = (ecdsa_signature0_exponentiate_key_bit_neg_0 * (column20_row16 - column20_row0)) - * domain13.floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + * domain13.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[157] * value; // Constraint: ecdsa/signature0/exponentiate_key/copy_point/y. value = (ecdsa_signature0_exponentiate_key_bit_neg_0 * (column20_row24 - column20_row8)) - * domain13.floor_div(&NonZeroFelt::from_felt_unchecked(domain5)); + * domain13.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); total_sum += constraint_coefficients[158] * value; // Constraint: ecdsa/signature0/init_gen/x. value = (column20_row6 - global_values.ecdsa_sig_config.shift_point.x) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain18)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain18)); total_sum += constraint_coefficients[159] * value; // Constraint: ecdsa/signature0/init_gen/y. value = (column20_row22 + global_values.ecdsa_sig_config.shift_point.y) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain18)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain18)); total_sum += constraint_coefficients[160] * value; // Constraint: ecdsa/signature0/init_key/x. value = (column20_row0 - global_values.ecdsa_sig_config.shift_point.x) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain15)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain15)); total_sum += constraint_coefficients[161] * value; // Constraint: ecdsa/signature0/init_key/y. value = (column20_row8 - global_values.ecdsa_sig_config.shift_point.y) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain15)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain15)); total_sum += constraint_coefficients[162] * value; // Constraint: ecdsa/signature0/add_results/slope. value = (column20_row8182 - (column20_row4088 + column20_row8190 * (column20_row8166 - column20_row4080))) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain18)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain18)); total_sum += constraint_coefficients[163] * value; // Constraint: ecdsa/signature0/add_results/x. value = (column20_row8190 * column20_row8190 - (column20_row8166 + column20_row4080 + column19_row4103)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain18)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain18)); total_sum += constraint_coefficients[164] * value; // Constraint: ecdsa/signature0/add_results/y. value = (column20_row8182 + column19_row4111 - column20_row8190 * (column20_row8166 - column19_row4103)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain18)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain18)); total_sum += constraint_coefficients[165] * value; // Constraint: ecdsa/signature0/add_results/x_diff_inv. value = (column20_row8161 * (column20_row8166 - column20_row4080) - 1) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain18)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain18)); total_sum += constraint_coefficients[166] * value; // Constraint: ecdsa/signature0/extract_r/slope. value = (column20_row8184 + global_values.ecdsa_sig_config.shift_point.y - column20_row4082 * (column20_row8176 - global_values.ecdsa_sig_config.shift_point.x)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain18)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain18)); total_sum += constraint_coefficients[167] * value; // Constraint: ecdsa/signature0/extract_r/x. value = (column20_row4082 * column20_row4082 - (column20_row8176 + global_values.ecdsa_sig_config.shift_point.x + column20_row4)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain18)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain18)); total_sum += constraint_coefficients[168] * value; // Constraint: ecdsa/signature0/extract_r/x_diff_inv. value = (column20_row8178 * (column20_row8176 - global_values.ecdsa_sig_config.shift_point.x) - 1) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain18)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain18)); total_sum += constraint_coefficients[169] * value; // Constraint: ecdsa/signature0/z_nonzero. value = (column20_row14 * column20_row4090 - 1) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain18)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain18)); total_sum += constraint_coefficients[170] * value; // Constraint: ecdsa/signature0/r_and_w_nonzero. value = (column20_row4 * column20_row4092 - 1) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain15)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain15)); total_sum += constraint_coefficients[171] * value; // Constraint: ecdsa/signature0/q_on_curve/x_squared. value = (column20_row8186 - column19_row7 * column19_row7) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain18)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain18)); total_sum += constraint_coefficients[172] * value; // Constraint: ecdsa/signature0/q_on_curve/on_curve. @@ -1341,31 +1341,31 @@ pub fn eval_composition_polynomial_inner( - (column19_row7 * column20_row8186 + global_values.ecdsa_sig_config.alpha * column19_row7 + global_values.ecdsa_sig_config.beta)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain18)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain18)); total_sum += constraint_coefficients[173] * value; // Constraint: ecdsa/init_addr. value = (column17_row22 - global_values.initial_ecdsa_addr) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain20)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain20)); total_sum += constraint_coefficients[174] * value; // Constraint: ecdsa/message_addr. value = (column17_row4118 - (column17_row22 + 1)) - .floor_div(&NonZeroFelt::from_felt_unchecked(domain18)); + .field_div(&NonZeroFelt::from_felt_unchecked(domain18)); total_sum += constraint_coefficients[175] * value; // Constraint: ecdsa/pubkey_addr. value = (column17_row8214 - (column17_row4118 + 1)) - * domain24.floor_div(&NonZeroFelt::from_felt_unchecked(domain18)); + * domain24.field_div(&NonZeroFelt::from_felt_unchecked(domain18)); total_sum += constraint_coefficients[176] * value; // Constraint: ecdsa/message_value0. value = - (column17_row4119 - column20_row14).floor_div(&NonZeroFelt::from_felt_unchecked(domain18)); + (column17_row4119 - column20_row14).field_div(&NonZeroFelt::from_felt_unchecked(domain18)); total_sum += constraint_coefficients[177] * value; // Constraint: ecdsa/pubkey_value0. - value = (column17_row23 - column19_row7).floor_div(&NonZeroFelt::from_felt_unchecked(domain18)); + value = (column17_row23 - column19_row7).field_div(&NonZeroFelt::from_felt_unchecked(domain18)); total_sum += constraint_coefficients[178] * value; total_sum diff --git a/crates/air/src/layout/dex/mod.rs b/crates/air/src/layout/dex/mod.rs index c769177..2de309f 100644 --- a/crates/air/src/layout/dex/mod.rs +++ b/crates/air/src/layout/dex/mod.rs @@ -330,7 +330,7 @@ impl LayoutTrait for RecursiveLayout { segment: crate::layout::segments::OUTPUT, })? .begin_addr) - .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(0x5))); + .field_div(&NonZeroFelt::from_felt_unchecked(Felt::TWO)); ensure!(ecdsa_uses < ecdsa_copies, PublicInputError::UsesInvalid); Ok(()) } diff --git a/crates/air/src/layout/mod.rs b/crates/air/src/layout/mod.rs index ce7d9b9..96d032c 100644 --- a/crates/air/src/layout/mod.rs +++ b/crates/air/src/layout/mod.rs @@ -5,6 +5,9 @@ use starknet_crypto::Felt; pub mod dex; pub mod recursive; pub mod recursive_with_poseidon; +pub mod small; +pub mod starknet; +pub mod starknet_with_keccak; // StarkCurve pub mod stark_curve { diff --git a/crates/air/src/layout/recursive/autogenerated.rs b/crates/air/src/layout/recursive/autogenerated.rs index cb34e51..32c1155 100644 --- a/crates/air/src/layout/recursive/autogenerated.rs +++ b/crates/air/src/layout/recursive/autogenerated.rs @@ -1,5 +1,5 @@ use super::global_values::GlobalValues; -use crate::layout::recursive::{CONSTRAINT_DEGREE, NUM_COLUMNS_FIRST, NUM_COLUMNS_SECOND}; +use super::{CONSTRAINT_DEGREE, NUM_COLUMNS_FIRST, NUM_COLUMNS_SECOND}; use starknet_core::types::NonZeroFelt; use starknet_crypto::Felt; diff --git a/crates/air/src/layout/recursive_with_poseidon/autogenerated.rs b/crates/air/src/layout/recursive_with_poseidon/autogenerated.rs index 097e651..6391b63 100644 --- a/crates/air/src/layout/recursive_with_poseidon/autogenerated.rs +++ b/crates/air/src/layout/recursive_with_poseidon/autogenerated.rs @@ -1,5 +1,5 @@ use super::global_values::GlobalValues; -use crate::layout::recursive::{CONSTRAINT_DEGREE, NUM_COLUMNS_FIRST, NUM_COLUMNS_SECOND}; +use super::{CONSTRAINT_DEGREE, NUM_COLUMNS_FIRST, NUM_COLUMNS_SECOND}; use starknet_core::types::NonZeroFelt; use starknet_crypto::Felt; diff --git a/crates/air/src/layout/small/autogenerated.rs b/crates/air/src/layout/small/autogenerated.rs new file mode 100644 index 0000000..27ffde3 --- /dev/null +++ b/crates/air/src/layout/small/autogenerated.rs @@ -0,0 +1,2313 @@ +use super::global_values::GlobalValues; +use super::{CONSTRAINT_DEGREE, NUM_COLUMNS_FIRST, NUM_COLUMNS_SECOND}; +use starknet_core::types::NonZeroFelt; +use starknet_crypto::Felt; + +pub fn eval_composition_polynomial_inner( + mask_values: &[Felt], + constraint_coefficients: &[Felt], + point: &Felt, + trace_generator: &Felt, + global_values: &GlobalValues, +) -> Felt { + // Compute powers. + let pow0 = point.pow_felt( + &global_values.trace_length.floor_div(&NonZeroFelt::from_felt_unchecked(Felt::from(8192))), + ); + let pow1 = pow0 * pow0; // pow(point, (safe_div(global_values.trace_length, 4096))). + let pow2 = point.pow_felt( + &global_values.trace_length.floor_div(&NonZeroFelt::from_felt_unchecked(Felt::from(512))), + ); + let pow3 = pow2 * pow2; // pow(point, (safe_div(global_values.trace_length, 256))). + let pow4 = pow3 * pow3; // pow(point, (safe_div(global_values.trace_length, 128))). + let pow5 = point.pow_felt( + &global_values.trace_length.floor_div(&NonZeroFelt::from_felt_unchecked(Felt::from(32))), + ); + let pow6 = pow5 * pow5; // pow(point, (safe_div(global_values.trace_length, 16))). + let pow7 = pow6 * pow6; // pow(point, (safe_div(global_values.trace_length, 8))). + let pow8 = point.pow_felt( + &global_values.trace_length.floor_div(&NonZeroFelt::from_felt_unchecked(Felt::from(2))), + ); + let pow9 = pow8 * pow8; // pow(point, global_values.trace_length). + let pow10 = trace_generator.pow_felt(&(global_values.trace_length - 8192)); + let pow11 = trace_generator.pow_felt(&(global_values.trace_length - 128)); + let pow12 = trace_generator.pow_felt(&(global_values.trace_length - 1)); + let pow13 = trace_generator.pow_felt(&(global_values.trace_length - 2)); + let pow14 = trace_generator.pow_felt(&(global_values.trace_length - 16)); + let pow15 = trace_generator.pow_felt( + &(Felt::from(251) + * global_values + .trace_length + .floor_div(&NonZeroFelt::from_felt_unchecked(Felt::from(256)))), + ); + let pow16 = trace_generator.pow_felt( + &(global_values.trace_length.floor_div(&NonZeroFelt::from_felt_unchecked(Felt::from(2)))), + ); + let pow17 = trace_generator.pow_felt( + &(Felt::from(63) + * global_values + .trace_length + .floor_div(&NonZeroFelt::from_felt_unchecked(Felt::from(64)))), + ); + let pow18 = trace_generator.pow_felt( + &(Felt::from(255) + * global_values + .trace_length + .floor_div(&NonZeroFelt::from_felt_unchecked(Felt::from(256)))), + ); + let pow19 = trace_generator.pow_felt( + &(Felt::from(15) + * global_values + .trace_length + .floor_div(&NonZeroFelt::from_felt_unchecked(Felt::from(16)))), + ); + + // Compute domains. + let domain0 = pow9 - 1; + let domain1 = pow8 - 1; + let domain2 = pow7 - 1; + let domain3 = pow6 - pow19; + let domain4 = pow6 - 1; + let domain5 = pow5 - 1; + let domain6 = pow4 - 1; + let domain7 = pow3 - 1; + let domain8 = pow3 - pow18; + let domain9 = pow3 - pow17; + let domain10 = pow2 - pow16; + let domain11 = pow2 - 1; + let domain12 = pow1 - pow18; + let domain13 = pow1 - pow15; + let domain14 = pow1 - 1; + let domain15 = pow0 - pow18; + let domain16 = pow0 - pow15; + let domain17 = pow0 - 1; + let domain18 = point - pow14; + let domain19 = point - 1; + let domain20 = point - pow13; + let domain21 = point - pow12; + let domain22 = point - pow11; + let domain23 = point - pow10; + + // Fetch mask variables. + let column0_row0 = mask_values[0]; + let column0_row1 = mask_values[1]; + let column0_row4 = mask_values[2]; + let column0_row8 = mask_values[3]; + let column0_row12 = mask_values[4]; + let column0_row28 = mask_values[5]; + let column0_row44 = mask_values[6]; + let column0_row60 = mask_values[7]; + let column0_row76 = mask_values[8]; + let column0_row92 = mask_values[9]; + let column0_row108 = mask_values[10]; + let column0_row124 = mask_values[11]; + let column1_row0 = mask_values[12]; + let column1_row1 = mask_values[13]; + let column1_row2 = mask_values[14]; + let column1_row3 = mask_values[15]; + let column1_row4 = mask_values[16]; + let column1_row5 = mask_values[17]; + let column1_row6 = mask_values[18]; + let column1_row7 = mask_values[19]; + let column1_row8 = mask_values[20]; + let column1_row9 = mask_values[21]; + let column1_row10 = mask_values[22]; + let column1_row11 = mask_values[23]; + let column1_row12 = mask_values[24]; + let column1_row13 = mask_values[25]; + let column1_row14 = mask_values[26]; + let column1_row15 = mask_values[27]; + let column2_row0 = mask_values[28]; + let column2_row1 = mask_values[29]; + let column3_row0 = mask_values[30]; + let column3_row1 = mask_values[31]; + let column3_row255 = mask_values[32]; + let column3_row256 = mask_values[33]; + let column3_row511 = mask_values[34]; + let column4_row0 = mask_values[35]; + let column4_row1 = mask_values[36]; + let column4_row255 = mask_values[37]; + let column4_row256 = mask_values[38]; + let column5_row0 = mask_values[39]; + let column5_row1 = mask_values[40]; + let column5_row192 = mask_values[41]; + let column5_row193 = mask_values[42]; + let column5_row196 = mask_values[43]; + let column5_row197 = mask_values[44]; + let column5_row251 = mask_values[45]; + let column5_row252 = mask_values[46]; + let column5_row256 = mask_values[47]; + let column6_row0 = mask_values[48]; + let column6_row1 = mask_values[49]; + let column6_row255 = mask_values[50]; + let column6_row256 = mask_values[51]; + let column6_row511 = mask_values[52]; + let column7_row0 = mask_values[53]; + let column7_row1 = mask_values[54]; + let column7_row255 = mask_values[55]; + let column7_row256 = mask_values[56]; + let column8_row0 = mask_values[57]; + let column8_row1 = mask_values[58]; + let column8_row192 = mask_values[59]; + let column8_row193 = mask_values[60]; + let column8_row196 = mask_values[61]; + let column8_row197 = mask_values[62]; + let column8_row251 = mask_values[63]; + let column8_row252 = mask_values[64]; + let column8_row256 = mask_values[65]; + let column9_row0 = mask_values[66]; + let column9_row1 = mask_values[67]; + let column9_row255 = mask_values[68]; + let column9_row256 = mask_values[69]; + let column9_row511 = mask_values[70]; + let column10_row0 = mask_values[71]; + let column10_row1 = mask_values[72]; + let column10_row255 = mask_values[73]; + let column10_row256 = mask_values[74]; + let column11_row0 = mask_values[75]; + let column11_row1 = mask_values[76]; + let column11_row192 = mask_values[77]; + let column11_row193 = mask_values[78]; + let column11_row196 = mask_values[79]; + let column11_row197 = mask_values[80]; + let column11_row251 = mask_values[81]; + let column11_row252 = mask_values[82]; + let column11_row256 = mask_values[83]; + let column12_row0 = mask_values[84]; + let column12_row1 = mask_values[85]; + let column12_row255 = mask_values[86]; + let column12_row256 = mask_values[87]; + let column12_row511 = mask_values[88]; + let column13_row0 = mask_values[89]; + let column13_row1 = mask_values[90]; + let column13_row255 = mask_values[91]; + let column13_row256 = mask_values[92]; + let column14_row0 = mask_values[93]; + let column14_row1 = mask_values[94]; + let column14_row192 = mask_values[95]; + let column14_row193 = mask_values[96]; + let column14_row196 = mask_values[97]; + let column14_row197 = mask_values[98]; + let column14_row251 = mask_values[99]; + let column14_row252 = mask_values[100]; + let column14_row256 = mask_values[101]; + let column15_row0 = mask_values[102]; + let column15_row255 = mask_values[103]; + let column16_row0 = mask_values[104]; + let column16_row255 = mask_values[105]; + let column17_row0 = mask_values[106]; + let column17_row255 = mask_values[107]; + let column18_row0 = mask_values[108]; + let column18_row255 = mask_values[109]; + let column19_row0 = mask_values[110]; + let column19_row1 = mask_values[111]; + let column19_row2 = mask_values[112]; + let column19_row3 = mask_values[113]; + let column19_row4 = mask_values[114]; + let column19_row5 = mask_values[115]; + let column19_row6 = mask_values[116]; + let column19_row7 = mask_values[117]; + let column19_row8 = mask_values[118]; + let column19_row9 = mask_values[119]; + let column19_row12 = mask_values[120]; + let column19_row13 = mask_values[121]; + let column19_row16 = mask_values[122]; + let column19_row22 = mask_values[123]; + let column19_row23 = mask_values[124]; + let column19_row38 = mask_values[125]; + let column19_row39 = mask_values[126]; + let column19_row70 = mask_values[127]; + let column19_row71 = mask_values[128]; + let column19_row102 = mask_values[129]; + let column19_row103 = mask_values[130]; + let column19_row134 = mask_values[131]; + let column19_row135 = mask_values[132]; + let column19_row167 = mask_values[133]; + let column19_row199 = mask_values[134]; + let column19_row230 = mask_values[135]; + let column19_row263 = mask_values[136]; + let column19_row295 = mask_values[137]; + let column19_row327 = mask_values[138]; + let column19_row391 = mask_values[139]; + let column19_row423 = mask_values[140]; + let column19_row455 = mask_values[141]; + let column19_row4118 = mask_values[142]; + let column19_row4119 = mask_values[143]; + let column19_row8214 = mask_values[144]; + let column20_row0 = mask_values[145]; + let column20_row1 = mask_values[146]; + let column20_row2 = mask_values[147]; + let column20_row3 = mask_values[148]; + let column21_row0 = mask_values[149]; + let column21_row1 = mask_values[150]; + let column21_row2 = mask_values[151]; + let column21_row3 = mask_values[152]; + let column21_row4 = mask_values[153]; + let column21_row5 = mask_values[154]; + let column21_row6 = mask_values[155]; + let column21_row7 = mask_values[156]; + let column21_row8 = mask_values[157]; + let column21_row9 = mask_values[158]; + let column21_row10 = mask_values[159]; + let column21_row11 = mask_values[160]; + let column21_row12 = mask_values[161]; + let column21_row13 = mask_values[162]; + let column21_row14 = mask_values[163]; + let column21_row15 = mask_values[164]; + let column21_row16 = mask_values[165]; + let column21_row17 = mask_values[166]; + let column21_row21 = mask_values[167]; + let column21_row22 = mask_values[168]; + let column21_row23 = mask_values[169]; + let column21_row24 = mask_values[170]; + let column21_row25 = mask_values[171]; + let column21_row30 = mask_values[172]; + let column21_row31 = mask_values[173]; + let column21_row39 = mask_values[174]; + let column21_row47 = mask_values[175]; + let column21_row55 = mask_values[176]; + let column21_row4081 = mask_values[177]; + let column21_row4083 = mask_values[178]; + let column21_row4089 = mask_values[179]; + let column21_row4091 = mask_values[180]; + let column21_row4093 = mask_values[181]; + let column21_row4102 = mask_values[182]; + let column21_row4110 = mask_values[183]; + let column21_row8167 = mask_values[184]; + let column21_row8177 = mask_values[185]; + let column21_row8179 = mask_values[186]; + let column21_row8183 = mask_values[187]; + let column21_row8185 = mask_values[188]; + let column21_row8187 = mask_values[189]; + let column21_row8191 = mask_values[190]; + let column22_row0 = mask_values[191]; + let column22_row16 = mask_values[192]; + let column22_row80 = mask_values[193]; + let column22_row144 = mask_values[194]; + let column22_row208 = mask_values[195]; + let column22_row8160 = mask_values[196]; + let column23_inter1_row0 = mask_values[197]; + let column23_inter1_row1 = mask_values[198]; + let column24_inter1_row0 = mask_values[199]; + let column24_inter1_row2 = mask_values[200]; + + // Compute intermediate values. + let cpu_decode_opcode_range_check_bit_0 = column1_row0 - (column1_row1 + column1_row1); + let cpu_decode_opcode_range_check_bit_2 = column1_row2 - (column1_row3 + column1_row3); + let cpu_decode_opcode_range_check_bit_4 = column1_row4 - (column1_row5 + column1_row5); + let cpu_decode_opcode_range_check_bit_3 = column1_row3 - (column1_row4 + column1_row4); + let cpu_decode_flag_op1_base_op0_0 = Felt::ONE + - (cpu_decode_opcode_range_check_bit_2 + + cpu_decode_opcode_range_check_bit_4 + + cpu_decode_opcode_range_check_bit_3); + let cpu_decode_opcode_range_check_bit_5 = column1_row5 - (column1_row6 + column1_row6); + let cpu_decode_opcode_range_check_bit_6 = column1_row6 - (column1_row7 + column1_row7); + let cpu_decode_opcode_range_check_bit_9 = column1_row9 - (column1_row10 + column1_row10); + let cpu_decode_flag_res_op1_0 = Felt::ONE + - (cpu_decode_opcode_range_check_bit_5 + + cpu_decode_opcode_range_check_bit_6 + + cpu_decode_opcode_range_check_bit_9); + let cpu_decode_opcode_range_check_bit_7 = column1_row7 - (column1_row8 + column1_row8); + let cpu_decode_opcode_range_check_bit_8 = column1_row8 - (column1_row9 + column1_row9); + let cpu_decode_flag_pc_update_regular_0 = Felt::ONE + - (cpu_decode_opcode_range_check_bit_7 + + cpu_decode_opcode_range_check_bit_8 + + cpu_decode_opcode_range_check_bit_9); + let cpu_decode_opcode_range_check_bit_12 = column1_row12 - (column1_row13 + column1_row13); + let cpu_decode_opcode_range_check_bit_13 = column1_row13 - (column1_row14 + column1_row14); + let cpu_decode_fp_update_regular_0 = + Felt::ONE - (cpu_decode_opcode_range_check_bit_12 + cpu_decode_opcode_range_check_bit_13); + let cpu_decode_opcode_range_check_bit_1 = column1_row1 - (column1_row2 + column1_row2); + let npc_reg_0 = column19_row0 + cpu_decode_opcode_range_check_bit_2 + 1; + let cpu_decode_opcode_range_check_bit_10 = column1_row10 - (column1_row11 + column1_row11); + let cpu_decode_opcode_range_check_bit_11 = column1_row11 - (column1_row12 + column1_row12); + let cpu_decode_opcode_range_check_bit_14 = column1_row14 - (column1_row15 + column1_row15); + let memory_address_diff_0 = column20_row2 - column20_row0; + let range_check16_diff_0 = column2_row1 - column2_row0; + let pedersen_hash0_ec_subset_sum_bit_0 = column5_row0 - (column5_row1 + column5_row1); + let pedersen_hash0_ec_subset_sum_bit_neg_0 = Felt::ONE - pedersen_hash0_ec_subset_sum_bit_0; + let pedersen_hash1_ec_subset_sum_bit_0 = column8_row0 - (column8_row1 + column8_row1); + let pedersen_hash1_ec_subset_sum_bit_neg_0 = Felt::ONE - pedersen_hash1_ec_subset_sum_bit_0; + let pedersen_hash2_ec_subset_sum_bit_0 = column11_row0 - (column11_row1 + column11_row1); + let pedersen_hash2_ec_subset_sum_bit_neg_0 = Felt::ONE - pedersen_hash2_ec_subset_sum_bit_0; + let pedersen_hash3_ec_subset_sum_bit_0 = column14_row0 - (column14_row1 + column14_row1); + let pedersen_hash3_ec_subset_sum_bit_neg_0 = Felt::ONE - pedersen_hash3_ec_subset_sum_bit_0; + let range_check_builtin_value0_0 = column0_row12; + let range_check_builtin_value1_0 = + range_check_builtin_value0_0 * global_values.offset_size + column0_row28; + let range_check_builtin_value2_0 = + range_check_builtin_value1_0 * global_values.offset_size + column0_row44; + let range_check_builtin_value3_0 = + range_check_builtin_value2_0 * global_values.offset_size + column0_row60; + let range_check_builtin_value4_0 = + range_check_builtin_value3_0 * global_values.offset_size + column0_row76; + let range_check_builtin_value5_0 = + range_check_builtin_value4_0 * global_values.offset_size + column0_row92; + let range_check_builtin_value6_0 = + range_check_builtin_value5_0 * global_values.offset_size + column0_row108; + let range_check_builtin_value7_0 = + range_check_builtin_value6_0 * global_values.offset_size + column0_row124; + let ecdsa_signature0_doubling_key_x_squared = column21_row6 * column21_row6; + let ecdsa_signature0_exponentiate_generator_bit_0 = + column21_row15 - (column21_row47 + column21_row47); + let ecdsa_signature0_exponentiate_generator_bit_neg_0 = + Felt::ONE - ecdsa_signature0_exponentiate_generator_bit_0; + let ecdsa_signature0_exponentiate_key_bit_0 = column21_row5 - (column21_row21 + column21_row21); + let ecdsa_signature0_exponentiate_key_bit_neg_0 = + Felt::ONE - ecdsa_signature0_exponentiate_key_bit_0; + + // Sum constraints. + let mut total_sum = Felt::ZERO; + + // Constraint: cpu/decode/opcode_range_check/bit. + let mut value = (cpu_decode_opcode_range_check_bit_0 * cpu_decode_opcode_range_check_bit_0 + - cpu_decode_opcode_range_check_bit_0) + * domain3.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[0] * value; + + // Constraint: cpu/decode/opcode_range_check/zero. + value = (column1_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain3)); + total_sum += constraint_coefficients[1] * value; + + // Constraint: cpu/decode/opcode_range_check_input. + value = (column19_row1 + - (((column1_row0 * global_values.offset_size + column0_row4) + * global_values.offset_size + + column0_row8) + * global_values.offset_size + + column0_row0)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[2] * value; + + // Constraint: cpu/decode/flag_op1_base_op0_bit. + value = (cpu_decode_flag_op1_base_op0_0 * cpu_decode_flag_op1_base_op0_0 + - cpu_decode_flag_op1_base_op0_0) + .field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[3] * value; + + // Constraint: cpu/decode/flag_res_op1_bit. + value = (cpu_decode_flag_res_op1_0 * cpu_decode_flag_res_op1_0 - cpu_decode_flag_res_op1_0) + .field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[4] * value; + + // Constraint: cpu/decode/flag_pc_update_regular_bit. + value = (cpu_decode_flag_pc_update_regular_0 * cpu_decode_flag_pc_update_regular_0 + - cpu_decode_flag_pc_update_regular_0) + .field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[5] * value; + + // Constraint: cpu/decode/fp_update_regular_bit. + value = (cpu_decode_fp_update_regular_0 * cpu_decode_fp_update_regular_0 + - cpu_decode_fp_update_regular_0) + .field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[6] * value; + + // Constraint: cpu/operands/mem_dst_addr. + value = (column19_row8 + global_values.half_offset_size + - (cpu_decode_opcode_range_check_bit_0 * column21_row8 + + (Felt::ONE - cpu_decode_opcode_range_check_bit_0) * column21_row0 + + column0_row0)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[7] * value; + + // Constraint: cpu/operands/mem0_addr. + value = (column19_row4 + global_values.half_offset_size + - (cpu_decode_opcode_range_check_bit_1 * column21_row8 + + (Felt::ONE - cpu_decode_opcode_range_check_bit_1) * column21_row0 + + column0_row8)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[8] * value; + + // Constraint: cpu/operands/mem1_addr. + value = (column19_row12 + global_values.half_offset_size + - (cpu_decode_opcode_range_check_bit_2 * column19_row0 + + cpu_decode_opcode_range_check_bit_4 * column21_row0 + + cpu_decode_opcode_range_check_bit_3 * column21_row8 + + cpu_decode_flag_op1_base_op0_0 * column19_row5 + + column0_row4)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[9] * value; + + // Constraint: cpu/operands/ops_mul. + value = (column21_row4 - column19_row5 * column19_row13) + .field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[10] * value; + + // Constraint: cpu/operands/res. + value = ((Felt::ONE - cpu_decode_opcode_range_check_bit_9) * column21_row12 + - (cpu_decode_opcode_range_check_bit_5 * (column19_row5 + column19_row13) + + cpu_decode_opcode_range_check_bit_6 * column21_row4 + + cpu_decode_flag_res_op1_0 * column19_row13)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[11] * value; + + // Constraint: cpu/update_registers/update_pc/tmp0. + value = (column21_row2 - cpu_decode_opcode_range_check_bit_9 * column19_row9) + * domain18.field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[12] * value; + + // Constraint: cpu/update_registers/update_pc/tmp1. + value = (column21_row10 - column21_row2 * column21_row12) + * domain18.field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[13] * value; + + // Constraint: cpu/update_registers/update_pc/pc_cond_negative. + value = ((Felt::ONE - cpu_decode_opcode_range_check_bit_9) * column19_row16 + + column21_row2 * (column19_row16 - (column19_row0 + column19_row13)) + - (cpu_decode_flag_pc_update_regular_0 * npc_reg_0 + + cpu_decode_opcode_range_check_bit_7 * column21_row12 + + cpu_decode_opcode_range_check_bit_8 * (column19_row0 + column21_row12))) + * domain18.field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[14] * value; + + // Constraint: cpu/update_registers/update_pc/pc_cond_positive. + value = ((column21_row10 - cpu_decode_opcode_range_check_bit_9) * (column19_row16 - npc_reg_0)) + * domain18.field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[15] * value; + + // Constraint: cpu/update_registers/update_ap/ap_update. + value = (column21_row16 + - (column21_row0 + + cpu_decode_opcode_range_check_bit_10 * column21_row12 + + cpu_decode_opcode_range_check_bit_11 + + cpu_decode_opcode_range_check_bit_12 * Felt::TWO)) + * domain18.field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[16] * value; + + // Constraint: cpu/update_registers/update_fp/fp_update. + value = (column21_row24 + - (cpu_decode_fp_update_regular_0 * column21_row8 + + cpu_decode_opcode_range_check_bit_13 * column19_row9 + + cpu_decode_opcode_range_check_bit_12 * (column21_row0 + 2))) + * domain18.field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[17] * value; + + // Constraint: cpu/opcodes/call/push_fp. + value = (cpu_decode_opcode_range_check_bit_12 * (column19_row9 - column21_row8)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[18] * value; + + // Constraint: cpu/opcodes/call/push_pc. + value = (cpu_decode_opcode_range_check_bit_12 + * (column19_row5 - (column19_row0 + cpu_decode_opcode_range_check_bit_2 + 1))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[19] * value; + + // Constraint: cpu/opcodes/call/off0. + value = (cpu_decode_opcode_range_check_bit_12 + * (column0_row0 - global_values.half_offset_size)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[20] * value; + + // Constraint: cpu/opcodes/call/off1. + value = (cpu_decode_opcode_range_check_bit_12 + * (column0_row8 - (global_values.half_offset_size + 1))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[21] * value; + + // Constraint: cpu/opcodes/call/flags. + value = (cpu_decode_opcode_range_check_bit_12 + * (cpu_decode_opcode_range_check_bit_12 + cpu_decode_opcode_range_check_bit_12 + 1 + 1 + - (cpu_decode_opcode_range_check_bit_0 + cpu_decode_opcode_range_check_bit_1 + 4))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[22] * value; + + // Constraint: cpu/opcodes/ret/off0. + value = (cpu_decode_opcode_range_check_bit_13 + * (column0_row0 + 2 - global_values.half_offset_size)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[23] * value; + + // Constraint: cpu/opcodes/ret/off2. + value = (cpu_decode_opcode_range_check_bit_13 + * (column0_row4 + 1 - global_values.half_offset_size)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[24] * value; + + // Constraint: cpu/opcodes/ret/flags. + value = (cpu_decode_opcode_range_check_bit_13 + * (cpu_decode_opcode_range_check_bit_7 + + cpu_decode_opcode_range_check_bit_0 + + cpu_decode_opcode_range_check_bit_3 + + cpu_decode_flag_res_op1_0 + - 4)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[25] * value; + + // Constraint: cpu/opcodes/assert_eq/assert_eq. + value = (cpu_decode_opcode_range_check_bit_14 * (column19_row9 - column21_row12)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[26] * value; + + // Constraint: initial_ap. + value = (column21_row0 - global_values.initial_ap) + .field_div(&NonZeroFelt::from_felt_unchecked(domain19)); + total_sum += constraint_coefficients[27] * value; + + // Constraint: initial_fp. + value = (column21_row8 - global_values.initial_ap) + .field_div(&NonZeroFelt::from_felt_unchecked(domain19)); + total_sum += constraint_coefficients[28] * value; + + // Constraint: initial_pc. + value = (column19_row0 - global_values.initial_pc) + .field_div(&NonZeroFelt::from_felt_unchecked(domain19)); + total_sum += constraint_coefficients[29] * value; + + // Constraint: final_ap. + value = (column21_row0 - global_values.final_ap) + .field_div(&NonZeroFelt::from_felt_unchecked(domain18)); + total_sum += constraint_coefficients[30] * value; + + // Constraint: final_fp. + value = (column21_row8 - global_values.initial_ap) + .field_div(&NonZeroFelt::from_felt_unchecked(domain18)); + total_sum += constraint_coefficients[31] * value; + + // Constraint: final_pc. + value = (column19_row0 - global_values.final_pc) + .field_div(&NonZeroFelt::from_felt_unchecked(domain18)); + total_sum += constraint_coefficients[32] * value; + + // Constraint: memory/multi_column_perm/perm/init0. + value = ((global_values.memory_multi_column_perm_perm_interaction_elm + - (column20_row0 + + global_values.memory_multi_column_perm_hash_interaction_elm0 * column20_row1)) + * column24_inter1_row0 + + column19_row0 + + global_values.memory_multi_column_perm_hash_interaction_elm0 * column19_row1 + - global_values.memory_multi_column_perm_perm_interaction_elm) + .field_div(&NonZeroFelt::from_felt_unchecked(domain19)); + total_sum += constraint_coefficients[33] * value; + + // Constraint: memory/multi_column_perm/perm/step0. + value = ((global_values.memory_multi_column_perm_perm_interaction_elm + - (column20_row2 + + global_values.memory_multi_column_perm_hash_interaction_elm0 * column20_row3)) + * column24_inter1_row2 + - (global_values.memory_multi_column_perm_perm_interaction_elm + - (column19_row2 + + global_values.memory_multi_column_perm_hash_interaction_elm0 * column19_row3)) + * column24_inter1_row0) + * domain20.field_div(&NonZeroFelt::from_felt_unchecked(domain1)); + total_sum += constraint_coefficients[34] * value; + + // Constraint: memory/multi_column_perm/perm/last. + value = (column24_inter1_row0 - global_values.memory_multi_column_perm_perm_public_memory_prod) + .field_div(&NonZeroFelt::from_felt_unchecked(domain20)); + total_sum += constraint_coefficients[35] * value; + + // Constraint: memory/diff_is_bit. + value = (memory_address_diff_0 * memory_address_diff_0 - memory_address_diff_0) + * domain20.field_div(&NonZeroFelt::from_felt_unchecked(domain1)); + total_sum += constraint_coefficients[36] * value; + + // Constraint: memory/is_func. + value = ((memory_address_diff_0 - 1) * (column20_row1 - column20_row3)) + * domain20.field_div(&NonZeroFelt::from_felt_unchecked(domain1)); + total_sum += constraint_coefficients[37] * value; + + // Constraint: memory/initial_addr. + value = (column20_row0 - 1).field_div(&NonZeroFelt::from_felt_unchecked(domain19)); + total_sum += constraint_coefficients[38] * value; + + // Constraint: public_memory_addr_zero. + value = (column19_row2).field_div(&NonZeroFelt::from_felt_unchecked(domain2)); + total_sum += constraint_coefficients[39] * value; + + // Constraint: public_memory_value_zero. + value = (column19_row3).field_div(&NonZeroFelt::from_felt_unchecked(domain2)); + total_sum += constraint_coefficients[40] * value; + + // Constraint: range_check16/perm/init0. + value = ((global_values.range_check16_perm_interaction_elm - column2_row0) + * column23_inter1_row0 + + column0_row0 + - global_values.range_check16_perm_interaction_elm) + .field_div(&NonZeroFelt::from_felt_unchecked(domain19)); + total_sum += constraint_coefficients[41] * value; + + // Constraint: range_check16/perm/step0. + value = ((global_values.range_check16_perm_interaction_elm - column2_row1) + * column23_inter1_row1 + - (global_values.range_check16_perm_interaction_elm - column0_row1) * column23_inter1_row0) + * domain21.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[42] * value; + + // Constraint: range_check16/perm/last. + value = (column23_inter1_row0 - global_values.range_check16_perm_public_memory_prod) + .field_div(&NonZeroFelt::from_felt_unchecked(domain2)); + total_sum += constraint_coefficients[43] * value; + + // Constraint: range_check16/diff_is_bit. + value = (range_check16_diff_0 * range_check16_diff_0 - range_check16_diff_0) + * domain21.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[44] * value; + + // Constraint: range_check16/minimum. + value = (column2_row0 - global_values.range_check_min) + .field_div(&NonZeroFelt::from_felt_unchecked(domain19)); + total_sum += constraint_coefficients[45] * value; + + // Constraint: range_check16/maximum. + value = (column2_row0 - global_values.range_check_max) + .field_div(&NonZeroFelt::from_felt_unchecked(domain2)); + total_sum += constraint_coefficients[46] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/last_one_is_zero. + value = (column16_row255 * (column5_row0 - (column5_row1 + column5_row1))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[47] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/zeroes_between_ones0. + value = (column16_row255 + * (column5_row1 + - Felt::from_hex_unchecked("0x800000000000000000000000000000000000000000000000") + * column5_row192)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[48] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/cumulative_bit192. + value = (column16_row255 + - column15_row255 * (column5_row192 - (column5_row193 + column5_row193))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[49] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/zeroes_between_ones192. + value = (column15_row255 * (column5_row193 - Felt::from(8) * column5_row196)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[50] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/cumulative_bit196. + value = (column15_row255 + - (column5_row251 - (column5_row252 + column5_row252)) + * (column5_row196 - (column5_row197 + column5_row197))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[51] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/zeroes_between_ones196. + value = ((column5_row251 - (column5_row252 + column5_row252)) + * (column5_row197 - Felt::from_hex_unchecked("0x40000000000000") * column5_row251)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[52] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/booleanity_test. + value = (pedersen_hash0_ec_subset_sum_bit_0 * (pedersen_hash0_ec_subset_sum_bit_0 - 1)) + * domain8.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[53] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_extraction_end. + value = (column5_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain9)); + total_sum += constraint_coefficients[54] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/zeros_tail. + value = (column5_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[55] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/add_points/slope. + value = (pedersen_hash0_ec_subset_sum_bit_0 * (column4_row0 - global_values.pedersen_points_y) + - column15_row0 * (column3_row0 - global_values.pedersen_points_x)) + * domain8.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[56] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/add_points/x. + value = (column15_row0 * column15_row0 + - pedersen_hash0_ec_subset_sum_bit_0 + * (column3_row0 + global_values.pedersen_points_x + column3_row1)) + * domain8.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[57] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/add_points/y. + value = (pedersen_hash0_ec_subset_sum_bit_0 * (column4_row0 + column4_row1) + - column15_row0 * (column3_row0 - column3_row1)) + * domain8.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[58] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/copy_point/x. + value = (pedersen_hash0_ec_subset_sum_bit_neg_0 * (column3_row1 - column3_row0)) + * domain8.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[59] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/copy_point/y. + value = (pedersen_hash0_ec_subset_sum_bit_neg_0 * (column4_row1 - column4_row0)) + * domain8.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[60] * value; + + // Constraint: pedersen/hash0/copy_point/x. + value = (column3_row256 - column3_row255) + * domain10.field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[61] * value; + + // Constraint: pedersen/hash0/copy_point/y. + value = (column4_row256 - column4_row255) + * domain10.field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[62] * value; + + // Constraint: pedersen/hash0/init/x. + value = (column3_row0 - global_values.pedersen_shift_point.x) + .field_div(&NonZeroFelt::from_felt_unchecked(domain11)); + total_sum += constraint_coefficients[63] * value; + + // Constraint: pedersen/hash0/init/y. + value = (column4_row0 - global_values.pedersen_shift_point.y) + .field_div(&NonZeroFelt::from_felt_unchecked(domain11)); + total_sum += constraint_coefficients[64] * value; + + // Constraint: pedersen/hash1/ec_subset_sum/bit_unpacking/last_one_is_zero. + value = (column18_row255 * (column8_row0 - (column8_row1 + column8_row1))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[65] * value; + + // Constraint: pedersen/hash1/ec_subset_sum/bit_unpacking/zeroes_between_ones0. + value = (column18_row255 + * (column8_row1 + - Felt::from_hex_unchecked("0x800000000000000000000000000000000000000000000000") + * column8_row192)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[66] * value; + + // Constraint: pedersen/hash1/ec_subset_sum/bit_unpacking/cumulative_bit192. + value = (column18_row255 + - column17_row255 * (column8_row192 - (column8_row193 + column8_row193))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[67] * value; + + // Constraint: pedersen/hash1/ec_subset_sum/bit_unpacking/zeroes_between_ones192. + value = (column17_row255 * (column8_row193 - Felt::from(8) * column8_row196)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[68] * value; + + // Constraint: pedersen/hash1/ec_subset_sum/bit_unpacking/cumulative_bit196. + value = (column17_row255 + - (column8_row251 - (column8_row252 + column8_row252)) + * (column8_row196 - (column8_row197 + column8_row197))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[69] * value; + + // Constraint: pedersen/hash1/ec_subset_sum/bit_unpacking/zeroes_between_ones196. + value = ((column8_row251 - (column8_row252 + column8_row252)) + * (column8_row197 - Felt::from_hex_unchecked("0x40000000000000") * column8_row251)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[70] * value; + + // Constraint: pedersen/hash1/ec_subset_sum/booleanity_test. + value = (pedersen_hash1_ec_subset_sum_bit_0 * (pedersen_hash1_ec_subset_sum_bit_0 - 1)) + * domain8.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[71] * value; + + // Constraint: pedersen/hash1/ec_subset_sum/bit_extraction_end. + value = (column8_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain9)); + total_sum += constraint_coefficients[72] * value; + + // Constraint: pedersen/hash1/ec_subset_sum/zeros_tail. + value = (column8_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[73] * value; + + // Constraint: pedersen/hash1/ec_subset_sum/add_points/slope. + value = (pedersen_hash1_ec_subset_sum_bit_0 * (column7_row0 - global_values.pedersen_points_y) + - column16_row0 * (column6_row0 - global_values.pedersen_points_x)) + * domain8.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[74] * value; + + // Constraint: pedersen/hash1/ec_subset_sum/add_points/x. + value = (column16_row0 * column16_row0 + - pedersen_hash1_ec_subset_sum_bit_0 + * (column6_row0 + global_values.pedersen_points_x + column6_row1)) + * domain8.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[75] * value; + + // Constraint: pedersen/hash1/ec_subset_sum/add_points/y. + value = (pedersen_hash1_ec_subset_sum_bit_0 * (column7_row0 + column7_row1) + - column16_row0 * (column6_row0 - column6_row1)) + * domain8.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[76] * value; + + // Constraint: pedersen/hash1/ec_subset_sum/copy_point/x. + value = (pedersen_hash1_ec_subset_sum_bit_neg_0 * (column6_row1 - column6_row0)) + * domain8.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[77] * value; + + // Constraint: pedersen/hash1/ec_subset_sum/copy_point/y. + value = (pedersen_hash1_ec_subset_sum_bit_neg_0 * (column7_row1 - column7_row0)) + * domain8.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[78] * value; + + // Constraint: pedersen/hash1/copy_point/x. + value = (column6_row256 - column6_row255) + * domain10.field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[79] * value; + + // Constraint: pedersen/hash1/copy_point/y. + value = (column7_row256 - column7_row255) + * domain10.field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[80] * value; + + // Constraint: pedersen/hash1/init/x. + value = (column6_row0 - global_values.pedersen_shift_point.x) + .field_div(&NonZeroFelt::from_felt_unchecked(domain11)); + total_sum += constraint_coefficients[81] * value; + + // Constraint: pedersen/hash1/init/y. + value = (column7_row0 - global_values.pedersen_shift_point.y) + .field_div(&NonZeroFelt::from_felt_unchecked(domain11)); + total_sum += constraint_coefficients[82] * value; + + // Constraint: pedersen/hash2/ec_subset_sum/bit_unpacking/last_one_is_zero. + value = (column22_row144 * (column11_row0 - (column11_row1 + column11_row1))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[83] * value; + + // Constraint: pedersen/hash2/ec_subset_sum/bit_unpacking/zeroes_between_ones0. + value = (column22_row144 + * (column11_row1 + - Felt::from_hex_unchecked("0x800000000000000000000000000000000000000000000000") + * column11_row192)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[84] * value; + + // Constraint: pedersen/hash2/ec_subset_sum/bit_unpacking/cumulative_bit192. + value = (column22_row144 + - column22_row16 * (column11_row192 - (column11_row193 + column11_row193))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[85] * value; + + // Constraint: pedersen/hash2/ec_subset_sum/bit_unpacking/zeroes_between_ones192. + value = (column22_row16 * (column11_row193 - Felt::from(8) * column11_row196)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[86] * value; + + // Constraint: pedersen/hash2/ec_subset_sum/bit_unpacking/cumulative_bit196. + value = (column22_row16 + - (column11_row251 - (column11_row252 + column11_row252)) + * (column11_row196 - (column11_row197 + column11_row197))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[87] * value; + + // Constraint: pedersen/hash2/ec_subset_sum/bit_unpacking/zeroes_between_ones196. + value = ((column11_row251 - (column11_row252 + column11_row252)) + * (column11_row197 - Felt::from_hex_unchecked("0x40000000000000") * column11_row251)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[88] * value; + + // Constraint: pedersen/hash2/ec_subset_sum/booleanity_test. + value = (pedersen_hash2_ec_subset_sum_bit_0 * (pedersen_hash2_ec_subset_sum_bit_0 - 1)) + * domain8.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[89] * value; + + // Constraint: pedersen/hash2/ec_subset_sum/bit_extraction_end. + value = (column11_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain9)); + total_sum += constraint_coefficients[90] * value; + + // Constraint: pedersen/hash2/ec_subset_sum/zeros_tail. + value = (column11_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[91] * value; + + // Constraint: pedersen/hash2/ec_subset_sum/add_points/slope. + value = (pedersen_hash2_ec_subset_sum_bit_0 + * (column10_row0 - global_values.pedersen_points_y) + - column17_row0 * (column9_row0 - global_values.pedersen_points_x)) + * domain8.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[92] * value; + + // Constraint: pedersen/hash2/ec_subset_sum/add_points/x. + value = (column17_row0 * column17_row0 + - pedersen_hash2_ec_subset_sum_bit_0 + * (column9_row0 + global_values.pedersen_points_x + column9_row1)) + * domain8.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[93] * value; + + // Constraint: pedersen/hash2/ec_subset_sum/add_points/y. + value = (pedersen_hash2_ec_subset_sum_bit_0 * (column10_row0 + column10_row1) + - column17_row0 * (column9_row0 - column9_row1)) + * domain8.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[94] * value; + + // Constraint: pedersen/hash2/ec_subset_sum/copy_point/x. + value = (pedersen_hash2_ec_subset_sum_bit_neg_0 * (column9_row1 - column9_row0)) + * domain8.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[95] * value; + + // Constraint: pedersen/hash2/ec_subset_sum/copy_point/y. + value = (pedersen_hash2_ec_subset_sum_bit_neg_0 * (column10_row1 - column10_row0)) + * domain8.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[96] * value; + + // Constraint: pedersen/hash2/copy_point/x. + value = (column9_row256 - column9_row255) + * domain10.field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[97] * value; + + // Constraint: pedersen/hash2/copy_point/y. + value = (column10_row256 - column10_row255) + * domain10.field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[98] * value; + + // Constraint: pedersen/hash2/init/x. + value = (column9_row0 - global_values.pedersen_shift_point.x) + .field_div(&NonZeroFelt::from_felt_unchecked(domain11)); + total_sum += constraint_coefficients[99] * value; + + // Constraint: pedersen/hash2/init/y. + value = (column10_row0 - global_values.pedersen_shift_point.y) + .field_div(&NonZeroFelt::from_felt_unchecked(domain11)); + total_sum += constraint_coefficients[100] * value; + + // Constraint: pedersen/hash3/ec_subset_sum/bit_unpacking/last_one_is_zero. + value = (column22_row208 * (column14_row0 - (column14_row1 + column14_row1))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[101] * value; + + // Constraint: pedersen/hash3/ec_subset_sum/bit_unpacking/zeroes_between_ones0. + value = (column22_row208 + * (column14_row1 + - Felt::from_hex_unchecked("0x800000000000000000000000000000000000000000000000") + * column14_row192)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[102] * value; + + // Constraint: pedersen/hash3/ec_subset_sum/bit_unpacking/cumulative_bit192. + value = (column22_row208 + - column22_row80 * (column14_row192 - (column14_row193 + column14_row193))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[103] * value; + + // Constraint: pedersen/hash3/ec_subset_sum/bit_unpacking/zeroes_between_ones192. + value = (column22_row80 * (column14_row193 - Felt::from(8) * column14_row196)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[104] * value; + + // Constraint: pedersen/hash3/ec_subset_sum/bit_unpacking/cumulative_bit196. + value = (column22_row80 + - (column14_row251 - (column14_row252 + column14_row252)) + * (column14_row196 - (column14_row197 + column14_row197))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[105] * value; + + // Constraint: pedersen/hash3/ec_subset_sum/bit_unpacking/zeroes_between_ones196. + value = ((column14_row251 - (column14_row252 + column14_row252)) + * (column14_row197 - Felt::from_hex_unchecked("0x40000000000000") * column14_row251)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[106] * value; + + // Constraint: pedersen/hash3/ec_subset_sum/booleanity_test. + value = (pedersen_hash3_ec_subset_sum_bit_0 * (pedersen_hash3_ec_subset_sum_bit_0 - 1)) + * domain8.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[107] * value; + + // Constraint: pedersen/hash3/ec_subset_sum/bit_extraction_end. + value = (column14_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain9)); + total_sum += constraint_coefficients[108] * value; + + // Constraint: pedersen/hash3/ec_subset_sum/zeros_tail. + value = (column14_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[109] * value; + + // Constraint: pedersen/hash3/ec_subset_sum/add_points/slope. + value = (pedersen_hash3_ec_subset_sum_bit_0 + * (column13_row0 - global_values.pedersen_points_y) + - column18_row0 * (column12_row0 - global_values.pedersen_points_x)) + * domain8.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[110] * value; + + // Constraint: pedersen/hash3/ec_subset_sum/add_points/x. + value = (column18_row0 * column18_row0 + - pedersen_hash3_ec_subset_sum_bit_0 + * (column12_row0 + global_values.pedersen_points_x + column12_row1)) + * domain8.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[111] * value; + + // Constraint: pedersen/hash3/ec_subset_sum/add_points/y. + value = (pedersen_hash3_ec_subset_sum_bit_0 * (column13_row0 + column13_row1) + - column18_row0 * (column12_row0 - column12_row1)) + * domain8.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[112] * value; + + // Constraint: pedersen/hash3/ec_subset_sum/copy_point/x. + value = (pedersen_hash3_ec_subset_sum_bit_neg_0 * (column12_row1 - column12_row0)) + * domain8.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[113] * value; + + // Constraint: pedersen/hash3/ec_subset_sum/copy_point/y. + value = (pedersen_hash3_ec_subset_sum_bit_neg_0 * (column13_row1 - column13_row0)) + * domain8.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[114] * value; + + // Constraint: pedersen/hash3/copy_point/x. + value = (column12_row256 - column12_row255) + * domain10.field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[115] * value; + + // Constraint: pedersen/hash3/copy_point/y. + value = (column13_row256 - column13_row255) + * domain10.field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[116] * value; + + // Constraint: pedersen/hash3/init/x. + value = (column12_row0 - global_values.pedersen_shift_point.x) + .field_div(&NonZeroFelt::from_felt_unchecked(domain11)); + total_sum += constraint_coefficients[117] * value; + + // Constraint: pedersen/hash3/init/y. + value = (column13_row0 - global_values.pedersen_shift_point.y) + .field_div(&NonZeroFelt::from_felt_unchecked(domain11)); + total_sum += constraint_coefficients[118] * value; + + // Constraint: pedersen/input0_value0. + value = (column19_row7 - column5_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain11)); + total_sum += constraint_coefficients[119] * value; + + // Constraint: pedersen/input0_value1. + value = (column19_row135 - column8_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain11)); + total_sum += constraint_coefficients[120] * value; + + // Constraint: pedersen/input0_value2. + value = + (column19_row263 - column11_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain11)); + total_sum += constraint_coefficients[121] * value; + + // Constraint: pedersen/input0_value3. + value = + (column19_row391 - column14_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain11)); + total_sum += constraint_coefficients[122] * value; + + // Constraint: pedersen/input0_addr. + value = (column19_row134 - (column19_row38 + 1)) + * domain22.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[123] * value; + + // Constraint: pedersen/init_addr. + value = (column19_row6 - global_values.initial_pedersen_addr) + .field_div(&NonZeroFelt::from_felt_unchecked(domain19)); + total_sum += constraint_coefficients[124] * value; + + // Constraint: pedersen/input1_value0. + value = + (column19_row71 - column5_row256).field_div(&NonZeroFelt::from_felt_unchecked(domain11)); + total_sum += constraint_coefficients[125] * value; + + // Constraint: pedersen/input1_value1. + value = + (column19_row199 - column8_row256).field_div(&NonZeroFelt::from_felt_unchecked(domain11)); + total_sum += constraint_coefficients[126] * value; + + // Constraint: pedersen/input1_value2. + value = + (column19_row327 - column11_row256).field_div(&NonZeroFelt::from_felt_unchecked(domain11)); + total_sum += constraint_coefficients[127] * value; + + // Constraint: pedersen/input1_value3. + value = + (column19_row455 - column14_row256).field_div(&NonZeroFelt::from_felt_unchecked(domain11)); + total_sum += constraint_coefficients[128] * value; + + // Constraint: pedersen/input1_addr. + value = (column19_row70 - (column19_row6 + 1)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[129] * value; + + // Constraint: pedersen/output_value0. + value = + (column19_row39 - column3_row511).field_div(&NonZeroFelt::from_felt_unchecked(domain11)); + total_sum += constraint_coefficients[130] * value; + + // Constraint: pedersen/output_value1. + value = + (column19_row167 - column6_row511).field_div(&NonZeroFelt::from_felt_unchecked(domain11)); + total_sum += constraint_coefficients[131] * value; + + // Constraint: pedersen/output_value2. + value = + (column19_row295 - column9_row511).field_div(&NonZeroFelt::from_felt_unchecked(domain11)); + total_sum += constraint_coefficients[132] * value; + + // Constraint: pedersen/output_value3. + value = + (column19_row423 - column12_row511).field_div(&NonZeroFelt::from_felt_unchecked(domain11)); + total_sum += constraint_coefficients[133] * value; + + // Constraint: pedersen/output_addr. + value = (column19_row38 - (column19_row70 + 1)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[134] * value; + + // Constraint: range_check_builtin/value. + value = (range_check_builtin_value7_0 - column19_row103) + .field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[135] * value; + + // Constraint: range_check_builtin/addr_step. + value = (column19_row230 - (column19_row102 + 1)) + * domain22.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[136] * value; + + // Constraint: range_check_builtin/init_addr. + value = (column19_row102 - global_values.initial_range_check_addr) + .field_div(&NonZeroFelt::from_felt_unchecked(domain19)); + total_sum += constraint_coefficients[137] * value; + + // Constraint: ecdsa/signature0/doubling_key/slope. + value = (ecdsa_signature0_doubling_key_x_squared + + ecdsa_signature0_doubling_key_x_squared + + ecdsa_signature0_doubling_key_x_squared + + global_values.ecdsa_sig_config.alpha + - (column21_row14 + column21_row14) * column21_row13) + * domain12.field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[138] * value; + + // Constraint: ecdsa/signature0/doubling_key/x. + value = (column21_row13 * column21_row13 - (column21_row6 + column21_row6 + column21_row22)) + * domain12.field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[139] * value; + + // Constraint: ecdsa/signature0/doubling_key/y. + value = (column21_row14 + column21_row30 - column21_row13 * (column21_row6 - column21_row22)) + * domain12.field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[140] * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/booleanity_test. + value = (ecdsa_signature0_exponentiate_generator_bit_0 + * (ecdsa_signature0_exponentiate_generator_bit_0 - 1)) + * domain15.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[141] * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/bit_extraction_end. + value = (column21_row15).field_div(&NonZeroFelt::from_felt_unchecked(domain16)); + total_sum += constraint_coefficients[142] * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/zeros_tail. + value = (column21_row15).field_div(&NonZeroFelt::from_felt_unchecked(domain15)); + total_sum += constraint_coefficients[143] * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/add_points/slope. + value = (ecdsa_signature0_exponentiate_generator_bit_0 + * (column21_row23 - global_values.ecdsa_generator_points_y) + - column21_row31 * (column21_row7 - global_values.ecdsa_generator_points_x)) + * domain15.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[144] * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/add_points/x. + value = (column21_row31 * column21_row31 + - ecdsa_signature0_exponentiate_generator_bit_0 + * (column21_row7 + global_values.ecdsa_generator_points_x + column21_row39)) + * domain15.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[145] * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/add_points/y. + value = (ecdsa_signature0_exponentiate_generator_bit_0 * (column21_row23 + column21_row55) + - column21_row31 * (column21_row7 - column21_row39)) + * domain15.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[146] * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/add_points/x_diff_inv. + value = (column22_row0 * (column21_row7 - global_values.ecdsa_generator_points_x) - 1) + * domain15.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[147] * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/copy_point/x. + value = (ecdsa_signature0_exponentiate_generator_bit_neg_0 * (column21_row39 - column21_row7)) + * domain15.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[148] * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/copy_point/y. + value = (ecdsa_signature0_exponentiate_generator_bit_neg_0 * (column21_row55 - column21_row23)) + * domain15.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[149] * value; + + // Constraint: ecdsa/signature0/exponentiate_key/booleanity_test. + value = (ecdsa_signature0_exponentiate_key_bit_0 + * (ecdsa_signature0_exponentiate_key_bit_0 - 1)) + * domain12.field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[150] * value; + + // Constraint: ecdsa/signature0/exponentiate_key/bit_extraction_end. + value = (column21_row5).field_div(&NonZeroFelt::from_felt_unchecked(domain13)); + total_sum += constraint_coefficients[151] * value; + + // Constraint: ecdsa/signature0/exponentiate_key/zeros_tail. + value = (column21_row5).field_div(&NonZeroFelt::from_felt_unchecked(domain12)); + total_sum += constraint_coefficients[152] * value; + + // Constraint: ecdsa/signature0/exponentiate_key/add_points/slope. + value = (ecdsa_signature0_exponentiate_key_bit_0 * (column21_row9 - column21_row14) + - column21_row3 * (column21_row1 - column21_row6)) + * domain12.field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[153] * value; + + // Constraint: ecdsa/signature0/exponentiate_key/add_points/x. + value = (column21_row3 * column21_row3 + - ecdsa_signature0_exponentiate_key_bit_0 + * (column21_row1 + column21_row6 + column21_row17)) + * domain12.field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[154] * value; + + // Constraint: ecdsa/signature0/exponentiate_key/add_points/y. + value = (ecdsa_signature0_exponentiate_key_bit_0 * (column21_row9 + column21_row25) + - column21_row3 * (column21_row1 - column21_row17)) + * domain12.field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[155] * value; + + // Constraint: ecdsa/signature0/exponentiate_key/add_points/x_diff_inv. + value = (column21_row11 * (column21_row1 - column21_row6) - 1) + * domain12.field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[156] * value; + + // Constraint: ecdsa/signature0/exponentiate_key/copy_point/x. + value = (ecdsa_signature0_exponentiate_key_bit_neg_0 * (column21_row17 - column21_row1)) + * domain12.field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[157] * value; + + // Constraint: ecdsa/signature0/exponentiate_key/copy_point/y. + value = (ecdsa_signature0_exponentiate_key_bit_neg_0 * (column21_row25 - column21_row9)) + * domain12.field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[158] * value; + + // Constraint: ecdsa/signature0/init_gen/x. + value = (column21_row7 - global_values.ecdsa_sig_config.shift_point.x) + .field_div(&NonZeroFelt::from_felt_unchecked(domain17)); + total_sum += constraint_coefficients[159] * value; + + // Constraint: ecdsa/signature0/init_gen/y. + value = (column21_row23 + global_values.ecdsa_sig_config.shift_point.y) + .field_div(&NonZeroFelt::from_felt_unchecked(domain17)); + total_sum += constraint_coefficients[160] * value; + + // Constraint: ecdsa/signature0/init_key/x. + value = (column21_row1 - global_values.ecdsa_sig_config.shift_point.x) + .field_div(&NonZeroFelt::from_felt_unchecked(domain14)); + total_sum += constraint_coefficients[161] * value; + + // Constraint: ecdsa/signature0/init_key/y. + value = (column21_row9 - global_values.ecdsa_sig_config.shift_point.y) + .field_div(&NonZeroFelt::from_felt_unchecked(domain14)); + total_sum += constraint_coefficients[162] * value; + + // Constraint: ecdsa/signature0/add_results/slope. + value = (column21_row8183 + - (column21_row4089 + column21_row8191 * (column21_row8167 - column21_row4081))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain17)); + total_sum += constraint_coefficients[163] * value; + + // Constraint: ecdsa/signature0/add_results/x. + value = (column21_row8191 * column21_row8191 + - (column21_row8167 + column21_row4081 + column21_row4102)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain17)); + total_sum += constraint_coefficients[164] * value; + + // Constraint: ecdsa/signature0/add_results/y. + value = (column21_row8183 + column21_row4110 + - column21_row8191 * (column21_row8167 - column21_row4102)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain17)); + total_sum += constraint_coefficients[165] * value; + + // Constraint: ecdsa/signature0/add_results/x_diff_inv. + value = (column22_row8160 * (column21_row8167 - column21_row4081) - 1) + .field_div(&NonZeroFelt::from_felt_unchecked(domain17)); + total_sum += constraint_coefficients[166] * value; + + // Constraint: ecdsa/signature0/extract_r/slope. + value = (column21_row8185 + global_values.ecdsa_sig_config.shift_point.y + - column21_row4083 * (column21_row8177 - global_values.ecdsa_sig_config.shift_point.x)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain17)); + total_sum += constraint_coefficients[167] * value; + + // Constraint: ecdsa/signature0/extract_r/x. + value = (column21_row4083 * column21_row4083 + - (column21_row8177 + global_values.ecdsa_sig_config.shift_point.x + column21_row5)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain17)); + total_sum += constraint_coefficients[168] * value; + + // Constraint: ecdsa/signature0/extract_r/x_diff_inv. + value = (column21_row8179 * (column21_row8177 - global_values.ecdsa_sig_config.shift_point.x) + - 1) + .field_div(&NonZeroFelt::from_felt_unchecked(domain17)); + total_sum += constraint_coefficients[169] * value; + + // Constraint: ecdsa/signature0/z_nonzero. + value = (column21_row15 * column21_row4091 - 1) + .field_div(&NonZeroFelt::from_felt_unchecked(domain17)); + total_sum += constraint_coefficients[170] * value; + + // Constraint: ecdsa/signature0/r_and_w_nonzero. + value = (column21_row5 * column21_row4093 - 1) + .field_div(&NonZeroFelt::from_felt_unchecked(domain14)); + total_sum += constraint_coefficients[171] * value; + + // Constraint: ecdsa/signature0/q_on_curve/x_squared. + value = (column21_row8187 - column21_row6 * column21_row6) + .field_div(&NonZeroFelt::from_felt_unchecked(domain17)); + total_sum += constraint_coefficients[172] * value; + + // Constraint: ecdsa/signature0/q_on_curve/on_curve. + value = (column21_row14 * column21_row14 + - (column21_row6 * column21_row8187 + + global_values.ecdsa_sig_config.alpha * column21_row6 + + global_values.ecdsa_sig_config.beta)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain17)); + total_sum += constraint_coefficients[173] * value; + + // Constraint: ecdsa/init_addr. + value = (column19_row22 - global_values.initial_ecdsa_addr) + .field_div(&NonZeroFelt::from_felt_unchecked(domain19)); + total_sum += constraint_coefficients[174] * value; + + // Constraint: ecdsa/message_addr. + value = (column19_row4118 - (column19_row22 + 1)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain17)); + total_sum += constraint_coefficients[175] * value; + + // Constraint: ecdsa/pubkey_addr. + value = (column19_row8214 - (column19_row4118 + 1)) + * domain23.field_div(&NonZeroFelt::from_felt_unchecked(domain17)); + total_sum += constraint_coefficients[176] * value; + + // Constraint: ecdsa/message_value0. + value = + (column19_row4119 - column21_row15).field_div(&NonZeroFelt::from_felt_unchecked(domain17)); + total_sum += constraint_coefficients[177] * value; + + // Constraint: ecdsa/pubkey_value0. + value = (column19_row23 - column21_row6).field_div(&NonZeroFelt::from_felt_unchecked(domain17)); + total_sum += constraint_coefficients[178] * value; + + total_sum +} + +pub fn eval_oods_polynomial_inner( + column_values: &[Felt], + oods_values: &[Felt], + constraint_coefficients: &[Felt], + point: &Felt, + oods_point: &Felt, + trace_generator: &Felt, +) -> Felt { + // Compute powers. + let pow0 = trace_generator.pow(0_u128); + let pow1 = trace_generator.pow(8160_u128); + let pow2 = trace_generator.pow(4081_u128); + let pow3 = trace_generator.pow(1_u128); + let pow4 = pow3 * pow3; // pow(trace_generator, 2). + let pow5 = pow2 * pow4; // pow(trace_generator, 4083). + let pow6 = pow3 * pow4; // pow(trace_generator, 3). + let pow7 = pow3 * pow6; // pow(trace_generator, 4). + let pow8 = pow3 * pow7; // pow(trace_generator, 5). + let pow9 = pow3 * pow8; // pow(trace_generator, 6). + let pow10 = pow3 * pow9; // pow(trace_generator, 7). + let pow11 = pow1 * pow10; // pow(trace_generator, 8167). + let pow12 = pow3 * pow10; // pow(trace_generator, 8). + let pow13 = pow2 * pow12; // pow(trace_generator, 4089). + let pow14 = pow3 * pow12; // pow(trace_generator, 9). + let pow15 = pow3 * pow14; // pow(trace_generator, 10). + let pow16 = pow2 * pow15; // pow(trace_generator, 4091). + let pow17 = pow3 * pow15; // pow(trace_generator, 11). + let pow18 = pow3 * pow17; // pow(trace_generator, 12). + let pow19 = pow3 * pow18; // pow(trace_generator, 13). + let pow20 = pow3 * pow19; // pow(trace_generator, 14). + let pow21 = pow3 * pow20; // pow(trace_generator, 15). + let pow22 = pow2 * pow18; // pow(trace_generator, 4093). + let pow23 = pow3 * pow21; // pow(trace_generator, 16). + let pow24 = pow3 * pow23; // pow(trace_generator, 17). + let pow25 = pow7 * pow24; // pow(trace_generator, 21). + let pow26 = pow2 * pow25; // pow(trace_generator, 4102). + let pow27 = pow1 * pow24; // pow(trace_generator, 8177). + let pow28 = pow4 * pow27; // pow(trace_generator, 8179). + let pow29 = pow12 * pow26; // pow(trace_generator, 4110). + let pow30 = pow3 * pow25; // pow(trace_generator, 22). + let pow31 = pow3 * pow30; // pow(trace_generator, 23). + let pow32 = pow3 * pow31; // pow(trace_generator, 24). + let pow33 = pow3 * pow32; // pow(trace_generator, 25). + let pow34 = pow12 * pow29; // pow(trace_generator, 4118). + let pow35 = pow1 * pow31; // pow(trace_generator, 8183). + let pow36 = pow1 * pow33; // pow(trace_generator, 8185). + let pow37 = pow4 * pow36; // pow(trace_generator, 8187). + let pow38 = pow6 * pow33; // pow(trace_generator, 28). + let pow39 = pow4 * pow38; // pow(trace_generator, 30). + let pow40 = pow3 * pow39; // pow(trace_generator, 31). + let pow41 = pow1 * pow40; // pow(trace_generator, 8191). + let pow42 = pow10 * pow40; // pow(trace_generator, 38). + let pow43 = pow2 * pow42; // pow(trace_generator, 4119). + let pow44 = pow3 * pow42; // pow(trace_generator, 39). + let pow45 = pow8 * pow44; // pow(trace_generator, 44). + let pow46 = pow6 * pow45; // pow(trace_generator, 47). + let pow47 = pow12 * pow46; // pow(trace_generator, 55). + let pow48 = pow11 * pow46; // pow(trace_generator, 8214). + let pow49 = pow8 * pow47; // pow(trace_generator, 60). + let pow50 = pow15 * pow49; // pow(trace_generator, 70). + let pow51 = pow3 * pow50; // pow(trace_generator, 71). + let pow52 = pow8 * pow51; // pow(trace_generator, 76). + let pow53 = pow7 * pow52; // pow(trace_generator, 80). + let pow54 = pow18 * pow53; // pow(trace_generator, 92). + let pow55 = pow15 * pow54; // pow(trace_generator, 102). + let pow56 = pow3 * pow55; // pow(trace_generator, 103). + let pow57 = pow8 * pow56; // pow(trace_generator, 108). + let pow58 = pow23 * pow57; // pow(trace_generator, 124). + let pow59 = pow15 * pow58; // pow(trace_generator, 134). + let pow60 = pow3 * pow59; // pow(trace_generator, 135). + let pow61 = pow14 * pow60; // pow(trace_generator, 144). + let pow62 = pow31 * pow61; // pow(trace_generator, 167). + let pow63 = pow33 * pow62; // pow(trace_generator, 192). + let pow64 = pow3 * pow63; // pow(trace_generator, 193). + let pow65 = pow6 * pow64; // pow(trace_generator, 196). + let pow66 = pow3 * pow65; // pow(trace_generator, 197). + let pow67 = pow4 * pow66; // pow(trace_generator, 199). + let pow68 = pow14 * pow67; // pow(trace_generator, 208). + let pow69 = pow30 * pow68; // pow(trace_generator, 230). + let pow70 = pow25 * pow69; // pow(trace_generator, 251). + let pow71 = pow3 * pow70; // pow(trace_generator, 252). + let pow72 = pow6 * pow71; // pow(trace_generator, 255). + let pow73 = pow3 * pow72; // pow(trace_generator, 256). + let pow74 = pow72 * pow73; // pow(trace_generator, 511). + let pow75 = pow44 * pow73; // pow(trace_generator, 295). + let pow76 = pow10 * pow73; // pow(trace_generator, 263). + let pow77 = pow63 * pow76; // pow(trace_generator, 455). + let pow78 = pow62 * pow73; // pow(trace_generator, 423). + let pow79 = pow60 * pow73; // pow(trace_generator, 391). + let pow80 = pow51 * pow73; // pow(trace_generator, 327). + + // Fetch columns. + let column0 = column_values[0]; + let column1 = column_values[1]; + let column2 = column_values[2]; + let column3 = column_values[3]; + let column4 = column_values[4]; + let column5 = column_values[5]; + let column6 = column_values[6]; + let column7 = column_values[7]; + let column8 = column_values[8]; + let column9 = column_values[9]; + let column10 = column_values[10]; + let column11 = column_values[11]; + let column12 = column_values[12]; + let column13 = column_values[13]; + let column14 = column_values[14]; + let column15 = column_values[15]; + let column16 = column_values[16]; + let column17 = column_values[17]; + let column18 = column_values[18]; + let column19 = column_values[19]; + let column20 = column_values[20]; + let column21 = column_values[21]; + let column22 = column_values[22]; + let column23 = column_values[23]; + let column24 = column_values[24]; + + // Sum the OODS constraints on the trace polynomials. + let mut total_sum = Felt::ZERO; + + let mut value = (column0 - oods_values[0]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[0] * value; + + value = (column0 - oods_values[1]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow3 * oods_point)); + total_sum += constraint_coefficients[1] * value; + + value = (column0 - oods_values[2]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow7 * oods_point)); + total_sum += constraint_coefficients[2] * value; + + value = (column0 - oods_values[3]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow12 * oods_point)); + total_sum += constraint_coefficients[3] * value; + + value = (column0 - oods_values[4]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow18 * oods_point)); + total_sum += constraint_coefficients[4] * value; + + value = (column0 - oods_values[5]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow38 * oods_point)); + total_sum += constraint_coefficients[5] * value; + + value = (column0 - oods_values[6]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow45 * oods_point)); + total_sum += constraint_coefficients[6] * value; + + value = (column0 - oods_values[7]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow49 * oods_point)); + total_sum += constraint_coefficients[7] * value; + + value = (column0 - oods_values[8]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow52 * oods_point)); + total_sum += constraint_coefficients[8] * value; + + value = (column0 - oods_values[9]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow54 * oods_point)); + total_sum += constraint_coefficients[9] * value; + + value = (column0 - oods_values[10]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow57 * oods_point)); + total_sum += constraint_coefficients[10] * value; + + value = (column0 - oods_values[11]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow58 * oods_point)); + total_sum += constraint_coefficients[11] * value; + + value = (column1 - oods_values[12]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[12] * value; + + value = (column1 - oods_values[13]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow3 * oods_point)); + total_sum += constraint_coefficients[13] * value; + + value = (column1 - oods_values[14]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow4 * oods_point)); + total_sum += constraint_coefficients[14] * value; + + value = (column1 - oods_values[15]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow6 * oods_point)); + total_sum += constraint_coefficients[15] * value; + + value = (column1 - oods_values[16]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow7 * oods_point)); + total_sum += constraint_coefficients[16] * value; + + value = (column1 - oods_values[17]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow8 * oods_point)); + total_sum += constraint_coefficients[17] * value; + + value = (column1 - oods_values[18]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow9 * oods_point)); + total_sum += constraint_coefficients[18] * value; + + value = (column1 - oods_values[19]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow10 * oods_point)); + total_sum += constraint_coefficients[19] * value; + + value = (column1 - oods_values[20]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow12 * oods_point)); + total_sum += constraint_coefficients[20] * value; + + value = (column1 - oods_values[21]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow14 * oods_point)); + total_sum += constraint_coefficients[21] * value; + + value = (column1 - oods_values[22]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow15 * oods_point)); + total_sum += constraint_coefficients[22] * value; + + value = (column1 - oods_values[23]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow17 * oods_point)); + total_sum += constraint_coefficients[23] * value; + + value = (column1 - oods_values[24]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow18 * oods_point)); + total_sum += constraint_coefficients[24] * value; + + value = (column1 - oods_values[25]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow19 * oods_point)); + total_sum += constraint_coefficients[25] * value; + + value = (column1 - oods_values[26]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow20 * oods_point)); + total_sum += constraint_coefficients[26] * value; + + value = (column1 - oods_values[27]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow21 * oods_point)); + total_sum += constraint_coefficients[27] * value; + + value = (column2 - oods_values[28]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[28] * value; + + value = (column2 - oods_values[29]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow3 * oods_point)); + total_sum += constraint_coefficients[29] * value; + + value = (column3 - oods_values[30]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[30] * value; + + value = (column3 - oods_values[31]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow3 * oods_point)); + total_sum += constraint_coefficients[31] * value; + + value = (column3 - oods_values[32]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow72 * oods_point)); + total_sum += constraint_coefficients[32] * value; + + value = (column3 - oods_values[33]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow73 * oods_point)); + total_sum += constraint_coefficients[33] * value; + + value = (column3 - oods_values[34]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow74 * oods_point)); + total_sum += constraint_coefficients[34] * value; + + value = (column4 - oods_values[35]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[35] * value; + + value = (column4 - oods_values[36]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow3 * oods_point)); + total_sum += constraint_coefficients[36] * value; + + value = (column4 - oods_values[37]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow72 * oods_point)); + total_sum += constraint_coefficients[37] * value; + + value = (column4 - oods_values[38]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow73 * oods_point)); + total_sum += constraint_coefficients[38] * value; + + value = (column5 - oods_values[39]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[39] * value; + + value = (column5 - oods_values[40]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow3 * oods_point)); + total_sum += constraint_coefficients[40] * value; + + value = (column5 - oods_values[41]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow63 * oods_point)); + total_sum += constraint_coefficients[41] * value; + + value = (column5 - oods_values[42]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow64 * oods_point)); + total_sum += constraint_coefficients[42] * value; + + value = (column5 - oods_values[43]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow65 * oods_point)); + total_sum += constraint_coefficients[43] * value; + + value = (column5 - oods_values[44]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow66 * oods_point)); + total_sum += constraint_coefficients[44] * value; + + value = (column5 - oods_values[45]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow70 * oods_point)); + total_sum += constraint_coefficients[45] * value; + + value = (column5 - oods_values[46]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow71 * oods_point)); + total_sum += constraint_coefficients[46] * value; + + value = (column5 - oods_values[47]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow73 * oods_point)); + total_sum += constraint_coefficients[47] * value; + + value = (column6 - oods_values[48]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[48] * value; + + value = (column6 - oods_values[49]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow3 * oods_point)); + total_sum += constraint_coefficients[49] * value; + + value = (column6 - oods_values[50]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow72 * oods_point)); + total_sum += constraint_coefficients[50] * value; + + value = (column6 - oods_values[51]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow73 * oods_point)); + total_sum += constraint_coefficients[51] * value; + + value = (column6 - oods_values[52]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow74 * oods_point)); + total_sum += constraint_coefficients[52] * value; + + value = (column7 - oods_values[53]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[53] * value; + + value = (column7 - oods_values[54]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow3 * oods_point)); + total_sum += constraint_coefficients[54] * value; + + value = (column7 - oods_values[55]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow72 * oods_point)); + total_sum += constraint_coefficients[55] * value; + + value = (column7 - oods_values[56]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow73 * oods_point)); + total_sum += constraint_coefficients[56] * value; + + value = (column8 - oods_values[57]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[57] * value; + + value = (column8 - oods_values[58]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow3 * oods_point)); + total_sum += constraint_coefficients[58] * value; + + value = (column8 - oods_values[59]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow63 * oods_point)); + total_sum += constraint_coefficients[59] * value; + + value = (column8 - oods_values[60]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow64 * oods_point)); + total_sum += constraint_coefficients[60] * value; + + value = (column8 - oods_values[61]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow65 * oods_point)); + total_sum += constraint_coefficients[61] * value; + + value = (column8 - oods_values[62]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow66 * oods_point)); + total_sum += constraint_coefficients[62] * value; + + value = (column8 - oods_values[63]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow70 * oods_point)); + total_sum += constraint_coefficients[63] * value; + + value = (column8 - oods_values[64]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow71 * oods_point)); + total_sum += constraint_coefficients[64] * value; + + value = (column8 - oods_values[65]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow73 * oods_point)); + total_sum += constraint_coefficients[65] * value; + + value = (column9 - oods_values[66]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[66] * value; + + value = (column9 - oods_values[67]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow3 * oods_point)); + total_sum += constraint_coefficients[67] * value; + + value = (column9 - oods_values[68]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow72 * oods_point)); + total_sum += constraint_coefficients[68] * value; + + value = (column9 - oods_values[69]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow73 * oods_point)); + total_sum += constraint_coefficients[69] * value; + + value = (column9 - oods_values[70]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow74 * oods_point)); + total_sum += constraint_coefficients[70] * value; + + value = (column10 - oods_values[71]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[71] * value; + + value = (column10 - oods_values[72]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow3 * oods_point)); + total_sum += constraint_coefficients[72] * value; + + value = (column10 - oods_values[73]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow72 * oods_point)); + total_sum += constraint_coefficients[73] * value; + + value = (column10 - oods_values[74]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow73 * oods_point)); + total_sum += constraint_coefficients[74] * value; + + value = (column11 - oods_values[75]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[75] * value; + + value = (column11 - oods_values[76]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow3 * oods_point)); + total_sum += constraint_coefficients[76] * value; + + value = (column11 - oods_values[77]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow63 * oods_point)); + total_sum += constraint_coefficients[77] * value; + + value = (column11 - oods_values[78]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow64 * oods_point)); + total_sum += constraint_coefficients[78] * value; + + value = (column11 - oods_values[79]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow65 * oods_point)); + total_sum += constraint_coefficients[79] * value; + + value = (column11 - oods_values[80]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow66 * oods_point)); + total_sum += constraint_coefficients[80] * value; + + value = (column11 - oods_values[81]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow70 * oods_point)); + total_sum += constraint_coefficients[81] * value; + + value = (column11 - oods_values[82]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow71 * oods_point)); + total_sum += constraint_coefficients[82] * value; + + value = (column11 - oods_values[83]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow73 * oods_point)); + total_sum += constraint_coefficients[83] * value; + + value = (column12 - oods_values[84]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[84] * value; + + value = (column12 - oods_values[85]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow3 * oods_point)); + total_sum += constraint_coefficients[85] * value; + + value = (column12 - oods_values[86]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow72 * oods_point)); + total_sum += constraint_coefficients[86] * value; + + value = (column12 - oods_values[87]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow73 * oods_point)); + total_sum += constraint_coefficients[87] * value; + + value = (column12 - oods_values[88]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow74 * oods_point)); + total_sum += constraint_coefficients[88] * value; + + value = (column13 - oods_values[89]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[89] * value; + + value = (column13 - oods_values[90]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow3 * oods_point)); + total_sum += constraint_coefficients[90] * value; + + value = (column13 - oods_values[91]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow72 * oods_point)); + total_sum += constraint_coefficients[91] * value; + + value = (column13 - oods_values[92]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow73 * oods_point)); + total_sum += constraint_coefficients[92] * value; + + value = (column14 - oods_values[93]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[93] * value; + + value = (column14 - oods_values[94]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow3 * oods_point)); + total_sum += constraint_coefficients[94] * value; + + value = (column14 - oods_values[95]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow63 * oods_point)); + total_sum += constraint_coefficients[95] * value; + + value = (column14 - oods_values[96]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow64 * oods_point)); + total_sum += constraint_coefficients[96] * value; + + value = (column14 - oods_values[97]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow65 * oods_point)); + total_sum += constraint_coefficients[97] * value; + + value = (column14 - oods_values[98]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow66 * oods_point)); + total_sum += constraint_coefficients[98] * value; + + value = (column14 - oods_values[99]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow70 * oods_point)); + total_sum += constraint_coefficients[99] * value; + + value = (column14 - oods_values[100]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow71 * oods_point)); + total_sum += constraint_coefficients[100] * value; + + value = (column14 - oods_values[101]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow73 * oods_point)); + total_sum += constraint_coefficients[101] * value; + + value = (column15 - oods_values[102]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[102] * value; + + value = (column15 - oods_values[103]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow72 * oods_point)); + total_sum += constraint_coefficients[103] * value; + + value = (column16 - oods_values[104]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[104] * value; + + value = (column16 - oods_values[105]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow72 * oods_point)); + total_sum += constraint_coefficients[105] * value; + + value = (column17 - oods_values[106]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[106] * value; + + value = (column17 - oods_values[107]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow72 * oods_point)); + total_sum += constraint_coefficients[107] * value; + + value = (column18 - oods_values[108]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[108] * value; + + value = (column18 - oods_values[109]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow72 * oods_point)); + total_sum += constraint_coefficients[109] * value; + + value = (column19 - oods_values[110]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[110] * value; + + value = (column19 - oods_values[111]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow3 * oods_point)); + total_sum += constraint_coefficients[111] * value; + + value = (column19 - oods_values[112]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow4 * oods_point)); + total_sum += constraint_coefficients[112] * value; + + value = (column19 - oods_values[113]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow6 * oods_point)); + total_sum += constraint_coefficients[113] * value; + + value = (column19 - oods_values[114]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow7 * oods_point)); + total_sum += constraint_coefficients[114] * value; + + value = (column19 - oods_values[115]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow8 * oods_point)); + total_sum += constraint_coefficients[115] * value; + + value = (column19 - oods_values[116]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow9 * oods_point)); + total_sum += constraint_coefficients[116] * value; + + value = (column19 - oods_values[117]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow10 * oods_point)); + total_sum += constraint_coefficients[117] * value; + + value = (column19 - oods_values[118]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow12 * oods_point)); + total_sum += constraint_coefficients[118] * value; + + value = (column19 - oods_values[119]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow14 * oods_point)); + total_sum += constraint_coefficients[119] * value; + + value = (column19 - oods_values[120]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow18 * oods_point)); + total_sum += constraint_coefficients[120] * value; + + value = (column19 - oods_values[121]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow19 * oods_point)); + total_sum += constraint_coefficients[121] * value; + + value = (column19 - oods_values[122]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow23 * oods_point)); + total_sum += constraint_coefficients[122] * value; + + value = (column19 - oods_values[123]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow30 * oods_point)); + total_sum += constraint_coefficients[123] * value; + + value = (column19 - oods_values[124]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow31 * oods_point)); + total_sum += constraint_coefficients[124] * value; + + value = (column19 - oods_values[125]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow42 * oods_point)); + total_sum += constraint_coefficients[125] * value; + + value = (column19 - oods_values[126]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow44 * oods_point)); + total_sum += constraint_coefficients[126] * value; + + value = (column19 - oods_values[127]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow50 * oods_point)); + total_sum += constraint_coefficients[127] * value; + + value = (column19 - oods_values[128]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow51 * oods_point)); + total_sum += constraint_coefficients[128] * value; + + value = (column19 - oods_values[129]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow55 * oods_point)); + total_sum += constraint_coefficients[129] * value; + + value = (column19 - oods_values[130]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow56 * oods_point)); + total_sum += constraint_coefficients[130] * value; + + value = (column19 - oods_values[131]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow59 * oods_point)); + total_sum += constraint_coefficients[131] * value; + + value = (column19 - oods_values[132]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow60 * oods_point)); + total_sum += constraint_coefficients[132] * value; + + value = (column19 - oods_values[133]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow62 * oods_point)); + total_sum += constraint_coefficients[133] * value; + + value = (column19 - oods_values[134]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow67 * oods_point)); + total_sum += constraint_coefficients[134] * value; + + value = (column19 - oods_values[135]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow69 * oods_point)); + total_sum += constraint_coefficients[135] * value; + + value = (column19 - oods_values[136]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow76 * oods_point)); + total_sum += constraint_coefficients[136] * value; + + value = (column19 - oods_values[137]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow75 * oods_point)); + total_sum += constraint_coefficients[137] * value; + + value = (column19 - oods_values[138]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow80 * oods_point)); + total_sum += constraint_coefficients[138] * value; + + value = (column19 - oods_values[139]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow79 * oods_point)); + total_sum += constraint_coefficients[139] * value; + + value = (column19 - oods_values[140]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow78 * oods_point)); + total_sum += constraint_coefficients[140] * value; + + value = (column19 - oods_values[141]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow77 * oods_point)); + total_sum += constraint_coefficients[141] * value; + + value = (column19 - oods_values[142]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow34 * oods_point)); + total_sum += constraint_coefficients[142] * value; + + value = (column19 - oods_values[143]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow43 * oods_point)); + total_sum += constraint_coefficients[143] * value; + + value = (column19 - oods_values[144]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow48 * oods_point)); + total_sum += constraint_coefficients[144] * value; + + value = (column20 - oods_values[145]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[145] * value; + + value = (column20 - oods_values[146]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow3 * oods_point)); + total_sum += constraint_coefficients[146] * value; + + value = (column20 - oods_values[147]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow4 * oods_point)); + total_sum += constraint_coefficients[147] * value; + + value = (column20 - oods_values[148]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow6 * oods_point)); + total_sum += constraint_coefficients[148] * value; + + value = (column21 - oods_values[149]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[149] * value; + + value = (column21 - oods_values[150]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow3 * oods_point)); + total_sum += constraint_coefficients[150] * value; + + value = (column21 - oods_values[151]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow4 * oods_point)); + total_sum += constraint_coefficients[151] * value; + + value = (column21 - oods_values[152]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow6 * oods_point)); + total_sum += constraint_coefficients[152] * value; + + value = (column21 - oods_values[153]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow7 * oods_point)); + total_sum += constraint_coefficients[153] * value; + + value = (column21 - oods_values[154]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow8 * oods_point)); + total_sum += constraint_coefficients[154] * value; + + value = (column21 - oods_values[155]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow9 * oods_point)); + total_sum += constraint_coefficients[155] * value; + + value = (column21 - oods_values[156]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow10 * oods_point)); + total_sum += constraint_coefficients[156] * value; + + value = (column21 - oods_values[157]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow12 * oods_point)); + total_sum += constraint_coefficients[157] * value; + + value = (column21 - oods_values[158]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow14 * oods_point)); + total_sum += constraint_coefficients[158] * value; + + value = (column21 - oods_values[159]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow15 * oods_point)); + total_sum += constraint_coefficients[159] * value; + + value = (column21 - oods_values[160]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow17 * oods_point)); + total_sum += constraint_coefficients[160] * value; + + value = (column21 - oods_values[161]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow18 * oods_point)); + total_sum += constraint_coefficients[161] * value; + + value = (column21 - oods_values[162]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow19 * oods_point)); + total_sum += constraint_coefficients[162] * value; + + value = (column21 - oods_values[163]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow20 * oods_point)); + total_sum += constraint_coefficients[163] * value; + + value = (column21 - oods_values[164]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow21 * oods_point)); + total_sum += constraint_coefficients[164] * value; + + value = (column21 - oods_values[165]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow23 * oods_point)); + total_sum += constraint_coefficients[165] * value; + + value = (column21 - oods_values[166]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow24 * oods_point)); + total_sum += constraint_coefficients[166] * value; + + value = (column21 - oods_values[167]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow25 * oods_point)); + total_sum += constraint_coefficients[167] * value; + + value = (column21 - oods_values[168]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow30 * oods_point)); + total_sum += constraint_coefficients[168] * value; + + value = (column21 - oods_values[169]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow31 * oods_point)); + total_sum += constraint_coefficients[169] * value; + + value = (column21 - oods_values[170]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow32 * oods_point)); + total_sum += constraint_coefficients[170] * value; + + value = (column21 - oods_values[171]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow33 * oods_point)); + total_sum += constraint_coefficients[171] * value; + + value = (column21 - oods_values[172]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow39 * oods_point)); + total_sum += constraint_coefficients[172] * value; + + value = (column21 - oods_values[173]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow40 * oods_point)); + total_sum += constraint_coefficients[173] * value; + + value = (column21 - oods_values[174]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow44 * oods_point)); + total_sum += constraint_coefficients[174] * value; + + value = (column21 - oods_values[175]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow46 * oods_point)); + total_sum += constraint_coefficients[175] * value; + + value = (column21 - oods_values[176]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow47 * oods_point)); + total_sum += constraint_coefficients[176] * value; + + value = (column21 - oods_values[177]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow2 * oods_point)); + total_sum += constraint_coefficients[177] * value; + + value = (column21 - oods_values[178]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow5 * oods_point)); + total_sum += constraint_coefficients[178] * value; + + value = (column21 - oods_values[179]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow13 * oods_point)); + total_sum += constraint_coefficients[179] * value; + + value = (column21 - oods_values[180]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow16 * oods_point)); + total_sum += constraint_coefficients[180] * value; + + value = (column21 - oods_values[181]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow22 * oods_point)); + total_sum += constraint_coefficients[181] * value; + + value = (column21 - oods_values[182]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow26 * oods_point)); + total_sum += constraint_coefficients[182] * value; + + value = (column21 - oods_values[183]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow29 * oods_point)); + total_sum += constraint_coefficients[183] * value; + + value = (column21 - oods_values[184]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow11 * oods_point)); + total_sum += constraint_coefficients[184] * value; + + value = (column21 - oods_values[185]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow27 * oods_point)); + total_sum += constraint_coefficients[185] * value; + + value = (column21 - oods_values[186]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow28 * oods_point)); + total_sum += constraint_coefficients[186] * value; + + value = (column21 - oods_values[187]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow35 * oods_point)); + total_sum += constraint_coefficients[187] * value; + + value = (column21 - oods_values[188]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow36 * oods_point)); + total_sum += constraint_coefficients[188] * value; + + value = (column21 - oods_values[189]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow37 * oods_point)); + total_sum += constraint_coefficients[189] * value; + + value = (column21 - oods_values[190]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow41 * oods_point)); + total_sum += constraint_coefficients[190] * value; + + value = (column22 - oods_values[191]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[191] * value; + + value = (column22 - oods_values[192]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow23 * oods_point)); + total_sum += constraint_coefficients[192] * value; + + value = (column22 - oods_values[193]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow53 * oods_point)); + total_sum += constraint_coefficients[193] * value; + + value = (column22 - oods_values[194]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow61 * oods_point)); + total_sum += constraint_coefficients[194] * value; + + value = (column22 - oods_values[195]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow68 * oods_point)); + total_sum += constraint_coefficients[195] * value; + + value = (column22 - oods_values[196]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow1 * oods_point)); + total_sum += constraint_coefficients[196] * value; + + value = (column23 - oods_values[197]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[197] * value; + + value = (column23 - oods_values[198]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow3 * oods_point)); + total_sum += constraint_coefficients[198] * value; + + value = (column24 - oods_values[199]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[199] * value; + + value = (column24 - oods_values[200]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow4 * oods_point)); + total_sum += constraint_coefficients[200] * value; + + // Sum the OODS boundary constraints on the composition polynomials. + let oods_point_to_deg = oods_point.pow(CONSTRAINT_DEGREE); + + value = (column_values[(NUM_COLUMNS_FIRST + NUM_COLUMNS_SECOND) as usize] - oods_values[201]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - oods_point_to_deg)); + total_sum += constraint_coefficients[201] * value; + + value = (column_values[(NUM_COLUMNS_FIRST + NUM_COLUMNS_SECOND + 1) as usize] + - oods_values[202]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - oods_point_to_deg)); + total_sum += constraint_coefficients[202] * value; + + total_sum +} diff --git a/crates/air/src/layout/small/global_values.rs b/crates/air/src/layout/small/global_values.rs new file mode 100644 index 0000000..c89b37e --- /dev/null +++ b/crates/air/src/layout/small/global_values.rs @@ -0,0 +1,102 @@ +use cairovm_verifier_transcript::transcript::Transcript; +use serde::{Deserialize, Serialize}; +use serde_with::serde_as; +use starknet_core::serde::unsigned_field_element::UfeHex; +use starknet_crypto::Felt; + +#[serde_as] +#[derive(Debug, PartialEq, Serialize, Deserialize)] +pub struct EcPoint { + #[serde_as(as = "UfeHex")] + pub x: Felt, + #[serde_as(as = "UfeHex")] + pub y: Felt, +} + +#[serde_as] +#[derive(Debug, PartialEq, Serialize, Deserialize)] +pub struct EcdsaSigConfig { + #[serde_as(as = "UfeHex")] + pub alpha: Felt, + #[serde_as(as = "UfeHex")] + pub beta: Felt, + pub shift_point: EcPoint, +} + +// Accumulation of member expressions for auto generated composition polynomial code. +#[serde_as] +#[derive(Debug, PartialEq, Serialize, Deserialize)] +pub struct GlobalValues { + // Public input. + #[serde_as(as = "UfeHex")] + pub trace_length: Felt, + #[serde_as(as = "UfeHex")] + pub initial_pc: Felt, + #[serde_as(as = "UfeHex")] + pub final_pc: Felt, + #[serde_as(as = "UfeHex")] + pub initial_ap: Felt, + #[serde_as(as = "UfeHex")] + pub final_ap: Felt, + #[serde_as(as = "UfeHex")] + pub initial_pedersen_addr: Felt, + #[serde_as(as = "UfeHex")] + pub initial_range_check_addr: Felt, + #[serde_as(as = "UfeHex")] + pub initial_ecdsa_addr: Felt, + #[serde_as(as = "UfeHex")] + pub range_check_min: Felt, + #[serde_as(as = "UfeHex")] + pub range_check_max: Felt, + // Constants. + #[serde_as(as = "UfeHex")] + pub offset_size: Felt, + #[serde_as(as = "UfeHex")] + pub half_offset_size: Felt, + pub pedersen_shift_point: EcPoint, + pub ecdsa_sig_config: EcdsaSigConfig, + // Periodic columns. + #[serde_as(as = "UfeHex")] + pub pedersen_points_x: Felt, + #[serde_as(as = "UfeHex")] + pub pedersen_points_y: Felt, + #[serde_as(as = "UfeHex")] + pub ecdsa_generator_points_x: Felt, + #[serde_as(as = "UfeHex")] + pub ecdsa_generator_points_y: Felt, + // Interaction elements. + #[serde_as(as = "UfeHex")] + pub memory_multi_column_perm_perm_interaction_elm: Felt, + #[serde_as(as = "UfeHex")] + pub memory_multi_column_perm_hash_interaction_elm0: Felt, + #[serde_as(as = "UfeHex")] + pub range_check16_perm_interaction_elm: Felt, + // Permutation products. + #[serde_as(as = "UfeHex")] + pub memory_multi_column_perm_perm_public_memory_prod: Felt, + #[serde_as(as = "UfeHex")] + pub range_check16_perm_public_memory_prod: Felt, +} + +// Elements that are sent from the prover after the commitment on the original trace. +// Used for components after the first interaction, e.g., memory and range check. +#[serde_as] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +pub struct InteractionElements { + #[serde_as(as = "UfeHex")] + pub memory_multi_column_perm_perm_interaction_elm: Felt, + #[serde_as(as = "UfeHex")] + pub memory_multi_column_perm_hash_interaction_elm0: Felt, + #[serde_as(as = "UfeHex")] + pub range_check16_perm_interaction_elm: Felt, +} + +impl InteractionElements { + pub fn new(transcript: &mut Transcript) -> Self { + Self { + memory_multi_column_perm_perm_interaction_elm: transcript.random_felt_to_prover(), + memory_multi_column_perm_hash_interaction_elm0: transcript.random_felt_to_prover(), + range_check16_perm_interaction_elm: transcript.random_felt_to_prover(), + } + } +} diff --git a/crates/air/src/layout/small/mod.rs b/crates/air/src/layout/small/mod.rs new file mode 100644 index 0000000..8828b62 --- /dev/null +++ b/crates/air/src/layout/small/mod.rs @@ -0,0 +1,396 @@ +pub mod autogenerated; +pub mod global_values; + +use crate::{ + layout::stark_curve, + periodic_columns::{eval_ecdsa_x, eval_ecdsa_y, eval_pedersen_x, eval_pedersen_y}, + public_memory::{PublicInput, INITIAL_PC, MAX_ADDRESS, MAX_LOG_N_STEPS, MAX_RANGE_CHECK}, +}; +use bail_out::ensure; +use cairovm_verifier_commitment::table::{commit::table_commit, decommit::table_decommit}; +use global_values::{EcPoint, EcdsaSigConfig, GlobalValues, InteractionElements}; +use starknet_core::types::NonZeroFelt; +use starknet_crypto::{poseidon_hash_many, Felt}; + +use super::{CompositionPolyEvalError, LayoutTrait, PublicInputError}; + +pub const CONSTRAINT_DEGREE: u32 = 2; +pub const CPU_COMPONENT_HEIGHT: u32 = 16; +pub const CPU_COMPONENT_STEP: u32 = 1; +pub const ECDSA_BUILTIN_RATIO: u32 = 512; +pub const ECDSA_BUILTIN_REPETITIONS: u32 = 1; +pub const ECDSA_BUILTIN_ROW_RATIO: u32 = 8192; +pub const ECDSA_ELEMENT_BITS: u32 = 251; +pub const ECDSA_ELEMENT_HEIGHT: u32 = 256; +pub const HAS_BITWISE_BUILTIN: u32 = 0; +pub const HAS_DILUTED_POOL: u32 = 0; +pub const HAS_EC_OP_BUILTIN: u32 = 0; +pub const HAS_ECDSA_BUILTIN: u32 = 1; +pub const HAS_KECCAK_BUILTIN: u32 = 0; +pub const HAS_OUTPUT_BUILTIN: u32 = 1; +pub const HAS_PEDERSEN_BUILTIN: u32 = 1; +pub const HAS_POSEIDON_BUILTIN: u32 = 0; +pub const HAS_RANGE_CHECK_BUILTIN: u32 = 1; +pub const HAS_RANGE_CHECK96_BUILTIN: u32 = 0; +pub const IS_DYNAMIC_AIR: u32 = 0; +pub const LAYOUT_CODE: Felt = Felt::from_hex_unchecked("0x736d616c6c"); +pub const LOG_CPU_COMPONENT_HEIGHT: u32 = 4; +pub const MASK_SIZE: u32 = 201; +pub const N_CONSTRAINTS: u32 = 179; +pub const N_DYNAMIC_PARAMS: u32 = 0; +pub const NUM_COLUMNS_FIRST: u32 = 23; +pub const NUM_COLUMNS_SECOND: u32 = 2; +pub const PEDERSEN_BUILTIN_RATIO: u32 = 8; +pub const PEDERSEN_BUILTIN_REPETITIONS: u32 = 4; +pub const PEDERSEN_BUILTIN_ROW_RATIO: u32 = 128; +pub const PUBLIC_MEMORY_STEP: u32 = 8; +pub const RANGE_CHECK_BUILTIN_RATIO: u32 = 8; +pub const RANGE_CHECK_BUILTIN_ROW_RATIO: u32 = 128; +pub const RANGE_CHECK_N_PARTS: u32 = 8; + +pub mod segments { + pub const ECDSA: usize = 5; + pub const N_SEGMENTS: usize = 6; + pub const PEDERSEN: usize = 3; + pub const RANGE_CHECK: usize = 4; +} + +pub mod builtins { + use starknet_crypto::Felt; + + pub const OUTPUT: Felt = Felt::from_hex_unchecked("0x6F7574707574"); + pub const PEDERSEN: Felt = Felt::from_hex_unchecked("0x706564657273656E"); + pub const RANGE_CHECK: Felt = Felt::from_hex_unchecked("0x72616E67655F636865636B"); + pub const ECDSA: Felt = Felt::from_hex_unchecked("0x6563647361"); +} + +// Pedersen builtin +pub const SHIFT_POINT_X: Felt = + Felt::from_hex_unchecked("0x49ee3eba8c1600700ee1b87eb599f16716b0b1022947733551fde4050ca6804"); +pub const SHIFT_POINT_Y: Felt = + Felt::from_hex_unchecked("0x3ca0cfe4b3bc6ddf346d49d06ea0ed34e621062c0e056c1d0405d266e10268a"); + +pub const BUILTINS: [Felt; 4] = + [builtins::OUTPUT, builtins::PEDERSEN, builtins::RANGE_CHECK, builtins::ECDSA]; + +pub struct RecursiveLayout {} + +impl LayoutTrait for RecursiveLayout { + type InteractionElements = InteractionElements; + fn eval_composition_polynomial( + interaction_elements: &Self::InteractionElements, + public_input: &PublicInput, + mask_values: &[Felt], + constraint_coefficients: &[Felt], + point: &Felt, + trace_domain_size: &Felt, + trace_generator: &Felt, + ) -> Result { + let memory_z = interaction_elements.memory_multi_column_perm_perm_interaction_elm; + let memory_alpha = interaction_elements.memory_multi_column_perm_hash_interaction_elm0; + + // Public memory + let public_memory_column_size = trace_domain_size + .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(PUBLIC_MEMORY_STEP))); + assert!(public_memory_column_size < u128::MAX.into()); + let public_memory_prod_ratio = public_input.get_public_memory_product_ratio( + memory_z, + memory_alpha, + public_memory_column_size, + ); + + // Periodic columns + let n_steps = Felt::TWO.pow_felt(&public_input.log_n_steps); + let n_pedersen_hash_copies = n_steps.field_div(&NonZeroFelt::from_felt_unchecked( + Felt::from(PEDERSEN_BUILTIN_RATIO * PEDERSEN_BUILTIN_REPETITIONS), + )); + // TODO fix to ensure! + assert!(n_pedersen_hash_copies < u128::MAX.into()); + let pedersen_point = point.pow_felt(&n_pedersen_hash_copies); + let pedersen_points_x = eval_pedersen_x(pedersen_point); + let pedersen_points_y = eval_pedersen_y(pedersen_point); + + let n_ecdsa_signature_copies = n_steps.field_div(&NonZeroFelt::from_felt_unchecked( + Felt::from(ECDSA_BUILTIN_RATIO * ECDSA_BUILTIN_REPETITIONS), + )); + assert!(n_ecdsa_signature_copies < u128::MAX.into()); + let ecdsa_point = point.pow_felt(&n_ecdsa_signature_copies); + let ecdsa_generator_points_x = eval_ecdsa_x(ecdsa_point); + let ecdsa_generator_points_y = eval_ecdsa_y(ecdsa_point); + + let global_values = GlobalValues { + trace_length: *trace_domain_size, + initial_pc: public_input + .segments + .get(crate::layout::segments::PROGRAM) + .ok_or(CompositionPolyEvalError::SegmentMissing { + segment: crate::layout::segments::PROGRAM, + })? + .begin_addr, + final_pc: public_input + .segments + .get(crate::layout::segments::PROGRAM) + .ok_or(CompositionPolyEvalError::SegmentMissing { + segment: crate::layout::segments::PROGRAM, + })? + .stop_ptr, + initial_ap: public_input + .segments + .get(crate::layout::segments::EXECUTION) + .ok_or(CompositionPolyEvalError::SegmentMissing { + segment: crate::layout::segments::EXECUTION, + })? + .begin_addr, + final_ap: public_input + .segments + .get(crate::layout::segments::EXECUTION) + .ok_or(CompositionPolyEvalError::SegmentMissing { + segment: crate::layout::segments::EXECUTION, + })? + .stop_ptr, + initial_pedersen_addr: public_input + .segments + .get(segments::PEDERSEN) + .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::PEDERSEN })? + .begin_addr, + initial_range_check_addr: public_input + .segments + .get(segments::RANGE_CHECK) + .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::RANGE_CHECK })? + .begin_addr, + initial_ecdsa_addr: public_input + .segments + .get(segments::ECDSA) + .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::ECDSA })? + .begin_addr, + range_check_min: public_input.range_check_min, + range_check_max: public_input.range_check_max, + offset_size: Felt::from(0x10000), // 2**16 + half_offset_size: Felt::from(0x8000), // 2**15 + pedersen_shift_point: EcPoint { x: SHIFT_POINT_X, y: SHIFT_POINT_Y }, + ecdsa_sig_config: EcdsaSigConfig { + alpha: stark_curve::ALPHA, + beta: stark_curve::BETA, + shift_point: EcPoint { x: SHIFT_POINT_X, y: SHIFT_POINT_Y }, + }, + pedersen_points_x, + pedersen_points_y, + ecdsa_generator_points_x, + ecdsa_generator_points_y, + memory_multi_column_perm_perm_interaction_elm: memory_z, + memory_multi_column_perm_hash_interaction_elm0: memory_alpha, + range_check16_perm_interaction_elm: interaction_elements + .range_check16_perm_interaction_elm, + memory_multi_column_perm_perm_public_memory_prod: public_memory_prod_ratio, + range_check16_perm_public_memory_prod: Felt::from(1), + }; + + Ok(autogenerated::eval_composition_polynomial_inner( + mask_values, + constraint_coefficients, + point, + trace_generator, + &global_values, + )) + } + fn eval_oods_polynomial( + column_values: &[Felt], + oods_values: &[Felt], + constraint_coefficients: &[Felt], + point: &Felt, + oods_point: &Felt, + trace_generator: &Felt, + ) -> Felt { + autogenerated::eval_oods_polynomial_inner( + column_values, + oods_values, + constraint_coefficients, + point, + oods_point, + trace_generator, + ) + } + fn traces_commit( + transcript: &mut cairovm_verifier_transcript::transcript::Transcript, + unsent_commitment: &crate::trace::UnsentCommitment, + config: crate::trace::config::Config, + ) -> crate::trace::Commitment { + // Read original commitment. + let original_commitment = + table_commit(transcript, unsent_commitment.original, config.original); + + // Generate interaction elements for the first interaction. + let interaction_elements = Self::InteractionElements::new(transcript); + + // Read interaction commitment. + let interaction_commitment = + table_commit(transcript, unsent_commitment.interaction, config.interaction); + + crate::trace::Commitment { + original: original_commitment, + interaction_elements, + interaction: interaction_commitment, + } + } + fn traces_decommit( + queries: &[Felt], + commitment: crate::trace::Commitment, + decommitment: crate::trace::Decommitment, + witness: crate::trace::Witness, + ) -> Result<(), crate::trace::decommit::Error> { + Ok(table_decommit(commitment.original, queries, decommitment.original, witness.original) + .and(table_decommit( + commitment.interaction, + queries, + decommitment.interaction, + witness.interaction, + ))?) + } + fn validate_public_input( + public_input: &PublicInput, + stark_domains: &crate::domains::StarkDomains, + ) -> Result<(), PublicInputError> { + ensure!(public_input.log_n_steps < MAX_LOG_N_STEPS, PublicInputError::MaxSteps); + + let n_steps = Felt::TWO.pow_felt(&public_input.log_n_steps); + let trace_length = stark_domains.trace_domain_size; + ensure!( + n_steps * Felt::from(CPU_COMPONENT_HEIGHT) * Felt::from(CPU_COMPONENT_STEP) + == trace_length, + PublicInputError::TraceLengthInvalid + ); + + ensure!(Felt::ZERO <= public_input.range_check_min, PublicInputError::RangeCheckInvalid); + ensure!( + public_input.range_check_min < public_input.range_check_max, + PublicInputError::RangeCheckInvalid + ); + ensure!( + public_input.range_check_max <= MAX_RANGE_CHECK, + PublicInputError::RangeCheckInvalid + ); + + ensure!(public_input.layout == LAYOUT_CODE, PublicInputError::LayoutCodeInvalid); + + let output_uses = public_input + .segments + .get(crate::layout::segments::OUTPUT) + .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::OUTPUT })? + .stop_ptr + - public_input + .segments + .get(crate::layout::segments::OUTPUT) + .ok_or(PublicInputError::SegmentMissing { + segment: crate::layout::segments::OUTPUT, + })? + .begin_addr; + ensure!(output_uses < u128::MAX.into(), PublicInputError::UsesInvalid); + + let pedersen_copies = trace_length + .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(PEDERSEN_BUILTIN_ROW_RATIO))); + let pedersen_uses = (public_input + .segments + .get(segments::PEDERSEN) + .ok_or(PublicInputError::SegmentMissing { segment: segments::PEDERSEN })? + .stop_ptr + - public_input + .segments + .get(segments::PEDERSEN) + .ok_or(PublicInputError::SegmentMissing { segment: segments::PEDERSEN })? + .begin_addr) + .field_div(&NonZeroFelt::from_felt_unchecked(Felt::THREE)); + ensure!(pedersen_uses < pedersen_copies, PublicInputError::UsesInvalid); + + let range_check_copies = trace_length.field_div(&NonZeroFelt::from_felt_unchecked( + Felt::from(RANGE_CHECK_BUILTIN_ROW_RATIO), + )); + let range_check_uses = public_input + .segments + .get(segments::RANGE_CHECK) + .ok_or(PublicInputError::SegmentMissing { segment: segments::RANGE_CHECK })? + .stop_ptr + - public_input + .segments + .get(segments::RANGE_CHECK) + .ok_or(PublicInputError::SegmentMissing { segment: segments::RANGE_CHECK })? + .begin_addr; + ensure!(range_check_uses < range_check_copies, PublicInputError::UsesInvalid); + + let ecdsa_copies = trace_length + .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(ECDSA_BUILTIN_ROW_RATIO))); + let ecdsa_uses = (public_input + .segments + .get(segments::ECDSA) + .ok_or(PublicInputError::SegmentMissing { segment: segments::ECDSA })? + .stop_ptr + - public_input + .segments + .get(segments::ECDSA) + .ok_or(PublicInputError::SegmentMissing { + segment: crate::layout::segments::OUTPUT, + })? + .begin_addr) + .field_div(&NonZeroFelt::from_felt_unchecked(Felt::TWO)); + ensure!(ecdsa_uses < ecdsa_copies, PublicInputError::UsesInvalid); + Ok(()) + } + + fn verify_public_input(public_input: &PublicInput) -> Result<(Felt, Felt), PublicInputError> { + let public_segments = &public_input.segments; + + let initial_pc = public_segments + .get(crate::layout::segments::PROGRAM) + .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })? + .begin_addr; + let final_pc = public_segments + .get(crate::layout::segments::PROGRAM) + .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })? + .stop_ptr; + let initial_ap = public_segments + .get(crate::layout::segments::EXECUTION) + .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })? + .begin_addr; + let initial_fp = initial_ap; + let final_ap = public_segments + .get(crate::layout::segments::EXECUTION) + .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })? + .stop_ptr; + let output_start = public_segments + .get(crate::layout::segments::OUTPUT) + .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })? + .begin_addr; + let output_stop = public_segments + .get(crate::layout::segments::OUTPUT) + .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })? + .stop_ptr; + + ensure!(initial_ap < MAX_ADDRESS, PublicInputError::MaxSteps); + ensure!(final_ap < MAX_ADDRESS, PublicInputError::MaxSteps); + + // TODO support more pages? + ensure!(public_input.continuous_page_headers.is_empty(), PublicInputError::MaxSteps); + + let memory = &public_input + .main_page + .iter() + .flat_map(|v| vec![v.address, v.value]) + .collect::>(); + + // 1. Program segment + ensure!(initial_pc == INITIAL_PC, PublicInputError::MaxSteps); + ensure!(final_pc == INITIAL_PC + 4, PublicInputError::MaxSteps); + + let program_end_pc = initial_fp - 2; + let program = &memory[initial_pc.to_bigint().try_into().unwrap() + ..program_end_pc.to_bigint().try_into().unwrap()]; + + let program_hash = poseidon_hash_many(program); + + let output_len: usize = (output_stop - output_start).to_bigint().try_into().unwrap(); + // 3. Output segment + let output = &memory[memory.len() - output_len..memory.len()]; + let output_hash = poseidon_hash_many(output); + + Ok((program_hash, output_hash)) + } +} diff --git a/crates/air/src/layout/starknet/autogenerated.rs b/crates/air/src/layout/starknet/autogenerated.rs new file mode 100644 index 0000000..ffd3c18 --- /dev/null +++ b/crates/air/src/layout/starknet/autogenerated.rs @@ -0,0 +1,3052 @@ +use super::global_values::GlobalValues; +use super::{CONSTRAINT_DEGREE, NUM_COLUMNS_FIRST, NUM_COLUMNS_SECOND}; +use starknet_core::types::NonZeroFelt; +use starknet_crypto::Felt; + +pub fn eval_composition_polynomial_inner( + mask_values: &[Felt], + constraint_coefficients: &[Felt], + point: &Felt, + trace_generator: &Felt, + global_values: &GlobalValues, +) -> Felt { + // Compute powers. + let pow0 = point.pow_felt( + &global_values.trace_length.floor_div(&NonZeroFelt::from_felt_unchecked(Felt::from(32768))), + ); + let pow1 = pow0 * pow0; // pow(point, (safe_div(global_values.trace_length, 16384))). + let pow2 = point.pow_felt( + &global_values.trace_length.floor_div(&NonZeroFelt::from_felt_unchecked(Felt::from(1024))), + ); + let pow3 = pow2 * pow2; // pow(point, (safe_div(global_values.trace_length, 512))). + let pow4 = pow3 * pow3; // pow(point, (safe_div(global_values.trace_length, 256))). + let pow5 = pow4 * pow4; // pow(point, (safe_div(global_values.trace_length, 128))). + let pow6 = pow5 * pow5; // pow(point, (safe_div(global_values.trace_length, 64))). + let pow7 = point.pow_felt( + &global_values.trace_length.floor_div(&NonZeroFelt::from_felt_unchecked(Felt::from(16))), + ); + let pow8 = pow7 * pow7; // pow(point, (safe_div(global_values.trace_length, 8))). + let pow9 = pow8 * pow8; // pow(point, (safe_div(global_values.trace_length, 4))). + let pow10 = pow9 * pow9; // pow(point, (safe_div(global_values.trace_length, 2))). + let pow11 = pow10 * pow10; // pow(point, global_values.trace_length). + let pow12 = trace_generator.pow_felt(&(global_values.trace_length - 16384)); + let pow13 = trace_generator.pow_felt(&(global_values.trace_length - 1024)); + let pow14 = trace_generator.pow_felt(&(global_values.trace_length - 32768)); + let pow15 = trace_generator.pow_felt(&(global_values.trace_length - 256)); + let pow16 = trace_generator.pow_felt(&(global_values.trace_length - 512)); + let pow17 = trace_generator.pow_felt(&(global_values.trace_length - 8)); + let pow18 = trace_generator.pow_felt(&(global_values.trace_length - 4)); + let pow19 = trace_generator.pow_felt(&(global_values.trace_length - 2)); + let pow20 = trace_generator.pow_felt(&(global_values.trace_length - 16)); + let pow21 = trace_generator.pow_felt( + &(Felt::from(251) + * global_values + .trace_length + .floor_div(&NonZeroFelt::from_felt_unchecked(Felt::from(256)))), + ); + let pow22 = trace_generator.pow_felt( + &(global_values.trace_length.floor_div(&NonZeroFelt::from_felt_unchecked(Felt::from(64)))), + ); + let pow23 = pow22 * pow22; // pow(trace_generator, (safe_div(global_values.trace_length, 32))). + let pow24 = pow22 * pow23; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 64))). + let pow25 = pow22 * pow24; // pow(trace_generator, (safe_div(global_values.trace_length, 16))). + let pow26 = pow22 * pow25; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 64))). + let pow27 = pow22 * pow26; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 32))). + let pow28 = pow22 * pow27; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 64))). + let pow29 = pow22 * pow28; // pow(trace_generator, (safe_div(global_values.trace_length, 8))). + let pow30 = pow22 * pow29; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 64))). + let pow31 = pow22 * pow30; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 32))). + let pow32 = pow22 * pow31; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 64))). + let pow33 = pow22 * pow32; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 16))). + let pow34 = pow22 * pow33; // pow(trace_generator, (safe_div((safe_mult(13, global_values.trace_length)), 64))). + let pow35 = pow22 * pow34; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 32))). + let pow36 = pow22 * pow35; // pow(trace_generator, (safe_div((safe_mult(15, global_values.trace_length)), 64))). + let pow37 = trace_generator.pow_felt( + &global_values.trace_length.floor_div(&NonZeroFelt::from_felt_unchecked(Felt::from(2))), + ); + let pow38 = pow27 * pow37; // pow(trace_generator, (safe_div((safe_mult(19, global_values.trace_length)), 32))). + let pow39 = pow23 * pow38; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 8))). + let pow40 = pow23 * pow39; // pow(trace_generator, (safe_div((safe_mult(21, global_values.trace_length)), 32))). + let pow41 = pow23 * pow40; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 16))). + let pow42 = pow23 * pow41; // pow(trace_generator, (safe_div((safe_mult(23, global_values.trace_length)), 32))). + let pow43 = pow23 * pow42; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 4))). + let pow44 = pow23 * pow43; // pow(trace_generator, (safe_div((safe_mult(25, global_values.trace_length)), 32))). + let pow45 = pow23 * pow44; // pow(trace_generator, (safe_div((safe_mult(13, global_values.trace_length)), 16))). + let pow46 = pow23 * pow45; // pow(trace_generator, (safe_div((safe_mult(27, global_values.trace_length)), 32))). + let pow47 = pow23 * pow46; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 8))). + let pow48 = pow23 * pow47; // pow(trace_generator, (safe_div((safe_mult(29, global_values.trace_length)), 32))). + let pow49 = pow21 * pow22; // pow(trace_generator, (safe_div((safe_mult(255, global_values.trace_length)), 256))). + let pow50 = pow23 * pow48; // pow(trace_generator, (safe_div((safe_mult(15, global_values.trace_length)), 16))). + let pow51 = pow22 * pow50; // pow(trace_generator, (safe_div((safe_mult(61, global_values.trace_length)), 64))). + let pow52 = pow22 * pow51; // pow(trace_generator, (safe_div((safe_mult(31, global_values.trace_length)), 32))). + let pow53 = pow22 * pow52; // pow(trace_generator, (safe_div((safe_mult(63, global_values.trace_length)), 64))). + + // Compute domains. + let domain0 = pow11 - 1; + let domain1 = pow10 - 1; + let domain2 = pow9 - 1; + let domain3 = pow8 - 1; + let domain4 = pow7 - pow50; + let domain5 = pow7 - 1; + let domain6 = pow6 - 1; + let domain7 = pow5 - 1; + let domain8 = pow4 - 1; + let domain9 = pow4 - pow49; + let domain10 = pow4 - pow53; + let domain11 = pow4 - pow43; + let domain12 = pow3 - pow37; + let domain13 = pow3 - 1; + let domain14 = pow3 - pow52; + let temp = pow3 - pow41; + let temp = temp * (pow3 - pow42); + let temp = temp * (pow3 - pow43); + let temp = temp * (pow3 - pow44); + let temp = temp * (pow3 - pow45); + let temp = temp * (pow3 - pow46); + let temp = temp * (pow3 - pow47); + let temp = temp * (pow3 - pow48); + let temp = temp * (pow3 - pow50); + let domain15 = temp * (domain14); + let temp = pow3 - pow51; + let temp = temp * (pow3 - pow53); + let domain16 = temp * (domain14); + let temp = pow3 - pow38; + let temp = temp * (pow3 - pow39); + let temp = temp * (pow3 - pow40); + let domain17 = temp * (domain15); + let domain18 = pow2 - pow43; + let domain19 = pow2 - 1; + let temp = pow2 - pow22; + let temp = temp * (pow2 - pow23); + let temp = temp * (pow2 - pow24); + let temp = temp * (pow2 - pow25); + let temp = temp * (pow2 - pow26); + let temp = temp * (pow2 - pow27); + let temp = temp * (pow2 - pow28); + let temp = temp * (pow2 - pow29); + let temp = temp * (pow2 - pow30); + let temp = temp * (pow2 - pow31); + let temp = temp * (pow2 - pow32); + let temp = temp * (pow2 - pow33); + let temp = temp * (pow2 - pow34); + let temp = temp * (pow2 - pow35); + let temp = temp * (pow2 - pow36); + let domain20 = temp * (domain19); + let domain21 = pow1 - pow49; + let domain22 = pow1 - pow21; + let domain23 = pow1 - 1; + let domain24 = pow1 - pow53; + let domain25 = pow0 - pow49; + let domain26 = pow0 - pow21; + let domain27 = pow0 - 1; + let domain28 = point - pow20; + let domain29 = point - 1; + let domain30 = point - pow19; + let domain31 = point - pow18; + let domain32 = point - pow17; + let domain33 = point - pow16; + let domain34 = point - pow15; + let domain35 = point - pow14; + let domain36 = point - pow13; + let domain37 = point - pow12; + + // Fetch mask variables. + let column0_row0 = mask_values[0]; + let column0_row1 = mask_values[1]; + let column0_row2 = mask_values[2]; + let column0_row3 = mask_values[3]; + let column0_row4 = mask_values[4]; + let column0_row5 = mask_values[5]; + let column0_row6 = mask_values[6]; + let column0_row7 = mask_values[7]; + let column0_row8 = mask_values[8]; + let column0_row9 = mask_values[9]; + let column0_row10 = mask_values[10]; + let column0_row11 = mask_values[11]; + let column0_row12 = mask_values[12]; + let column0_row13 = mask_values[13]; + let column0_row14 = mask_values[14]; + let column0_row15 = mask_values[15]; + let column1_row0 = mask_values[16]; + let column1_row1 = mask_values[17]; + let column1_row255 = mask_values[18]; + let column1_row256 = mask_values[19]; + let column1_row511 = mask_values[20]; + let column2_row0 = mask_values[21]; + let column2_row1 = mask_values[22]; + let column2_row255 = mask_values[23]; + let column2_row256 = mask_values[24]; + let column3_row0 = mask_values[25]; + let column3_row1 = mask_values[26]; + let column3_row192 = mask_values[27]; + let column3_row193 = mask_values[28]; + let column3_row196 = mask_values[29]; + let column3_row197 = mask_values[30]; + let column3_row251 = mask_values[31]; + let column3_row252 = mask_values[32]; + let column3_row256 = mask_values[33]; + let column4_row0 = mask_values[34]; + let column4_row255 = mask_values[35]; + let column5_row0 = mask_values[36]; + let column5_row1 = mask_values[37]; + let column5_row2 = mask_values[38]; + let column5_row3 = mask_values[39]; + let column5_row4 = mask_values[40]; + let column5_row5 = mask_values[41]; + let column5_row6 = mask_values[42]; + let column5_row7 = mask_values[43]; + let column5_row8 = mask_values[44]; + let column5_row9 = mask_values[45]; + let column5_row12 = mask_values[46]; + let column5_row13 = mask_values[47]; + let column5_row16 = mask_values[48]; + let column5_row38 = mask_values[49]; + let column5_row39 = mask_values[50]; + let column5_row70 = mask_values[51]; + let column5_row71 = mask_values[52]; + let column5_row102 = mask_values[53]; + let column5_row103 = mask_values[54]; + let column5_row134 = mask_values[55]; + let column5_row135 = mask_values[56]; + let column5_row166 = mask_values[57]; + let column5_row167 = mask_values[58]; + let column5_row198 = mask_values[59]; + let column5_row199 = mask_values[60]; + let column5_row262 = mask_values[61]; + let column5_row263 = mask_values[62]; + let column5_row294 = mask_values[63]; + let column5_row295 = mask_values[64]; + let column5_row326 = mask_values[65]; + let column5_row358 = mask_values[66]; + let column5_row359 = mask_values[67]; + let column5_row390 = mask_values[68]; + let column5_row391 = mask_values[69]; + let column5_row422 = mask_values[70]; + let column5_row423 = mask_values[71]; + let column5_row454 = mask_values[72]; + let column5_row518 = mask_values[73]; + let column5_row711 = mask_values[74]; + let column5_row902 = mask_values[75]; + let column5_row903 = mask_values[76]; + let column5_row966 = mask_values[77]; + let column5_row967 = mask_values[78]; + let column5_row1222 = mask_values[79]; + let column5_row2438 = mask_values[80]; + let column5_row2439 = mask_values[81]; + let column5_row4486 = mask_values[82]; + let column5_row4487 = mask_values[83]; + let column5_row6534 = mask_values[84]; + let column5_row6535 = mask_values[85]; + let column5_row8582 = mask_values[86]; + let column5_row8583 = mask_values[87]; + let column5_row10630 = mask_values[88]; + let column5_row10631 = mask_values[89]; + let column5_row12678 = mask_values[90]; + let column5_row12679 = mask_values[91]; + let column5_row14726 = mask_values[92]; + let column5_row14727 = mask_values[93]; + let column5_row16774 = mask_values[94]; + let column5_row16775 = mask_values[95]; + let column5_row24966 = mask_values[96]; + let column5_row33158 = mask_values[97]; + let column6_row0 = mask_values[98]; + let column6_row1 = mask_values[99]; + let column6_row2 = mask_values[100]; + let column6_row3 = mask_values[101]; + let column7_row0 = mask_values[102]; + let column7_row1 = mask_values[103]; + let column7_row2 = mask_values[104]; + let column7_row3 = mask_values[105]; + let column7_row4 = mask_values[106]; + let column7_row5 = mask_values[107]; + let column7_row6 = mask_values[108]; + let column7_row7 = mask_values[109]; + let column7_row8 = mask_values[110]; + let column7_row9 = mask_values[111]; + let column7_row11 = mask_values[112]; + let column7_row12 = mask_values[113]; + let column7_row13 = mask_values[114]; + let column7_row15 = mask_values[115]; + let column7_row17 = mask_values[116]; + let column7_row19 = mask_values[117]; + let column7_row23 = mask_values[118]; + let column7_row27 = mask_values[119]; + let column7_row33 = mask_values[120]; + let column7_row44 = mask_values[121]; + let column7_row49 = mask_values[122]; + let column7_row65 = mask_values[123]; + let column7_row76 = mask_values[124]; + let column7_row81 = mask_values[125]; + let column7_row97 = mask_values[126]; + let column7_row108 = mask_values[127]; + let column7_row113 = mask_values[128]; + let column7_row129 = mask_values[129]; + let column7_row140 = mask_values[130]; + let column7_row145 = mask_values[131]; + let column7_row161 = mask_values[132]; + let column7_row172 = mask_values[133]; + let column7_row177 = mask_values[134]; + let column7_row193 = mask_values[135]; + let column7_row204 = mask_values[136]; + let column7_row209 = mask_values[137]; + let column7_row225 = mask_values[138]; + let column7_row236 = mask_values[139]; + let column7_row241 = mask_values[140]; + let column7_row257 = mask_values[141]; + let column7_row265 = mask_values[142]; + let column7_row491 = mask_values[143]; + let column7_row499 = mask_values[144]; + let column7_row507 = mask_values[145]; + let column7_row513 = mask_values[146]; + let column7_row521 = mask_values[147]; + let column7_row705 = mask_values[148]; + let column7_row721 = mask_values[149]; + let column7_row737 = mask_values[150]; + let column7_row753 = mask_values[151]; + let column7_row769 = mask_values[152]; + let column7_row777 = mask_values[153]; + let column7_row961 = mask_values[154]; + let column7_row977 = mask_values[155]; + let column7_row993 = mask_values[156]; + let column7_row1009 = mask_values[157]; + let column8_row0 = mask_values[158]; + let column8_row1 = mask_values[159]; + let column8_row2 = mask_values[160]; + let column8_row3 = mask_values[161]; + let column8_row4 = mask_values[162]; + let column8_row5 = mask_values[163]; + let column8_row6 = mask_values[164]; + let column8_row7 = mask_values[165]; + let column8_row8 = mask_values[166]; + let column8_row9 = mask_values[167]; + let column8_row10 = mask_values[168]; + let column8_row11 = mask_values[169]; + let column8_row12 = mask_values[170]; + let column8_row13 = mask_values[171]; + let column8_row14 = mask_values[172]; + let column8_row16 = mask_values[173]; + let column8_row17 = mask_values[174]; + let column8_row19 = mask_values[175]; + let column8_row21 = mask_values[176]; + let column8_row22 = mask_values[177]; + let column8_row24 = mask_values[178]; + let column8_row25 = mask_values[179]; + let column8_row27 = mask_values[180]; + let column8_row29 = mask_values[181]; + let column8_row30 = mask_values[182]; + let column8_row33 = mask_values[183]; + let column8_row35 = mask_values[184]; + let column8_row37 = mask_values[185]; + let column8_row38 = mask_values[186]; + let column8_row41 = mask_values[187]; + let column8_row43 = mask_values[188]; + let column8_row45 = mask_values[189]; + let column8_row46 = mask_values[190]; + let column8_row49 = mask_values[191]; + let column8_row51 = mask_values[192]; + let column8_row53 = mask_values[193]; + let column8_row54 = mask_values[194]; + let column8_row57 = mask_values[195]; + let column8_row59 = mask_values[196]; + let column8_row61 = mask_values[197]; + let column8_row65 = mask_values[198]; + let column8_row69 = mask_values[199]; + let column8_row71 = mask_values[200]; + let column8_row73 = mask_values[201]; + let column8_row77 = mask_values[202]; + let column8_row81 = mask_values[203]; + let column8_row85 = mask_values[204]; + let column8_row89 = mask_values[205]; + let column8_row91 = mask_values[206]; + let column8_row97 = mask_values[207]; + let column8_row101 = mask_values[208]; + let column8_row105 = mask_values[209]; + let column8_row109 = mask_values[210]; + let column8_row113 = mask_values[211]; + let column8_row117 = mask_values[212]; + let column8_row123 = mask_values[213]; + let column8_row155 = mask_values[214]; + let column8_row187 = mask_values[215]; + let column8_row195 = mask_values[216]; + let column8_row205 = mask_values[217]; + let column8_row219 = mask_values[218]; + let column8_row221 = mask_values[219]; + let column8_row237 = mask_values[220]; + let column8_row245 = mask_values[221]; + let column8_row253 = mask_values[222]; + let column8_row269 = mask_values[223]; + let column8_row301 = mask_values[224]; + let column8_row309 = mask_values[225]; + let column8_row310 = mask_values[226]; + let column8_row318 = mask_values[227]; + let column8_row326 = mask_values[228]; + let column8_row334 = mask_values[229]; + let column8_row342 = mask_values[230]; + let column8_row350 = mask_values[231]; + let column8_row451 = mask_values[232]; + let column8_row461 = mask_values[233]; + let column8_row477 = mask_values[234]; + let column8_row493 = mask_values[235]; + let column8_row501 = mask_values[236]; + let column8_row509 = mask_values[237]; + let column8_row12309 = mask_values[238]; + let column8_row12373 = mask_values[239]; + let column8_row12565 = mask_values[240]; + let column8_row12629 = mask_values[241]; + let column8_row16085 = mask_values[242]; + let column8_row16149 = mask_values[243]; + let column8_row16325 = mask_values[244]; + let column8_row16331 = mask_values[245]; + let column8_row16337 = mask_values[246]; + let column8_row16339 = mask_values[247]; + let column8_row16355 = mask_values[248]; + let column8_row16357 = mask_values[249]; + let column8_row16363 = mask_values[250]; + let column8_row16369 = mask_values[251]; + let column8_row16371 = mask_values[252]; + let column8_row16385 = mask_values[253]; + let column8_row16417 = mask_values[254]; + let column8_row32647 = mask_values[255]; + let column8_row32667 = mask_values[256]; + let column8_row32715 = mask_values[257]; + let column8_row32721 = mask_values[258]; + let column8_row32731 = mask_values[259]; + let column8_row32747 = mask_values[260]; + let column8_row32753 = mask_values[261]; + let column8_row32763 = mask_values[262]; + let column9_inter1_row0 = mask_values[263]; + let column9_inter1_row1 = mask_values[264]; + let column9_inter1_row2 = mask_values[265]; + let column9_inter1_row3 = mask_values[266]; + let column9_inter1_row5 = mask_values[267]; + let column9_inter1_row7 = mask_values[268]; + let column9_inter1_row11 = mask_values[269]; + let column9_inter1_row15 = mask_values[270]; + + // Compute intermediate values. + let cpu_decode_opcode_range_check_bit_0 = column0_row0 - (column0_row1 + column0_row1); + let cpu_decode_opcode_range_check_bit_2 = column0_row2 - (column0_row3 + column0_row3); + let cpu_decode_opcode_range_check_bit_4 = column0_row4 - (column0_row5 + column0_row5); + let cpu_decode_opcode_range_check_bit_3 = column0_row3 - (column0_row4 + column0_row4); + let cpu_decode_flag_op1_base_op0_0 = Felt::ONE + - (cpu_decode_opcode_range_check_bit_2 + + cpu_decode_opcode_range_check_bit_4 + + cpu_decode_opcode_range_check_bit_3); + let cpu_decode_opcode_range_check_bit_5 = column0_row5 - (column0_row6 + column0_row6); + let cpu_decode_opcode_range_check_bit_6 = column0_row6 - (column0_row7 + column0_row7); + let cpu_decode_opcode_range_check_bit_9 = column0_row9 - (column0_row10 + column0_row10); + let cpu_decode_flag_res_op1_0 = Felt::ONE + - (cpu_decode_opcode_range_check_bit_5 + + cpu_decode_opcode_range_check_bit_6 + + cpu_decode_opcode_range_check_bit_9); + let cpu_decode_opcode_range_check_bit_7 = column0_row7 - (column0_row8 + column0_row8); + let cpu_decode_opcode_range_check_bit_8 = column0_row8 - (column0_row9 + column0_row9); + let cpu_decode_flag_pc_update_regular_0 = Felt::ONE + - (cpu_decode_opcode_range_check_bit_7 + + cpu_decode_opcode_range_check_bit_8 + + cpu_decode_opcode_range_check_bit_9); + let cpu_decode_opcode_range_check_bit_12 = column0_row12 - (column0_row13 + column0_row13); + let cpu_decode_opcode_range_check_bit_13 = column0_row13 - (column0_row14 + column0_row14); + let cpu_decode_fp_update_regular_0 = + Felt::ONE - (cpu_decode_opcode_range_check_bit_12 + cpu_decode_opcode_range_check_bit_13); + let cpu_decode_opcode_range_check_bit_1 = column0_row1 - (column0_row2 + column0_row2); + let npc_reg_0 = column5_row0 + cpu_decode_opcode_range_check_bit_2 + 1; + let cpu_decode_opcode_range_check_bit_10 = column0_row10 - (column0_row11 + column0_row11); + let cpu_decode_opcode_range_check_bit_11 = column0_row11 - (column0_row12 + column0_row12); + let cpu_decode_opcode_range_check_bit_14 = column0_row14 - (column0_row15 + column0_row15); + let memory_address_diff_0 = column6_row2 - column6_row0; + let range_check16_diff_0 = column7_row6 - column7_row2; + let pedersen_hash0_ec_subset_sum_bit_0 = column3_row0 - (column3_row1 + column3_row1); + let pedersen_hash0_ec_subset_sum_bit_neg_0 = Felt::ONE - pedersen_hash0_ec_subset_sum_bit_0; + let range_check_builtin_value0_0 = column7_row12; + let range_check_builtin_value1_0 = + range_check_builtin_value0_0 * global_values.offset_size + column7_row44; + let range_check_builtin_value2_0 = + range_check_builtin_value1_0 * global_values.offset_size + column7_row76; + let range_check_builtin_value3_0 = + range_check_builtin_value2_0 * global_values.offset_size + column7_row108; + let range_check_builtin_value4_0 = + range_check_builtin_value3_0 * global_values.offset_size + column7_row140; + let range_check_builtin_value5_0 = + range_check_builtin_value4_0 * global_values.offset_size + column7_row172; + let range_check_builtin_value6_0 = + range_check_builtin_value5_0 * global_values.offset_size + column7_row204; + let range_check_builtin_value7_0 = + range_check_builtin_value6_0 * global_values.offset_size + column7_row236; + let ecdsa_signature0_doubling_key_x_squared = column8_row1 * column8_row1; + let ecdsa_signature0_exponentiate_generator_bit_0 = + column8_row59 - (column8_row187 + column8_row187); + let ecdsa_signature0_exponentiate_generator_bit_neg_0 = + Felt::ONE - ecdsa_signature0_exponentiate_generator_bit_0; + let ecdsa_signature0_exponentiate_key_bit_0 = column8_row9 - (column8_row73 + column8_row73); + let ecdsa_signature0_exponentiate_key_bit_neg_0 = + Felt::ONE - ecdsa_signature0_exponentiate_key_bit_0; + let bitwise_sum_var_0_0 = column7_row1 + + column7_row17 * Felt::from(2) + + column7_row33 * Felt::from(4) + + column7_row49 * Felt::from(8) + + column7_row65 * Felt::from_hex_unchecked("0x10000000000000000") + + column7_row81 * Felt::from_hex_unchecked("0x20000000000000000") + + column7_row97 * Felt::from_hex_unchecked("0x40000000000000000") + + column7_row113 * Felt::from_hex_unchecked("0x80000000000000000"); + let bitwise_sum_var_8_0 = column7_row129 + * Felt::from_hex_unchecked("0x100000000000000000000000000000000") + + column7_row145 * Felt::from_hex_unchecked("0x200000000000000000000000000000000") + + column7_row161 * Felt::from_hex_unchecked("0x400000000000000000000000000000000") + + column7_row177 * Felt::from_hex_unchecked("0x800000000000000000000000000000000") + + column7_row193 + * Felt::from_hex_unchecked("0x1000000000000000000000000000000000000000000000000") + + column7_row209 + * Felt::from_hex_unchecked("0x2000000000000000000000000000000000000000000000000") + + column7_row225 + * Felt::from_hex_unchecked("0x4000000000000000000000000000000000000000000000000") + + column7_row241 + * Felt::from_hex_unchecked("0x8000000000000000000000000000000000000000000000000"); + let ec_op_doubling_q_x_squared_0 = column8_row41 * column8_row41; + let ec_op_ec_subset_sum_bit_0 = column8_row21 - (column8_row85 + column8_row85); + let ec_op_ec_subset_sum_bit_neg_0 = Felt::ONE - ec_op_ec_subset_sum_bit_0; + let poseidon_poseidon_full_rounds_state0_cubed_0 = column8_row53 * column8_row29; + let poseidon_poseidon_full_rounds_state1_cubed_0 = column8_row13 * column8_row61; + let poseidon_poseidon_full_rounds_state2_cubed_0 = column8_row45 * column8_row3; + let poseidon_poseidon_full_rounds_state0_cubed_7 = column8_row501 * column8_row477; + let poseidon_poseidon_full_rounds_state1_cubed_7 = column8_row461 * column8_row509; + let poseidon_poseidon_full_rounds_state2_cubed_7 = column8_row493 * column8_row451; + let poseidon_poseidon_full_rounds_state0_cubed_3 = column8_row245 * column8_row221; + let poseidon_poseidon_full_rounds_state1_cubed_3 = column8_row205 * column8_row253; + let poseidon_poseidon_full_rounds_state2_cubed_3 = column8_row237 * column8_row195; + let poseidon_poseidon_partial_rounds_state0_cubed_0 = column7_row3 * column7_row7; + let poseidon_poseidon_partial_rounds_state0_cubed_1 = column7_row11 * column7_row15; + let poseidon_poseidon_partial_rounds_state0_cubed_2 = column7_row19 * column7_row23; + let poseidon_poseidon_partial_rounds_state1_cubed_0 = column8_row6 * column8_row14; + let poseidon_poseidon_partial_rounds_state1_cubed_1 = column8_row22 * column8_row30; + let poseidon_poseidon_partial_rounds_state1_cubed_2 = column8_row38 * column8_row46; + let poseidon_poseidon_partial_rounds_state1_cubed_19 = column8_row310 * column8_row318; + let poseidon_poseidon_partial_rounds_state1_cubed_20 = column8_row326 * column8_row334; + let poseidon_poseidon_partial_rounds_state1_cubed_21 = column8_row342 * column8_row350; + + // Sum constraints. + let mut total_sum = Felt::ZERO; + + // Constraint: cpu/decode/opcode_range_check/bit. + let mut value = (cpu_decode_opcode_range_check_bit_0 * cpu_decode_opcode_range_check_bit_0 + - cpu_decode_opcode_range_check_bit_0) + * domain4.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[0] * value; + + // Constraint: cpu/decode/opcode_range_check/zero. + value = (column0_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[1] * value; + + // Constraint: cpu/decode/opcode_range_check_input. + value = (column5_row1 + - (((column0_row0 * global_values.offset_size + column7_row4) + * global_values.offset_size + + column7_row8) + * global_values.offset_size + + column7_row0)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[2] * value; + + // Constraint: cpu/decode/flag_op1_base_op0_bit. + value = (cpu_decode_flag_op1_base_op0_0 * cpu_decode_flag_op1_base_op0_0 + - cpu_decode_flag_op1_base_op0_0) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[3] * value; + + // Constraint: cpu/decode/flag_res_op1_bit. + value = (cpu_decode_flag_res_op1_0 * cpu_decode_flag_res_op1_0 - cpu_decode_flag_res_op1_0) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[4] * value; + + // Constraint: cpu/decode/flag_pc_update_regular_bit. + value = (cpu_decode_flag_pc_update_regular_0 * cpu_decode_flag_pc_update_regular_0 + - cpu_decode_flag_pc_update_regular_0) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[5] * value; + + // Constraint: cpu/decode/fp_update_regular_bit. + value = (cpu_decode_fp_update_regular_0 * cpu_decode_fp_update_regular_0 + - cpu_decode_fp_update_regular_0) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[6] * value; + + // Constraint: cpu/operands/mem_dst_addr. + value = (column5_row8 + global_values.half_offset_size + - (cpu_decode_opcode_range_check_bit_0 * column8_row8 + + (Felt::ONE - cpu_decode_opcode_range_check_bit_0) * column8_row0 + + column7_row0)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[7] * value; + + // Constraint: cpu/operands/mem0_addr. + value = (column5_row4 + global_values.half_offset_size + - (cpu_decode_opcode_range_check_bit_1 * column8_row8 + + (Felt::ONE - cpu_decode_opcode_range_check_bit_1) * column8_row0 + + column7_row8)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[8] * value; + + // Constraint: cpu/operands/mem1_addr. + value = (column5_row12 + global_values.half_offset_size + - (cpu_decode_opcode_range_check_bit_2 * column5_row0 + + cpu_decode_opcode_range_check_bit_4 * column8_row0 + + cpu_decode_opcode_range_check_bit_3 * column8_row8 + + cpu_decode_flag_op1_base_op0_0 * column5_row5 + + column7_row4)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[9] * value; + + // Constraint: cpu/operands/ops_mul. + value = (column8_row4 - column5_row5 * column5_row13) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[10] * value; + + // Constraint: cpu/operands/res. + value = ((Felt::ONE - cpu_decode_opcode_range_check_bit_9) * column8_row12 + - (cpu_decode_opcode_range_check_bit_5 * (column5_row5 + column5_row13) + + cpu_decode_opcode_range_check_bit_6 * column8_row4 + + cpu_decode_flag_res_op1_0 * column5_row13)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[11] * value; + + // Constraint: cpu/update_registers/update_pc/tmp0. + value = (column8_row2 - cpu_decode_opcode_range_check_bit_9 * column5_row9) + * domain28.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[12] * value; + + // Constraint: cpu/update_registers/update_pc/tmp1. + value = (column8_row10 - column8_row2 * column8_row12) + * domain28.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[13] * value; + + // Constraint: cpu/update_registers/update_pc/pc_cond_negative. + value = ((Felt::ONE - cpu_decode_opcode_range_check_bit_9) * column5_row16 + + column8_row2 * (column5_row16 - (column5_row0 + column5_row13)) + - (cpu_decode_flag_pc_update_regular_0 * npc_reg_0 + + cpu_decode_opcode_range_check_bit_7 * column8_row12 + + cpu_decode_opcode_range_check_bit_8 * (column5_row0 + column8_row12))) + * domain28.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[14] * value; + + // Constraint: cpu/update_registers/update_pc/pc_cond_positive. + value = ((column8_row10 - cpu_decode_opcode_range_check_bit_9) * (column5_row16 - npc_reg_0)) + * domain28.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[15] * value; + + // Constraint: cpu/update_registers/update_ap/ap_update. + value = (column8_row16 + - (column8_row0 + + cpu_decode_opcode_range_check_bit_10 * column8_row12 + + cpu_decode_opcode_range_check_bit_11 + + cpu_decode_opcode_range_check_bit_12 * Felt::TWO)) + * domain28.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[16] * value; + + // Constraint: cpu/update_registers/update_fp/fp_update. + value = (column8_row24 + - (cpu_decode_fp_update_regular_0 * column8_row8 + + cpu_decode_opcode_range_check_bit_13 * column5_row9 + + cpu_decode_opcode_range_check_bit_12 * (column8_row0 + 2))) + * domain28.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[17] * value; + + // Constraint: cpu/opcodes/call/push_fp. + value = (cpu_decode_opcode_range_check_bit_12 * (column5_row9 - column8_row8)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[18] * value; + + // Constraint: cpu/opcodes/call/push_pc. + value = (cpu_decode_opcode_range_check_bit_12 + * (column5_row5 - (column5_row0 + cpu_decode_opcode_range_check_bit_2 + 1))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[19] * value; + + // Constraint: cpu/opcodes/call/off0. + value = (cpu_decode_opcode_range_check_bit_12 + * (column7_row0 - global_values.half_offset_size)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[20] * value; + + // Constraint: cpu/opcodes/call/off1. + value = (cpu_decode_opcode_range_check_bit_12 + * (column7_row8 - (global_values.half_offset_size + 1))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[21] * value; + + // Constraint: cpu/opcodes/call/flags. + value = (cpu_decode_opcode_range_check_bit_12 + * (cpu_decode_opcode_range_check_bit_12 + cpu_decode_opcode_range_check_bit_12 + 1 + 1 + - (cpu_decode_opcode_range_check_bit_0 + cpu_decode_opcode_range_check_bit_1 + 4))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[22] * value; + + // Constraint: cpu/opcodes/ret/off0. + value = (cpu_decode_opcode_range_check_bit_13 + * (column7_row0 + 2 - global_values.half_offset_size)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[23] * value; + + // Constraint: cpu/opcodes/ret/off2. + value = (cpu_decode_opcode_range_check_bit_13 + * (column7_row4 + 1 - global_values.half_offset_size)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[24] * value; + + // Constraint: cpu/opcodes/ret/flags. + value = (cpu_decode_opcode_range_check_bit_13 + * (cpu_decode_opcode_range_check_bit_7 + + cpu_decode_opcode_range_check_bit_0 + + cpu_decode_opcode_range_check_bit_3 + + cpu_decode_flag_res_op1_0 + - 4)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[25] * value; + + // Constraint: cpu/opcodes/assert_eq/assert_eq. + value = (cpu_decode_opcode_range_check_bit_14 * (column5_row9 - column8_row12)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[26] * value; + + // Constraint: initial_ap. + value = (column8_row0 - global_values.initial_ap) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[27] * value; + + // Constraint: initial_fp. + value = (column8_row8 - global_values.initial_ap) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[28] * value; + + // Constraint: initial_pc. + value = (column5_row0 - global_values.initial_pc) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[29] * value; + + // Constraint: final_ap. + value = (column8_row0 - global_values.final_ap) + .field_div(&NonZeroFelt::from_felt_unchecked(domain28)); + total_sum += constraint_coefficients[30] * value; + + // Constraint: final_fp. + value = (column8_row8 - global_values.initial_ap) + .field_div(&NonZeroFelt::from_felt_unchecked(domain28)); + total_sum += constraint_coefficients[31] * value; + + // Constraint: final_pc. + value = (column5_row0 - global_values.final_pc) + .field_div(&NonZeroFelt::from_felt_unchecked(domain28)); + total_sum += constraint_coefficients[32] * value; + + // Constraint: memory/multi_column_perm/perm/init0. + value = ((global_values.memory_multi_column_perm_perm_interaction_elm + - (column6_row0 + + global_values.memory_multi_column_perm_hash_interaction_elm0 * column6_row1)) + * column9_inter1_row0 + + column5_row0 + + global_values.memory_multi_column_perm_hash_interaction_elm0 * column5_row1 + - global_values.memory_multi_column_perm_perm_interaction_elm) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[33] * value; + + // Constraint: memory/multi_column_perm/perm/step0. + value = ((global_values.memory_multi_column_perm_perm_interaction_elm + - (column6_row2 + + global_values.memory_multi_column_perm_hash_interaction_elm0 * column6_row3)) + * column9_inter1_row2 + - (global_values.memory_multi_column_perm_perm_interaction_elm + - (column5_row2 + + global_values.memory_multi_column_perm_hash_interaction_elm0 * column5_row3)) + * column9_inter1_row0) + * domain30.field_div(&NonZeroFelt::from_felt_unchecked(domain1)); + total_sum += constraint_coefficients[34] * value; + + // Constraint: memory/multi_column_perm/perm/last. + value = (column9_inter1_row0 - global_values.memory_multi_column_perm_perm_public_memory_prod) + .field_div(&NonZeroFelt::from_felt_unchecked(domain30)); + total_sum += constraint_coefficients[35] * value; + + // Constraint: memory/diff_is_bit. + value = (memory_address_diff_0 * memory_address_diff_0 - memory_address_diff_0) + * domain30.field_div(&NonZeroFelt::from_felt_unchecked(domain1)); + total_sum += constraint_coefficients[36] * value; + + // Constraint: memory/is_func. + value = ((memory_address_diff_0 - 1) * (column6_row1 - column6_row3)) + * domain30.field_div(&NonZeroFelt::from_felt_unchecked(domain1)); + total_sum += constraint_coefficients[37] * value; + + // Constraint: memory/initial_addr. + value = (column6_row0 - 1).field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[38] * value; + + // Constraint: public_memory_addr_zero. + value = (column5_row2).field_div(&NonZeroFelt::from_felt_unchecked(domain3)); + total_sum += constraint_coefficients[39] * value; + + // Constraint: public_memory_value_zero. + value = (column5_row3).field_div(&NonZeroFelt::from_felt_unchecked(domain3)); + total_sum += constraint_coefficients[40] * value; + + // Constraint: range_check16/perm/init0. + value = ((global_values.range_check16_perm_interaction_elm - column7_row2) + * column9_inter1_row1 + + column7_row0 + - global_values.range_check16_perm_interaction_elm) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[41] * value; + + // Constraint: range_check16/perm/step0. + value = ((global_values.range_check16_perm_interaction_elm - column7_row6) + * column9_inter1_row5 + - (global_values.range_check16_perm_interaction_elm - column7_row4) * column9_inter1_row1) + * domain31.field_div(&NonZeroFelt::from_felt_unchecked(domain2)); + total_sum += constraint_coefficients[42] * value; + + // Constraint: range_check16/perm/last. + value = (column9_inter1_row1 - global_values.range_check16_perm_public_memory_prod) + .field_div(&NonZeroFelt::from_felt_unchecked(domain31)); + total_sum += constraint_coefficients[43] * value; + + // Constraint: range_check16/diff_is_bit. + value = (range_check16_diff_0 * range_check16_diff_0 - range_check16_diff_0) + * domain31.field_div(&NonZeroFelt::from_felt_unchecked(domain2)); + total_sum += constraint_coefficients[44] * value; + + // Constraint: range_check16/minimum. + value = (column7_row2 - global_values.range_check_min) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[45] * value; + + // Constraint: range_check16/maximum. + value = (column7_row2 - global_values.range_check_max) + .field_div(&NonZeroFelt::from_felt_unchecked(domain31)); + total_sum += constraint_coefficients[46] * value; + + // Constraint: diluted_check/permutation/init0. + value = ((global_values.diluted_check_permutation_interaction_elm - column7_row5) + * column9_inter1_row7 + + column7_row1 + - global_values.diluted_check_permutation_interaction_elm) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[47] * value; + + // Constraint: diluted_check/permutation/step0. + value = ((global_values.diluted_check_permutation_interaction_elm - column7_row13) + * column9_inter1_row15 + - (global_values.diluted_check_permutation_interaction_elm - column7_row9) + * column9_inter1_row7) + * domain32.field_div(&NonZeroFelt::from_felt_unchecked(domain3)); + total_sum += constraint_coefficients[48] * value; + + // Constraint: diluted_check/permutation/last. + value = (column9_inter1_row7 - global_values.diluted_check_permutation_public_memory_prod) + .field_div(&NonZeroFelt::from_felt_unchecked(domain32)); + total_sum += constraint_coefficients[49] * value; + + // Constraint: diluted_check/init. + value = (column9_inter1_row3 - 1).field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[50] * value; + + // Constraint: diluted_check/first_element. + value = (column7_row5 - global_values.diluted_check_first_elm) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[51] * value; + + // Constraint: diluted_check/step. + value = (column9_inter1_row11 + - (column9_inter1_row3 + * (Felt::ONE + + global_values.diluted_check_interaction_z * (column7_row13 - column7_row5)) + + global_values.diluted_check_interaction_alpha + * (column7_row13 - column7_row5) + * (column7_row13 - column7_row5))) + * domain32.field_div(&NonZeroFelt::from_felt_unchecked(domain3)); + total_sum += constraint_coefficients[52] * value; + + // Constraint: diluted_check/last. + value = (column9_inter1_row3 - global_values.diluted_check_final_cum_val) + .field_div(&NonZeroFelt::from_felt_unchecked(domain32)); + total_sum += constraint_coefficients[53] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/last_one_is_zero. + value = (column8_row71 * (column3_row0 - (column3_row1 + column3_row1))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[54] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/zeroes_between_ones0. + value = (column8_row71 + * (column3_row1 + - Felt::from_hex_unchecked("0x800000000000000000000000000000000000000000000000") + * column3_row192)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[55] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/cumulative_bit192. + value = (column8_row71 - column4_row255 * (column3_row192 - (column3_row193 + column3_row193))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[56] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/zeroes_between_ones192. + value = (column4_row255 * (column3_row193 - Felt::from(8) * column3_row196)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[57] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/cumulative_bit196. + value = (column4_row255 + - (column3_row251 - (column3_row252 + column3_row252)) + * (column3_row196 - (column3_row197 + column3_row197))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[58] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/zeroes_between_ones196. + value = ((column3_row251 - (column3_row252 + column3_row252)) + * (column3_row197 - Felt::from_hex_unchecked("0x40000000000000") * column3_row251)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[59] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/booleanity_test. + value = (pedersen_hash0_ec_subset_sum_bit_0 * (pedersen_hash0_ec_subset_sum_bit_0 - 1)) + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[60] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_extraction_end. + value = (column3_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain10)); + total_sum += constraint_coefficients[61] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/zeros_tail. + value = (column3_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain9)); + total_sum += constraint_coefficients[62] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/add_points/slope. + value = (pedersen_hash0_ec_subset_sum_bit_0 * (column2_row0 - global_values.pedersen_points_y) + - column4_row0 * (column1_row0 - global_values.pedersen_points_x)) + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[63] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/add_points/x. + value = (column4_row0 * column4_row0 + - pedersen_hash0_ec_subset_sum_bit_0 + * (column1_row0 + global_values.pedersen_points_x + column1_row1)) + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[64] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/add_points/y. + value = (pedersen_hash0_ec_subset_sum_bit_0 * (column2_row0 + column2_row1) + - column4_row0 * (column1_row0 - column1_row1)) + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[65] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/copy_point/x. + value = (pedersen_hash0_ec_subset_sum_bit_neg_0 * (column1_row1 - column1_row0)) + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[66] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/copy_point/y. + value = (pedersen_hash0_ec_subset_sum_bit_neg_0 * (column2_row1 - column2_row0)) + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[67] * value; + + // Constraint: pedersen/hash0/copy_point/x. + value = (column1_row256 - column1_row255) + * domain12.field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[68] * value; + + // Constraint: pedersen/hash0/copy_point/y. + value = (column2_row256 - column2_row255) + * domain12.field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[69] * value; + + // Constraint: pedersen/hash0/init/x. + value = (column1_row0 - global_values.pedersen_shift_point.x) + .field_div(&NonZeroFelt::from_felt_unchecked(domain13)); + total_sum += constraint_coefficients[70] * value; + + // Constraint: pedersen/hash0/init/y. + value = (column2_row0 - global_values.pedersen_shift_point.y) + .field_div(&NonZeroFelt::from_felt_unchecked(domain13)); + total_sum += constraint_coefficients[71] * value; + + // Constraint: pedersen/input0_value0. + value = (column5_row7 - column3_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain13)); + total_sum += constraint_coefficients[72] * value; + + // Constraint: pedersen/input0_addr. + value = (column5_row518 - (column5_row134 + 1)) + * domain33.field_div(&NonZeroFelt::from_felt_unchecked(domain13)); + total_sum += constraint_coefficients[73] * value; + + // Constraint: pedersen/init_addr. + value = (column5_row6 - global_values.initial_pedersen_addr) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[74] * value; + + // Constraint: pedersen/input1_value0. + value = + (column5_row263 - column3_row256).field_div(&NonZeroFelt::from_felt_unchecked(domain13)); + total_sum += constraint_coefficients[75] * value; + + // Constraint: pedersen/input1_addr. + value = (column5_row262 - (column5_row6 + 1)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain13)); + total_sum += constraint_coefficients[76] * value; + + // Constraint: pedersen/output_value0. + value = + (column5_row135 - column1_row511).field_div(&NonZeroFelt::from_felt_unchecked(domain13)); + total_sum += constraint_coefficients[77] * value; + + // Constraint: pedersen/output_addr. + value = (column5_row134 - (column5_row262 + 1)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain13)); + total_sum += constraint_coefficients[78] * value; + + // Constraint: range_check_builtin/value. + value = (range_check_builtin_value7_0 - column5_row71) + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[79] * value; + + // Constraint: range_check_builtin/addr_step. + value = (column5_row326 - (column5_row70 + 1)) + * domain34.field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[80] * value; + + // Constraint: range_check_builtin/init_addr. + value = (column5_row70 - global_values.initial_range_check_addr) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[81] * value; + + // Constraint: ecdsa/signature0/doubling_key/slope. + value = (ecdsa_signature0_doubling_key_x_squared + + ecdsa_signature0_doubling_key_x_squared + + ecdsa_signature0_doubling_key_x_squared + + global_values.ecdsa_sig_config.alpha + - (column8_row33 + column8_row33) * column8_row35) + * domain21.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[82] * value; + + // Constraint: ecdsa/signature0/doubling_key/x. + value = (column8_row35 * column8_row35 - (column8_row1 + column8_row1 + column8_row65)) + * domain21.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[83] * value; + + // Constraint: ecdsa/signature0/doubling_key/y. + value = (column8_row33 + column8_row97 - column8_row35 * (column8_row1 - column8_row65)) + * domain21.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[84] * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/booleanity_test. + value = (ecdsa_signature0_exponentiate_generator_bit_0 + * (ecdsa_signature0_exponentiate_generator_bit_0 - 1)) + * domain25.field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[85] * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/bit_extraction_end. + value = (column8_row59).field_div(&NonZeroFelt::from_felt_unchecked(domain26)); + total_sum += constraint_coefficients[86] * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/zeros_tail. + value = (column8_row59).field_div(&NonZeroFelt::from_felt_unchecked(domain25)); + total_sum += constraint_coefficients[87] * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/add_points/slope. + value = (ecdsa_signature0_exponentiate_generator_bit_0 + * (column8_row91 - global_values.ecdsa_generator_points_y) + - column8_row123 * (column8_row27 - global_values.ecdsa_generator_points_x)) + * domain25.field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[88] * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/add_points/x. + value = (column8_row123 * column8_row123 + - ecdsa_signature0_exponentiate_generator_bit_0 + * (column8_row27 + global_values.ecdsa_generator_points_x + column8_row155)) + * domain25.field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[89] * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/add_points/y. + value = (ecdsa_signature0_exponentiate_generator_bit_0 * (column8_row91 + column8_row219) + - column8_row123 * (column8_row27 - column8_row155)) + * domain25.field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[90] * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/add_points/x_diff_inv. + value = (column8_row7 * (column8_row27 - global_values.ecdsa_generator_points_x) - 1) + * domain25.field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[91] * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/copy_point/x. + value = (ecdsa_signature0_exponentiate_generator_bit_neg_0 * (column8_row155 - column8_row27)) + * domain25.field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[92] * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/copy_point/y. + value = (ecdsa_signature0_exponentiate_generator_bit_neg_0 * (column8_row219 - column8_row91)) + * domain25.field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[93] * value; + + // Constraint: ecdsa/signature0/exponentiate_key/booleanity_test. + value = (ecdsa_signature0_exponentiate_key_bit_0 + * (ecdsa_signature0_exponentiate_key_bit_0 - 1)) + * domain21.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[94] * value; + + // Constraint: ecdsa/signature0/exponentiate_key/bit_extraction_end. + value = (column8_row9).field_div(&NonZeroFelt::from_felt_unchecked(domain22)); + total_sum += constraint_coefficients[95] * value; + + // Constraint: ecdsa/signature0/exponentiate_key/zeros_tail. + value = (column8_row9).field_div(&NonZeroFelt::from_felt_unchecked(domain21)); + total_sum += constraint_coefficients[96] * value; + + // Constraint: ecdsa/signature0/exponentiate_key/add_points/slope. + value = (ecdsa_signature0_exponentiate_key_bit_0 * (column8_row49 - column8_row33) + - column8_row19 * (column8_row17 - column8_row1)) + * domain21.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[97] * value; + + // Constraint: ecdsa/signature0/exponentiate_key/add_points/x. + value = (column8_row19 * column8_row19 + - ecdsa_signature0_exponentiate_key_bit_0 * (column8_row17 + column8_row1 + column8_row81)) + * domain21.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[98] * value; + + // Constraint: ecdsa/signature0/exponentiate_key/add_points/y. + value = (ecdsa_signature0_exponentiate_key_bit_0 * (column8_row49 + column8_row113) + - column8_row19 * (column8_row17 - column8_row81)) + * domain21.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[99] * value; + + // Constraint: ecdsa/signature0/exponentiate_key/add_points/x_diff_inv. + value = (column8_row51 * (column8_row17 - column8_row1) - 1) + * domain21.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[100] * value; + + // Constraint: ecdsa/signature0/exponentiate_key/copy_point/x. + value = (ecdsa_signature0_exponentiate_key_bit_neg_0 * (column8_row81 - column8_row17)) + * domain21.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[101] * value; + + // Constraint: ecdsa/signature0/exponentiate_key/copy_point/y. + value = (ecdsa_signature0_exponentiate_key_bit_neg_0 * (column8_row113 - column8_row49)) + * domain21.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[102] * value; + + // Constraint: ecdsa/signature0/init_gen/x. + value = (column8_row27 - global_values.ecdsa_sig_config.shift_point.x) + .field_div(&NonZeroFelt::from_felt_unchecked(domain27)); + total_sum += constraint_coefficients[103] * value; + + // Constraint: ecdsa/signature0/init_gen/y. + value = (column8_row91 + global_values.ecdsa_sig_config.shift_point.y) + .field_div(&NonZeroFelt::from_felt_unchecked(domain27)); + total_sum += constraint_coefficients[104] * value; + + // Constraint: ecdsa/signature0/init_key/x. + value = (column8_row17 - global_values.ecdsa_sig_config.shift_point.x) + .field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[105] * value; + + // Constraint: ecdsa/signature0/init_key/y. + value = (column8_row49 - global_values.ecdsa_sig_config.shift_point.y) + .field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[106] * value; + + // Constraint: ecdsa/signature0/add_results/slope. + value = (column8_row32731 + - (column8_row16369 + column8_row32763 * (column8_row32667 - column8_row16337))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain27)); + total_sum += constraint_coefficients[107] * value; + + // Constraint: ecdsa/signature0/add_results/x. + value = (column8_row32763 * column8_row32763 + - (column8_row32667 + column8_row16337 + column8_row16385)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain27)); + total_sum += constraint_coefficients[108] * value; + + // Constraint: ecdsa/signature0/add_results/y. + value = (column8_row32731 + column8_row16417 + - column8_row32763 * (column8_row32667 - column8_row16385)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain27)); + total_sum += constraint_coefficients[109] * value; + + // Constraint: ecdsa/signature0/add_results/x_diff_inv. + value = (column8_row32647 * (column8_row32667 - column8_row16337) - 1) + .field_div(&NonZeroFelt::from_felt_unchecked(domain27)); + total_sum += constraint_coefficients[110] * value; + + // Constraint: ecdsa/signature0/extract_r/slope. + value = (column8_row32753 + global_values.ecdsa_sig_config.shift_point.y + - column8_row16331 * (column8_row32721 - global_values.ecdsa_sig_config.shift_point.x)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain27)); + total_sum += constraint_coefficients[111] * value; + + // Constraint: ecdsa/signature0/extract_r/x. + value = (column8_row16331 * column8_row16331 + - (column8_row32721 + global_values.ecdsa_sig_config.shift_point.x + column8_row9)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain27)); + total_sum += constraint_coefficients[112] * value; + + // Constraint: ecdsa/signature0/extract_r/x_diff_inv. + value = (column8_row32715 * (column8_row32721 - global_values.ecdsa_sig_config.shift_point.x) + - 1) + .field_div(&NonZeroFelt::from_felt_unchecked(domain27)); + total_sum += constraint_coefficients[113] * value; + + // Constraint: ecdsa/signature0/z_nonzero. + value = (column8_row59 * column8_row16363 - 1) + .field_div(&NonZeroFelt::from_felt_unchecked(domain27)); + total_sum += constraint_coefficients[114] * value; + + // Constraint: ecdsa/signature0/r_and_w_nonzero. + value = (column8_row9 * column8_row16355 - 1) + .field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[115] * value; + + // Constraint: ecdsa/signature0/q_on_curve/x_squared. + value = (column8_row32747 - column8_row1 * column8_row1) + .field_div(&NonZeroFelt::from_felt_unchecked(domain27)); + total_sum += constraint_coefficients[116] * value; + + // Constraint: ecdsa/signature0/q_on_curve/on_curve. + value = (column8_row33 * column8_row33 + - (column8_row1 * column8_row32747 + + global_values.ecdsa_sig_config.alpha * column8_row1 + + global_values.ecdsa_sig_config.beta)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain27)); + total_sum += constraint_coefficients[117] * value; + + // Constraint: ecdsa/init_addr. + value = (column5_row390 - global_values.initial_ecdsa_addr) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[118] * value; + + // Constraint: ecdsa/message_addr. + value = (column5_row16774 - (column5_row390 + 1)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain27)); + total_sum += constraint_coefficients[119] * value; + + // Constraint: ecdsa/pubkey_addr. + value = (column5_row33158 - (column5_row16774 + 1)) + * domain35.field_div(&NonZeroFelt::from_felt_unchecked(domain27)); + total_sum += constraint_coefficients[120] * value; + + // Constraint: ecdsa/message_value0. + value = + (column5_row16775 - column8_row59).field_div(&NonZeroFelt::from_felt_unchecked(domain27)); + total_sum += constraint_coefficients[121] * value; + + // Constraint: ecdsa/pubkey_value0. + value = (column5_row391 - column8_row1).field_div(&NonZeroFelt::from_felt_unchecked(domain27)); + total_sum += constraint_coefficients[122] * value; + + // Constraint: bitwise/init_var_pool_addr. + value = (column5_row198 - global_values.initial_bitwise_addr) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[123] * value; + + // Constraint: bitwise/step_var_pool_addr. + value = (column5_row454 - (column5_row198 + 1)) + * domain18.field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[124] * value; + + // Constraint: bitwise/x_or_y_addr. + value = (column5_row902 - (column5_row966 + 1)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain19)); + total_sum += constraint_coefficients[125] * value; + + // Constraint: bitwise/next_var_pool_addr. + value = (column5_row1222 - (column5_row902 + 1)) + * domain36.field_div(&NonZeroFelt::from_felt_unchecked(domain19)); + total_sum += constraint_coefficients[126] * value; + + // Constraint: bitwise/partition. + value = (bitwise_sum_var_0_0 + bitwise_sum_var_8_0 - column5_row199) + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[127] * value; + + // Constraint: bitwise/or_is_and_plus_xor. + value = (column5_row903 - (column5_row711 + column5_row967)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain19)); + total_sum += constraint_coefficients[128] * value; + + // Constraint: bitwise/addition_is_xor_with_and. + value = (column7_row1 + column7_row257 - (column7_row769 + column7_row513 + column7_row513)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain20)); + total_sum += constraint_coefficients[129] * value; + + // Constraint: bitwise/unique_unpacking192. + value = ((column7_row705 + column7_row961) * Felt::from(16) - column7_row9) + .field_div(&NonZeroFelt::from_felt_unchecked(domain19)); + total_sum += constraint_coefficients[130] * value; + + // Constraint: bitwise/unique_unpacking193. + value = ((column7_row721 + column7_row977) * Felt::from(16) - column7_row521) + .field_div(&NonZeroFelt::from_felt_unchecked(domain19)); + total_sum += constraint_coefficients[131] * value; + + // Constraint: bitwise/unique_unpacking194. + value = ((column7_row737 + column7_row993) * Felt::from(16) - column7_row265) + .field_div(&NonZeroFelt::from_felt_unchecked(domain19)); + total_sum += constraint_coefficients[132] * value; + + // Constraint: bitwise/unique_unpacking195. + value = ((column7_row753 + column7_row1009) * Felt::from(256) - column7_row777) + .field_div(&NonZeroFelt::from_felt_unchecked(domain19)); + total_sum += constraint_coefficients[133] * value; + + // Constraint: ec_op/init_addr. + value = (column5_row8582 - global_values.initial_ec_op_addr) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[134] * value; + + // Constraint: ec_op/p_x_addr. + value = (column5_row24966 - (column5_row8582 + 7)) + * domain37.field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[135] * value; + + // Constraint: ec_op/p_y_addr. + value = (column5_row4486 - (column5_row8582 + 1)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[136] * value; + + // Constraint: ec_op/q_x_addr. + value = (column5_row12678 - (column5_row4486 + 1)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[137] * value; + + // Constraint: ec_op/q_y_addr. + value = (column5_row2438 - (column5_row12678 + 1)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[138] * value; + + // Constraint: ec_op/m_addr. + value = (column5_row10630 - (column5_row2438 + 1)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[139] * value; + + // Constraint: ec_op/r_x_addr. + value = (column5_row6534 - (column5_row10630 + 1)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[140] * value; + + // Constraint: ec_op/r_y_addr. + value = (column5_row14726 - (column5_row6534 + 1)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[141] * value; + + // Constraint: ec_op/doubling_q/slope. + value = (ec_op_doubling_q_x_squared_0 + + ec_op_doubling_q_x_squared_0 + + ec_op_doubling_q_x_squared_0 + + global_values.ec_op_curve_config.alpha + - (column8_row25 + column8_row25) * column8_row57) + * domain21.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[142] * value; + + // Constraint: ec_op/doubling_q/x. + value = (column8_row57 * column8_row57 - (column8_row41 + column8_row41 + column8_row105)) + * domain21.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[143] * value; + + // Constraint: ec_op/doubling_q/y. + value = (column8_row25 + column8_row89 - column8_row57 * (column8_row41 - column8_row105)) + * domain21.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[144] * value; + + // Constraint: ec_op/get_q_x. + value = + (column5_row12679 - column8_row41).field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[145] * value; + + // Constraint: ec_op/get_q_y. + value = + (column5_row2439 - column8_row25).field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[146] * value; + + // Constraint: ec_op/ec_subset_sum/bit_unpacking/last_one_is_zero. + value = (column8_row16371 * (column8_row21 - (column8_row85 + column8_row85))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[147] * value; + + // Constraint: ec_op/ec_subset_sum/bit_unpacking/zeroes_between_ones0. + value = (column8_row16371 + * (column8_row85 + - Felt::from_hex_unchecked("0x800000000000000000000000000000000000000000000000") + * column8_row12309)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[148] * value; + + // Constraint: ec_op/ec_subset_sum/bit_unpacking/cumulative_bit192. + value = (column8_row16371 + - column8_row16339 * (column8_row12309 - (column8_row12373 + column8_row12373))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[149] * value; + + // Constraint: ec_op/ec_subset_sum/bit_unpacking/zeroes_between_ones192. + value = (column8_row16339 * (column8_row12373 - Felt::from(8) * column8_row12565)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[150] * value; + + // Constraint: ec_op/ec_subset_sum/bit_unpacking/cumulative_bit196. + value = (column8_row16339 + - (column8_row16085 - (column8_row16149 + column8_row16149)) + * (column8_row12565 - (column8_row12629 + column8_row12629))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[151] * value; + + // Constraint: ec_op/ec_subset_sum/bit_unpacking/zeroes_between_ones196. + value = ((column8_row16085 - (column8_row16149 + column8_row16149)) + * (column8_row12629 - Felt::from_hex_unchecked("0x40000000000000") * column8_row16085)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[152] * value; + + // Constraint: ec_op/ec_subset_sum/booleanity_test. + value = (ec_op_ec_subset_sum_bit_0 * (ec_op_ec_subset_sum_bit_0 - 1)) + * domain21.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[153] * value; + + // Constraint: ec_op/ec_subset_sum/bit_extraction_end. + value = (column8_row21).field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[154] * value; + + // Constraint: ec_op/ec_subset_sum/zeros_tail. + value = (column8_row21).field_div(&NonZeroFelt::from_felt_unchecked(domain21)); + total_sum += constraint_coefficients[155] * value; + + // Constraint: ec_op/ec_subset_sum/add_points/slope. + value = (ec_op_ec_subset_sum_bit_0 * (column8_row37 - column8_row25) + - column8_row11 * (column8_row5 - column8_row41)) + * domain21.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[156] * value; + + // Constraint: ec_op/ec_subset_sum/add_points/x. + value = (column8_row11 * column8_row11 + - ec_op_ec_subset_sum_bit_0 * (column8_row5 + column8_row41 + column8_row69)) + * domain21.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[157] * value; + + // Constraint: ec_op/ec_subset_sum/add_points/y. + value = (ec_op_ec_subset_sum_bit_0 * (column8_row37 + column8_row101) + - column8_row11 * (column8_row5 - column8_row69)) + * domain21.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[158] * value; + + // Constraint: ec_op/ec_subset_sum/add_points/x_diff_inv. + value = (column8_row43 * (column8_row5 - column8_row41) - 1) + * domain21.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[159] * value; + + // Constraint: ec_op/ec_subset_sum/copy_point/x. + value = (ec_op_ec_subset_sum_bit_neg_0 * (column8_row69 - column8_row5)) + * domain21.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[160] * value; + + // Constraint: ec_op/ec_subset_sum/copy_point/y. + value = (ec_op_ec_subset_sum_bit_neg_0 * (column8_row101 - column8_row37)) + * domain21.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[161] * value; + + // Constraint: ec_op/get_m. + value = + (column8_row21 - column5_row10631).field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[162] * value; + + // Constraint: ec_op/get_p_x. + value = (column5_row8583 - column8_row5).field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[163] * value; + + // Constraint: ec_op/get_p_y. + value = + (column5_row4487 - column8_row37).field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[164] * value; + + // Constraint: ec_op/set_r_x. + value = + (column5_row6535 - column8_row16325).field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[165] * value; + + // Constraint: ec_op/set_r_y. + value = (column5_row14727 - column8_row16357) + .field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[166] * value; + + // Constraint: poseidon/param_0/init_input_output_addr. + value = (column5_row38 - global_values.initial_poseidon_addr) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[167] * value; + + // Constraint: poseidon/param_0/addr_input_output_step. + value = (column5_row294 - (column5_row38 + 3)) + * domain34.field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[168] * value; + + // Constraint: poseidon/param_1/init_input_output_addr. + value = (column5_row166 - (global_values.initial_poseidon_addr + 1)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[169] * value; + + // Constraint: poseidon/param_1/addr_input_output_step. + value = (column5_row422 - (column5_row166 + 3)) + * domain34.field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[170] * value; + + // Constraint: poseidon/param_2/init_input_output_addr. + value = (column5_row102 - (global_values.initial_poseidon_addr + 2)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[171] * value; + + // Constraint: poseidon/param_2/addr_input_output_step. + value = (column5_row358 - (column5_row102 + 3)) + * domain34.field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[172] * value; + + // Constraint: poseidon/poseidon/full_rounds_state0_squaring. + value = (column8_row53 * column8_row53 - column8_row29) + .field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[173] * value; + + // Constraint: poseidon/poseidon/full_rounds_state1_squaring. + value = (column8_row13 * column8_row13 - column8_row61) + .field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[174] * value; + + // Constraint: poseidon/poseidon/full_rounds_state2_squaring. + value = (column8_row45 * column8_row45 - column8_row3) + .field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[175] * value; + + // Constraint: poseidon/poseidon/partial_rounds_state0_squaring. + value = (column7_row3 * column7_row3 - column7_row7) + .field_div(&NonZeroFelt::from_felt_unchecked(domain3)); + total_sum += constraint_coefficients[176] * value; + + // Constraint: poseidon/poseidon/partial_rounds_state1_squaring. + value = (column8_row6 * column8_row6 - column8_row14) + * domain15.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[177] * value; + + // Constraint: poseidon/poseidon/add_first_round_key0. + value = (column5_row39 + + Felt::from_hex_unchecked( + "0x6861759EA556A2339DD92F9562A30B9E58E2AD98109AE4780B7FD8EAC77FE6F", + ) + - column8_row53) + .field_div(&NonZeroFelt::from_felt_unchecked(domain13)); + total_sum += constraint_coefficients[178] * value; + + // Constraint: poseidon/poseidon/add_first_round_key1. + value = (column5_row167 + + Felt::from_hex_unchecked( + "0x3827681995D5AF9FFC8397A3D00425A3DA43F76ABF28A64E4AB1A22F27508C4", + ) + - column8_row13) + .field_div(&NonZeroFelt::from_felt_unchecked(domain13)); + total_sum += constraint_coefficients[179] * value; + + // Constraint: poseidon/poseidon/add_first_round_key2. + value = (column5_row103 + + Felt::from_hex_unchecked( + "0x3A3956D2FAD44D0E7F760A2277DC7CB2CAC75DC279B2D687A0DBE17704A8309", + ) + - column8_row45) + .field_div(&NonZeroFelt::from_felt_unchecked(domain13)); + total_sum += constraint_coefficients[180] * value; + + // Constraint: poseidon/poseidon/full_round0. + value = (column8_row117 + - (poseidon_poseidon_full_rounds_state0_cubed_0 + + poseidon_poseidon_full_rounds_state0_cubed_0 + + poseidon_poseidon_full_rounds_state0_cubed_0 + + poseidon_poseidon_full_rounds_state1_cubed_0 + + poseidon_poseidon_full_rounds_state2_cubed_0 + + global_values.poseidon_poseidon_full_round_key0)) + * domain11.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[181] * value; + + // Constraint: poseidon/poseidon/full_round1. + value = (column8_row77 + poseidon_poseidon_full_rounds_state1_cubed_0 + - (poseidon_poseidon_full_rounds_state0_cubed_0 + + poseidon_poseidon_full_rounds_state2_cubed_0 + + global_values.poseidon_poseidon_full_round_key1)) + * domain11.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[182] * value; + + // Constraint: poseidon/poseidon/full_round2. + value = (column8_row109 + + poseidon_poseidon_full_rounds_state2_cubed_0 + + poseidon_poseidon_full_rounds_state2_cubed_0 + - (poseidon_poseidon_full_rounds_state0_cubed_0 + + poseidon_poseidon_full_rounds_state1_cubed_0 + + global_values.poseidon_poseidon_full_round_key2)) + * domain11.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[183] * value; + + // Constraint: poseidon/poseidon/last_full_round0. + value = (column5_row295 + - (poseidon_poseidon_full_rounds_state0_cubed_7 + + poseidon_poseidon_full_rounds_state0_cubed_7 + + poseidon_poseidon_full_rounds_state0_cubed_7 + + poseidon_poseidon_full_rounds_state1_cubed_7 + + poseidon_poseidon_full_rounds_state2_cubed_7)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain13)); + total_sum += constraint_coefficients[184] * value; + + // Constraint: poseidon/poseidon/last_full_round1. + value = (column5_row423 + poseidon_poseidon_full_rounds_state1_cubed_7 + - (poseidon_poseidon_full_rounds_state0_cubed_7 + + poseidon_poseidon_full_rounds_state2_cubed_7)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain13)); + total_sum += constraint_coefficients[185] * value; + + // Constraint: poseidon/poseidon/last_full_round2. + value = (column5_row359 + + poseidon_poseidon_full_rounds_state2_cubed_7 + + poseidon_poseidon_full_rounds_state2_cubed_7 + - (poseidon_poseidon_full_rounds_state0_cubed_7 + + poseidon_poseidon_full_rounds_state1_cubed_7)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain13)); + total_sum += constraint_coefficients[186] * value; + + // Constraint: poseidon/poseidon/copy_partial_rounds0_i0. + value = (column7_row491 - column8_row6).field_div(&NonZeroFelt::from_felt_unchecked(domain13)); + total_sum += constraint_coefficients[187] * value; + + // Constraint: poseidon/poseidon/copy_partial_rounds0_i1. + value = (column7_row499 - column8_row22).field_div(&NonZeroFelt::from_felt_unchecked(domain13)); + total_sum += constraint_coefficients[188] * value; + + // Constraint: poseidon/poseidon/copy_partial_rounds0_i2. + value = (column7_row507 - column8_row38).field_div(&NonZeroFelt::from_felt_unchecked(domain13)); + total_sum += constraint_coefficients[189] * value; + + // Constraint: poseidon/poseidon/margin_full_to_partial0. + value = (column7_row3 + + poseidon_poseidon_full_rounds_state2_cubed_3 + + poseidon_poseidon_full_rounds_state2_cubed_3 + - (poseidon_poseidon_full_rounds_state0_cubed_3 + + poseidon_poseidon_full_rounds_state1_cubed_3 + + Felt::from_hex_unchecked( + "0x4B085EB1DF4258C3453CC97445954BF3433B6AB9DD5A99592864C00F54A3F9A", + ))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain13)); + total_sum += constraint_coefficients[190] * value; + + // Constraint: poseidon/poseidon/margin_full_to_partial1. + value = (column7_row11 + - (Felt::from_hex_unchecked( + "0x800000000000010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD", + ) * poseidon_poseidon_full_rounds_state1_cubed_3 + + Felt::from(10) * poseidon_poseidon_full_rounds_state2_cubed_3 + + Felt::from(4) * column7_row3 + + Felt::from_hex_unchecked( + "0x800000000000010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", + ) * poseidon_poseidon_partial_rounds_state0_cubed_0 + + Felt::from_hex_unchecked( + "0x46FB825257FEC76C50FE043684D4E6D2D2F2FDFE9B7C8D7128CA7ACC0F66F30", + ))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain13)); + total_sum += constraint_coefficients[191] * value; + + // Constraint: poseidon/poseidon/margin_full_to_partial2. + value = (column7_row19 + - (Felt::from(8) * poseidon_poseidon_full_rounds_state2_cubed_3 + + Felt::from(4) * column7_row3 + + Felt::from(6) * poseidon_poseidon_partial_rounds_state0_cubed_0 + + column7_row11 + + column7_row11 + + Felt::from_hex_unchecked( + "0x800000000000010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", + ) * poseidon_poseidon_partial_rounds_state0_cubed_1 + + Felt::from_hex_unchecked( + "0xF2193BA0C7EA33CE6222D9446C1E166202AE5461005292F4A2BCB93420151A", + ))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain13)); + total_sum += constraint_coefficients[192] * value; + + // Constraint: poseidon/poseidon/partial_round0. + value = (column7_row27 + - (Felt::from(8) * poseidon_poseidon_partial_rounds_state0_cubed_0 + + Felt::from(4) * column7_row11 + + Felt::from(6) * poseidon_poseidon_partial_rounds_state0_cubed_1 + + column7_row19 + + column7_row19 + + Felt::from_hex_unchecked( + "0x800000000000010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", + ) * poseidon_poseidon_partial_rounds_state0_cubed_2 + + global_values.poseidon_poseidon_partial_round_key0)) + * domain16.field_div(&NonZeroFelt::from_felt_unchecked(domain3)); + total_sum += constraint_coefficients[193] * value; + + // Constraint: poseidon/poseidon/partial_round1. + value = (column8_row54 + - (Felt::from(8) * poseidon_poseidon_partial_rounds_state1_cubed_0 + + Felt::from(4) * column8_row22 + + Felt::from(6) * poseidon_poseidon_partial_rounds_state1_cubed_1 + + column8_row38 + + column8_row38 + + Felt::from_hex_unchecked( + "0x800000000000010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", + ) * poseidon_poseidon_partial_rounds_state1_cubed_2 + + global_values.poseidon_poseidon_partial_round_key1)) + * domain17.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[194] * value; + + // Constraint: poseidon/poseidon/margin_partial_to_full0. + value = (column8_row309 + - (Felt::from(16) * poseidon_poseidon_partial_rounds_state1_cubed_19 + + Felt::from(8) * column8_row326 + + Felt::from(16) * poseidon_poseidon_partial_rounds_state1_cubed_20 + + Felt::from(6) * column8_row342 + + poseidon_poseidon_partial_rounds_state1_cubed_21 + + Felt::from_hex_unchecked( + "0x13D1B5CFD87693224F0AC561AB2C15CA53365D768311AF59CEFAF701BC53B37", + ))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain13)); + total_sum += constraint_coefficients[195] * value; + + // Constraint: poseidon/poseidon/margin_partial_to_full1. + value = (column8_row269 + - (Felt::from(4) * poseidon_poseidon_partial_rounds_state1_cubed_20 + + column8_row342 + + column8_row342 + + poseidon_poseidon_partial_rounds_state1_cubed_21 + + Felt::from_hex_unchecked( + "0x3195D6B2D930E71CEDE286D5B8B41D49296DDF222BCD3BF3717A12A9A6947FF", + ))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain13)); + total_sum += constraint_coefficients[196] * value; + + // Constraint: poseidon/poseidon/margin_partial_to_full2. + value = (column8_row301 + - (Felt::from(8) * poseidon_poseidon_partial_rounds_state1_cubed_19 + + Felt::from(4) * column8_row326 + + Felt::from(6) * poseidon_poseidon_partial_rounds_state1_cubed_20 + + column8_row342 + + column8_row342 + + Felt::from_hex_unchecked( + "0x800000000000010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", + ) * poseidon_poseidon_partial_rounds_state1_cubed_21 + + Felt::from_hex_unchecked( + "0x2C14FCCABC26929170CC7AC9989C823608B9008BEF3B8E16B6089A5D33CD72E", + ))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain13)); + total_sum += constraint_coefficients[197] * value; + + total_sum +} + +pub fn eval_oods_polynomial_inner( + column_values: &[Felt], + oods_values: &[Felt], + constraint_coefficients: &[Felt], + point: &Felt, + oods_point: &Felt, + trace_generator: &Felt, +) -> Felt { + // Compute powers. + let pow0 = trace_generator.pow(0_u128); + let pow1 = trace_generator.pow(32715_u128); + let pow2 = trace_generator.pow(32667_u128); + let pow3 = trace_generator.pow(32647_u128); + let pow4 = trace_generator.pow(16325_u128); + let pow5 = trace_generator.pow(16149_u128); + let pow6 = trace_generator.pow(16085_u128); + let pow7 = trace_generator.pow(12373_u128); + let pow8 = trace_generator.pow(12309_u128); + let pow9 = trace_generator.pow(24966_u128); + let pow10 = trace_generator.pow(16774_u128); + let pow11 = trace_generator.pow(14726_u128); + let pow12 = trace_generator.pow(10630_u128); + let pow13 = trace_generator.pow(8582_u128); + let pow14 = trace_generator.pow(6534_u128); + let pow15 = trace_generator.pow(4486_u128); + let pow16 = trace_generator.pow(2438_u128); + let pow17 = trace_generator.pow(1_u128); + let pow18 = pow11 * pow17; // pow(trace_generator, 14727). + let pow19 = pow12 * pow17; // pow(trace_generator, 10631). + let pow20 = pow13 * pow17; // pow(trace_generator, 8583). + let pow21 = pow14 * pow17; // pow(trace_generator, 6535). + let pow22 = pow15 * pow17; // pow(trace_generator, 4487). + let pow23 = pow16 * pow17; // pow(trace_generator, 2439). + let pow24 = pow17 * pow17; // pow(trace_generator, 2). + let pow25 = pow17 * pow24; // pow(trace_generator, 3). + let pow26 = pow17 * pow25; // pow(trace_generator, 4). + let pow27 = pow17 * pow26; // pow(trace_generator, 5). + let pow28 = pow17 * pow27; // pow(trace_generator, 6). + let pow29 = pow4 * pow28; // pow(trace_generator, 16331). + let pow30 = pow17 * pow28; // pow(trace_generator, 7). + let pow31 = pow17 * pow30; // pow(trace_generator, 8). + let pow32 = pow17 * pow31; // pow(trace_generator, 9). + let pow33 = pow17 * pow32; // pow(trace_generator, 10). + let pow34 = pow17 * pow33; // pow(trace_generator, 11). + let pow35 = pow17 * pow34; // pow(trace_generator, 12). + let pow36 = pow17 * pow35; // pow(trace_generator, 13). + let pow37 = pow17 * pow36; // pow(trace_generator, 14). + let pow38 = pow17 * pow37; // pow(trace_generator, 15). + let pow39 = pow17 * pow38; // pow(trace_generator, 16). + let pow40 = pow17 * pow39; // pow(trace_generator, 17). + let pow41 = pow24 * pow40; // pow(trace_generator, 19). + let pow42 = pow24 * pow41; // pow(trace_generator, 21). + let pow43 = pow17 * pow42; // pow(trace_generator, 22). + let pow44 = pow17 * pow43; // pow(trace_generator, 23). + let pow45 = pow17 * pow44; // pow(trace_generator, 24). + let pow46 = pow17 * pow45; // pow(trace_generator, 25). + let pow47 = pow24 * pow46; // pow(trace_generator, 27). + let pow48 = pow24 * pow47; // pow(trace_generator, 29). + let pow49 = pow17 * pow48; // pow(trace_generator, 30). + let pow50 = pow25 * pow49; // pow(trace_generator, 33). + let pow51 = pow24 * pow50; // pow(trace_generator, 35). + let pow52 = pow24 * pow51; // pow(trace_generator, 37). + let pow53 = pow17 * pow52; // pow(trace_generator, 38). + let pow54 = pow17 * pow53; // pow(trace_generator, 39). + let pow55 = pow24 * pow54; // pow(trace_generator, 41). + let pow56 = pow24 * pow55; // pow(trace_generator, 43). + let pow57 = pow17 * pow56; // pow(trace_generator, 44). + let pow58 = pow17 * pow57; // pow(trace_generator, 45). + let pow59 = pow17 * pow58; // pow(trace_generator, 46). + let pow60 = pow25 * pow59; // pow(trace_generator, 49). + let pow61 = pow24 * pow60; // pow(trace_generator, 51). + let pow62 = pow24 * pow61; // pow(trace_generator, 53). + let pow63 = pow17 * pow62; // pow(trace_generator, 54). + let pow64 = pow1 * pow28; // pow(trace_generator, 32721). + let pow65 = pow1 * pow39; // pow(trace_generator, 32731). + let pow66 = pow39 * pow65; // pow(trace_generator, 32747). + let pow67 = pow1 * pow53; // pow(trace_generator, 32753). + let pow68 = pow33 * pow67; // pow(trace_generator, 32763). + let pow69 = pow25 * pow63; // pow(trace_generator, 57). + let pow70 = pow24 * pow69; // pow(trace_generator, 59). + let pow71 = pow24 * pow70; // pow(trace_generator, 61). + let pow72 = pow26 * pow71; // pow(trace_generator, 65). + let pow73 = pow26 * pow72; // pow(trace_generator, 69). + let pow74 = pow17 * pow73; // pow(trace_generator, 70). + let pow75 = pow17 * pow74; // pow(trace_generator, 71). + let pow76 = pow24 * pow75; // pow(trace_generator, 73). + let pow77 = pow25 * pow76; // pow(trace_generator, 76). + let pow78 = pow17 * pow77; // pow(trace_generator, 77). + let pow79 = pow26 * pow78; // pow(trace_generator, 81). + let pow80 = pow26 * pow79; // pow(trace_generator, 85). + let pow81 = pow26 * pow80; // pow(trace_generator, 89). + let pow82 = pow24 * pow81; // pow(trace_generator, 91). + let pow83 = pow28 * pow82; // pow(trace_generator, 97). + let pow84 = pow26 * pow83; // pow(trace_generator, 101). + let pow85 = pow17 * pow84; // pow(trace_generator, 102). + let pow86 = pow17 * pow85; // pow(trace_generator, 103). + let pow87 = pow24 * pow86; // pow(trace_generator, 105). + let pow88 = pow25 * pow87; // pow(trace_generator, 108). + let pow89 = pow17 * pow88; // pow(trace_generator, 109). + let pow90 = pow26 * pow89; // pow(trace_generator, 113). + let pow91 = pow26 * pow90; // pow(trace_generator, 117). + let pow92 = pow28 * pow91; // pow(trace_generator, 123). + let pow93 = pow28 * pow92; // pow(trace_generator, 129). + let pow94 = pow27 * pow93; // pow(trace_generator, 134). + let pow95 = pow17 * pow94; // pow(trace_generator, 135). + let pow96 = pow27 * pow95; // pow(trace_generator, 140). + let pow97 = pow27 * pow96; // pow(trace_generator, 145). + let pow98 = pow33 * pow97; // pow(trace_generator, 155). + let pow99 = pow28 * pow98; // pow(trace_generator, 161). + let pow100 = pow27 * pow99; // pow(trace_generator, 166). + let pow101 = pow17 * pow100; // pow(trace_generator, 167). + let pow102 = pow27 * pow101; // pow(trace_generator, 172). + let pow103 = pow27 * pow102; // pow(trace_generator, 177). + let pow104 = pow33 * pow103; // pow(trace_generator, 187). + let pow105 = pow27 * pow104; // pow(trace_generator, 192). + let pow106 = pow17 * pow105; // pow(trace_generator, 193). + let pow107 = pow24 * pow106; // pow(trace_generator, 195). + let pow108 = pow17 * pow107; // pow(trace_generator, 196). + let pow109 = pow17 * pow108; // pow(trace_generator, 197). + let pow110 = pow17 * pow109; // pow(trace_generator, 198). + let pow111 = pow17 * pow110; // pow(trace_generator, 199). + let pow112 = pow27 * pow111; // pow(trace_generator, 204). + let pow113 = pow17 * pow112; // pow(trace_generator, 205). + let pow114 = pow26 * pow113; // pow(trace_generator, 209). + let pow115 = pow33 * pow114; // pow(trace_generator, 219). + let pow116 = pow24 * pow115; // pow(trace_generator, 221). + let pow117 = pow26 * pow116; // pow(trace_generator, 225). + let pow118 = pow34 * pow117; // pow(trace_generator, 236). + let pow119 = pow17 * pow118; // pow(trace_generator, 237). + let pow120 = pow26 * pow119; // pow(trace_generator, 241). + let pow121 = pow26 * pow120; // pow(trace_generator, 245). + let pow122 = pow28 * pow121; // pow(trace_generator, 251). + let pow123 = pow17 * pow122; // pow(trace_generator, 252). + let pow124 = pow4 * pow35; // pow(trace_generator, 16337). + let pow125 = pow4 * pow37; // pow(trace_generator, 16339). + let pow126 = pow4 * pow49; // pow(trace_generator, 16355). + let pow127 = pow24 * pow126; // pow(trace_generator, 16357). + let pow128 = pow4 * pow53; // pow(trace_generator, 16363). + let pow129 = pow4 * pow57; // pow(trace_generator, 16369). + let pow130 = pow4 * pow59; // pow(trace_generator, 16371). + let pow131 = pow5 * pow118; // pow(trace_generator, 16385). + let pow132 = pow59 * pow130; // pow(trace_generator, 16417). + let pow133 = pow17 * pow123; // pow(trace_generator, 253). + let pow134 = pow24 * pow133; // pow(trace_generator, 255). + let pow135 = pow17 * pow134; // pow(trace_generator, 256). + let pow136 = pow17 * pow135; // pow(trace_generator, 257). + let pow137 = pow7 * pow135; // pow(trace_generator, 12629). + let pow138 = pow7 * pow105; // pow(trace_generator, 12565). + let pow139 = pow60 * pow137; // pow(trace_generator, 12678). + let pow140 = pow17 * pow139; // pow(trace_generator, 12679). + let pow141 = pow27 * pow136; // pow(trace_generator, 262). + let pow142 = pow17 * pow141; // pow(trace_generator, 263). + let pow143 = pow24 * pow142; // pow(trace_generator, 265). + let pow144 = pow26 * pow143; // pow(trace_generator, 269). + let pow145 = pow46 * pow144; // pow(trace_generator, 294). + let pow146 = pow17 * pow145; // pow(trace_generator, 295). + let pow147 = pow28 * pow146; // pow(trace_generator, 301). + let pow148 = pow31 * pow147; // pow(trace_generator, 309). + let pow149 = pow17 * pow148; // pow(trace_generator, 310). + let pow150 = pow31 * pow149; // pow(trace_generator, 318). + let pow151 = pow90 * pow148; // pow(trace_generator, 422). + let pow152 = pow79 * pow148; // pow(trace_generator, 390). + let pow153 = pow31 * pow150; // pow(trace_generator, 326). + let pow154 = pow31 * pow153; // pow(trace_generator, 334). + let pow155 = pow31 * pow154; // pow(trace_generator, 342). + let pow156 = pow31 * pow155; // pow(trace_generator, 350). + let pow157 = pow31 * pow156; // pow(trace_generator, 358). + let pow158 = pow17 * pow151; // pow(trace_generator, 423). + let pow159 = pow17 * pow152; // pow(trace_generator, 391). + let pow160 = pow17 * pow157; // pow(trace_generator, 359). + let pow161 = pow10 * pow17; // pow(trace_generator, 16775). + let pow162 = pow48 * pow151; // pow(trace_generator, 451). + let pow163 = pow25 * pow162; // pow(trace_generator, 454). + let pow164 = pow30 * pow163; // pow(trace_generator, 461). + let pow165 = pow39 * pow164; // pow(trace_generator, 477). + let pow166 = pow37 * pow165; // pow(trace_generator, 491). + let pow167 = pow24 * pow166; // pow(trace_generator, 493). + let pow168 = pow28 * pow167; // pow(trace_generator, 499). + let pow169 = pow24 * pow168; // pow(trace_generator, 501). + let pow170 = pow28 * pow169; // pow(trace_generator, 507). + let pow171 = pow24 * pow170; // pow(trace_generator, 509). + let pow172 = pow24 * pow171; // pow(trace_generator, 511). + let pow173 = pow2 * pow166; // pow(trace_generator, 33158). + let pow174 = pow24 * pow172; // pow(trace_generator, 513). + let pow175 = pow27 * pow174; // pow(trace_generator, 518). + let pow176 = pow104 * pow175; // pow(trace_generator, 705). + let pow177 = pow109 * pow176; // pow(trace_generator, 902). + let pow178 = pow28 * pow176; // pow(trace_generator, 711). + let pow179 = pow33 * pow178; // pow(trace_generator, 721). + let pow180 = pow39 * pow179; // pow(trace_generator, 737). + let pow181 = pow39 * pow180; // pow(trace_generator, 753). + let pow182 = pow39 * pow181; // pow(trace_generator, 769). + let pow183 = pow70 * pow177; // pow(trace_generator, 961). + let pow184 = pow27 * pow183; // pow(trace_generator, 966). + let pow185 = pow17 * pow184; // pow(trace_generator, 967). + let pow186 = pow33 * pow185; // pow(trace_generator, 977). + let pow187 = pow121 * pow186; // pow(trace_generator, 1222). + let pow188 = pow17 * pow177; // pow(trace_generator, 903). + let pow189 = pow39 * pow186; // pow(trace_generator, 993). + let pow190 = pow39 * pow189; // pow(trace_generator, 1009). + let pow191 = pow25 * pow175; // pow(trace_generator, 521). + let pow192 = pow31 * pow182; // pow(trace_generator, 777). + + // Fetch columns. + let column0 = column_values[0]; + let column1 = column_values[1]; + let column2 = column_values[2]; + let column3 = column_values[3]; + let column4 = column_values[4]; + let column5 = column_values[5]; + let column6 = column_values[6]; + let column7 = column_values[7]; + let column8 = column_values[8]; + let column9 = column_values[9]; + + // Sum the OODS constraints on the trace polynomials. + let mut total_sum = Felt::ZERO; + + let mut value = (column0 - oods_values[0]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[0] * value; + + value = (column0 - oods_values[1]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow17 * oods_point)); + total_sum += constraint_coefficients[1] * value; + + value = (column0 - oods_values[2]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow24 * oods_point)); + total_sum += constraint_coefficients[2] * value; + + value = (column0 - oods_values[3]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow25 * oods_point)); + total_sum += constraint_coefficients[3] * value; + + value = (column0 - oods_values[4]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow26 * oods_point)); + total_sum += constraint_coefficients[4] * value; + + value = (column0 - oods_values[5]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow27 * oods_point)); + total_sum += constraint_coefficients[5] * value; + + value = (column0 - oods_values[6]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow28 * oods_point)); + total_sum += constraint_coefficients[6] * value; + + value = (column0 - oods_values[7]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow30 * oods_point)); + total_sum += constraint_coefficients[7] * value; + + value = (column0 - oods_values[8]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow31 * oods_point)); + total_sum += constraint_coefficients[8] * value; + + value = (column0 - oods_values[9]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow32 * oods_point)); + total_sum += constraint_coefficients[9] * value; + + value = (column0 - oods_values[10]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow33 * oods_point)); + total_sum += constraint_coefficients[10] * value; + + value = (column0 - oods_values[11]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow34 * oods_point)); + total_sum += constraint_coefficients[11] * value; + + value = (column0 - oods_values[12]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow35 * oods_point)); + total_sum += constraint_coefficients[12] * value; + + value = (column0 - oods_values[13]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow36 * oods_point)); + total_sum += constraint_coefficients[13] * value; + + value = (column0 - oods_values[14]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow37 * oods_point)); + total_sum += constraint_coefficients[14] * value; + + value = (column0 - oods_values[15]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow38 * oods_point)); + total_sum += constraint_coefficients[15] * value; + + value = (column1 - oods_values[16]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[16] * value; + + value = (column1 - oods_values[17]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow17 * oods_point)); + total_sum += constraint_coefficients[17] * value; + + value = (column1 - oods_values[18]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow134 * oods_point)); + total_sum += constraint_coefficients[18] * value; + + value = (column1 - oods_values[19]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow135 * oods_point)); + total_sum += constraint_coefficients[19] * value; + + value = (column1 - oods_values[20]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow172 * oods_point)); + total_sum += constraint_coefficients[20] * value; + + value = (column2 - oods_values[21]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[21] * value; + + value = (column2 - oods_values[22]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow17 * oods_point)); + total_sum += constraint_coefficients[22] * value; + + value = (column2 - oods_values[23]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow134 * oods_point)); + total_sum += constraint_coefficients[23] * value; + + value = (column2 - oods_values[24]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow135 * oods_point)); + total_sum += constraint_coefficients[24] * value; + + value = (column3 - oods_values[25]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[25] * value; + + value = (column3 - oods_values[26]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow17 * oods_point)); + total_sum += constraint_coefficients[26] * value; + + value = (column3 - oods_values[27]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow105 * oods_point)); + total_sum += constraint_coefficients[27] * value; + + value = (column3 - oods_values[28]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow106 * oods_point)); + total_sum += constraint_coefficients[28] * value; + + value = (column3 - oods_values[29]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow108 * oods_point)); + total_sum += constraint_coefficients[29] * value; + + value = (column3 - oods_values[30]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow109 * oods_point)); + total_sum += constraint_coefficients[30] * value; + + value = (column3 - oods_values[31]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow122 * oods_point)); + total_sum += constraint_coefficients[31] * value; + + value = (column3 - oods_values[32]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow123 * oods_point)); + total_sum += constraint_coefficients[32] * value; + + value = (column3 - oods_values[33]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow135 * oods_point)); + total_sum += constraint_coefficients[33] * value; + + value = (column4 - oods_values[34]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[34] * value; + + value = (column4 - oods_values[35]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow134 * oods_point)); + total_sum += constraint_coefficients[35] * value; + + value = (column5 - oods_values[36]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[36] * value; + + value = (column5 - oods_values[37]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow17 * oods_point)); + total_sum += constraint_coefficients[37] * value; + + value = (column5 - oods_values[38]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow24 * oods_point)); + total_sum += constraint_coefficients[38] * value; + + value = (column5 - oods_values[39]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow25 * oods_point)); + total_sum += constraint_coefficients[39] * value; + + value = (column5 - oods_values[40]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow26 * oods_point)); + total_sum += constraint_coefficients[40] * value; + + value = (column5 - oods_values[41]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow27 * oods_point)); + total_sum += constraint_coefficients[41] * value; + + value = (column5 - oods_values[42]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow28 * oods_point)); + total_sum += constraint_coefficients[42] * value; + + value = (column5 - oods_values[43]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow30 * oods_point)); + total_sum += constraint_coefficients[43] * value; + + value = (column5 - oods_values[44]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow31 * oods_point)); + total_sum += constraint_coefficients[44] * value; + + value = (column5 - oods_values[45]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow32 * oods_point)); + total_sum += constraint_coefficients[45] * value; + + value = (column5 - oods_values[46]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow35 * oods_point)); + total_sum += constraint_coefficients[46] * value; + + value = (column5 - oods_values[47]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow36 * oods_point)); + total_sum += constraint_coefficients[47] * value; + + value = (column5 - oods_values[48]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow39 * oods_point)); + total_sum += constraint_coefficients[48] * value; + + value = (column5 - oods_values[49]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow53 * oods_point)); + total_sum += constraint_coefficients[49] * value; + + value = (column5 - oods_values[50]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow54 * oods_point)); + total_sum += constraint_coefficients[50] * value; + + value = (column5 - oods_values[51]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow74 * oods_point)); + total_sum += constraint_coefficients[51] * value; + + value = (column5 - oods_values[52]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow75 * oods_point)); + total_sum += constraint_coefficients[52] * value; + + value = (column5 - oods_values[53]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow85 * oods_point)); + total_sum += constraint_coefficients[53] * value; + + value = (column5 - oods_values[54]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow86 * oods_point)); + total_sum += constraint_coefficients[54] * value; + + value = (column5 - oods_values[55]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow94 * oods_point)); + total_sum += constraint_coefficients[55] * value; + + value = (column5 - oods_values[56]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow95 * oods_point)); + total_sum += constraint_coefficients[56] * value; + + value = (column5 - oods_values[57]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow100 * oods_point)); + total_sum += constraint_coefficients[57] * value; + + value = (column5 - oods_values[58]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow101 * oods_point)); + total_sum += constraint_coefficients[58] * value; + + value = (column5 - oods_values[59]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow110 * oods_point)); + total_sum += constraint_coefficients[59] * value; + + value = (column5 - oods_values[60]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow111 * oods_point)); + total_sum += constraint_coefficients[60] * value; + + value = (column5 - oods_values[61]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow141 * oods_point)); + total_sum += constraint_coefficients[61] * value; + + value = (column5 - oods_values[62]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow142 * oods_point)); + total_sum += constraint_coefficients[62] * value; + + value = (column5 - oods_values[63]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow145 * oods_point)); + total_sum += constraint_coefficients[63] * value; + + value = (column5 - oods_values[64]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow146 * oods_point)); + total_sum += constraint_coefficients[64] * value; + + value = (column5 - oods_values[65]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow153 * oods_point)); + total_sum += constraint_coefficients[65] * value; + + value = (column5 - oods_values[66]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow157 * oods_point)); + total_sum += constraint_coefficients[66] * value; + + value = (column5 - oods_values[67]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow160 * oods_point)); + total_sum += constraint_coefficients[67] * value; + + value = (column5 - oods_values[68]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow152 * oods_point)); + total_sum += constraint_coefficients[68] * value; + + value = (column5 - oods_values[69]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow159 * oods_point)); + total_sum += constraint_coefficients[69] * value; + + value = (column5 - oods_values[70]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow151 * oods_point)); + total_sum += constraint_coefficients[70] * value; + + value = (column5 - oods_values[71]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow158 * oods_point)); + total_sum += constraint_coefficients[71] * value; + + value = (column5 - oods_values[72]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow163 * oods_point)); + total_sum += constraint_coefficients[72] * value; + + value = (column5 - oods_values[73]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow175 * oods_point)); + total_sum += constraint_coefficients[73] * value; + + value = (column5 - oods_values[74]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow178 * oods_point)); + total_sum += constraint_coefficients[74] * value; + + value = (column5 - oods_values[75]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow177 * oods_point)); + total_sum += constraint_coefficients[75] * value; + + value = (column5 - oods_values[76]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow188 * oods_point)); + total_sum += constraint_coefficients[76] * value; + + value = (column5 - oods_values[77]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow184 * oods_point)); + total_sum += constraint_coefficients[77] * value; + + value = (column5 - oods_values[78]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow185 * oods_point)); + total_sum += constraint_coefficients[78] * value; + + value = (column5 - oods_values[79]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow187 * oods_point)); + total_sum += constraint_coefficients[79] * value; + + value = (column5 - oods_values[80]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow16 * oods_point)); + total_sum += constraint_coefficients[80] * value; + + value = (column5 - oods_values[81]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow23 * oods_point)); + total_sum += constraint_coefficients[81] * value; + + value = (column5 - oods_values[82]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow15 * oods_point)); + total_sum += constraint_coefficients[82] * value; + + value = (column5 - oods_values[83]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow22 * oods_point)); + total_sum += constraint_coefficients[83] * value; + + value = (column5 - oods_values[84]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow14 * oods_point)); + total_sum += constraint_coefficients[84] * value; + + value = (column5 - oods_values[85]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow21 * oods_point)); + total_sum += constraint_coefficients[85] * value; + + value = (column5 - oods_values[86]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow13 * oods_point)); + total_sum += constraint_coefficients[86] * value; + + value = (column5 - oods_values[87]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow20 * oods_point)); + total_sum += constraint_coefficients[87] * value; + + value = (column5 - oods_values[88]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow12 * oods_point)); + total_sum += constraint_coefficients[88] * value; + + value = (column5 - oods_values[89]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow19 * oods_point)); + total_sum += constraint_coefficients[89] * value; + + value = (column5 - oods_values[90]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow139 * oods_point)); + total_sum += constraint_coefficients[90] * value; + + value = (column5 - oods_values[91]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow140 * oods_point)); + total_sum += constraint_coefficients[91] * value; + + value = (column5 - oods_values[92]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow11 * oods_point)); + total_sum += constraint_coefficients[92] * value; + + value = (column5 - oods_values[93]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow18 * oods_point)); + total_sum += constraint_coefficients[93] * value; + + value = (column5 - oods_values[94]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow10 * oods_point)); + total_sum += constraint_coefficients[94] * value; + + value = (column5 - oods_values[95]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow161 * oods_point)); + total_sum += constraint_coefficients[95] * value; + + value = (column5 - oods_values[96]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow9 * oods_point)); + total_sum += constraint_coefficients[96] * value; + + value = (column5 - oods_values[97]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow173 * oods_point)); + total_sum += constraint_coefficients[97] * value; + + value = (column6 - oods_values[98]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[98] * value; + + value = (column6 - oods_values[99]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow17 * oods_point)); + total_sum += constraint_coefficients[99] * value; + + value = (column6 - oods_values[100]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow24 * oods_point)); + total_sum += constraint_coefficients[100] * value; + + value = (column6 - oods_values[101]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow25 * oods_point)); + total_sum += constraint_coefficients[101] * value; + + value = (column7 - oods_values[102]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[102] * value; + + value = (column7 - oods_values[103]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow17 * oods_point)); + total_sum += constraint_coefficients[103] * value; + + value = (column7 - oods_values[104]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow24 * oods_point)); + total_sum += constraint_coefficients[104] * value; + + value = (column7 - oods_values[105]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow25 * oods_point)); + total_sum += constraint_coefficients[105] * value; + + value = (column7 - oods_values[106]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow26 * oods_point)); + total_sum += constraint_coefficients[106] * value; + + value = (column7 - oods_values[107]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow27 * oods_point)); + total_sum += constraint_coefficients[107] * value; + + value = (column7 - oods_values[108]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow28 * oods_point)); + total_sum += constraint_coefficients[108] * value; + + value = (column7 - oods_values[109]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow30 * oods_point)); + total_sum += constraint_coefficients[109] * value; + + value = (column7 - oods_values[110]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow31 * oods_point)); + total_sum += constraint_coefficients[110] * value; + + value = (column7 - oods_values[111]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow32 * oods_point)); + total_sum += constraint_coefficients[111] * value; + + value = (column7 - oods_values[112]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow34 * oods_point)); + total_sum += constraint_coefficients[112] * value; + + value = (column7 - oods_values[113]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow35 * oods_point)); + total_sum += constraint_coefficients[113] * value; + + value = (column7 - oods_values[114]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow36 * oods_point)); + total_sum += constraint_coefficients[114] * value; + + value = (column7 - oods_values[115]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow38 * oods_point)); + total_sum += constraint_coefficients[115] * value; + + value = (column7 - oods_values[116]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow40 * oods_point)); + total_sum += constraint_coefficients[116] * value; + + value = (column7 - oods_values[117]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow41 * oods_point)); + total_sum += constraint_coefficients[117] * value; + + value = (column7 - oods_values[118]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow44 * oods_point)); + total_sum += constraint_coefficients[118] * value; + + value = (column7 - oods_values[119]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow47 * oods_point)); + total_sum += constraint_coefficients[119] * value; + + value = (column7 - oods_values[120]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow50 * oods_point)); + total_sum += constraint_coefficients[120] * value; + + value = (column7 - oods_values[121]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow57 * oods_point)); + total_sum += constraint_coefficients[121] * value; + + value = (column7 - oods_values[122]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow60 * oods_point)); + total_sum += constraint_coefficients[122] * value; + + value = (column7 - oods_values[123]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow72 * oods_point)); + total_sum += constraint_coefficients[123] * value; + + value = (column7 - oods_values[124]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow77 * oods_point)); + total_sum += constraint_coefficients[124] * value; + + value = (column7 - oods_values[125]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow79 * oods_point)); + total_sum += constraint_coefficients[125] * value; + + value = (column7 - oods_values[126]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow83 * oods_point)); + total_sum += constraint_coefficients[126] * value; + + value = (column7 - oods_values[127]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow88 * oods_point)); + total_sum += constraint_coefficients[127] * value; + + value = (column7 - oods_values[128]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow90 * oods_point)); + total_sum += constraint_coefficients[128] * value; + + value = (column7 - oods_values[129]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow93 * oods_point)); + total_sum += constraint_coefficients[129] * value; + + value = (column7 - oods_values[130]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow96 * oods_point)); + total_sum += constraint_coefficients[130] * value; + + value = (column7 - oods_values[131]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow97 * oods_point)); + total_sum += constraint_coefficients[131] * value; + + value = (column7 - oods_values[132]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow99 * oods_point)); + total_sum += constraint_coefficients[132] * value; + + value = (column7 - oods_values[133]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow102 * oods_point)); + total_sum += constraint_coefficients[133] * value; + + value = (column7 - oods_values[134]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow103 * oods_point)); + total_sum += constraint_coefficients[134] * value; + + value = (column7 - oods_values[135]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow106 * oods_point)); + total_sum += constraint_coefficients[135] * value; + + value = (column7 - oods_values[136]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow112 * oods_point)); + total_sum += constraint_coefficients[136] * value; + + value = (column7 - oods_values[137]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow114 * oods_point)); + total_sum += constraint_coefficients[137] * value; + + value = (column7 - oods_values[138]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow117 * oods_point)); + total_sum += constraint_coefficients[138] * value; + + value = (column7 - oods_values[139]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow118 * oods_point)); + total_sum += constraint_coefficients[139] * value; + + value = (column7 - oods_values[140]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow120 * oods_point)); + total_sum += constraint_coefficients[140] * value; + + value = (column7 - oods_values[141]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow136 * oods_point)); + total_sum += constraint_coefficients[141] * value; + + value = (column7 - oods_values[142]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow143 * oods_point)); + total_sum += constraint_coefficients[142] * value; + + value = (column7 - oods_values[143]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow166 * oods_point)); + total_sum += constraint_coefficients[143] * value; + + value = (column7 - oods_values[144]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow168 * oods_point)); + total_sum += constraint_coefficients[144] * value; + + value = (column7 - oods_values[145]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow170 * oods_point)); + total_sum += constraint_coefficients[145] * value; + + value = (column7 - oods_values[146]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow174 * oods_point)); + total_sum += constraint_coefficients[146] * value; + + value = (column7 - oods_values[147]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow191 * oods_point)); + total_sum += constraint_coefficients[147] * value; + + value = (column7 - oods_values[148]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow176 * oods_point)); + total_sum += constraint_coefficients[148] * value; + + value = (column7 - oods_values[149]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow179 * oods_point)); + total_sum += constraint_coefficients[149] * value; + + value = (column7 - oods_values[150]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow180 * oods_point)); + total_sum += constraint_coefficients[150] * value; + + value = (column7 - oods_values[151]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow181 * oods_point)); + total_sum += constraint_coefficients[151] * value; + + value = (column7 - oods_values[152]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow182 * oods_point)); + total_sum += constraint_coefficients[152] * value; + + value = (column7 - oods_values[153]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow192 * oods_point)); + total_sum += constraint_coefficients[153] * value; + + value = (column7 - oods_values[154]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow183 * oods_point)); + total_sum += constraint_coefficients[154] * value; + + value = (column7 - oods_values[155]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow186 * oods_point)); + total_sum += constraint_coefficients[155] * value; + + value = (column7 - oods_values[156]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow189 * oods_point)); + total_sum += constraint_coefficients[156] * value; + + value = (column7 - oods_values[157]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow190 * oods_point)); + total_sum += constraint_coefficients[157] * value; + + value = (column8 - oods_values[158]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[158] * value; + + value = (column8 - oods_values[159]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow17 * oods_point)); + total_sum += constraint_coefficients[159] * value; + + value = (column8 - oods_values[160]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow24 * oods_point)); + total_sum += constraint_coefficients[160] * value; + + value = (column8 - oods_values[161]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow25 * oods_point)); + total_sum += constraint_coefficients[161] * value; + + value = (column8 - oods_values[162]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow26 * oods_point)); + total_sum += constraint_coefficients[162] * value; + + value = (column8 - oods_values[163]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow27 * oods_point)); + total_sum += constraint_coefficients[163] * value; + + value = (column8 - oods_values[164]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow28 * oods_point)); + total_sum += constraint_coefficients[164] * value; + + value = (column8 - oods_values[165]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow30 * oods_point)); + total_sum += constraint_coefficients[165] * value; + + value = (column8 - oods_values[166]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow31 * oods_point)); + total_sum += constraint_coefficients[166] * value; + + value = (column8 - oods_values[167]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow32 * oods_point)); + total_sum += constraint_coefficients[167] * value; + + value = (column8 - oods_values[168]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow33 * oods_point)); + total_sum += constraint_coefficients[168] * value; + + value = (column8 - oods_values[169]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow34 * oods_point)); + total_sum += constraint_coefficients[169] * value; + + value = (column8 - oods_values[170]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow35 * oods_point)); + total_sum += constraint_coefficients[170] * value; + + value = (column8 - oods_values[171]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow36 * oods_point)); + total_sum += constraint_coefficients[171] * value; + + value = (column8 - oods_values[172]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow37 * oods_point)); + total_sum += constraint_coefficients[172] * value; + + value = (column8 - oods_values[173]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow39 * oods_point)); + total_sum += constraint_coefficients[173] * value; + + value = (column8 - oods_values[174]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow40 * oods_point)); + total_sum += constraint_coefficients[174] * value; + + value = (column8 - oods_values[175]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow41 * oods_point)); + total_sum += constraint_coefficients[175] * value; + + value = (column8 - oods_values[176]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow42 * oods_point)); + total_sum += constraint_coefficients[176] * value; + + value = (column8 - oods_values[177]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow43 * oods_point)); + total_sum += constraint_coefficients[177] * value; + + value = (column8 - oods_values[178]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow45 * oods_point)); + total_sum += constraint_coefficients[178] * value; + + value = (column8 - oods_values[179]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow46 * oods_point)); + total_sum += constraint_coefficients[179] * value; + + value = (column8 - oods_values[180]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow47 * oods_point)); + total_sum += constraint_coefficients[180] * value; + + value = (column8 - oods_values[181]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow48 * oods_point)); + total_sum += constraint_coefficients[181] * value; + + value = (column8 - oods_values[182]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow49 * oods_point)); + total_sum += constraint_coefficients[182] * value; + + value = (column8 - oods_values[183]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow50 * oods_point)); + total_sum += constraint_coefficients[183] * value; + + value = (column8 - oods_values[184]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow51 * oods_point)); + total_sum += constraint_coefficients[184] * value; + + value = (column8 - oods_values[185]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow52 * oods_point)); + total_sum += constraint_coefficients[185] * value; + + value = (column8 - oods_values[186]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow53 * oods_point)); + total_sum += constraint_coefficients[186] * value; + + value = (column8 - oods_values[187]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow55 * oods_point)); + total_sum += constraint_coefficients[187] * value; + + value = (column8 - oods_values[188]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow56 * oods_point)); + total_sum += constraint_coefficients[188] * value; + + value = (column8 - oods_values[189]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow58 * oods_point)); + total_sum += constraint_coefficients[189] * value; + + value = (column8 - oods_values[190]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow59 * oods_point)); + total_sum += constraint_coefficients[190] * value; + + value = (column8 - oods_values[191]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow60 * oods_point)); + total_sum += constraint_coefficients[191] * value; + + value = (column8 - oods_values[192]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow61 * oods_point)); + total_sum += constraint_coefficients[192] * value; + + value = (column8 - oods_values[193]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow62 * oods_point)); + total_sum += constraint_coefficients[193] * value; + + value = (column8 - oods_values[194]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow63 * oods_point)); + total_sum += constraint_coefficients[194] * value; + + value = (column8 - oods_values[195]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow69 * oods_point)); + total_sum += constraint_coefficients[195] * value; + + value = (column8 - oods_values[196]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow70 * oods_point)); + total_sum += constraint_coefficients[196] * value; + + value = (column8 - oods_values[197]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow71 * oods_point)); + total_sum += constraint_coefficients[197] * value; + + value = (column8 - oods_values[198]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow72 * oods_point)); + total_sum += constraint_coefficients[198] * value; + + value = (column8 - oods_values[199]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow73 * oods_point)); + total_sum += constraint_coefficients[199] * value; + + value = (column8 - oods_values[200]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow75 * oods_point)); + total_sum += constraint_coefficients[200] * value; + + value = (column8 - oods_values[201]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow76 * oods_point)); + total_sum += constraint_coefficients[201] * value; + + value = (column8 - oods_values[202]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow78 * oods_point)); + total_sum += constraint_coefficients[202] * value; + + value = (column8 - oods_values[203]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow79 * oods_point)); + total_sum += constraint_coefficients[203] * value; + + value = (column8 - oods_values[204]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow80 * oods_point)); + total_sum += constraint_coefficients[204] * value; + + value = (column8 - oods_values[205]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow81 * oods_point)); + total_sum += constraint_coefficients[205] * value; + + value = (column8 - oods_values[206]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow82 * oods_point)); + total_sum += constraint_coefficients[206] * value; + + value = (column8 - oods_values[207]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow83 * oods_point)); + total_sum += constraint_coefficients[207] * value; + + value = (column8 - oods_values[208]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow84 * oods_point)); + total_sum += constraint_coefficients[208] * value; + + value = (column8 - oods_values[209]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow87 * oods_point)); + total_sum += constraint_coefficients[209] * value; + + value = (column8 - oods_values[210]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow89 * oods_point)); + total_sum += constraint_coefficients[210] * value; + + value = (column8 - oods_values[211]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow90 * oods_point)); + total_sum += constraint_coefficients[211] * value; + + value = (column8 - oods_values[212]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow91 * oods_point)); + total_sum += constraint_coefficients[212] * value; + + value = (column8 - oods_values[213]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow92 * oods_point)); + total_sum += constraint_coefficients[213] * value; + + value = (column8 - oods_values[214]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow98 * oods_point)); + total_sum += constraint_coefficients[214] * value; + + value = (column8 - oods_values[215]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow104 * oods_point)); + total_sum += constraint_coefficients[215] * value; + + value = (column8 - oods_values[216]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow107 * oods_point)); + total_sum += constraint_coefficients[216] * value; + + value = (column8 - oods_values[217]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow113 * oods_point)); + total_sum += constraint_coefficients[217] * value; + + value = (column8 - oods_values[218]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow115 * oods_point)); + total_sum += constraint_coefficients[218] * value; + + value = (column8 - oods_values[219]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow116 * oods_point)); + total_sum += constraint_coefficients[219] * value; + + value = (column8 - oods_values[220]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow119 * oods_point)); + total_sum += constraint_coefficients[220] * value; + + value = (column8 - oods_values[221]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow121 * oods_point)); + total_sum += constraint_coefficients[221] * value; + + value = (column8 - oods_values[222]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow133 * oods_point)); + total_sum += constraint_coefficients[222] * value; + + value = (column8 - oods_values[223]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow144 * oods_point)); + total_sum += constraint_coefficients[223] * value; + + value = (column8 - oods_values[224]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow147 * oods_point)); + total_sum += constraint_coefficients[224] * value; + + value = (column8 - oods_values[225]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow148 * oods_point)); + total_sum += constraint_coefficients[225] * value; + + value = (column8 - oods_values[226]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow149 * oods_point)); + total_sum += constraint_coefficients[226] * value; + + value = (column8 - oods_values[227]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow150 * oods_point)); + total_sum += constraint_coefficients[227] * value; + + value = (column8 - oods_values[228]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow153 * oods_point)); + total_sum += constraint_coefficients[228] * value; + + value = (column8 - oods_values[229]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow154 * oods_point)); + total_sum += constraint_coefficients[229] * value; + + value = (column8 - oods_values[230]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow155 * oods_point)); + total_sum += constraint_coefficients[230] * value; + + value = (column8 - oods_values[231]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow156 * oods_point)); + total_sum += constraint_coefficients[231] * value; + + value = (column8 - oods_values[232]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow162 * oods_point)); + total_sum += constraint_coefficients[232] * value; + + value = (column8 - oods_values[233]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow164 * oods_point)); + total_sum += constraint_coefficients[233] * value; + + value = (column8 - oods_values[234]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow165 * oods_point)); + total_sum += constraint_coefficients[234] * value; + + value = (column8 - oods_values[235]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow167 * oods_point)); + total_sum += constraint_coefficients[235] * value; + + value = (column8 - oods_values[236]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow169 * oods_point)); + total_sum += constraint_coefficients[236] * value; + + value = (column8 - oods_values[237]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow171 * oods_point)); + total_sum += constraint_coefficients[237] * value; + + value = (column8 - oods_values[238]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow8 * oods_point)); + total_sum += constraint_coefficients[238] * value; + + value = (column8 - oods_values[239]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow7 * oods_point)); + total_sum += constraint_coefficients[239] * value; + + value = (column8 - oods_values[240]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow138 * oods_point)); + total_sum += constraint_coefficients[240] * value; + + value = (column8 - oods_values[241]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow137 * oods_point)); + total_sum += constraint_coefficients[241] * value; + + value = (column8 - oods_values[242]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow6 * oods_point)); + total_sum += constraint_coefficients[242] * value; + + value = (column8 - oods_values[243]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow5 * oods_point)); + total_sum += constraint_coefficients[243] * value; + + value = (column8 - oods_values[244]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow4 * oods_point)); + total_sum += constraint_coefficients[244] * value; + + value = (column8 - oods_values[245]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow29 * oods_point)); + total_sum += constraint_coefficients[245] * value; + + value = (column8 - oods_values[246]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow124 * oods_point)); + total_sum += constraint_coefficients[246] * value; + + value = (column8 - oods_values[247]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow125 * oods_point)); + total_sum += constraint_coefficients[247] * value; + + value = (column8 - oods_values[248]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow126 * oods_point)); + total_sum += constraint_coefficients[248] * value; + + value = (column8 - oods_values[249]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow127 * oods_point)); + total_sum += constraint_coefficients[249] * value; + + value = (column8 - oods_values[250]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow128 * oods_point)); + total_sum += constraint_coefficients[250] * value; + + value = (column8 - oods_values[251]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow129 * oods_point)); + total_sum += constraint_coefficients[251] * value; + + value = (column8 - oods_values[252]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow130 * oods_point)); + total_sum += constraint_coefficients[252] * value; + + value = (column8 - oods_values[253]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow131 * oods_point)); + total_sum += constraint_coefficients[253] * value; + + value = (column8 - oods_values[254]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow132 * oods_point)); + total_sum += constraint_coefficients[254] * value; + + value = (column8 - oods_values[255]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow3 * oods_point)); + total_sum += constraint_coefficients[255] * value; + + value = (column8 - oods_values[256]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow2 * oods_point)); + total_sum += constraint_coefficients[256] * value; + + value = (column8 - oods_values[257]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow1 * oods_point)); + total_sum += constraint_coefficients[257] * value; + + value = (column8 - oods_values[258]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow64 * oods_point)); + total_sum += constraint_coefficients[258] * value; + + value = (column8 - oods_values[259]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow65 * oods_point)); + total_sum += constraint_coefficients[259] * value; + + value = (column8 - oods_values[260]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow66 * oods_point)); + total_sum += constraint_coefficients[260] * value; + + value = (column8 - oods_values[261]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow67 * oods_point)); + total_sum += constraint_coefficients[261] * value; + + value = (column8 - oods_values[262]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow68 * oods_point)); + total_sum += constraint_coefficients[262] * value; + + value = (column9 - oods_values[263]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[263] * value; + + value = (column9 - oods_values[264]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow17 * oods_point)); + total_sum += constraint_coefficients[264] * value; + + value = (column9 - oods_values[265]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow24 * oods_point)); + total_sum += constraint_coefficients[265] * value; + + value = (column9 - oods_values[266]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow25 * oods_point)); + total_sum += constraint_coefficients[266] * value; + + value = (column9 - oods_values[267]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow27 * oods_point)); + total_sum += constraint_coefficients[267] * value; + + value = (column9 - oods_values[268]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow30 * oods_point)); + total_sum += constraint_coefficients[268] * value; + + value = (column9 - oods_values[269]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow34 * oods_point)); + total_sum += constraint_coefficients[269] * value; + + value = (column9 - oods_values[270]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow38 * oods_point)); + total_sum += constraint_coefficients[270] * value; + + // Sum the OODS boundary constraints on the composition polynomials. + let oods_point_to_deg = oods_point.pow(CONSTRAINT_DEGREE); + + value = (column_values[(NUM_COLUMNS_FIRST + NUM_COLUMNS_SECOND) as usize] - oods_values[271]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - oods_point_to_deg)); + total_sum += constraint_coefficients[271] * value; + + value = (column_values[(NUM_COLUMNS_FIRST + NUM_COLUMNS_SECOND + 1) as usize] + - oods_values[272]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - oods_point_to_deg)); + total_sum += constraint_coefficients[272] * value; + + total_sum +} diff --git a/crates/air/src/layout/starknet/global_values.rs b/crates/air/src/layout/starknet/global_values.rs new file mode 100644 index 0000000..0b0379d --- /dev/null +++ b/crates/air/src/layout/starknet/global_values.rs @@ -0,0 +1,149 @@ +use cairovm_verifier_transcript::transcript::Transcript; +use serde::{Deserialize, Serialize}; +use serde_with::serde_as; +use starknet_core::serde::unsigned_field_element::UfeHex; +use starknet_crypto::Felt; + +#[serde_as] +#[derive(Debug, PartialEq, Serialize, Deserialize)] +pub struct EcPoint { + #[serde_as(as = "UfeHex")] + pub x: Felt, + #[serde_as(as = "UfeHex")] + pub y: Felt, +} + +#[serde_as] +#[derive(Debug, PartialEq, Serialize, Deserialize)] +pub struct CurveConfig { + #[serde_as(as = "UfeHex")] + pub alpha: Felt, + #[serde_as(as = "UfeHex")] + pub beta: Felt, +} + +#[serde_as] +#[derive(Debug, PartialEq, Serialize, Deserialize)] +pub struct EcdsaSigConfig { + #[serde_as(as = "UfeHex")] + pub alpha: Felt, + #[serde_as(as = "UfeHex")] + pub beta: Felt, + pub shift_point: EcPoint, +} + +// Accumulation of member expressions for auto generated composition polynomial code. +#[serde_as] +#[derive(Debug, PartialEq, Serialize, Deserialize)] +pub struct GlobalValues { + // Public input. + #[serde_as(as = "UfeHex")] + pub trace_length: Felt, + #[serde_as(as = "UfeHex")] + pub initial_pc: Felt, + #[serde_as(as = "UfeHex")] + pub final_pc: Felt, + #[serde_as(as = "UfeHex")] + pub initial_ap: Felt, + #[serde_as(as = "UfeHex")] + pub final_ap: Felt, + #[serde_as(as = "UfeHex")] + pub initial_pedersen_addr: Felt, + #[serde_as(as = "UfeHex")] + pub initial_range_check_addr: Felt, + #[serde_as(as = "UfeHex")] + pub initial_ecdsa_addr: Felt, + #[serde_as(as = "UfeHex")] + pub initial_bitwise_addr: Felt, + #[serde_as(as = "UfeHex")] + pub initial_ec_op_addr: Felt, + #[serde_as(as = "UfeHex")] + pub initial_poseidon_addr: Felt, + #[serde_as(as = "UfeHex")] + pub range_check_min: Felt, + #[serde_as(as = "UfeHex")] + pub range_check_max: Felt, + // Constants. + #[serde_as(as = "UfeHex")] + pub offset_size: Felt, + #[serde_as(as = "UfeHex")] + pub half_offset_size: Felt, + pub pedersen_shift_point: EcPoint, + pub ecdsa_sig_config: EcdsaSigConfig, + pub ec_op_curve_config: CurveConfig, + // Periodic columns. + #[serde_as(as = "UfeHex")] + pub pedersen_points_x: Felt, + #[serde_as(as = "UfeHex")] + pub pedersen_points_y: Felt, + #[serde_as(as = "UfeHex")] + pub ecdsa_generator_points_x: Felt, + #[serde_as(as = "UfeHex")] + pub ecdsa_generator_points_y: Felt, + #[serde_as(as = "UfeHex")] + pub poseidon_poseidon_full_round_key0: Felt, + #[serde_as(as = "UfeHex")] + pub poseidon_poseidon_full_round_key1: Felt, + #[serde_as(as = "UfeHex")] + pub poseidon_poseidon_full_round_key2: Felt, + #[serde_as(as = "UfeHex")] + pub poseidon_poseidon_partial_round_key0: Felt, + #[serde_as(as = "UfeHex")] + pub poseidon_poseidon_partial_round_key1: Felt, + // Interaction elements. + #[serde_as(as = "UfeHex")] + pub memory_multi_column_perm_perm_interaction_elm: Felt, + #[serde_as(as = "UfeHex")] + pub memory_multi_column_perm_hash_interaction_elm0: Felt, + #[serde_as(as = "UfeHex")] + pub range_check16_perm_interaction_elm: Felt, + #[serde_as(as = "UfeHex")] + pub diluted_check_permutation_interaction_elm: Felt, + #[serde_as(as = "UfeHex")] + pub diluted_check_interaction_z: Felt, + #[serde_as(as = "UfeHex")] + pub diluted_check_interaction_alpha: Felt, + // Permutation products. + #[serde_as(as = "UfeHex")] + pub memory_multi_column_perm_perm_public_memory_prod: Felt, + #[serde_as(as = "UfeHex")] + pub range_check16_perm_public_memory_prod: Felt, + #[serde_as(as = "UfeHex")] + pub diluted_check_first_elm: Felt, + #[serde_as(as = "UfeHex")] + pub diluted_check_permutation_public_memory_prod: Felt, + #[serde_as(as = "UfeHex")] + pub diluted_check_final_cum_val: Felt, +} + +// Elements that are sent from the prover after the commitment on the original trace. +// Used for components after the first interaction, e.g., memory and range check. +#[serde_as] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +pub struct InteractionElements { + #[serde_as(as = "UfeHex")] + pub memory_multi_column_perm_perm_interaction_elm: Felt, + #[serde_as(as = "UfeHex")] + pub memory_multi_column_perm_hash_interaction_elm0: Felt, + #[serde_as(as = "UfeHex")] + pub range_check16_perm_interaction_elm: Felt, + #[serde_as(as = "UfeHex")] + pub diluted_check_permutation_interaction_elm: Felt, + #[serde_as(as = "UfeHex")] + pub diluted_check_interaction_z: Felt, + #[serde_as(as = "UfeHex")] + pub diluted_check_interaction_alpha: Felt, +} + +impl InteractionElements { + pub fn new(transcript: &mut Transcript) -> Self { + Self { + memory_multi_column_perm_perm_interaction_elm: transcript.random_felt_to_prover(), + memory_multi_column_perm_hash_interaction_elm0: transcript.random_felt_to_prover(), + range_check16_perm_interaction_elm: transcript.random_felt_to_prover(), + diluted_check_permutation_interaction_elm: transcript.random_felt_to_prover(), + diluted_check_interaction_z: transcript.random_felt_to_prover(), + diluted_check_interaction_alpha: transcript.random_felt_to_prover(), + } + } +} diff --git a/crates/air/src/layout/starknet/mod.rs b/crates/air/src/layout/starknet/mod.rs new file mode 100644 index 0000000..9b2a3b0 --- /dev/null +++ b/crates/air/src/layout/starknet/mod.rs @@ -0,0 +1,485 @@ +pub mod autogenerated; +pub mod global_values; + +use crate::{ + diluted::get_diluted_product, + layout::stark_curve, + periodic_columns::{ + eval_ecdsa_x, eval_ecdsa_y, eval_pedersen_x, eval_pedersen_y, + eval_poseidon_poseidon_full_round_key0, eval_poseidon_poseidon_full_round_key1, + eval_poseidon_poseidon_full_round_key2, eval_poseidon_poseidon_partial_round_key0, + eval_poseidon_poseidon_partial_round_key1, + }, + public_memory::{PublicInput, INITIAL_PC, MAX_ADDRESS, MAX_LOG_N_STEPS, MAX_RANGE_CHECK}, +}; +use bail_out::ensure; +use cairovm_verifier_commitment::table::{commit::table_commit, decommit::table_decommit}; +use global_values::{CurveConfig, EcPoint, EcdsaSigConfig, GlobalValues, InteractionElements}; +use starknet_core::types::NonZeroFelt; +use starknet_crypto::{poseidon_hash_many, Felt}; + +use super::{CompositionPolyEvalError, LayoutTrait, PublicInputError}; + +pub const BITWISE_RATIO: u32 = 64; +pub const BITWISE_ROW_RATIO: u32 = 1024; +pub const BITWISE_TOTAL_N_BITS: u32 = 251; +pub const CONSTRAINT_DEGREE: u32 = 2; +pub const CPU_COMPONENT_HEIGHT: u32 = 16; +pub const CPU_COMPONENT_STEP: u32 = 1; +pub const DILUTED_N_BITS: u32 = 16; +pub const DILUTED_SPACING: u32 = 4; +pub const EC_OP_BUILTIN_RATIO: u32 = 1024; +pub const EC_OP_BUILTIN_ROW_RATIO: u32 = 16384; +pub const EC_OP_N_BITS: u32 = 252; +pub const EC_OP_SCALAR_HEIGHT: u32 = 256; +pub const ECDSA_BUILTIN_RATIO: u32 = 2048; +pub const ECDSA_BUILTIN_REPETITIONS: u32 = 1; +pub const ECDSA_BUILTIN_ROW_RATIO: u32 = 32768; +pub const ECDSA_ELEMENT_BITS: u32 = 251; +pub const ECDSA_ELEMENT_HEIGHT: u32 = 256; +pub const HAS_BITWISE_BUILTIN: u32 = 1; +pub const HAS_DILUTED_POOL: u32 = 1; +pub const HAS_EC_OP_BUILTIN: u32 = 1; +pub const HAS_ECDSA_BUILTIN: u32 = 1; +pub const HAS_KECCAK_BUILTIN: u32 = 0; +pub const HAS_OUTPUT_BUILTIN: u32 = 1; +pub const HAS_PEDERSEN_BUILTIN: u32 = 1; +pub const HAS_POSEIDON_BUILTIN: u32 = 1; +pub const HAS_RANGE_CHECK_BUILTIN: u32 = 1; +pub const HAS_RANGE_CHECK96_BUILTIN: u32 = 0; +pub const IS_DYNAMIC_AIR: u32 = 0; +pub const LAYOUT_CODE: Felt = Felt::from_hex_unchecked("0x737461726b6e6574"); +pub const LOG_CPU_COMPONENT_HEIGHT: u32 = 4; +pub const MASK_SIZE: u32 = 271; +pub const N_CONSTRAINTS: u32 = 198; +pub const N_DYNAMIC_PARAMS: u32 = 0; +pub const NUM_COLUMNS_FIRST: u32 = 9; +pub const NUM_COLUMNS_SECOND: u32 = 1; +pub const PEDERSEN_BUILTIN_RATIO: u32 = 32; +pub const PEDERSEN_BUILTIN_REPETITIONS: u32 = 1; +pub const PEDERSEN_BUILTIN_ROW_RATIO: u32 = 512; +pub const POSEIDON_M: u32 = 3; +pub const POSEIDON_RATIO: u32 = 32; +pub const POSEIDON_ROUNDS_FULL: u32 = 8; +pub const POSEIDON_ROUNDS_PARTIAL: u32 = 83; +pub const POSEIDON_ROW_RATIO: u32 = 512; +pub const PUBLIC_MEMORY_STEP: u32 = 8; +pub const RANGE_CHECK_BUILTIN_RATIO: u32 = 16; +pub const RANGE_CHECK_BUILTIN_ROW_RATIO: u32 = 256; +pub const RANGE_CHECK_N_PARTS: u32 = 8; + +pub mod segments { + pub const BITWISE: usize = 6; + pub const EC_OP: usize = 7; + pub const ECDSA: usize = 5; + pub const N_SEGMENTS: usize = 9; + pub const PEDERSEN: usize = 3; + pub const POSEIDON: usize = 8; + pub const RANGE_CHECK: usize = 4; +} + +pub mod builtins { + use starknet_crypto::Felt; + + pub const OUTPUT: Felt = Felt::from_hex_unchecked("0x6F7574707574"); + pub const PEDERSEN: Felt = Felt::from_hex_unchecked("0x706564657273656E"); + pub const RANGE_CHECK: Felt = Felt::from_hex_unchecked("0x72616E67655F636865636B"); + pub const ECDSA: Felt = Felt::from_hex_unchecked("0x6563647361"); + pub const BITWISE: Felt = Felt::from_hex_unchecked("0x62697477697365"); + pub const EC_OP: Felt = Felt::from_hex_unchecked("0x65635F6F70"); + pub const POSEIDON: Felt = Felt::from_hex_unchecked("0x706F736569646F6E"); +} + +// Pedersen builtin +pub const SHIFT_POINT_X: Felt = + Felt::from_hex_unchecked("0x49ee3eba8c1600700ee1b87eb599f16716b0b1022947733551fde4050ca6804"); +pub const SHIFT_POINT_Y: Felt = + Felt::from_hex_unchecked("0x3ca0cfe4b3bc6ddf346d49d06ea0ed34e621062c0e056c1d0405d266e10268a"); + +pub const BUILTINS: [Felt; 7] = [ + builtins::OUTPUT, + builtins::PEDERSEN, + builtins::RANGE_CHECK, + builtins::ECDSA, + builtins::BITWISE, + builtins::EC_OP, + builtins::POSEIDON, +]; + +pub struct RecursiveLayout {} + +impl LayoutTrait for RecursiveLayout { + type InteractionElements = InteractionElements; + fn eval_composition_polynomial( + interaction_elements: &Self::InteractionElements, + public_input: &PublicInput, + mask_values: &[Felt], + constraint_coefficients: &[Felt], + point: &Felt, + trace_domain_size: &Felt, + trace_generator: &Felt, + ) -> Result { + let memory_z = interaction_elements.memory_multi_column_perm_perm_interaction_elm; + let memory_alpha = interaction_elements.memory_multi_column_perm_hash_interaction_elm0; + + // Public memory + let public_memory_column_size = trace_domain_size + .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(PUBLIC_MEMORY_STEP))); + assert!(public_memory_column_size < u128::MAX.into()); + let public_memory_prod_ratio = public_input.get_public_memory_product_ratio( + memory_z, + memory_alpha, + public_memory_column_size, + ); + + // Diluted + let diluted_z = interaction_elements.diluted_check_interaction_z; + let diluted_alpha = interaction_elements.diluted_check_interaction_alpha; + let diluted_prod = get_diluted_product( + DILUTED_N_BITS.into(), + DILUTED_SPACING.into(), + diluted_z, + diluted_alpha, + ); + + // Periodic columns + let n_steps = Felt::TWO.pow_felt(&public_input.log_n_steps); + let n_pedersen_hash_copies = n_steps.field_div(&NonZeroFelt::from_felt_unchecked( + Felt::from(PEDERSEN_BUILTIN_RATIO * PEDERSEN_BUILTIN_REPETITIONS), + )); + assert!(n_pedersen_hash_copies < u128::MAX.into()); + let pedersen_point = point.pow_felt(&n_pedersen_hash_copies); + let pedersen_points_x = eval_pedersen_x(pedersen_point); + let pedersen_points_y = eval_pedersen_y(pedersen_point); + + let n_ecdsa_signature_copies = n_steps.field_div(&NonZeroFelt::from_felt_unchecked( + Felt::from(ECDSA_BUILTIN_RATIO * ECDSA_BUILTIN_REPETITIONS), + )); + assert!(n_ecdsa_signature_copies < u128::MAX.into()); + let ecdsa_point = point.pow_felt(&n_ecdsa_signature_copies); + let ecdsa_generator_points_x = eval_ecdsa_x(ecdsa_point); + let ecdsa_generator_points_y = eval_ecdsa_y(ecdsa_point); + + let n_poseidon_copies = + n_steps.field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(POSEIDON_RATIO))); + assert!(n_pedersen_hash_copies < u128::MAX.into()); + let poseidon_point = point.pow_felt(&n_poseidon_copies); + let poseidon_poseidon_full_round_key0 = + eval_poseidon_poseidon_full_round_key0(poseidon_point); + let poseidon_poseidon_full_round_key1 = + eval_poseidon_poseidon_full_round_key1(poseidon_point); + let poseidon_poseidon_full_round_key2 = + eval_poseidon_poseidon_full_round_key2(poseidon_point); + let poseidon_poseidon_partial_round_key0 = + eval_poseidon_poseidon_partial_round_key0(poseidon_point); + let poseidon_poseidon_partial_round_key1 = + eval_poseidon_poseidon_partial_round_key1(poseidon_point); + + let global_values = GlobalValues { + trace_length: *trace_domain_size, + initial_pc: public_input + .segments + .get(crate::layout::segments::PROGRAM) + .ok_or(CompositionPolyEvalError::SegmentMissing { + segment: crate::layout::segments::PROGRAM, + })? + .begin_addr, + final_pc: public_input + .segments + .get(crate::layout::segments::PROGRAM) + .ok_or(CompositionPolyEvalError::SegmentMissing { + segment: crate::layout::segments::PROGRAM, + })? + .stop_ptr, + initial_ap: public_input + .segments + .get(crate::layout::segments::EXECUTION) + .ok_or(CompositionPolyEvalError::SegmentMissing { + segment: crate::layout::segments::EXECUTION, + })? + .begin_addr, + final_ap: public_input + .segments + .get(crate::layout::segments::EXECUTION) + .ok_or(CompositionPolyEvalError::SegmentMissing { + segment: crate::layout::segments::EXECUTION, + })? + .stop_ptr, + initial_pedersen_addr: public_input + .segments + .get(segments::PEDERSEN) + .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::PEDERSEN })? + .begin_addr, + initial_range_check_addr: public_input + .segments + .get(segments::RANGE_CHECK) + .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::RANGE_CHECK })? + .begin_addr, + initial_ecdsa_addr: public_input + .segments + .get(segments::ECDSA) + .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::ECDSA })? + .begin_addr, + initial_bitwise_addr: public_input + .segments + .get(segments::BITWISE) + .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::BITWISE })? + .begin_addr, + initial_ec_op_addr: public_input + .segments + .get(segments::EC_OP) + .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::EC_OP })? + .begin_addr, + initial_poseidon_addr: public_input + .segments + .get(segments::POSEIDON) + .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::POSEIDON })? + .begin_addr, + range_check_min: public_input.range_check_min, + range_check_max: public_input.range_check_max, + offset_size: Felt::from(0x10000), // 2**16 + half_offset_size: Felt::from(0x8000), // 2**15 + pedersen_shift_point: EcPoint { x: SHIFT_POINT_X, y: SHIFT_POINT_Y }, + ecdsa_sig_config: EcdsaSigConfig { + alpha: stark_curve::ALPHA, + beta: stark_curve::BETA, + shift_point: EcPoint { x: SHIFT_POINT_X, y: SHIFT_POINT_Y }, + }, + ec_op_curve_config: CurveConfig { alpha: stark_curve::ALPHA, beta: stark_curve::BETA }, + pedersen_points_x, + pedersen_points_y, + ecdsa_generator_points_x, + ecdsa_generator_points_y, + poseidon_poseidon_full_round_key0, + poseidon_poseidon_full_round_key1, + poseidon_poseidon_full_round_key2, + poseidon_poseidon_partial_round_key0, + poseidon_poseidon_partial_round_key1, + memory_multi_column_perm_perm_interaction_elm: memory_z, + memory_multi_column_perm_hash_interaction_elm0: memory_alpha, + range_check16_perm_interaction_elm: interaction_elements + .range_check16_perm_interaction_elm, + diluted_check_permutation_interaction_elm: interaction_elements + .diluted_check_permutation_interaction_elm, + diluted_check_interaction_z: diluted_z, + diluted_check_interaction_alpha: diluted_alpha, + memory_multi_column_perm_perm_public_memory_prod: public_memory_prod_ratio, + range_check16_perm_public_memory_prod: Felt::from(1), + diluted_check_first_elm: Felt::from(0), + diluted_check_permutation_public_memory_prod: Felt::from(1), + diluted_check_final_cum_val: diluted_prod, + }; + + Ok(autogenerated::eval_composition_polynomial_inner( + mask_values, + constraint_coefficients, + point, + trace_generator, + &global_values, + )) + } + fn eval_oods_polynomial( + column_values: &[Felt], + oods_values: &[Felt], + constraint_coefficients: &[Felt], + point: &Felt, + oods_point: &Felt, + trace_generator: &Felt, + ) -> Felt { + autogenerated::eval_oods_polynomial_inner( + column_values, + oods_values, + constraint_coefficients, + point, + oods_point, + trace_generator, + ) + } + fn traces_commit( + transcript: &mut cairovm_verifier_transcript::transcript::Transcript, + unsent_commitment: &crate::trace::UnsentCommitment, + config: crate::trace::config::Config, + ) -> crate::trace::Commitment { + // Read original commitment. + let original_commitment = + table_commit(transcript, unsent_commitment.original, config.original); + + // Generate interaction elements for the first interaction. + let interaction_elements = Self::InteractionElements::new(transcript); + + // Read interaction commitment. + let interaction_commitment = + table_commit(transcript, unsent_commitment.interaction, config.interaction); + + crate::trace::Commitment { + original: original_commitment, + interaction_elements, + interaction: interaction_commitment, + } + } + fn traces_decommit( + queries: &[Felt], + commitment: crate::trace::Commitment, + decommitment: crate::trace::Decommitment, + witness: crate::trace::Witness, + ) -> Result<(), crate::trace::decommit::Error> { + Ok(table_decommit(commitment.original, queries, decommitment.original, witness.original) + .and(table_decommit( + commitment.interaction, + queries, + decommitment.interaction, + witness.interaction, + ))?) + } + fn validate_public_input( + public_input: &PublicInput, + stark_domains: &crate::domains::StarkDomains, + ) -> Result<(), PublicInputError> { + ensure!(public_input.log_n_steps < MAX_LOG_N_STEPS, PublicInputError::MaxSteps); + + let n_steps = Felt::TWO.pow_felt(&public_input.log_n_steps); + let trace_length = stark_domains.trace_domain_size; + ensure!( + n_steps * Felt::from(CPU_COMPONENT_HEIGHT) * Felt::from(CPU_COMPONENT_STEP) + == trace_length, + PublicInputError::TraceLengthInvalid + ); + + ensure!(Felt::ZERO <= public_input.range_check_min, PublicInputError::RangeCheckInvalid); + ensure!( + public_input.range_check_min < public_input.range_check_max, + PublicInputError::RangeCheckInvalid + ); + ensure!( + public_input.range_check_max <= MAX_RANGE_CHECK, + PublicInputError::RangeCheckInvalid + ); + + ensure!(public_input.layout == LAYOUT_CODE, PublicInputError::LayoutCodeInvalid); + + let output_uses = public_input + .segments + .get(crate::layout::segments::OUTPUT) + .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::OUTPUT })? + .stop_ptr + - public_input + .segments + .get(crate::layout::segments::OUTPUT) + .ok_or(PublicInputError::SegmentMissing { + segment: crate::layout::segments::OUTPUT, + })? + .begin_addr; + ensure!(output_uses < u128::MAX.into(), PublicInputError::UsesInvalid); + + let pedersen_copies = trace_length + .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(PEDERSEN_BUILTIN_ROW_RATIO))); + let pedersen_uses = (public_input + .segments + .get(segments::PEDERSEN) + .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::OUTPUT })? + .stop_ptr + - public_input + .segments + .get(segments::PEDERSEN) + .ok_or(PublicInputError::SegmentMissing { + segment: crate::layout::segments::OUTPUT, + })? + .begin_addr) + .field_div(&NonZeroFelt::from_felt_unchecked(Felt::THREE)); + ensure!(pedersen_uses < pedersen_copies, PublicInputError::UsesInvalid); + + let range_check_copies = trace_length.field_div(&NonZeroFelt::from_felt_unchecked( + Felt::from(RANGE_CHECK_BUILTIN_ROW_RATIO), + )); + let range_check_uses = public_input + .segments + .get(segments::RANGE_CHECK) + .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::OUTPUT })? + .stop_ptr + - public_input + .segments + .get(segments::RANGE_CHECK) + .ok_or(PublicInputError::SegmentMissing { + segment: crate::layout::segments::OUTPUT, + })? + .begin_addr; + ensure!(range_check_uses < range_check_copies, PublicInputError::UsesInvalid); + + let bitwise_copies = trace_length + .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(BITWISE_ROW_RATIO))); + let bitwise_uses = (public_input + .segments + .get(segments::BITWISE) + .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::OUTPUT })? + .stop_ptr + - public_input + .segments + .get(segments::BITWISE) + .ok_or(PublicInputError::SegmentMissing { + segment: crate::layout::segments::OUTPUT, + })? + .begin_addr) + .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(0x5))); + ensure!(bitwise_uses < bitwise_copies, PublicInputError::UsesInvalid); + Ok(()) + } + + fn verify_public_input(public_input: &PublicInput) -> Result<(Felt, Felt), PublicInputError> { + let public_segments = &public_input.segments; + + let initial_pc = public_segments + .get(crate::layout::segments::PROGRAM) + .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })? + .begin_addr; + let final_pc = public_segments + .get(crate::layout::segments::PROGRAM) + .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })? + .stop_ptr; + let initial_ap = public_segments + .get(crate::layout::segments::EXECUTION) + .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })? + .begin_addr; + let initial_fp = initial_ap; + let final_ap = public_segments + .get(crate::layout::segments::EXECUTION) + .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })? + .stop_ptr; + let output_start = public_segments + .get(crate::layout::segments::OUTPUT) + .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })? + .begin_addr; + let output_stop = public_segments + .get(crate::layout::segments::OUTPUT) + .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })? + .stop_ptr; + + ensure!(initial_ap < MAX_ADDRESS, PublicInputError::MaxSteps); + ensure!(final_ap < MAX_ADDRESS, PublicInputError::MaxSteps); + + // TODO support more pages? + ensure!(public_input.continuous_page_headers.is_empty(), PublicInputError::MaxSteps); + + let memory = &public_input + .main_page + .iter() + .flat_map(|v| vec![v.address, v.value]) + .collect::>(); + + // 1. Program segment + ensure!(initial_pc == INITIAL_PC, PublicInputError::MaxSteps); + ensure!(final_pc == INITIAL_PC + 4, PublicInputError::MaxSteps); + + let program_end_pc = initial_fp - 2; + let program = &memory[initial_pc.to_bigint().try_into().unwrap() + ..program_end_pc.to_bigint().try_into().unwrap()]; + + let program_hash = poseidon_hash_many(program); + + let output_len: usize = (output_stop - output_start).to_bigint().try_into().unwrap(); + // 3. Output segment + let output = &memory[memory.len() - output_len..memory.len()]; + let output_hash = poseidon_hash_many(output); + + Ok((program_hash, output_hash)) + } +} diff --git a/crates/air/src/layout/starknet_with_keccak/autogenerated.rs b/crates/air/src/layout/starknet_with_keccak/autogenerated.rs new file mode 100644 index 0000000..bd8ae14 --- /dev/null +++ b/crates/air/src/layout/starknet_with_keccak/autogenerated.rs @@ -0,0 +1,13739 @@ +use super::global_values::GlobalValues; +use super::{CONSTRAINT_DEGREE, NUM_COLUMNS_FIRST, NUM_COLUMNS_SECOND}; +use starknet_core::types::NonZeroFelt; +use starknet_crypto::Felt; + +pub fn eval_composition_polynomial_inner( + mask_values: &[Felt], + constraint_coefficients: &[Felt], + point: &Felt, + trace_generator: &Felt, + global_values: &GlobalValues, +) -> Felt { + // Compute powers. + let pow0 = point.pow_felt( + &global_values + .trace_length + .floor_div(&NonZeroFelt::from_felt_unchecked(Felt::from(524288))), + ); + let pow1 = point.pow_felt( + &global_values.trace_length.floor_div(&NonZeroFelt::from_felt_unchecked(Felt::from(32768))), + ); + let pow2 = pow1 * pow1; // pow(point, (safe_div(global_values.trace_length, 16384))). + let pow3 = pow2 * pow2; // pow(point, (safe_div(global_values.trace_length, 8192))). + let pow4 = point.pow_felt( + &global_values.trace_length.floor_div(&NonZeroFelt::from_felt_unchecked(Felt::from(2048))), + ); + let pow5 = pow4 * pow4; // pow(point, (safe_div(global_values.trace_length, 1024))). + let pow6 = pow5 * pow5; // pow(point, (safe_div(global_values.trace_length, 512))). + let pow7 = pow6 * pow6; // pow(point, (safe_div(global_values.trace_length, 256))). + let pow8 = pow7 * pow7; // pow(point, (safe_div(global_values.trace_length, 128))). + let pow9 = pow8 * pow8; // pow(point, (safe_div(global_values.trace_length, 64))). + let pow10 = point.pow_felt( + &global_values.trace_length.floor_div(&NonZeroFelt::from_felt_unchecked(Felt::from(16))), + ); + let pow11 = pow10 * pow10; // pow(point, (safe_div(global_values.trace_length, 8))). + let pow12 = pow11 * pow11; // pow(point, (safe_div(global_values.trace_length, 4))). + let pow13 = pow12 * pow12; // pow(point, (safe_div(global_values.trace_length, 2))). + let pow14 = pow13 * pow13; // pow(point, global_values.trace_length). + let pow15 = trace_generator.pow_felt(&(global_values.trace_length - 2048)); + let pow16 = trace_generator.pow_felt(&(global_values.trace_length - 16384)); + let pow17 = trace_generator.pow_felt(&(global_values.trace_length - 1024)); + let pow18 = trace_generator.pow_felt(&(global_values.trace_length - 32768)); + let pow19 = trace_generator.pow_felt(&(global_values.trace_length - 256)); + let pow20 = trace_generator.pow_felt(&(global_values.trace_length - 512)); + let pow21 = trace_generator.pow_felt(&(global_values.trace_length - 1)); + let pow22 = trace_generator.pow_felt(&(global_values.trace_length - 4)); + let pow23 = trace_generator.pow_felt(&(global_values.trace_length - 2)); + let pow24 = trace_generator.pow_felt(&(global_values.trace_length - 16)); + let pow25 = trace_generator.pow_felt( + &(global_values + .trace_length + .floor_div(&NonZeroFelt::from_felt_unchecked(Felt::from(524288)))), + ); + let pow26 = pow25 * pow25; // pow(trace_generator, (safe_div(global_values.trace_length, 262144))). + let pow27 = pow25 * pow26; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 524288))). + let pow28 = pow25 * pow27; // pow(trace_generator, (safe_div(global_values.trace_length, 131072))). + let pow29 = pow25 * pow28; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 524288))). + let pow30 = pow25 * pow29; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 262144))). + let pow31 = pow25 * pow30; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 524288))). + let pow32 = pow25 * pow31; // pow(trace_generator, (safe_div(global_values.trace_length, 65536))). + let pow33 = pow25 * pow32; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 524288))). + let pow34 = pow25 * pow33; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 262144))). + let pow35 = pow25 * pow34; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 524288))). + let pow36 = pow25 * pow35; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 131072))). + let pow37 = pow25 * pow36; // pow(trace_generator, (safe_div((safe_mult(13, global_values.trace_length)), 524288))). + let pow38 = pow25 * pow37; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 262144))). + let pow39 = pow25 * pow38; // pow(trace_generator, (safe_div((safe_mult(15, global_values.trace_length)), 524288))). + let pow40 = pow25 * pow39; // pow(trace_generator, (safe_div(global_values.trace_length, 32768))). + let pow41 = pow32 * pow40; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 65536))). + let pow42 = pow32 * pow41; // pow(trace_generator, (safe_div(global_values.trace_length, 16384))). + let pow43 = pow32 * pow42; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 65536))). + let pow44 = pow32 * pow43; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 32768))). + let pow45 = pow32 * pow44; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 65536))). + let pow46 = pow32 * pow45; // pow(trace_generator, (safe_div(global_values.trace_length, 8192))). + let pow47 = pow32 * pow46; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 65536))). + let pow48 = pow32 * pow47; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 32768))). + let pow49 = pow32 * pow48; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 65536))). + let pow50 = pow32 * pow49; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 16384))). + let pow51 = pow32 * pow50; // pow(trace_generator, (safe_div((safe_mult(13, global_values.trace_length)), 65536))). + let pow52 = pow32 * pow51; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 32768))). + let pow53 = pow32 * pow52; // pow(trace_generator, (safe_div((safe_mult(15, global_values.trace_length)), 65536))). + let pow54 = pow32 * pow53; // pow(trace_generator, (safe_div(global_values.trace_length, 4096))). + let pow55 = pow32 * pow54; // pow(trace_generator, (safe_div((safe_mult(17, global_values.trace_length)), 65536))). + let pow56 = pow32 * pow55; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 32768))). + let pow57 = pow32 * pow56; // pow(trace_generator, (safe_div((safe_mult(19, global_values.trace_length)), 65536))). + let pow58 = pow32 * pow57; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 16384))). + let pow59 = pow32 * pow58; // pow(trace_generator, (safe_div((safe_mult(21, global_values.trace_length)), 65536))). + let pow60 = pow32 * pow59; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 32768))). + let pow61 = pow32 * pow60; // pow(trace_generator, (safe_div((safe_mult(23, global_values.trace_length)), 65536))). + let pow62 = pow32 * pow61; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 8192))). + let pow63 = pow32 * pow62; // pow(trace_generator, (safe_div((safe_mult(25, global_values.trace_length)), 65536))). + let pow64 = pow32 * pow63; // pow(trace_generator, (safe_div((safe_mult(13, global_values.trace_length)), 32768))). + let pow65 = pow32 * pow64; // pow(trace_generator, (safe_div((safe_mult(27, global_values.trace_length)), 65536))). + let pow66 = pow32 * pow65; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 16384))). + let pow67 = pow32 * pow66; // pow(trace_generator, (safe_div((safe_mult(29, global_values.trace_length)), 65536))). + let pow68 = pow32 * pow67; // pow(trace_generator, (safe_div((safe_mult(15, global_values.trace_length)), 32768))). + let pow69 = pow32 * pow68; // pow(trace_generator, (safe_div((safe_mult(31, global_values.trace_length)), 65536))). + let pow70 = pow32 * pow69; // pow(trace_generator, (safe_div(global_values.trace_length, 2048))). + let pow71 = pow32 * pow70; // pow(trace_generator, (safe_div((safe_mult(33, global_values.trace_length)), 65536))). + let pow72 = pow32 * pow71; // pow(trace_generator, (safe_div((safe_mult(17, global_values.trace_length)), 32768))). + let pow73 = pow32 * pow72; // pow(trace_generator, (safe_div((safe_mult(35, global_values.trace_length)), 65536))). + let pow74 = pow32 * pow73; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 16384))). + let pow75 = pow32 * pow74; // pow(trace_generator, (safe_div((safe_mult(37, global_values.trace_length)), 65536))). + let pow76 = pow32 * pow75; // pow(trace_generator, (safe_div((safe_mult(19, global_values.trace_length)), 32768))). + let pow77 = pow32 * pow76; // pow(trace_generator, (safe_div((safe_mult(39, global_values.trace_length)), 65536))). + let pow78 = pow32 * pow77; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 8192))). + let pow79 = pow32 * pow78; // pow(trace_generator, (safe_div((safe_mult(41, global_values.trace_length)), 65536))). + let pow80 = pow32 * pow79; // pow(trace_generator, (safe_div((safe_mult(21, global_values.trace_length)), 32768))). + let pow81 = pow32 * pow80; // pow(trace_generator, (safe_div((safe_mult(43, global_values.trace_length)), 65536))). + let pow82 = pow32 * pow81; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 16384))). + let pow83 = pow32 * pow82; // pow(trace_generator, (safe_div((safe_mult(45, global_values.trace_length)), 65536))). + let pow84 = pow32 * pow83; // pow(trace_generator, (safe_div((safe_mult(23, global_values.trace_length)), 32768))). + let pow85 = pow32 * pow84; // pow(trace_generator, (safe_div((safe_mult(47, global_values.trace_length)), 65536))). + let pow86 = pow32 * pow85; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 4096))). + let pow87 = pow32 * pow86; // pow(trace_generator, (safe_div((safe_mult(49, global_values.trace_length)), 65536))). + let pow88 = pow32 * pow87; // pow(trace_generator, (safe_div((safe_mult(25, global_values.trace_length)), 32768))). + let pow89 = pow32 * pow88; // pow(trace_generator, (safe_div((safe_mult(51, global_values.trace_length)), 65536))). + let pow90 = pow32 * pow89; // pow(trace_generator, (safe_div((safe_mult(13, global_values.trace_length)), 16384))). + let pow91 = pow32 * pow90; // pow(trace_generator, (safe_div((safe_mult(53, global_values.trace_length)), 65536))). + let pow92 = pow32 * pow91; // pow(trace_generator, (safe_div((safe_mult(27, global_values.trace_length)), 32768))). + let pow93 = pow32 * pow92; // pow(trace_generator, (safe_div((safe_mult(55, global_values.trace_length)), 65536))). + let pow94 = pow32 * pow93; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 8192))). + let pow95 = pow32 * pow94; // pow(trace_generator, (safe_div((safe_mult(57, global_values.trace_length)), 65536))). + let pow96 = pow32 * pow95; // pow(trace_generator, (safe_div((safe_mult(29, global_values.trace_length)), 32768))). + let pow97 = pow32 * pow96; // pow(trace_generator, (safe_div((safe_mult(59, global_values.trace_length)), 65536))). + let pow98 = pow32 * pow97; // pow(trace_generator, (safe_div((safe_mult(15, global_values.trace_length)), 16384))). + let pow99 = pow32 * pow98; // pow(trace_generator, (safe_div((safe_mult(61, global_values.trace_length)), 65536))). + let pow100 = pow41 * pow99; // pow(trace_generator, (safe_div(global_values.trace_length, 1024))). + let pow101 = pow32 * pow100; // pow(trace_generator, (safe_div((safe_mult(65, global_values.trace_length)), 65536))). + let pow102 = pow32 * pow101; // pow(trace_generator, (safe_div((safe_mult(33, global_values.trace_length)), 32768))). + let pow103 = pow32 * pow102; // pow(trace_generator, (safe_div((safe_mult(67, global_values.trace_length)), 65536))). + let pow104 = pow32 * pow103; // pow(trace_generator, (safe_div((safe_mult(17, global_values.trace_length)), 16384))). + let pow105 = pow32 * pow104; // pow(trace_generator, (safe_div((safe_mult(69, global_values.trace_length)), 65536))). + let pow106 = pow32 * pow105; // pow(trace_generator, (safe_div((safe_mult(35, global_values.trace_length)), 32768))). + let pow107 = pow32 * pow106; // pow(trace_generator, (safe_div((safe_mult(71, global_values.trace_length)), 65536))). + let pow108 = pow32 * pow107; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 8192))). + let pow109 = pow32 * pow108; // pow(trace_generator, (safe_div((safe_mult(73, global_values.trace_length)), 65536))). + let pow110 = pow32 * pow109; // pow(trace_generator, (safe_div((safe_mult(37, global_values.trace_length)), 32768))). + let pow111 = pow32 * pow110; // pow(trace_generator, (safe_div((safe_mult(75, global_values.trace_length)), 65536))). + let pow112 = pow32 * pow111; // pow(trace_generator, (safe_div((safe_mult(19, global_values.trace_length)), 16384))). + let pow113 = pow32 * pow112; // pow(trace_generator, (safe_div((safe_mult(77, global_values.trace_length)), 65536))). + let pow114 = pow32 * pow113; // pow(trace_generator, (safe_div((safe_mult(39, global_values.trace_length)), 32768))). + let pow115 = pow32 * pow114; // pow(trace_generator, (safe_div((safe_mult(79, global_values.trace_length)), 65536))). + let pow116 = pow32 * pow115; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 4096))). + let pow117 = pow32 * pow116; // pow(trace_generator, (safe_div((safe_mult(81, global_values.trace_length)), 65536))). + let pow118 = pow32 * pow117; // pow(trace_generator, (safe_div((safe_mult(41, global_values.trace_length)), 32768))). + let pow119 = pow32 * pow118; // pow(trace_generator, (safe_div((safe_mult(83, global_values.trace_length)), 65536))). + let pow120 = pow32 * pow119; // pow(trace_generator, (safe_div((safe_mult(21, global_values.trace_length)), 16384))). + let pow121 = pow32 * pow120; // pow(trace_generator, (safe_div((safe_mult(85, global_values.trace_length)), 65536))). + let pow122 = pow32 * pow121; // pow(trace_generator, (safe_div((safe_mult(43, global_values.trace_length)), 32768))). + let pow123 = pow32 * pow122; // pow(trace_generator, (safe_div((safe_mult(87, global_values.trace_length)), 65536))). + let pow124 = pow32 * pow123; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 8192))). + let pow125 = pow32 * pow124; // pow(trace_generator, (safe_div((safe_mult(89, global_values.trace_length)), 65536))). + let pow126 = pow32 * pow125; // pow(trace_generator, (safe_div((safe_mult(45, global_values.trace_length)), 32768))). + let pow127 = pow32 * pow126; // pow(trace_generator, (safe_div((safe_mult(91, global_values.trace_length)), 65536))). + let pow128 = pow32 * pow127; // pow(trace_generator, (safe_div((safe_mult(23, global_values.trace_length)), 16384))). + let pow129 = pow32 * pow128; // pow(trace_generator, (safe_div((safe_mult(93, global_values.trace_length)), 65536))). + let pow130 = pow41 * pow129; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 2048))). + let pow131 = pow32 * pow130; // pow(trace_generator, (safe_div((safe_mult(97, global_values.trace_length)), 65536))). + let pow132 = pow32 * pow131; // pow(trace_generator, (safe_div((safe_mult(49, global_values.trace_length)), 32768))). + let pow133 = pow32 * pow132; // pow(trace_generator, (safe_div((safe_mult(99, global_values.trace_length)), 65536))). + let pow134 = pow32 * pow133; // pow(trace_generator, (safe_div((safe_mult(25, global_values.trace_length)), 16384))). + let pow135 = pow32 * pow134; // pow(trace_generator, (safe_div((safe_mult(101, global_values.trace_length)), 65536))). + let pow136 = pow32 * pow135; // pow(trace_generator, (safe_div((safe_mult(51, global_values.trace_length)), 32768))). + let pow137 = pow32 * pow136; // pow(trace_generator, (safe_div((safe_mult(103, global_values.trace_length)), 65536))). + let pow138 = pow32 * pow137; // pow(trace_generator, (safe_div((safe_mult(13, global_values.trace_length)), 8192))). + let pow139 = pow32 * pow138; // pow(trace_generator, (safe_div((safe_mult(105, global_values.trace_length)), 65536))). + let pow140 = pow32 * pow139; // pow(trace_generator, (safe_div((safe_mult(53, global_values.trace_length)), 32768))). + let pow141 = pow32 * pow140; // pow(trace_generator, (safe_div((safe_mult(107, global_values.trace_length)), 65536))). + let pow142 = pow32 * pow141; // pow(trace_generator, (safe_div((safe_mult(27, global_values.trace_length)), 16384))). + let pow143 = pow32 * pow142; // pow(trace_generator, (safe_div((safe_mult(109, global_values.trace_length)), 65536))). + let pow144 = pow32 * pow143; // pow(trace_generator, (safe_div((safe_mult(55, global_values.trace_length)), 32768))). + let pow145 = pow32 * pow144; // pow(trace_generator, (safe_div((safe_mult(111, global_values.trace_length)), 65536))). + let pow146 = pow32 * pow145; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 4096))). + let pow147 = pow32 * pow146; // pow(trace_generator, (safe_div((safe_mult(113, global_values.trace_length)), 65536))). + let pow148 = pow32 * pow147; // pow(trace_generator, (safe_div((safe_mult(57, global_values.trace_length)), 32768))). + let pow149 = pow32 * pow148; // pow(trace_generator, (safe_div((safe_mult(115, global_values.trace_length)), 65536))). + let pow150 = pow32 * pow149; // pow(trace_generator, (safe_div((safe_mult(29, global_values.trace_length)), 16384))). + let pow151 = pow32 * pow150; // pow(trace_generator, (safe_div((safe_mult(117, global_values.trace_length)), 65536))). + let pow152 = pow32 * pow151; // pow(trace_generator, (safe_div((safe_mult(59, global_values.trace_length)), 32768))). + let pow153 = pow32 * pow152; // pow(trace_generator, (safe_div((safe_mult(119, global_values.trace_length)), 65536))). + let pow154 = pow32 * pow153; // pow(trace_generator, (safe_div((safe_mult(15, global_values.trace_length)), 8192))). + let pow155 = pow32 * pow154; // pow(trace_generator, (safe_div((safe_mult(121, global_values.trace_length)), 65536))). + let pow156 = pow32 * pow155; // pow(trace_generator, (safe_div((safe_mult(61, global_values.trace_length)), 32768))). + let pow157 = pow32 * pow156; // pow(trace_generator, (safe_div((safe_mult(123, global_values.trace_length)), 65536))). + let pow158 = pow32 * pow157; // pow(trace_generator, (safe_div((safe_mult(31, global_values.trace_length)), 16384))). + let pow159 = pow32 * pow158; // pow(trace_generator, (safe_div((safe_mult(125, global_values.trace_length)), 65536))). + let pow160 = pow41 * pow159; // pow(trace_generator, (safe_div(global_values.trace_length, 512))). + let pow161 = pow32 * pow160; // pow(trace_generator, (safe_div((safe_mult(129, global_values.trace_length)), 65536))). + let pow162 = pow32 * pow161; // pow(trace_generator, (safe_div((safe_mult(65, global_values.trace_length)), 32768))). + let pow163 = pow32 * pow162; // pow(trace_generator, (safe_div((safe_mult(131, global_values.trace_length)), 65536))). + let pow164 = pow32 * pow163; // pow(trace_generator, (safe_div((safe_mult(33, global_values.trace_length)), 16384))). + let pow165 = pow32 * pow164; // pow(trace_generator, (safe_div((safe_mult(133, global_values.trace_length)), 65536))). + let pow166 = pow32 * pow165; // pow(trace_generator, (safe_div((safe_mult(67, global_values.trace_length)), 32768))). + let pow167 = pow32 * pow166; // pow(trace_generator, (safe_div((safe_mult(135, global_values.trace_length)), 65536))). + let pow168 = pow32 * pow167; // pow(trace_generator, (safe_div((safe_mult(17, global_values.trace_length)), 8192))). + let pow169 = pow32 * pow168; // pow(trace_generator, (safe_div((safe_mult(137, global_values.trace_length)), 65536))). + let pow170 = pow32 * pow169; // pow(trace_generator, (safe_div((safe_mult(69, global_values.trace_length)), 32768))). + let pow171 = pow32 * pow170; // pow(trace_generator, (safe_div((safe_mult(139, global_values.trace_length)), 65536))). + let pow172 = pow32 * pow171; // pow(trace_generator, (safe_div((safe_mult(35, global_values.trace_length)), 16384))). + let pow173 = pow32 * pow172; // pow(trace_generator, (safe_div((safe_mult(141, global_values.trace_length)), 65536))). + let pow174 = pow32 * pow173; // pow(trace_generator, (safe_div((safe_mult(71, global_values.trace_length)), 32768))). + let pow175 = pow32 * pow174; // pow(trace_generator, (safe_div((safe_mult(143, global_values.trace_length)), 65536))). + let pow176 = pow32 * pow175; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 4096))). + let pow177 = pow32 * pow176; // pow(trace_generator, (safe_div((safe_mult(145, global_values.trace_length)), 65536))). + let pow178 = pow32 * pow177; // pow(trace_generator, (safe_div((safe_mult(73, global_values.trace_length)), 32768))). + let pow179 = pow32 * pow178; // pow(trace_generator, (safe_div((safe_mult(147, global_values.trace_length)), 65536))). + let pow180 = pow32 * pow179; // pow(trace_generator, (safe_div((safe_mult(37, global_values.trace_length)), 16384))). + let pow181 = pow32 * pow180; // pow(trace_generator, (safe_div((safe_mult(149, global_values.trace_length)), 65536))). + let pow182 = pow32 * pow181; // pow(trace_generator, (safe_div((safe_mult(75, global_values.trace_length)), 32768))). + let pow183 = pow32 * pow182; // pow(trace_generator, (safe_div((safe_mult(151, global_values.trace_length)), 65536))). + let pow184 = pow32 * pow183; // pow(trace_generator, (safe_div((safe_mult(19, global_values.trace_length)), 8192))). + let pow185 = pow32 * pow184; // pow(trace_generator, (safe_div((safe_mult(153, global_values.trace_length)), 65536))). + let pow186 = pow32 * pow185; // pow(trace_generator, (safe_div((safe_mult(77, global_values.trace_length)), 32768))). + let pow187 = pow32 * pow186; // pow(trace_generator, (safe_div((safe_mult(155, global_values.trace_length)), 65536))). + let pow188 = pow32 * pow187; // pow(trace_generator, (safe_div((safe_mult(39, global_values.trace_length)), 16384))). + let pow189 = pow32 * pow188; // pow(trace_generator, (safe_div((safe_mult(157, global_values.trace_length)), 65536))). + let pow190 = pow41 * pow189; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 2048))). + let pow191 = pow32 * pow190; // pow(trace_generator, (safe_div((safe_mult(161, global_values.trace_length)), 65536))). + let pow192 = pow32 * pow191; // pow(trace_generator, (safe_div((safe_mult(81, global_values.trace_length)), 32768))). + let pow193 = pow32 * pow192; // pow(trace_generator, (safe_div((safe_mult(163, global_values.trace_length)), 65536))). + let pow194 = pow32 * pow193; // pow(trace_generator, (safe_div((safe_mult(41, global_values.trace_length)), 16384))). + let pow195 = pow32 * pow194; // pow(trace_generator, (safe_div((safe_mult(165, global_values.trace_length)), 65536))). + let pow196 = pow32 * pow195; // pow(trace_generator, (safe_div((safe_mult(83, global_values.trace_length)), 32768))). + let pow197 = pow32 * pow196; // pow(trace_generator, (safe_div((safe_mult(167, global_values.trace_length)), 65536))). + let pow198 = pow32 * pow197; // pow(trace_generator, (safe_div((safe_mult(21, global_values.trace_length)), 8192))). + let pow199 = pow32 * pow198; // pow(trace_generator, (safe_div((safe_mult(169, global_values.trace_length)), 65536))). + let pow200 = pow32 * pow199; // pow(trace_generator, (safe_div((safe_mult(85, global_values.trace_length)), 32768))). + let pow201 = pow32 * pow200; // pow(trace_generator, (safe_div((safe_mult(171, global_values.trace_length)), 65536))). + let pow202 = pow32 * pow201; // pow(trace_generator, (safe_div((safe_mult(43, global_values.trace_length)), 16384))). + let pow203 = pow32 * pow202; // pow(trace_generator, (safe_div((safe_mult(173, global_values.trace_length)), 65536))). + let pow204 = pow32 * pow203; // pow(trace_generator, (safe_div((safe_mult(87, global_values.trace_length)), 32768))). + let pow205 = pow32 * pow204; // pow(trace_generator, (safe_div((safe_mult(175, global_values.trace_length)), 65536))). + let pow206 = pow32 * pow205; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 4096))). + let pow207 = pow32 * pow206; // pow(trace_generator, (safe_div((safe_mult(177, global_values.trace_length)), 65536))). + let pow208 = pow32 * pow207; // pow(trace_generator, (safe_div((safe_mult(89, global_values.trace_length)), 32768))). + let pow209 = pow32 * pow208; // pow(trace_generator, (safe_div((safe_mult(179, global_values.trace_length)), 65536))). + let pow210 = pow32 * pow209; // pow(trace_generator, (safe_div((safe_mult(45, global_values.trace_length)), 16384))). + let pow211 = pow32 * pow210; // pow(trace_generator, (safe_div((safe_mult(181, global_values.trace_length)), 65536))). + let pow212 = pow32 * pow211; // pow(trace_generator, (safe_div((safe_mult(91, global_values.trace_length)), 32768))). + let pow213 = pow32 * pow212; // pow(trace_generator, (safe_div((safe_mult(183, global_values.trace_length)), 65536))). + let pow214 = pow32 * pow213; // pow(trace_generator, (safe_div((safe_mult(23, global_values.trace_length)), 8192))). + let pow215 = pow32 * pow214; // pow(trace_generator, (safe_div((safe_mult(185, global_values.trace_length)), 65536))). + let pow216 = pow32 * pow215; // pow(trace_generator, (safe_div((safe_mult(93, global_values.trace_length)), 32768))). + let pow217 = pow32 * pow216; // pow(trace_generator, (safe_div((safe_mult(187, global_values.trace_length)), 65536))). + let pow218 = pow32 * pow217; // pow(trace_generator, (safe_div((safe_mult(47, global_values.trace_length)), 16384))). + let pow219 = pow32 * pow218; // pow(trace_generator, (safe_div((safe_mult(189, global_values.trace_length)), 65536))). + let pow220 = pow41 * pow219; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 1024))). + let pow221 = pow32 * pow220; // pow(trace_generator, (safe_div((safe_mult(193, global_values.trace_length)), 65536))). + let pow222 = pow32 * pow221; // pow(trace_generator, (safe_div((safe_mult(97, global_values.trace_length)), 32768))). + let pow223 = pow32 * pow222; // pow(trace_generator, (safe_div((safe_mult(195, global_values.trace_length)), 65536))). + let pow224 = pow32 * pow223; // pow(trace_generator, (safe_div((safe_mult(49, global_values.trace_length)), 16384))). + let pow225 = pow32 * pow224; // pow(trace_generator, (safe_div((safe_mult(197, global_values.trace_length)), 65536))). + let pow226 = pow32 * pow225; // pow(trace_generator, (safe_div((safe_mult(99, global_values.trace_length)), 32768))). + let pow227 = pow32 * pow226; // pow(trace_generator, (safe_div((safe_mult(199, global_values.trace_length)), 65536))). + let pow228 = pow32 * pow227; // pow(trace_generator, (safe_div((safe_mult(25, global_values.trace_length)), 8192))). + let pow229 = pow32 * pow228; // pow(trace_generator, (safe_div((safe_mult(201, global_values.trace_length)), 65536))). + let pow230 = pow32 * pow229; // pow(trace_generator, (safe_div((safe_mult(101, global_values.trace_length)), 32768))). + let pow231 = pow32 * pow230; // pow(trace_generator, (safe_div((safe_mult(203, global_values.trace_length)), 65536))). + let pow232 = pow32 * pow231; // pow(trace_generator, (safe_div((safe_mult(51, global_values.trace_length)), 16384))). + let pow233 = pow32 * pow232; // pow(trace_generator, (safe_div((safe_mult(205, global_values.trace_length)), 65536))). + let pow234 = pow32 * pow233; // pow(trace_generator, (safe_div((safe_mult(103, global_values.trace_length)), 32768))). + let pow235 = pow32 * pow234; // pow(trace_generator, (safe_div((safe_mult(207, global_values.trace_length)), 65536))). + let pow236 = pow32 * pow235; // pow(trace_generator, (safe_div((safe_mult(13, global_values.trace_length)), 4096))). + let pow237 = pow32 * pow236; // pow(trace_generator, (safe_div((safe_mult(209, global_values.trace_length)), 65536))). + let pow238 = pow32 * pow237; // pow(trace_generator, (safe_div((safe_mult(105, global_values.trace_length)), 32768))). + let pow239 = pow32 * pow238; // pow(trace_generator, (safe_div((safe_mult(211, global_values.trace_length)), 65536))). + let pow240 = pow32 * pow239; // pow(trace_generator, (safe_div((safe_mult(53, global_values.trace_length)), 16384))). + let pow241 = pow32 * pow240; // pow(trace_generator, (safe_div((safe_mult(213, global_values.trace_length)), 65536))). + let pow242 = pow32 * pow241; // pow(trace_generator, (safe_div((safe_mult(107, global_values.trace_length)), 32768))). + let pow243 = pow32 * pow242; // pow(trace_generator, (safe_div((safe_mult(215, global_values.trace_length)), 65536))). + let pow244 = pow32 * pow243; // pow(trace_generator, (safe_div((safe_mult(27, global_values.trace_length)), 8192))). + let pow245 = pow32 * pow244; // pow(trace_generator, (safe_div((safe_mult(217, global_values.trace_length)), 65536))). + let pow246 = pow32 * pow245; // pow(trace_generator, (safe_div((safe_mult(109, global_values.trace_length)), 32768))). + let pow247 = pow32 * pow246; // pow(trace_generator, (safe_div((safe_mult(219, global_values.trace_length)), 65536))). + let pow248 = pow32 * pow247; // pow(trace_generator, (safe_div((safe_mult(55, global_values.trace_length)), 16384))). + let pow249 = pow32 * pow248; // pow(trace_generator, (safe_div((safe_mult(221, global_values.trace_length)), 65536))). + let pow250 = pow41 * pow249; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 2048))). + let pow251 = pow32 * pow250; // pow(trace_generator, (safe_div((safe_mult(225, global_values.trace_length)), 65536))). + let pow252 = pow32 * pow251; // pow(trace_generator, (safe_div((safe_mult(113, global_values.trace_length)), 32768))). + let pow253 = pow32 * pow252; // pow(trace_generator, (safe_div((safe_mult(227, global_values.trace_length)), 65536))). + let pow254 = pow32 * pow253; // pow(trace_generator, (safe_div((safe_mult(57, global_values.trace_length)), 16384))). + let pow255 = pow32 * pow254; // pow(trace_generator, (safe_div((safe_mult(229, global_values.trace_length)), 65536))). + let pow256 = pow32 * pow255; // pow(trace_generator, (safe_div((safe_mult(115, global_values.trace_length)), 32768))). + let pow257 = pow32 * pow256; // pow(trace_generator, (safe_div((safe_mult(231, global_values.trace_length)), 65536))). + let pow258 = pow32 * pow257; // pow(trace_generator, (safe_div((safe_mult(29, global_values.trace_length)), 8192))). + let pow259 = pow32 * pow258; // pow(trace_generator, (safe_div((safe_mult(233, global_values.trace_length)), 65536))). + let pow260 = pow32 * pow259; // pow(trace_generator, (safe_div((safe_mult(117, global_values.trace_length)), 32768))). + let pow261 = pow32 * pow260; // pow(trace_generator, (safe_div((safe_mult(235, global_values.trace_length)), 65536))). + let pow262 = pow32 * pow261; // pow(trace_generator, (safe_div((safe_mult(59, global_values.trace_length)), 16384))). + let pow263 = pow32 * pow262; // pow(trace_generator, (safe_div((safe_mult(237, global_values.trace_length)), 65536))). + let pow264 = pow32 * pow263; // pow(trace_generator, (safe_div((safe_mult(119, global_values.trace_length)), 32768))). + let pow265 = pow32 * pow264; // pow(trace_generator, (safe_div((safe_mult(239, global_values.trace_length)), 65536))). + let pow266 = pow32 * pow265; // pow(trace_generator, (safe_div((safe_mult(15, global_values.trace_length)), 4096))). + let pow267 = pow32 * pow266; // pow(trace_generator, (safe_div((safe_mult(241, global_values.trace_length)), 65536))). + let pow268 = pow32 * pow267; // pow(trace_generator, (safe_div((safe_mult(121, global_values.trace_length)), 32768))). + let pow269 = pow32 * pow268; // pow(trace_generator, (safe_div((safe_mult(243, global_values.trace_length)), 65536))). + let pow270 = pow32 * pow269; // pow(trace_generator, (safe_div((safe_mult(61, global_values.trace_length)), 16384))). + let pow271 = pow32 * pow270; // pow(trace_generator, (safe_div((safe_mult(245, global_values.trace_length)), 65536))). + let pow272 = pow32 * pow271; // pow(trace_generator, (safe_div((safe_mult(123, global_values.trace_length)), 32768))). + let pow273 = pow32 * pow272; // pow(trace_generator, (safe_div((safe_mult(247, global_values.trace_length)), 65536))). + let pow274 = pow32 * pow273; // pow(trace_generator, (safe_div((safe_mult(31, global_values.trace_length)), 8192))). + let pow275 = pow32 * pow274; // pow(trace_generator, (safe_div((safe_mult(249, global_values.trace_length)), 65536))). + let pow276 = pow32 * pow275; // pow(trace_generator, (safe_div((safe_mult(125, global_values.trace_length)), 32768))). + let pow277 = pow32 * pow276; // pow(trace_generator, (safe_div((safe_mult(251, global_values.trace_length)), 65536))). + let pow278 = pow32 * pow277; // pow(trace_generator, (safe_div((safe_mult(63, global_values.trace_length)), 16384))). + let pow279 = pow32 * pow278; // pow(trace_generator, (safe_div((safe_mult(253, global_values.trace_length)), 65536))). + let pow280 = pow41 * pow279; // pow(trace_generator, (safe_div(global_values.trace_length, 256))). + let pow281 = pow32 * pow280; // pow(trace_generator, (safe_div((safe_mult(257, global_values.trace_length)), 65536))). + let pow282 = pow32 * pow281; // pow(trace_generator, (safe_div((safe_mult(129, global_values.trace_length)), 32768))). + let pow283 = pow32 * pow282; // pow(trace_generator, (safe_div((safe_mult(259, global_values.trace_length)), 65536))). + let pow284 = pow32 * pow283; // pow(trace_generator, (safe_div((safe_mult(65, global_values.trace_length)), 16384))). + let pow285 = pow32 * pow284; // pow(trace_generator, (safe_div((safe_mult(261, global_values.trace_length)), 65536))). + let pow286 = pow32 * pow285; // pow(trace_generator, (safe_div((safe_mult(131, global_values.trace_length)), 32768))). + let pow287 = pow32 * pow286; // pow(trace_generator, (safe_div((safe_mult(263, global_values.trace_length)), 65536))). + let pow288 = pow32 * pow287; // pow(trace_generator, (safe_div((safe_mult(33, global_values.trace_length)), 8192))). + let pow289 = pow32 * pow288; // pow(trace_generator, (safe_div((safe_mult(265, global_values.trace_length)), 65536))). + let pow290 = pow32 * pow289; // pow(trace_generator, (safe_div((safe_mult(133, global_values.trace_length)), 32768))). + let pow291 = pow32 * pow290; // pow(trace_generator, (safe_div((safe_mult(267, global_values.trace_length)), 65536))). + let pow292 = pow32 * pow291; // pow(trace_generator, (safe_div((safe_mult(67, global_values.trace_length)), 16384))). + let pow293 = pow32 * pow292; // pow(trace_generator, (safe_div((safe_mult(269, global_values.trace_length)), 65536))). + let pow294 = pow32 * pow293; // pow(trace_generator, (safe_div((safe_mult(135, global_values.trace_length)), 32768))). + let pow295 = pow32 * pow294; // pow(trace_generator, (safe_div((safe_mult(271, global_values.trace_length)), 65536))). + let pow296 = pow32 * pow295; // pow(trace_generator, (safe_div((safe_mult(17, global_values.trace_length)), 4096))). + let pow297 = pow32 * pow296; // pow(trace_generator, (safe_div((safe_mult(273, global_values.trace_length)), 65536))). + let pow298 = pow32 * pow297; // pow(trace_generator, (safe_div((safe_mult(137, global_values.trace_length)), 32768))). + let pow299 = pow32 * pow298; // pow(trace_generator, (safe_div((safe_mult(275, global_values.trace_length)), 65536))). + let pow300 = pow32 * pow299; // pow(trace_generator, (safe_div((safe_mult(69, global_values.trace_length)), 16384))). + let pow301 = pow32 * pow300; // pow(trace_generator, (safe_div((safe_mult(277, global_values.trace_length)), 65536))). + let pow302 = pow32 * pow301; // pow(trace_generator, (safe_div((safe_mult(139, global_values.trace_length)), 32768))). + let pow303 = pow32 * pow302; // pow(trace_generator, (safe_div((safe_mult(279, global_values.trace_length)), 65536))). + let pow304 = pow32 * pow303; // pow(trace_generator, (safe_div((safe_mult(35, global_values.trace_length)), 8192))). + let pow305 = pow32 * pow304; // pow(trace_generator, (safe_div((safe_mult(281, global_values.trace_length)), 65536))). + let pow306 = pow32 * pow305; // pow(trace_generator, (safe_div((safe_mult(141, global_values.trace_length)), 32768))). + let pow307 = pow32 * pow306; // pow(trace_generator, (safe_div((safe_mult(283, global_values.trace_length)), 65536))). + let pow308 = pow32 * pow307; // pow(trace_generator, (safe_div((safe_mult(71, global_values.trace_length)), 16384))). + let pow309 = pow32 * pow308; // pow(trace_generator, (safe_div((safe_mult(285, global_values.trace_length)), 65536))). + let pow310 = pow41 * pow309; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 2048))). + let pow311 = pow32 * pow310; // pow(trace_generator, (safe_div((safe_mult(289, global_values.trace_length)), 65536))). + let pow312 = pow32 * pow311; // pow(trace_generator, (safe_div((safe_mult(145, global_values.trace_length)), 32768))). + let pow313 = pow32 * pow312; // pow(trace_generator, (safe_div((safe_mult(291, global_values.trace_length)), 65536))). + let pow314 = pow32 * pow313; // pow(trace_generator, (safe_div((safe_mult(73, global_values.trace_length)), 16384))). + let pow315 = pow32 * pow314; // pow(trace_generator, (safe_div((safe_mult(293, global_values.trace_length)), 65536))). + let pow316 = pow32 * pow315; // pow(trace_generator, (safe_div((safe_mult(147, global_values.trace_length)), 32768))). + let pow317 = pow32 * pow316; // pow(trace_generator, (safe_div((safe_mult(295, global_values.trace_length)), 65536))). + let pow318 = pow32 * pow317; // pow(trace_generator, (safe_div((safe_mult(37, global_values.trace_length)), 8192))). + let pow319 = pow32 * pow318; // pow(trace_generator, (safe_div((safe_mult(297, global_values.trace_length)), 65536))). + let pow320 = pow32 * pow319; // pow(trace_generator, (safe_div((safe_mult(149, global_values.trace_length)), 32768))). + let pow321 = pow32 * pow320; // pow(trace_generator, (safe_div((safe_mult(299, global_values.trace_length)), 65536))). + let pow322 = pow32 * pow321; // pow(trace_generator, (safe_div((safe_mult(75, global_values.trace_length)), 16384))). + let pow323 = pow32 * pow322; // pow(trace_generator, (safe_div((safe_mult(301, global_values.trace_length)), 65536))). + let pow324 = pow32 * pow323; // pow(trace_generator, (safe_div((safe_mult(151, global_values.trace_length)), 32768))). + let pow325 = pow32 * pow324; // pow(trace_generator, (safe_div((safe_mult(303, global_values.trace_length)), 65536))). + let pow326 = pow32 * pow325; // pow(trace_generator, (safe_div((safe_mult(19, global_values.trace_length)), 4096))). + let pow327 = pow32 * pow326; // pow(trace_generator, (safe_div((safe_mult(305, global_values.trace_length)), 65536))). + let pow328 = pow32 * pow327; // pow(trace_generator, (safe_div((safe_mult(153, global_values.trace_length)), 32768))). + let pow329 = pow32 * pow328; // pow(trace_generator, (safe_div((safe_mult(307, global_values.trace_length)), 65536))). + let pow330 = pow32 * pow329; // pow(trace_generator, (safe_div((safe_mult(77, global_values.trace_length)), 16384))). + let pow331 = pow32 * pow330; // pow(trace_generator, (safe_div((safe_mult(309, global_values.trace_length)), 65536))). + let pow332 = pow32 * pow331; // pow(trace_generator, (safe_div((safe_mult(155, global_values.trace_length)), 32768))). + let pow333 = pow32 * pow332; // pow(trace_generator, (safe_div((safe_mult(311, global_values.trace_length)), 65536))). + let pow334 = pow32 * pow333; // pow(trace_generator, (safe_div((safe_mult(39, global_values.trace_length)), 8192))). + let pow335 = pow32 * pow334; // pow(trace_generator, (safe_div((safe_mult(313, global_values.trace_length)), 65536))). + let pow336 = pow32 * pow335; // pow(trace_generator, (safe_div((safe_mult(157, global_values.trace_length)), 32768))). + let pow337 = pow32 * pow336; // pow(trace_generator, (safe_div((safe_mult(315, global_values.trace_length)), 65536))). + let pow338 = pow32 * pow337; // pow(trace_generator, (safe_div((safe_mult(79, global_values.trace_length)), 16384))). + let pow339 = pow32 * pow338; // pow(trace_generator, (safe_div((safe_mult(317, global_values.trace_length)), 65536))). + let pow340 = pow41 * pow339; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 1024))). + let pow341 = pow32 * pow340; // pow(trace_generator, (safe_div((safe_mult(321, global_values.trace_length)), 65536))). + let pow342 = pow32 * pow341; // pow(trace_generator, (safe_div((safe_mult(161, global_values.trace_length)), 32768))). + let pow343 = pow32 * pow342; // pow(trace_generator, (safe_div((safe_mult(323, global_values.trace_length)), 65536))). + let pow344 = pow32 * pow343; // pow(trace_generator, (safe_div((safe_mult(81, global_values.trace_length)), 16384))). + let pow345 = pow32 * pow344; // pow(trace_generator, (safe_div((safe_mult(325, global_values.trace_length)), 65536))). + let pow346 = pow32 * pow345; // pow(trace_generator, (safe_div((safe_mult(163, global_values.trace_length)), 32768))). + let pow347 = pow32 * pow346; // pow(trace_generator, (safe_div((safe_mult(327, global_values.trace_length)), 65536))). + let pow348 = pow32 * pow347; // pow(trace_generator, (safe_div((safe_mult(41, global_values.trace_length)), 8192))). + let pow349 = pow32 * pow348; // pow(trace_generator, (safe_div((safe_mult(329, global_values.trace_length)), 65536))). + let pow350 = pow32 * pow349; // pow(trace_generator, (safe_div((safe_mult(165, global_values.trace_length)), 32768))). + let pow351 = pow32 * pow350; // pow(trace_generator, (safe_div((safe_mult(331, global_values.trace_length)), 65536))). + let pow352 = pow32 * pow351; // pow(trace_generator, (safe_div((safe_mult(83, global_values.trace_length)), 16384))). + let pow353 = pow32 * pow352; // pow(trace_generator, (safe_div((safe_mult(333, global_values.trace_length)), 65536))). + let pow354 = pow32 * pow353; // pow(trace_generator, (safe_div((safe_mult(167, global_values.trace_length)), 32768))). + let pow355 = pow32 * pow354; // pow(trace_generator, (safe_div((safe_mult(335, global_values.trace_length)), 65536))). + let pow356 = pow32 * pow355; // pow(trace_generator, (safe_div((safe_mult(21, global_values.trace_length)), 4096))). + let pow357 = pow32 * pow356; // pow(trace_generator, (safe_div((safe_mult(337, global_values.trace_length)), 65536))). + let pow358 = pow32 * pow357; // pow(trace_generator, (safe_div((safe_mult(169, global_values.trace_length)), 32768))). + let pow359 = pow32 * pow358; // pow(trace_generator, (safe_div((safe_mult(339, global_values.trace_length)), 65536))). + let pow360 = pow32 * pow359; // pow(trace_generator, (safe_div((safe_mult(85, global_values.trace_length)), 16384))). + let pow361 = pow32 * pow360; // pow(trace_generator, (safe_div((safe_mult(341, global_values.trace_length)), 65536))). + let pow362 = pow32 * pow361; // pow(trace_generator, (safe_div((safe_mult(171, global_values.trace_length)), 32768))). + let pow363 = pow32 * pow362; // pow(trace_generator, (safe_div((safe_mult(343, global_values.trace_length)), 65536))). + let pow364 = pow32 * pow363; // pow(trace_generator, (safe_div((safe_mult(43, global_values.trace_length)), 8192))). + let pow365 = pow32 * pow364; // pow(trace_generator, (safe_div((safe_mult(345, global_values.trace_length)), 65536))). + let pow366 = pow32 * pow365; // pow(trace_generator, (safe_div((safe_mult(173, global_values.trace_length)), 32768))). + let pow367 = pow32 * pow366; // pow(trace_generator, (safe_div((safe_mult(347, global_values.trace_length)), 65536))). + let pow368 = pow32 * pow367; // pow(trace_generator, (safe_div((safe_mult(87, global_values.trace_length)), 16384))). + let pow369 = pow32 * pow368; // pow(trace_generator, (safe_div((safe_mult(349, global_values.trace_length)), 65536))). + let pow370 = pow41 * pow369; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 2048))). + let pow371 = pow32 * pow370; // pow(trace_generator, (safe_div((safe_mult(353, global_values.trace_length)), 65536))). + let pow372 = pow32 * pow371; // pow(trace_generator, (safe_div((safe_mult(177, global_values.trace_length)), 32768))). + let pow373 = pow32 * pow372; // pow(trace_generator, (safe_div((safe_mult(355, global_values.trace_length)), 65536))). + let pow374 = pow32 * pow373; // pow(trace_generator, (safe_div((safe_mult(89, global_values.trace_length)), 16384))). + let pow375 = pow32 * pow374; // pow(trace_generator, (safe_div((safe_mult(357, global_values.trace_length)), 65536))). + let pow376 = pow32 * pow375; // pow(trace_generator, (safe_div((safe_mult(179, global_values.trace_length)), 32768))). + let pow377 = pow32 * pow376; // pow(trace_generator, (safe_div((safe_mult(359, global_values.trace_length)), 65536))). + let pow378 = pow32 * pow377; // pow(trace_generator, (safe_div((safe_mult(45, global_values.trace_length)), 8192))). + let pow379 = pow32 * pow378; // pow(trace_generator, (safe_div((safe_mult(361, global_values.trace_length)), 65536))). + let pow380 = pow32 * pow379; // pow(trace_generator, (safe_div((safe_mult(181, global_values.trace_length)), 32768))). + let pow381 = pow32 * pow380; // pow(trace_generator, (safe_div((safe_mult(363, global_values.trace_length)), 65536))). + let pow382 = pow32 * pow381; // pow(trace_generator, (safe_div((safe_mult(91, global_values.trace_length)), 16384))). + let pow383 = pow32 * pow382; // pow(trace_generator, (safe_div((safe_mult(365, global_values.trace_length)), 65536))). + let pow384 = pow32 * pow383; // pow(trace_generator, (safe_div((safe_mult(183, global_values.trace_length)), 32768))). + let pow385 = pow32 * pow384; // pow(trace_generator, (safe_div((safe_mult(367, global_values.trace_length)), 65536))). + let pow386 = pow32 * pow385; // pow(trace_generator, (safe_div((safe_mult(23, global_values.trace_length)), 4096))). + let pow387 = pow32 * pow386; // pow(trace_generator, (safe_div((safe_mult(369, global_values.trace_length)), 65536))). + let pow388 = pow32 * pow387; // pow(trace_generator, (safe_div((safe_mult(185, global_values.trace_length)), 32768))). + let pow389 = pow32 * pow388; // pow(trace_generator, (safe_div((safe_mult(371, global_values.trace_length)), 65536))). + let pow390 = pow32 * pow389; // pow(trace_generator, (safe_div((safe_mult(93, global_values.trace_length)), 16384))). + let pow391 = pow32 * pow390; // pow(trace_generator, (safe_div((safe_mult(373, global_values.trace_length)), 65536))). + let pow392 = pow32 * pow391; // pow(trace_generator, (safe_div((safe_mult(187, global_values.trace_length)), 32768))). + let pow393 = pow32 * pow392; // pow(trace_generator, (safe_div((safe_mult(375, global_values.trace_length)), 65536))). + let pow394 = pow32 * pow393; // pow(trace_generator, (safe_div((safe_mult(47, global_values.trace_length)), 8192))). + let pow395 = pow32 * pow394; // pow(trace_generator, (safe_div((safe_mult(377, global_values.trace_length)), 65536))). + let pow396 = pow32 * pow395; // pow(trace_generator, (safe_div((safe_mult(189, global_values.trace_length)), 32768))). + let pow397 = pow32 * pow396; // pow(trace_generator, (safe_div((safe_mult(379, global_values.trace_length)), 65536))). + let pow398 = pow32 * pow397; // pow(trace_generator, (safe_div((safe_mult(95, global_values.trace_length)), 16384))). + let pow399 = pow32 * pow398; // pow(trace_generator, (safe_div((safe_mult(381, global_values.trace_length)), 65536))). + let pow400 = pow41 * pow399; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 512))). + let pow401 = pow32 * pow400; // pow(trace_generator, (safe_div((safe_mult(385, global_values.trace_length)), 65536))). + let pow402 = pow32 * pow401; // pow(trace_generator, (safe_div((safe_mult(193, global_values.trace_length)), 32768))). + let pow403 = pow32 * pow402; // pow(trace_generator, (safe_div((safe_mult(387, global_values.trace_length)), 65536))). + let pow404 = pow32 * pow403; // pow(trace_generator, (safe_div((safe_mult(97, global_values.trace_length)), 16384))). + let pow405 = pow32 * pow404; // pow(trace_generator, (safe_div((safe_mult(389, global_values.trace_length)), 65536))). + let pow406 = pow32 * pow405; // pow(trace_generator, (safe_div((safe_mult(195, global_values.trace_length)), 32768))). + let pow407 = pow32 * pow406; // pow(trace_generator, (safe_div((safe_mult(391, global_values.trace_length)), 65536))). + let pow408 = pow32 * pow407; // pow(trace_generator, (safe_div((safe_mult(49, global_values.trace_length)), 8192))). + let pow409 = pow32 * pow408; // pow(trace_generator, (safe_div((safe_mult(393, global_values.trace_length)), 65536))). + let pow410 = pow32 * pow409; // pow(trace_generator, (safe_div((safe_mult(197, global_values.trace_length)), 32768))). + let pow411 = pow32 * pow410; // pow(trace_generator, (safe_div((safe_mult(395, global_values.trace_length)), 65536))). + let pow412 = pow32 * pow411; // pow(trace_generator, (safe_div((safe_mult(99, global_values.trace_length)), 16384))). + let pow413 = pow32 * pow412; // pow(trace_generator, (safe_div((safe_mult(397, global_values.trace_length)), 65536))). + let pow414 = pow32 * pow413; // pow(trace_generator, (safe_div((safe_mult(199, global_values.trace_length)), 32768))). + let pow415 = pow32 * pow414; // pow(trace_generator, (safe_div((safe_mult(399, global_values.trace_length)), 65536))). + let pow416 = pow32 * pow415; // pow(trace_generator, (safe_div((safe_mult(25, global_values.trace_length)), 4096))). + let pow417 = pow32 * pow416; // pow(trace_generator, (safe_div((safe_mult(401, global_values.trace_length)), 65536))). + let pow418 = pow32 * pow417; // pow(trace_generator, (safe_div((safe_mult(201, global_values.trace_length)), 32768))). + let pow419 = pow32 * pow418; // pow(trace_generator, (safe_div((safe_mult(403, global_values.trace_length)), 65536))). + let pow420 = pow32 * pow419; // pow(trace_generator, (safe_div((safe_mult(101, global_values.trace_length)), 16384))). + let pow421 = pow32 * pow420; // pow(trace_generator, (safe_div((safe_mult(405, global_values.trace_length)), 65536))). + let pow422 = pow32 * pow421; // pow(trace_generator, (safe_div((safe_mult(203, global_values.trace_length)), 32768))). + let pow423 = pow32 * pow422; // pow(trace_generator, (safe_div((safe_mult(407, global_values.trace_length)), 65536))). + let pow424 = pow32 * pow423; // pow(trace_generator, (safe_div((safe_mult(51, global_values.trace_length)), 8192))). + let pow425 = pow32 * pow424; // pow(trace_generator, (safe_div((safe_mult(409, global_values.trace_length)), 65536))). + let pow426 = pow32 * pow425; // pow(trace_generator, (safe_div((safe_mult(205, global_values.trace_length)), 32768))). + let pow427 = pow32 * pow426; // pow(trace_generator, (safe_div((safe_mult(411, global_values.trace_length)), 65536))). + let pow428 = pow32 * pow427; // pow(trace_generator, (safe_div((safe_mult(103, global_values.trace_length)), 16384))). + let pow429 = pow32 * pow428; // pow(trace_generator, (safe_div((safe_mult(413, global_values.trace_length)), 65536))). + let pow430 = pow41 * pow429; // pow(trace_generator, (safe_div((safe_mult(13, global_values.trace_length)), 2048))). + let pow431 = pow32 * pow430; // pow(trace_generator, (safe_div((safe_mult(417, global_values.trace_length)), 65536))). + let pow432 = pow32 * pow431; // pow(trace_generator, (safe_div((safe_mult(209, global_values.trace_length)), 32768))). + let pow433 = pow32 * pow432; // pow(trace_generator, (safe_div((safe_mult(419, global_values.trace_length)), 65536))). + let pow434 = pow32 * pow433; // pow(trace_generator, (safe_div((safe_mult(105, global_values.trace_length)), 16384))). + let pow435 = pow32 * pow434; // pow(trace_generator, (safe_div((safe_mult(421, global_values.trace_length)), 65536))). + let pow436 = pow32 * pow435; // pow(trace_generator, (safe_div((safe_mult(211, global_values.trace_length)), 32768))). + let pow437 = pow32 * pow436; // pow(trace_generator, (safe_div((safe_mult(423, global_values.trace_length)), 65536))). + let pow438 = pow32 * pow437; // pow(trace_generator, (safe_div((safe_mult(53, global_values.trace_length)), 8192))). + let pow439 = pow32 * pow438; // pow(trace_generator, (safe_div((safe_mult(425, global_values.trace_length)), 65536))). + let pow440 = pow32 * pow439; // pow(trace_generator, (safe_div((safe_mult(213, global_values.trace_length)), 32768))). + let pow441 = pow32 * pow440; // pow(trace_generator, (safe_div((safe_mult(427, global_values.trace_length)), 65536))). + let pow442 = pow32 * pow441; // pow(trace_generator, (safe_div((safe_mult(107, global_values.trace_length)), 16384))). + let pow443 = pow32 * pow442; // pow(trace_generator, (safe_div((safe_mult(429, global_values.trace_length)), 65536))). + let pow444 = pow32 * pow443; // pow(trace_generator, (safe_div((safe_mult(215, global_values.trace_length)), 32768))). + let pow445 = pow32 * pow444; // pow(trace_generator, (safe_div((safe_mult(431, global_values.trace_length)), 65536))). + let pow446 = pow32 * pow445; // pow(trace_generator, (safe_div((safe_mult(27, global_values.trace_length)), 4096))). + let pow447 = pow32 * pow446; // pow(trace_generator, (safe_div((safe_mult(433, global_values.trace_length)), 65536))). + let pow448 = pow32 * pow447; // pow(trace_generator, (safe_div((safe_mult(217, global_values.trace_length)), 32768))). + let pow449 = pow32 * pow448; // pow(trace_generator, (safe_div((safe_mult(435, global_values.trace_length)), 65536))). + let pow450 = pow32 * pow449; // pow(trace_generator, (safe_div((safe_mult(109, global_values.trace_length)), 16384))). + let pow451 = pow32 * pow450; // pow(trace_generator, (safe_div((safe_mult(437, global_values.trace_length)), 65536))). + let pow452 = pow32 * pow451; // pow(trace_generator, (safe_div((safe_mult(219, global_values.trace_length)), 32768))). + let pow453 = pow32 * pow452; // pow(trace_generator, (safe_div((safe_mult(439, global_values.trace_length)), 65536))). + let pow454 = pow32 * pow453; // pow(trace_generator, (safe_div((safe_mult(55, global_values.trace_length)), 8192))). + let pow455 = pow32 * pow454; // pow(trace_generator, (safe_div((safe_mult(441, global_values.trace_length)), 65536))). + let pow456 = pow32 * pow455; // pow(trace_generator, (safe_div((safe_mult(221, global_values.trace_length)), 32768))). + let pow457 = pow32 * pow456; // pow(trace_generator, (safe_div((safe_mult(443, global_values.trace_length)), 65536))). + let pow458 = pow32 * pow457; // pow(trace_generator, (safe_div((safe_mult(111, global_values.trace_length)), 16384))). + let pow459 = pow32 * pow458; // pow(trace_generator, (safe_div((safe_mult(445, global_values.trace_length)), 65536))). + let pow460 = pow41 * pow459; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 1024))). + let pow461 = pow32 * pow460; // pow(trace_generator, (safe_div((safe_mult(449, global_values.trace_length)), 65536))). + let pow462 = pow32 * pow461; // pow(trace_generator, (safe_div((safe_mult(225, global_values.trace_length)), 32768))). + let pow463 = pow32 * pow462; // pow(trace_generator, (safe_div((safe_mult(451, global_values.trace_length)), 65536))). + let pow464 = pow32 * pow463; // pow(trace_generator, (safe_div((safe_mult(113, global_values.trace_length)), 16384))). + let pow465 = pow32 * pow464; // pow(trace_generator, (safe_div((safe_mult(453, global_values.trace_length)), 65536))). + let pow466 = pow32 * pow465; // pow(trace_generator, (safe_div((safe_mult(227, global_values.trace_length)), 32768))). + let pow467 = pow32 * pow466; // pow(trace_generator, (safe_div((safe_mult(455, global_values.trace_length)), 65536))). + let pow468 = pow32 * pow467; // pow(trace_generator, (safe_div((safe_mult(57, global_values.trace_length)), 8192))). + let pow469 = pow32 * pow468; // pow(trace_generator, (safe_div((safe_mult(457, global_values.trace_length)), 65536))). + let pow470 = pow32 * pow469; // pow(trace_generator, (safe_div((safe_mult(229, global_values.trace_length)), 32768))). + let pow471 = pow32 * pow470; // pow(trace_generator, (safe_div((safe_mult(459, global_values.trace_length)), 65536))). + let pow472 = pow32 * pow471; // pow(trace_generator, (safe_div((safe_mult(115, global_values.trace_length)), 16384))). + let pow473 = pow32 * pow472; // pow(trace_generator, (safe_div((safe_mult(461, global_values.trace_length)), 65536))). + let pow474 = pow32 * pow473; // pow(trace_generator, (safe_div((safe_mult(231, global_values.trace_length)), 32768))). + let pow475 = pow32 * pow474; // pow(trace_generator, (safe_div((safe_mult(463, global_values.trace_length)), 65536))). + let pow476 = pow32 * pow475; // pow(trace_generator, (safe_div((safe_mult(29, global_values.trace_length)), 4096))). + let pow477 = pow32 * pow476; // pow(trace_generator, (safe_div((safe_mult(465, global_values.trace_length)), 65536))). + let pow478 = pow32 * pow477; // pow(trace_generator, (safe_div((safe_mult(233, global_values.trace_length)), 32768))). + let pow479 = pow32 * pow478; // pow(trace_generator, (safe_div((safe_mult(467, global_values.trace_length)), 65536))). + let pow480 = pow32 * pow479; // pow(trace_generator, (safe_div((safe_mult(117, global_values.trace_length)), 16384))). + let pow481 = pow32 * pow480; // pow(trace_generator, (safe_div((safe_mult(469, global_values.trace_length)), 65536))). + let pow482 = pow32 * pow481; // pow(trace_generator, (safe_div((safe_mult(235, global_values.trace_length)), 32768))). + let pow483 = pow32 * pow482; // pow(trace_generator, (safe_div((safe_mult(471, global_values.trace_length)), 65536))). + let pow484 = pow32 * pow483; // pow(trace_generator, (safe_div((safe_mult(59, global_values.trace_length)), 8192))). + let pow485 = pow32 * pow484; // pow(trace_generator, (safe_div((safe_mult(473, global_values.trace_length)), 65536))). + let pow486 = pow32 * pow485; // pow(trace_generator, (safe_div((safe_mult(237, global_values.trace_length)), 32768))). + let pow487 = pow32 * pow486; // pow(trace_generator, (safe_div((safe_mult(475, global_values.trace_length)), 65536))). + let pow488 = pow32 * pow487; // pow(trace_generator, (safe_div((safe_mult(119, global_values.trace_length)), 16384))). + let pow489 = pow32 * pow488; // pow(trace_generator, (safe_div((safe_mult(477, global_values.trace_length)), 65536))). + let pow490 = pow41 * pow489; // pow(trace_generator, (safe_div((safe_mult(15, global_values.trace_length)), 2048))). + let pow491 = pow32 * pow490; // pow(trace_generator, (safe_div((safe_mult(481, global_values.trace_length)), 65536))). + let pow492 = pow32 * pow491; // pow(trace_generator, (safe_div((safe_mult(241, global_values.trace_length)), 32768))). + let pow493 = pow32 * pow492; // pow(trace_generator, (safe_div((safe_mult(483, global_values.trace_length)), 65536))). + let pow494 = pow32 * pow493; // pow(trace_generator, (safe_div((safe_mult(121, global_values.trace_length)), 16384))). + let pow495 = pow32 * pow494; // pow(trace_generator, (safe_div((safe_mult(485, global_values.trace_length)), 65536))). + let pow496 = pow32 * pow495; // pow(trace_generator, (safe_div((safe_mult(243, global_values.trace_length)), 32768))). + let pow497 = pow32 * pow496; // pow(trace_generator, (safe_div((safe_mult(487, global_values.trace_length)), 65536))). + let pow498 = pow32 * pow497; // pow(trace_generator, (safe_div((safe_mult(61, global_values.trace_length)), 8192))). + let pow499 = pow32 * pow498; // pow(trace_generator, (safe_div((safe_mult(489, global_values.trace_length)), 65536))). + let pow500 = pow32 * pow499; // pow(trace_generator, (safe_div((safe_mult(245, global_values.trace_length)), 32768))). + let pow501 = pow32 * pow500; // pow(trace_generator, (safe_div((safe_mult(491, global_values.trace_length)), 65536))). + let pow502 = pow32 * pow501; // pow(trace_generator, (safe_div((safe_mult(123, global_values.trace_length)), 16384))). + let pow503 = pow32 * pow502; // pow(trace_generator, (safe_div((safe_mult(493, global_values.trace_length)), 65536))). + let pow504 = pow32 * pow503; // pow(trace_generator, (safe_div((safe_mult(247, global_values.trace_length)), 32768))). + let pow505 = pow32 * pow504; // pow(trace_generator, (safe_div((safe_mult(495, global_values.trace_length)), 65536))). + let pow506 = pow32 * pow505; // pow(trace_generator, (safe_div((safe_mult(31, global_values.trace_length)), 4096))). + let pow507 = pow32 * pow506; // pow(trace_generator, (safe_div((safe_mult(497, global_values.trace_length)), 65536))). + let pow508 = pow32 * pow507; // pow(trace_generator, (safe_div((safe_mult(249, global_values.trace_length)), 32768))). + let pow509 = pow32 * pow508; // pow(trace_generator, (safe_div((safe_mult(499, global_values.trace_length)), 65536))). + let pow510 = pow32 * pow509; // pow(trace_generator, (safe_div((safe_mult(125, global_values.trace_length)), 16384))). + let pow511 = pow32 * pow510; // pow(trace_generator, (safe_div((safe_mult(501, global_values.trace_length)), 65536))). + let pow512 = pow32 * pow511; // pow(trace_generator, (safe_div((safe_mult(251, global_values.trace_length)), 32768))). + let pow513 = pow32 * pow512; // pow(trace_generator, (safe_div((safe_mult(503, global_values.trace_length)), 65536))). + let pow514 = pow32 * pow513; // pow(trace_generator, (safe_div((safe_mult(63, global_values.trace_length)), 8192))). + let pow515 = pow32 * pow514; // pow(trace_generator, (safe_div((safe_mult(505, global_values.trace_length)), 65536))). + let pow516 = pow32 * pow515; // pow(trace_generator, (safe_div((safe_mult(253, global_values.trace_length)), 32768))). + let pow517 = pow32 * pow516; // pow(trace_generator, (safe_div((safe_mult(507, global_values.trace_length)), 65536))). + let pow518 = pow32 * pow517; // pow(trace_generator, (safe_div((safe_mult(127, global_values.trace_length)), 16384))). + let pow519 = pow32 * pow518; // pow(trace_generator, (safe_div((safe_mult(509, global_values.trace_length)), 65536))). + let pow520 = pow41 * pow519; // pow(trace_generator, (safe_div(global_values.trace_length, 128))). + let pow521 = pow32 * pow520; // pow(trace_generator, (safe_div((safe_mult(513, global_values.trace_length)), 65536))). + let pow522 = pow32 * pow521; // pow(trace_generator, (safe_div((safe_mult(257, global_values.trace_length)), 32768))). + let pow523 = pow32 * pow522; // pow(trace_generator, (safe_div((safe_mult(515, global_values.trace_length)), 65536))). + let pow524 = pow32 * pow523; // pow(trace_generator, (safe_div((safe_mult(129, global_values.trace_length)), 16384))). + let pow525 = pow32 * pow524; // pow(trace_generator, (safe_div((safe_mult(517, global_values.trace_length)), 65536))). + let pow526 = pow32 * pow525; // pow(trace_generator, (safe_div((safe_mult(259, global_values.trace_length)), 32768))). + let pow527 = pow32 * pow526; // pow(trace_generator, (safe_div((safe_mult(519, global_values.trace_length)), 65536))). + let pow528 = pow32 * pow527; // pow(trace_generator, (safe_div((safe_mult(65, global_values.trace_length)), 8192))). + let pow529 = pow32 * pow528; // pow(trace_generator, (safe_div((safe_mult(521, global_values.trace_length)), 65536))). + let pow530 = pow32 * pow529; // pow(trace_generator, (safe_div((safe_mult(261, global_values.trace_length)), 32768))). + let pow531 = pow32 * pow530; // pow(trace_generator, (safe_div((safe_mult(523, global_values.trace_length)), 65536))). + let pow532 = pow32 * pow531; // pow(trace_generator, (safe_div((safe_mult(131, global_values.trace_length)), 16384))). + let pow533 = pow32 * pow532; // pow(trace_generator, (safe_div((safe_mult(525, global_values.trace_length)), 65536))). + let pow534 = pow32 * pow533; // pow(trace_generator, (safe_div((safe_mult(263, global_values.trace_length)), 32768))). + let pow535 = pow32 * pow534; // pow(trace_generator, (safe_div((safe_mult(527, global_values.trace_length)), 65536))). + let pow536 = pow32 * pow535; // pow(trace_generator, (safe_div((safe_mult(33, global_values.trace_length)), 4096))). + let pow537 = pow32 * pow536; // pow(trace_generator, (safe_div((safe_mult(529, global_values.trace_length)), 65536))). + let pow538 = pow32 * pow537; // pow(trace_generator, (safe_div((safe_mult(265, global_values.trace_length)), 32768))). + let pow539 = pow32 * pow538; // pow(trace_generator, (safe_div((safe_mult(531, global_values.trace_length)), 65536))). + let pow540 = pow32 * pow539; // pow(trace_generator, (safe_div((safe_mult(133, global_values.trace_length)), 16384))). + let pow541 = pow32 * pow540; // pow(trace_generator, (safe_div((safe_mult(533, global_values.trace_length)), 65536))). + let pow542 = pow32 * pow541; // pow(trace_generator, (safe_div((safe_mult(267, global_values.trace_length)), 32768))). + let pow543 = pow32 * pow542; // pow(trace_generator, (safe_div((safe_mult(535, global_values.trace_length)), 65536))). + let pow544 = pow32 * pow543; // pow(trace_generator, (safe_div((safe_mult(67, global_values.trace_length)), 8192))). + let pow545 = pow32 * pow544; // pow(trace_generator, (safe_div((safe_mult(537, global_values.trace_length)), 65536))). + let pow546 = pow32 * pow545; // pow(trace_generator, (safe_div((safe_mult(269, global_values.trace_length)), 32768))). + let pow547 = pow32 * pow546; // pow(trace_generator, (safe_div((safe_mult(539, global_values.trace_length)), 65536))). + let pow548 = pow32 * pow547; // pow(trace_generator, (safe_div((safe_mult(135, global_values.trace_length)), 16384))). + let pow549 = pow32 * pow548; // pow(trace_generator, (safe_div((safe_mult(541, global_values.trace_length)), 65536))). + let pow550 = pow41 * pow549; // pow(trace_generator, (safe_div((safe_mult(17, global_values.trace_length)), 2048))). + let pow551 = pow32 * pow550; // pow(trace_generator, (safe_div((safe_mult(545, global_values.trace_length)), 65536))). + let pow552 = pow32 * pow551; // pow(trace_generator, (safe_div((safe_mult(273, global_values.trace_length)), 32768))). + let pow553 = pow32 * pow552; // pow(trace_generator, (safe_div((safe_mult(547, global_values.trace_length)), 65536))). + let pow554 = pow32 * pow553; // pow(trace_generator, (safe_div((safe_mult(137, global_values.trace_length)), 16384))). + let pow555 = pow32 * pow554; // pow(trace_generator, (safe_div((safe_mult(549, global_values.trace_length)), 65536))). + let pow556 = pow32 * pow555; // pow(trace_generator, (safe_div((safe_mult(275, global_values.trace_length)), 32768))). + let pow557 = pow32 * pow556; // pow(trace_generator, (safe_div((safe_mult(551, global_values.trace_length)), 65536))). + let pow558 = pow32 * pow557; // pow(trace_generator, (safe_div((safe_mult(69, global_values.trace_length)), 8192))). + let pow559 = pow32 * pow558; // pow(trace_generator, (safe_div((safe_mult(553, global_values.trace_length)), 65536))). + let pow560 = pow32 * pow559; // pow(trace_generator, (safe_div((safe_mult(277, global_values.trace_length)), 32768))). + let pow561 = pow32 * pow560; // pow(trace_generator, (safe_div((safe_mult(555, global_values.trace_length)), 65536))). + let pow562 = pow32 * pow561; // pow(trace_generator, (safe_div((safe_mult(139, global_values.trace_length)), 16384))). + let pow563 = pow32 * pow562; // pow(trace_generator, (safe_div((safe_mult(557, global_values.trace_length)), 65536))). + let pow564 = pow32 * pow563; // pow(trace_generator, (safe_div((safe_mult(279, global_values.trace_length)), 32768))). + let pow565 = pow32 * pow564; // pow(trace_generator, (safe_div((safe_mult(559, global_values.trace_length)), 65536))). + let pow566 = pow32 * pow565; // pow(trace_generator, (safe_div((safe_mult(35, global_values.trace_length)), 4096))). + let pow567 = pow32 * pow566; // pow(trace_generator, (safe_div((safe_mult(561, global_values.trace_length)), 65536))). + let pow568 = pow32 * pow567; // pow(trace_generator, (safe_div((safe_mult(281, global_values.trace_length)), 32768))). + let pow569 = pow32 * pow568; // pow(trace_generator, (safe_div((safe_mult(563, global_values.trace_length)), 65536))). + let pow570 = pow32 * pow569; // pow(trace_generator, (safe_div((safe_mult(141, global_values.trace_length)), 16384))). + let pow571 = pow32 * pow570; // pow(trace_generator, (safe_div((safe_mult(565, global_values.trace_length)), 65536))). + let pow572 = pow32 * pow571; // pow(trace_generator, (safe_div((safe_mult(283, global_values.trace_length)), 32768))). + let pow573 = pow32 * pow572; // pow(trace_generator, (safe_div((safe_mult(567, global_values.trace_length)), 65536))). + let pow574 = pow32 * pow573; // pow(trace_generator, (safe_div((safe_mult(71, global_values.trace_length)), 8192))). + let pow575 = pow32 * pow574; // pow(trace_generator, (safe_div((safe_mult(569, global_values.trace_length)), 65536))). + let pow576 = pow32 * pow575; // pow(trace_generator, (safe_div((safe_mult(285, global_values.trace_length)), 32768))). + let pow577 = pow32 * pow576; // pow(trace_generator, (safe_div((safe_mult(571, global_values.trace_length)), 65536))). + let pow578 = pow32 * pow577; // pow(trace_generator, (safe_div((safe_mult(143, global_values.trace_length)), 16384))). + let pow579 = pow32 * pow578; // pow(trace_generator, (safe_div((safe_mult(573, global_values.trace_length)), 65536))). + let pow580 = pow41 * pow579; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 1024))). + let pow581 = pow32 * pow580; // pow(trace_generator, (safe_div((safe_mult(577, global_values.trace_length)), 65536))). + let pow582 = pow32 * pow581; // pow(trace_generator, (safe_div((safe_mult(289, global_values.trace_length)), 32768))). + let pow583 = pow32 * pow582; // pow(trace_generator, (safe_div((safe_mult(579, global_values.trace_length)), 65536))). + let pow584 = pow32 * pow583; // pow(trace_generator, (safe_div((safe_mult(145, global_values.trace_length)), 16384))). + let pow585 = pow32 * pow584; // pow(trace_generator, (safe_div((safe_mult(581, global_values.trace_length)), 65536))). + let pow586 = pow32 * pow585; // pow(trace_generator, (safe_div((safe_mult(291, global_values.trace_length)), 32768))). + let pow587 = pow32 * pow586; // pow(trace_generator, (safe_div((safe_mult(583, global_values.trace_length)), 65536))). + let pow588 = pow32 * pow587; // pow(trace_generator, (safe_div((safe_mult(73, global_values.trace_length)), 8192))). + let pow589 = pow32 * pow588; // pow(trace_generator, (safe_div((safe_mult(585, global_values.trace_length)), 65536))). + let pow590 = pow32 * pow589; // pow(trace_generator, (safe_div((safe_mult(293, global_values.trace_length)), 32768))). + let pow591 = pow32 * pow590; // pow(trace_generator, (safe_div((safe_mult(587, global_values.trace_length)), 65536))). + let pow592 = pow32 * pow591; // pow(trace_generator, (safe_div((safe_mult(147, global_values.trace_length)), 16384))). + let pow593 = pow32 * pow592; // pow(trace_generator, (safe_div((safe_mult(589, global_values.trace_length)), 65536))). + let pow594 = pow32 * pow593; // pow(trace_generator, (safe_div((safe_mult(295, global_values.trace_length)), 32768))). + let pow595 = pow32 * pow594; // pow(trace_generator, (safe_div((safe_mult(591, global_values.trace_length)), 65536))). + let pow596 = pow32 * pow595; // pow(trace_generator, (safe_div((safe_mult(37, global_values.trace_length)), 4096))). + let pow597 = pow32 * pow596; // pow(trace_generator, (safe_div((safe_mult(593, global_values.trace_length)), 65536))). + let pow598 = pow32 * pow597; // pow(trace_generator, (safe_div((safe_mult(297, global_values.trace_length)), 32768))). + let pow599 = pow32 * pow598; // pow(trace_generator, (safe_div((safe_mult(595, global_values.trace_length)), 65536))). + let pow600 = pow32 * pow599; // pow(trace_generator, (safe_div((safe_mult(149, global_values.trace_length)), 16384))). + let pow601 = pow32 * pow600; // pow(trace_generator, (safe_div((safe_mult(597, global_values.trace_length)), 65536))). + let pow602 = pow32 * pow601; // pow(trace_generator, (safe_div((safe_mult(299, global_values.trace_length)), 32768))). + let pow603 = pow32 * pow602; // pow(trace_generator, (safe_div((safe_mult(599, global_values.trace_length)), 65536))). + let pow604 = pow32 * pow603; // pow(trace_generator, (safe_div((safe_mult(75, global_values.trace_length)), 8192))). + let pow605 = pow32 * pow604; // pow(trace_generator, (safe_div((safe_mult(601, global_values.trace_length)), 65536))). + let pow606 = pow32 * pow605; // pow(trace_generator, (safe_div((safe_mult(301, global_values.trace_length)), 32768))). + let pow607 = pow32 * pow606; // pow(trace_generator, (safe_div((safe_mult(603, global_values.trace_length)), 65536))). + let pow608 = pow32 * pow607; // pow(trace_generator, (safe_div((safe_mult(151, global_values.trace_length)), 16384))). + let pow609 = pow32 * pow608; // pow(trace_generator, (safe_div((safe_mult(605, global_values.trace_length)), 65536))). + let pow610 = pow41 * pow609; // pow(trace_generator, (safe_div((safe_mult(19, global_values.trace_length)), 2048))). + let pow611 = pow32 * pow610; // pow(trace_generator, (safe_div((safe_mult(609, global_values.trace_length)), 65536))). + let pow612 = pow32 * pow611; // pow(trace_generator, (safe_div((safe_mult(305, global_values.trace_length)), 32768))). + let pow613 = pow32 * pow612; // pow(trace_generator, (safe_div((safe_mult(611, global_values.trace_length)), 65536))). + let pow614 = pow32 * pow613; // pow(trace_generator, (safe_div((safe_mult(153, global_values.trace_length)), 16384))). + let pow615 = pow32 * pow614; // pow(trace_generator, (safe_div((safe_mult(613, global_values.trace_length)), 65536))). + let pow616 = pow32 * pow615; // pow(trace_generator, (safe_div((safe_mult(307, global_values.trace_length)), 32768))). + let pow617 = pow32 * pow616; // pow(trace_generator, (safe_div((safe_mult(615, global_values.trace_length)), 65536))). + let pow618 = pow32 * pow617; // pow(trace_generator, (safe_div((safe_mult(77, global_values.trace_length)), 8192))). + let pow619 = pow32 * pow618; // pow(trace_generator, (safe_div((safe_mult(617, global_values.trace_length)), 65536))). + let pow620 = pow32 * pow619; // pow(trace_generator, (safe_div((safe_mult(309, global_values.trace_length)), 32768))). + let pow621 = pow32 * pow620; // pow(trace_generator, (safe_div((safe_mult(619, global_values.trace_length)), 65536))). + let pow622 = pow32 * pow621; // pow(trace_generator, (safe_div((safe_mult(155, global_values.trace_length)), 16384))). + let pow623 = pow32 * pow622; // pow(trace_generator, (safe_div((safe_mult(621, global_values.trace_length)), 65536))). + let pow624 = pow32 * pow623; // pow(trace_generator, (safe_div((safe_mult(311, global_values.trace_length)), 32768))). + let pow625 = pow32 * pow624; // pow(trace_generator, (safe_div((safe_mult(623, global_values.trace_length)), 65536))). + let pow626 = pow32 * pow625; // pow(trace_generator, (safe_div((safe_mult(39, global_values.trace_length)), 4096))). + let pow627 = pow32 * pow626; // pow(trace_generator, (safe_div((safe_mult(625, global_values.trace_length)), 65536))). + let pow628 = pow32 * pow627; // pow(trace_generator, (safe_div((safe_mult(313, global_values.trace_length)), 32768))). + let pow629 = pow32 * pow628; // pow(trace_generator, (safe_div((safe_mult(627, global_values.trace_length)), 65536))). + let pow630 = pow32 * pow629; // pow(trace_generator, (safe_div((safe_mult(157, global_values.trace_length)), 16384))). + let pow631 = pow32 * pow630; // pow(trace_generator, (safe_div((safe_mult(629, global_values.trace_length)), 65536))). + let pow632 = pow32 * pow631; // pow(trace_generator, (safe_div((safe_mult(315, global_values.trace_length)), 32768))). + let pow633 = pow32 * pow632; // pow(trace_generator, (safe_div((safe_mult(631, global_values.trace_length)), 65536))). + let pow634 = pow32 * pow633; // pow(trace_generator, (safe_div((safe_mult(79, global_values.trace_length)), 8192))). + let pow635 = pow32 * pow634; // pow(trace_generator, (safe_div((safe_mult(633, global_values.trace_length)), 65536))). + let pow636 = pow32 * pow635; // pow(trace_generator, (safe_div((safe_mult(317, global_values.trace_length)), 32768))). + let pow637 = pow32 * pow636; // pow(trace_generator, (safe_div((safe_mult(635, global_values.trace_length)), 65536))). + let pow638 = pow32 * pow637; // pow(trace_generator, (safe_div((safe_mult(159, global_values.trace_length)), 16384))). + let pow639 = pow32 * pow638; // pow(trace_generator, (safe_div((safe_mult(637, global_values.trace_length)), 65536))). + let pow640 = pow41 * pow639; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 512))). + let pow641 = pow32 * pow640; // pow(trace_generator, (safe_div((safe_mult(641, global_values.trace_length)), 65536))). + let pow642 = pow32 * pow641; // pow(trace_generator, (safe_div((safe_mult(321, global_values.trace_length)), 32768))). + let pow643 = pow32 * pow642; // pow(trace_generator, (safe_div((safe_mult(643, global_values.trace_length)), 65536))). + let pow644 = pow32 * pow643; // pow(trace_generator, (safe_div((safe_mult(161, global_values.trace_length)), 16384))). + let pow645 = pow32 * pow644; // pow(trace_generator, (safe_div((safe_mult(645, global_values.trace_length)), 65536))). + let pow646 = pow32 * pow645; // pow(trace_generator, (safe_div((safe_mult(323, global_values.trace_length)), 32768))). + let pow647 = pow32 * pow646; // pow(trace_generator, (safe_div((safe_mult(647, global_values.trace_length)), 65536))). + let pow648 = pow32 * pow647; // pow(trace_generator, (safe_div((safe_mult(81, global_values.trace_length)), 8192))). + let pow649 = pow32 * pow648; // pow(trace_generator, (safe_div((safe_mult(649, global_values.trace_length)), 65536))). + let pow650 = pow32 * pow649; // pow(trace_generator, (safe_div((safe_mult(325, global_values.trace_length)), 32768))). + let pow651 = pow32 * pow650; // pow(trace_generator, (safe_div((safe_mult(651, global_values.trace_length)), 65536))). + let pow652 = pow32 * pow651; // pow(trace_generator, (safe_div((safe_mult(163, global_values.trace_length)), 16384))). + let pow653 = pow32 * pow652; // pow(trace_generator, (safe_div((safe_mult(653, global_values.trace_length)), 65536))). + let pow654 = pow32 * pow653; // pow(trace_generator, (safe_div((safe_mult(327, global_values.trace_length)), 32768))). + let pow655 = pow32 * pow654; // pow(trace_generator, (safe_div((safe_mult(655, global_values.trace_length)), 65536))). + let pow656 = pow32 * pow655; // pow(trace_generator, (safe_div((safe_mult(41, global_values.trace_length)), 4096))). + let pow657 = pow32 * pow656; // pow(trace_generator, (safe_div((safe_mult(657, global_values.trace_length)), 65536))). + let pow658 = pow32 * pow657; // pow(trace_generator, (safe_div((safe_mult(329, global_values.trace_length)), 32768))). + let pow659 = pow32 * pow658; // pow(trace_generator, (safe_div((safe_mult(659, global_values.trace_length)), 65536))). + let pow660 = pow32 * pow659; // pow(trace_generator, (safe_div((safe_mult(165, global_values.trace_length)), 16384))). + let pow661 = pow32 * pow660; // pow(trace_generator, (safe_div((safe_mult(661, global_values.trace_length)), 65536))). + let pow662 = pow32 * pow661; // pow(trace_generator, (safe_div((safe_mult(331, global_values.trace_length)), 32768))). + let pow663 = pow32 * pow662; // pow(trace_generator, (safe_div((safe_mult(663, global_values.trace_length)), 65536))). + let pow664 = pow32 * pow663; // pow(trace_generator, (safe_div((safe_mult(83, global_values.trace_length)), 8192))). + let pow665 = pow32 * pow664; // pow(trace_generator, (safe_div((safe_mult(665, global_values.trace_length)), 65536))). + let pow666 = pow32 * pow665; // pow(trace_generator, (safe_div((safe_mult(333, global_values.trace_length)), 32768))). + let pow667 = pow32 * pow666; // pow(trace_generator, (safe_div((safe_mult(667, global_values.trace_length)), 65536))). + let pow668 = pow32 * pow667; // pow(trace_generator, (safe_div((safe_mult(167, global_values.trace_length)), 16384))). + let pow669 = pow32 * pow668; // pow(trace_generator, (safe_div((safe_mult(669, global_values.trace_length)), 65536))). + let pow670 = pow41 * pow669; // pow(trace_generator, (safe_div((safe_mult(21, global_values.trace_length)), 2048))). + let pow671 = pow32 * pow670; // pow(trace_generator, (safe_div((safe_mult(673, global_values.trace_length)), 65536))). + let pow672 = pow32 * pow671; // pow(trace_generator, (safe_div((safe_mult(337, global_values.trace_length)), 32768))). + let pow673 = pow32 * pow672; // pow(trace_generator, (safe_div((safe_mult(675, global_values.trace_length)), 65536))). + let pow674 = pow32 * pow673; // pow(trace_generator, (safe_div((safe_mult(169, global_values.trace_length)), 16384))). + let pow675 = pow32 * pow674; // pow(trace_generator, (safe_div((safe_mult(677, global_values.trace_length)), 65536))). + let pow676 = pow32 * pow675; // pow(trace_generator, (safe_div((safe_mult(339, global_values.trace_length)), 32768))). + let pow677 = pow32 * pow676; // pow(trace_generator, (safe_div((safe_mult(679, global_values.trace_length)), 65536))). + let pow678 = pow32 * pow677; // pow(trace_generator, (safe_div((safe_mult(85, global_values.trace_length)), 8192))). + let pow679 = pow32 * pow678; // pow(trace_generator, (safe_div((safe_mult(681, global_values.trace_length)), 65536))). + let pow680 = pow32 * pow679; // pow(trace_generator, (safe_div((safe_mult(341, global_values.trace_length)), 32768))). + let pow681 = pow32 * pow680; // pow(trace_generator, (safe_div((safe_mult(683, global_values.trace_length)), 65536))). + let pow682 = pow32 * pow681; // pow(trace_generator, (safe_div((safe_mult(171, global_values.trace_length)), 16384))). + let pow683 = pow32 * pow682; // pow(trace_generator, (safe_div((safe_mult(685, global_values.trace_length)), 65536))). + let pow684 = pow32 * pow683; // pow(trace_generator, (safe_div((safe_mult(343, global_values.trace_length)), 32768))). + let pow685 = pow32 * pow684; // pow(trace_generator, (safe_div((safe_mult(687, global_values.trace_length)), 65536))). + let pow686 = pow32 * pow685; // pow(trace_generator, (safe_div((safe_mult(43, global_values.trace_length)), 4096))). + let pow687 = pow32 * pow686; // pow(trace_generator, (safe_div((safe_mult(689, global_values.trace_length)), 65536))). + let pow688 = pow32 * pow687; // pow(trace_generator, (safe_div((safe_mult(345, global_values.trace_length)), 32768))). + let pow689 = pow32 * pow688; // pow(trace_generator, (safe_div((safe_mult(691, global_values.trace_length)), 65536))). + let pow690 = pow32 * pow689; // pow(trace_generator, (safe_div((safe_mult(173, global_values.trace_length)), 16384))). + let pow691 = pow32 * pow690; // pow(trace_generator, (safe_div((safe_mult(693, global_values.trace_length)), 65536))). + let pow692 = pow32 * pow691; // pow(trace_generator, (safe_div((safe_mult(347, global_values.trace_length)), 32768))). + let pow693 = pow32 * pow692; // pow(trace_generator, (safe_div((safe_mult(695, global_values.trace_length)), 65536))). + let pow694 = pow32 * pow693; // pow(trace_generator, (safe_div((safe_mult(87, global_values.trace_length)), 8192))). + let pow695 = pow32 * pow694; // pow(trace_generator, (safe_div((safe_mult(697, global_values.trace_length)), 65536))). + let pow696 = pow32 * pow695; // pow(trace_generator, (safe_div((safe_mult(349, global_values.trace_length)), 32768))). + let pow697 = pow32 * pow696; // pow(trace_generator, (safe_div((safe_mult(699, global_values.trace_length)), 65536))). + let pow698 = pow32 * pow697; // pow(trace_generator, (safe_div((safe_mult(175, global_values.trace_length)), 16384))). + let pow699 = pow32 * pow698; // pow(trace_generator, (safe_div((safe_mult(701, global_values.trace_length)), 65536))). + let pow700 = pow41 * pow699; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 1024))). + let pow701 = pow32 * pow700; // pow(trace_generator, (safe_div((safe_mult(705, global_values.trace_length)), 65536))). + let pow702 = pow32 * pow701; // pow(trace_generator, (safe_div((safe_mult(353, global_values.trace_length)), 32768))). + let pow703 = pow32 * pow702; // pow(trace_generator, (safe_div((safe_mult(707, global_values.trace_length)), 65536))). + let pow704 = pow32 * pow703; // pow(trace_generator, (safe_div((safe_mult(177, global_values.trace_length)), 16384))). + let pow705 = pow32 * pow704; // pow(trace_generator, (safe_div((safe_mult(709, global_values.trace_length)), 65536))). + let pow706 = pow32 * pow705; // pow(trace_generator, (safe_div((safe_mult(355, global_values.trace_length)), 32768))). + let pow707 = pow32 * pow706; // pow(trace_generator, (safe_div((safe_mult(711, global_values.trace_length)), 65536))). + let pow708 = pow32 * pow707; // pow(trace_generator, (safe_div((safe_mult(89, global_values.trace_length)), 8192))). + let pow709 = pow32 * pow708; // pow(trace_generator, (safe_div((safe_mult(713, global_values.trace_length)), 65536))). + let pow710 = pow32 * pow709; // pow(trace_generator, (safe_div((safe_mult(357, global_values.trace_length)), 32768))). + let pow711 = pow32 * pow710; // pow(trace_generator, (safe_div((safe_mult(715, global_values.trace_length)), 65536))). + let pow712 = pow32 * pow711; // pow(trace_generator, (safe_div((safe_mult(179, global_values.trace_length)), 16384))). + let pow713 = pow32 * pow712; // pow(trace_generator, (safe_div((safe_mult(717, global_values.trace_length)), 65536))). + let pow714 = pow32 * pow713; // pow(trace_generator, (safe_div((safe_mult(359, global_values.trace_length)), 32768))). + let pow715 = pow32 * pow714; // pow(trace_generator, (safe_div((safe_mult(719, global_values.trace_length)), 65536))). + let pow716 = pow32 * pow715; // pow(trace_generator, (safe_div((safe_mult(45, global_values.trace_length)), 4096))). + let pow717 = pow32 * pow716; // pow(trace_generator, (safe_div((safe_mult(721, global_values.trace_length)), 65536))). + let pow718 = pow32 * pow717; // pow(trace_generator, (safe_div((safe_mult(361, global_values.trace_length)), 32768))). + let pow719 = pow32 * pow718; // pow(trace_generator, (safe_div((safe_mult(723, global_values.trace_length)), 65536))). + let pow720 = pow32 * pow719; // pow(trace_generator, (safe_div((safe_mult(181, global_values.trace_length)), 16384))). + let pow721 = pow32 * pow720; // pow(trace_generator, (safe_div((safe_mult(725, global_values.trace_length)), 65536))). + let pow722 = pow32 * pow721; // pow(trace_generator, (safe_div((safe_mult(363, global_values.trace_length)), 32768))). + let pow723 = pow32 * pow722; // pow(trace_generator, (safe_div((safe_mult(727, global_values.trace_length)), 65536))). + let pow724 = pow32 * pow723; // pow(trace_generator, (safe_div((safe_mult(91, global_values.trace_length)), 8192))). + let pow725 = pow32 * pow724; // pow(trace_generator, (safe_div((safe_mult(729, global_values.trace_length)), 65536))). + let pow726 = pow32 * pow725; // pow(trace_generator, (safe_div((safe_mult(365, global_values.trace_length)), 32768))). + let pow727 = pow32 * pow726; // pow(trace_generator, (safe_div((safe_mult(731, global_values.trace_length)), 65536))). + let pow728 = pow32 * pow727; // pow(trace_generator, (safe_div((safe_mult(183, global_values.trace_length)), 16384))). + let pow729 = pow32 * pow728; // pow(trace_generator, (safe_div((safe_mult(733, global_values.trace_length)), 65536))). + let pow730 = pow41 * pow729; // pow(trace_generator, (safe_div((safe_mult(23, global_values.trace_length)), 2048))). + let pow731 = pow32 * pow730; // pow(trace_generator, (safe_div((safe_mult(737, global_values.trace_length)), 65536))). + let pow732 = pow32 * pow731; // pow(trace_generator, (safe_div((safe_mult(369, global_values.trace_length)), 32768))). + let pow733 = pow32 * pow732; // pow(trace_generator, (safe_div((safe_mult(739, global_values.trace_length)), 65536))). + let pow734 = pow32 * pow733; // pow(trace_generator, (safe_div((safe_mult(185, global_values.trace_length)), 16384))). + let pow735 = pow32 * pow734; // pow(trace_generator, (safe_div((safe_mult(741, global_values.trace_length)), 65536))). + let pow736 = pow32 * pow735; // pow(trace_generator, (safe_div((safe_mult(371, global_values.trace_length)), 32768))). + let pow737 = pow32 * pow736; // pow(trace_generator, (safe_div((safe_mult(743, global_values.trace_length)), 65536))). + let pow738 = pow32 * pow737; // pow(trace_generator, (safe_div((safe_mult(93, global_values.trace_length)), 8192))). + let pow739 = pow32 * pow738; // pow(trace_generator, (safe_div((safe_mult(745, global_values.trace_length)), 65536))). + let pow740 = pow32 * pow739; // pow(trace_generator, (safe_div((safe_mult(373, global_values.trace_length)), 32768))). + let pow741 = pow32 * pow740; // pow(trace_generator, (safe_div((safe_mult(747, global_values.trace_length)), 65536))). + let pow742 = pow32 * pow741; // pow(trace_generator, (safe_div((safe_mult(187, global_values.trace_length)), 16384))). + let pow743 = pow32 * pow742; // pow(trace_generator, (safe_div((safe_mult(749, global_values.trace_length)), 65536))). + let pow744 = pow32 * pow743; // pow(trace_generator, (safe_div((safe_mult(375, global_values.trace_length)), 32768))). + let pow745 = pow32 * pow744; // pow(trace_generator, (safe_div((safe_mult(751, global_values.trace_length)), 65536))). + let pow746 = pow32 * pow745; // pow(trace_generator, (safe_div((safe_mult(47, global_values.trace_length)), 4096))). + let pow747 = pow32 * pow746; // pow(trace_generator, (safe_div((safe_mult(753, global_values.trace_length)), 65536))). + let pow748 = pow32 * pow747; // pow(trace_generator, (safe_div((safe_mult(377, global_values.trace_length)), 32768))). + let pow749 = pow32 * pow748; // pow(trace_generator, (safe_div((safe_mult(755, global_values.trace_length)), 65536))). + let pow750 = pow32 * pow749; // pow(trace_generator, (safe_div((safe_mult(189, global_values.trace_length)), 16384))). + let pow751 = pow32 * pow750; // pow(trace_generator, (safe_div((safe_mult(757, global_values.trace_length)), 65536))). + let pow752 = pow32 * pow751; // pow(trace_generator, (safe_div((safe_mult(379, global_values.trace_length)), 32768))). + let pow753 = pow32 * pow752; // pow(trace_generator, (safe_div((safe_mult(759, global_values.trace_length)), 65536))). + let pow754 = pow32 * pow753; // pow(trace_generator, (safe_div((safe_mult(95, global_values.trace_length)), 8192))). + let pow755 = pow32 * pow754; // pow(trace_generator, (safe_div((safe_mult(761, global_values.trace_length)), 65536))). + let pow756 = pow32 * pow755; // pow(trace_generator, (safe_div((safe_mult(381, global_values.trace_length)), 32768))). + let pow757 = pow32 * pow756; // pow(trace_generator, (safe_div((safe_mult(763, global_values.trace_length)), 65536))). + let pow758 = pow32 * pow757; // pow(trace_generator, (safe_div((safe_mult(191, global_values.trace_length)), 16384))). + let pow759 = pow32 * pow758; // pow(trace_generator, (safe_div((safe_mult(765, global_values.trace_length)), 65536))). + let pow760 = pow41 * pow759; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 256))). + let pow761 = pow32 * pow760; // pow(trace_generator, (safe_div((safe_mult(769, global_values.trace_length)), 65536))). + let pow762 = pow32 * pow761; // pow(trace_generator, (safe_div((safe_mult(385, global_values.trace_length)), 32768))). + let pow763 = pow32 * pow762; // pow(trace_generator, (safe_div((safe_mult(771, global_values.trace_length)), 65536))). + let pow764 = pow32 * pow763; // pow(trace_generator, (safe_div((safe_mult(193, global_values.trace_length)), 16384))). + let pow765 = pow32 * pow764; // pow(trace_generator, (safe_div((safe_mult(773, global_values.trace_length)), 65536))). + let pow766 = pow32 * pow765; // pow(trace_generator, (safe_div((safe_mult(387, global_values.trace_length)), 32768))). + let pow767 = pow32 * pow766; // pow(trace_generator, (safe_div((safe_mult(775, global_values.trace_length)), 65536))). + let pow768 = pow32 * pow767; // pow(trace_generator, (safe_div((safe_mult(97, global_values.trace_length)), 8192))). + let pow769 = pow32 * pow768; // pow(trace_generator, (safe_div((safe_mult(777, global_values.trace_length)), 65536))). + let pow770 = pow32 * pow769; // pow(trace_generator, (safe_div((safe_mult(389, global_values.trace_length)), 32768))). + let pow771 = pow32 * pow770; // pow(trace_generator, (safe_div((safe_mult(779, global_values.trace_length)), 65536))). + let pow772 = pow32 * pow771; // pow(trace_generator, (safe_div((safe_mult(195, global_values.trace_length)), 16384))). + let pow773 = pow32 * pow772; // pow(trace_generator, (safe_div((safe_mult(781, global_values.trace_length)), 65536))). + let pow774 = pow32 * pow773; // pow(trace_generator, (safe_div((safe_mult(391, global_values.trace_length)), 32768))). + let pow775 = pow32 * pow774; // pow(trace_generator, (safe_div((safe_mult(783, global_values.trace_length)), 65536))). + let pow776 = pow32 * pow775; // pow(trace_generator, (safe_div((safe_mult(49, global_values.trace_length)), 4096))). + let pow777 = pow32 * pow776; // pow(trace_generator, (safe_div((safe_mult(785, global_values.trace_length)), 65536))). + let pow778 = pow32 * pow777; // pow(trace_generator, (safe_div((safe_mult(393, global_values.trace_length)), 32768))). + let pow779 = pow32 * pow778; // pow(trace_generator, (safe_div((safe_mult(787, global_values.trace_length)), 65536))). + let pow780 = pow32 * pow779; // pow(trace_generator, (safe_div((safe_mult(197, global_values.trace_length)), 16384))). + let pow781 = pow32 * pow780; // pow(trace_generator, (safe_div((safe_mult(789, global_values.trace_length)), 65536))). + let pow782 = pow32 * pow781; // pow(trace_generator, (safe_div((safe_mult(395, global_values.trace_length)), 32768))). + let pow783 = pow32 * pow782; // pow(trace_generator, (safe_div((safe_mult(791, global_values.trace_length)), 65536))). + let pow784 = pow32 * pow783; // pow(trace_generator, (safe_div((safe_mult(99, global_values.trace_length)), 8192))). + let pow785 = pow32 * pow784; // pow(trace_generator, (safe_div((safe_mult(793, global_values.trace_length)), 65536))). + let pow786 = pow32 * pow785; // pow(trace_generator, (safe_div((safe_mult(397, global_values.trace_length)), 32768))). + let pow787 = pow32 * pow786; // pow(trace_generator, (safe_div((safe_mult(795, global_values.trace_length)), 65536))). + let pow788 = pow32 * pow787; // pow(trace_generator, (safe_div((safe_mult(199, global_values.trace_length)), 16384))). + let pow789 = pow32 * pow788; // pow(trace_generator, (safe_div((safe_mult(797, global_values.trace_length)), 65536))). + let pow790 = pow73 * pow789; // pow(trace_generator, (safe_div((safe_mult(13, global_values.trace_length)), 1024))). + let pow791 = pow100 * pow790; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 512))). + let pow792 = pow100 * pow791; // pow(trace_generator, (safe_div((safe_mult(15, global_values.trace_length)), 1024))). + let pow793 = pow100 * pow792; // pow(trace_generator, (safe_div(global_values.trace_length, 64))). + let pow794 = pow32 * pow793; // pow(trace_generator, (safe_div((safe_mult(1025, global_values.trace_length)), 65536))). + let pow795 = pow32 * pow794; // pow(trace_generator, (safe_div((safe_mult(513, global_values.trace_length)), 32768))). + let pow796 = pow32 * pow795; // pow(trace_generator, (safe_div((safe_mult(1027, global_values.trace_length)), 65536))). + let pow797 = pow32 * pow796; // pow(trace_generator, (safe_div((safe_mult(257, global_values.trace_length)), 16384))). + let pow798 = pow32 * pow797; // pow(trace_generator, (safe_div((safe_mult(1029, global_values.trace_length)), 65536))). + let pow799 = pow32 * pow798; // pow(trace_generator, (safe_div((safe_mult(515, global_values.trace_length)), 32768))). + let pow800 = pow32 * pow799; // pow(trace_generator, (safe_div((safe_mult(1031, global_values.trace_length)), 65536))). + let pow801 = pow32 * pow800; // pow(trace_generator, (safe_div((safe_mult(129, global_values.trace_length)), 8192))). + let pow802 = pow32 * pow801; // pow(trace_generator, (safe_div((safe_mult(1033, global_values.trace_length)), 65536))). + let pow803 = pow32 * pow802; // pow(trace_generator, (safe_div((safe_mult(517, global_values.trace_length)), 32768))). + let pow804 = pow32 * pow803; // pow(trace_generator, (safe_div((safe_mult(1035, global_values.trace_length)), 65536))). + let pow805 = pow32 * pow804; // pow(trace_generator, (safe_div((safe_mult(259, global_values.trace_length)), 16384))). + let pow806 = pow32 * pow805; // pow(trace_generator, (safe_div((safe_mult(1037, global_values.trace_length)), 65536))). + let pow807 = pow32 * pow806; // pow(trace_generator, (safe_div((safe_mult(519, global_values.trace_length)), 32768))). + let pow808 = pow32 * pow807; // pow(trace_generator, (safe_div((safe_mult(1039, global_values.trace_length)), 65536))). + let pow809 = pow32 * pow808; // pow(trace_generator, (safe_div((safe_mult(65, global_values.trace_length)), 4096))). + let pow810 = pow32 * pow809; // pow(trace_generator, (safe_div((safe_mult(1041, global_values.trace_length)), 65536))). + let pow811 = pow32 * pow810; // pow(trace_generator, (safe_div((safe_mult(521, global_values.trace_length)), 32768))). + let pow812 = pow32 * pow811; // pow(trace_generator, (safe_div((safe_mult(1043, global_values.trace_length)), 65536))). + let pow813 = pow32 * pow812; // pow(trace_generator, (safe_div((safe_mult(261, global_values.trace_length)), 16384))). + let pow814 = pow32 * pow813; // pow(trace_generator, (safe_div((safe_mult(1045, global_values.trace_length)), 65536))). + let pow815 = pow32 * pow814; // pow(trace_generator, (safe_div((safe_mult(523, global_values.trace_length)), 32768))). + let pow816 = pow32 * pow815; // pow(trace_generator, (safe_div((safe_mult(1047, global_values.trace_length)), 65536))). + let pow817 = pow79 * pow816; // pow(trace_generator, (safe_div((safe_mult(17, global_values.trace_length)), 1024))). + let pow818 = pow100 * pow817; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 512))). + let pow819 = pow100 * pow818; // pow(trace_generator, (safe_div((safe_mult(19, global_values.trace_length)), 1024))). + let pow820 = pow100 * pow819; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 256))). + let pow821 = pow100 * pow820; // pow(trace_generator, (safe_div((safe_mult(21, global_values.trace_length)), 1024))). + let pow822 = pow100 * pow821; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 512))). + let pow823 = pow100 * pow822; // pow(trace_generator, (safe_div((safe_mult(23, global_values.trace_length)), 1024))). + let pow824 = pow580 * pow823; // pow(trace_generator, (safe_div(global_values.trace_length, 32))). + let pow825 = pow32 * pow824; // pow(trace_generator, (safe_div((safe_mult(2049, global_values.trace_length)), 65536))). + let pow826 = pow32 * pow825; // pow(trace_generator, (safe_div((safe_mult(1025, global_values.trace_length)), 32768))). + let pow827 = pow32 * pow826; // pow(trace_generator, (safe_div((safe_mult(2051, global_values.trace_length)), 65536))). + let pow828 = pow32 * pow827; // pow(trace_generator, (safe_div((safe_mult(513, global_values.trace_length)), 16384))). + let pow829 = pow32 * pow828; // pow(trace_generator, (safe_div((safe_mult(2053, global_values.trace_length)), 65536))). + let pow830 = pow32 * pow829; // pow(trace_generator, (safe_div((safe_mult(1027, global_values.trace_length)), 32768))). + let pow831 = pow32 * pow830; // pow(trace_generator, (safe_div((safe_mult(2055, global_values.trace_length)), 65536))). + let pow832 = pow32 * pow831; // pow(trace_generator, (safe_div((safe_mult(257, global_values.trace_length)), 8192))). + let pow833 = pow32 * pow832; // pow(trace_generator, (safe_div((safe_mult(2057, global_values.trace_length)), 65536))). + let pow834 = pow32 * pow833; // pow(trace_generator, (safe_div((safe_mult(1029, global_values.trace_length)), 32768))). + let pow835 = pow32 * pow834; // pow(trace_generator, (safe_div((safe_mult(2059, global_values.trace_length)), 65536))). + let pow836 = pow32 * pow835; // pow(trace_generator, (safe_div((safe_mult(515, global_values.trace_length)), 16384))). + let pow837 = pow32 * pow836; // pow(trace_generator, (safe_div((safe_mult(2061, global_values.trace_length)), 65536))). + let pow838 = pow32 * pow837; // pow(trace_generator, (safe_div((safe_mult(1031, global_values.trace_length)), 32768))). + let pow839 = pow32 * pow838; // pow(trace_generator, (safe_div((safe_mult(2063, global_values.trace_length)), 65536))). + let pow840 = pow32 * pow839; // pow(trace_generator, (safe_div((safe_mult(129, global_values.trace_length)), 4096))). + let pow841 = pow32 * pow840; // pow(trace_generator, (safe_div((safe_mult(2065, global_values.trace_length)), 65536))). + let pow842 = pow32 * pow841; // pow(trace_generator, (safe_div((safe_mult(1033, global_values.trace_length)), 32768))). + let pow843 = pow32 * pow842; // pow(trace_generator, (safe_div((safe_mult(2067, global_values.trace_length)), 65536))). + let pow844 = pow32 * pow843; // pow(trace_generator, (safe_div((safe_mult(517, global_values.trace_length)), 16384))). + let pow845 = pow32 * pow844; // pow(trace_generator, (safe_div((safe_mult(2069, global_values.trace_length)), 65536))). + let pow846 = pow32 * pow845; // pow(trace_generator, (safe_div((safe_mult(1035, global_values.trace_length)), 32768))). + let pow847 = pow32 * pow846; // pow(trace_generator, (safe_div((safe_mult(2071, global_values.trace_length)), 65536))). + let pow848 = pow79 * pow847; // pow(trace_generator, (safe_div((safe_mult(33, global_values.trace_length)), 1024))). + let pow849 = pow100 * pow848; // pow(trace_generator, (safe_div((safe_mult(17, global_values.trace_length)), 512))). + let pow850 = pow100 * pow849; // pow(trace_generator, (safe_div((safe_mult(35, global_values.trace_length)), 1024))). + let pow851 = pow100 * pow850; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 256))). + let pow852 = pow100 * pow851; // pow(trace_generator, (safe_div((safe_mult(37, global_values.trace_length)), 1024))). + let pow853 = pow100 * pow852; // pow(trace_generator, (safe_div((safe_mult(19, global_values.trace_length)), 512))). + let pow854 = pow100 * pow853; // pow(trace_generator, (safe_div((safe_mult(39, global_values.trace_length)), 1024))). + let pow855 = pow100 * pow854; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 128))). + let pow856 = pow100 * pow855; // pow(trace_generator, (safe_div((safe_mult(41, global_values.trace_length)), 1024))). + let pow857 = pow100 * pow856; // pow(trace_generator, (safe_div((safe_mult(21, global_values.trace_length)), 512))). + let pow858 = pow100 * pow857; // pow(trace_generator, (safe_div((safe_mult(43, global_values.trace_length)), 1024))). + let pow859 = pow100 * pow858; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 256))). + let pow860 = pow100 * pow859; // pow(trace_generator, (safe_div((safe_mult(45, global_values.trace_length)), 1024))). + let pow861 = pow100 * pow860; // pow(trace_generator, (safe_div((safe_mult(23, global_values.trace_length)), 512))). + let pow862 = pow100 * pow861; // pow(trace_generator, (safe_div((safe_mult(47, global_values.trace_length)), 1024))). + let pow863 = pow100 * pow862; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 64))). + let pow864 = pow32 * pow863; // pow(trace_generator, (safe_div((safe_mult(3073, global_values.trace_length)), 65536))). + let pow865 = pow32 * pow864; // pow(trace_generator, (safe_div((safe_mult(1537, global_values.trace_length)), 32768))). + let pow866 = pow32 * pow865; // pow(trace_generator, (safe_div((safe_mult(3075, global_values.trace_length)), 65536))). + let pow867 = pow32 * pow866; // pow(trace_generator, (safe_div((safe_mult(769, global_values.trace_length)), 16384))). + let pow868 = pow32 * pow867; // pow(trace_generator, (safe_div((safe_mult(3077, global_values.trace_length)), 65536))). + let pow869 = pow32 * pow868; // pow(trace_generator, (safe_div((safe_mult(1539, global_values.trace_length)), 32768))). + let pow870 = pow32 * pow869; // pow(trace_generator, (safe_div((safe_mult(3079, global_values.trace_length)), 65536))). + let pow871 = pow32 * pow870; // pow(trace_generator, (safe_div((safe_mult(385, global_values.trace_length)), 8192))). + let pow872 = pow32 * pow871; // pow(trace_generator, (safe_div((safe_mult(3081, global_values.trace_length)), 65536))). + let pow873 = pow32 * pow872; // pow(trace_generator, (safe_div((safe_mult(1541, global_values.trace_length)), 32768))). + let pow874 = pow32 * pow873; // pow(trace_generator, (safe_div((safe_mult(3083, global_values.trace_length)), 65536))). + let pow875 = pow32 * pow874; // pow(trace_generator, (safe_div((safe_mult(771, global_values.trace_length)), 16384))). + let pow876 = pow32 * pow875; // pow(trace_generator, (safe_div((safe_mult(3085, global_values.trace_length)), 65536))). + let pow877 = pow32 * pow876; // pow(trace_generator, (safe_div((safe_mult(1543, global_values.trace_length)), 32768))). + let pow878 = pow32 * pow877; // pow(trace_generator, (safe_div((safe_mult(3087, global_values.trace_length)), 65536))). + let pow879 = pow32 * pow878; // pow(trace_generator, (safe_div((safe_mult(193, global_values.trace_length)), 4096))). + let pow880 = pow32 * pow879; // pow(trace_generator, (safe_div((safe_mult(3089, global_values.trace_length)), 65536))). + let pow881 = pow32 * pow880; // pow(trace_generator, (safe_div((safe_mult(1545, global_values.trace_length)), 32768))). + let pow882 = pow32 * pow881; // pow(trace_generator, (safe_div((safe_mult(3091, global_values.trace_length)), 65536))). + let pow883 = pow32 * pow882; // pow(trace_generator, (safe_div((safe_mult(773, global_values.trace_length)), 16384))). + let pow884 = pow32 * pow883; // pow(trace_generator, (safe_div((safe_mult(3093, global_values.trace_length)), 65536))). + let pow885 = pow32 * pow884; // pow(trace_generator, (safe_div((safe_mult(1547, global_values.trace_length)), 32768))). + let pow886 = pow32 * pow885; // pow(trace_generator, (safe_div((safe_mult(3095, global_values.trace_length)), 65536))). + let pow887 = pow79 * pow886; // pow(trace_generator, (safe_div((safe_mult(49, global_values.trace_length)), 1024))). + let pow888 = pow100 * pow887; // pow(trace_generator, (safe_div((safe_mult(25, global_values.trace_length)), 512))). + let pow889 = pow100 * pow888; // pow(trace_generator, (safe_div((safe_mult(51, global_values.trace_length)), 1024))). + let pow890 = pow100 * pow889; // pow(trace_generator, (safe_div((safe_mult(13, global_values.trace_length)), 256))). + let pow891 = pow100 * pow890; // pow(trace_generator, (safe_div((safe_mult(53, global_values.trace_length)), 1024))). + let pow892 = pow100 * pow891; // pow(trace_generator, (safe_div((safe_mult(27, global_values.trace_length)), 512))). + let pow893 = pow100 * pow892; // pow(trace_generator, (safe_div((safe_mult(55, global_values.trace_length)), 1024))). + let pow894 = pow580 * pow893; // pow(trace_generator, (safe_div(global_values.trace_length, 16))). + let pow895 = pow32 * pow894; // pow(trace_generator, (safe_div((safe_mult(4097, global_values.trace_length)), 65536))). + let pow896 = pow32 * pow895; // pow(trace_generator, (safe_div((safe_mult(2049, global_values.trace_length)), 32768))). + let pow897 = pow32 * pow896; // pow(trace_generator, (safe_div((safe_mult(4099, global_values.trace_length)), 65536))). + let pow898 = pow32 * pow897; // pow(trace_generator, (safe_div((safe_mult(1025, global_values.trace_length)), 16384))). + let pow899 = pow32 * pow898; // pow(trace_generator, (safe_div((safe_mult(4101, global_values.trace_length)), 65536))). + let pow900 = pow32 * pow899; // pow(trace_generator, (safe_div((safe_mult(2051, global_values.trace_length)), 32768))). + let pow901 = pow32 * pow900; // pow(trace_generator, (safe_div((safe_mult(4103, global_values.trace_length)), 65536))). + let pow902 = pow32 * pow901; // pow(trace_generator, (safe_div((safe_mult(513, global_values.trace_length)), 8192))). + let pow903 = pow32 * pow902; // pow(trace_generator, (safe_div((safe_mult(4105, global_values.trace_length)), 65536))). + let pow904 = pow32 * pow903; // pow(trace_generator, (safe_div((safe_mult(2053, global_values.trace_length)), 32768))). + let pow905 = pow32 * pow904; // pow(trace_generator, (safe_div((safe_mult(4107, global_values.trace_length)), 65536))). + let pow906 = pow32 * pow905; // pow(trace_generator, (safe_div((safe_mult(1027, global_values.trace_length)), 16384))). + let pow907 = pow32 * pow906; // pow(trace_generator, (safe_div((safe_mult(4109, global_values.trace_length)), 65536))). + let pow908 = pow32 * pow907; // pow(trace_generator, (safe_div((safe_mult(2055, global_values.trace_length)), 32768))). + let pow909 = pow32 * pow908; // pow(trace_generator, (safe_div((safe_mult(4111, global_values.trace_length)), 65536))). + let pow910 = pow32 * pow909; // pow(trace_generator, (safe_div((safe_mult(257, global_values.trace_length)), 4096))). + let pow911 = pow32 * pow910; // pow(trace_generator, (safe_div((safe_mult(4113, global_values.trace_length)), 65536))). + let pow912 = pow32 * pow911; // pow(trace_generator, (safe_div((safe_mult(2057, global_values.trace_length)), 32768))). + let pow913 = pow32 * pow912; // pow(trace_generator, (safe_div((safe_mult(4115, global_values.trace_length)), 65536))). + let pow914 = pow32 * pow913; // pow(trace_generator, (safe_div((safe_mult(1029, global_values.trace_length)), 16384))). + let pow915 = pow32 * pow914; // pow(trace_generator, (safe_div((safe_mult(4117, global_values.trace_length)), 65536))). + let pow916 = pow32 * pow915; // pow(trace_generator, (safe_div((safe_mult(2059, global_values.trace_length)), 32768))). + let pow917 = pow32 * pow916; // pow(trace_generator, (safe_div((safe_mult(4119, global_values.trace_length)), 65536))). + let pow918 = pow79 * pow917; // pow(trace_generator, (safe_div((safe_mult(65, global_values.trace_length)), 1024))). + let pow919 = pow100 * pow918; // pow(trace_generator, (safe_div((safe_mult(33, global_values.trace_length)), 512))). + let pow920 = pow100 * pow919; // pow(trace_generator, (safe_div((safe_mult(67, global_values.trace_length)), 1024))). + let pow921 = pow100 * pow920; // pow(trace_generator, (safe_div((safe_mult(17, global_values.trace_length)), 256))). + let pow922 = pow100 * pow921; // pow(trace_generator, (safe_div((safe_mult(69, global_values.trace_length)), 1024))). + let pow923 = pow100 * pow922; // pow(trace_generator, (safe_div((safe_mult(35, global_values.trace_length)), 512))). + let pow924 = pow100 * pow923; // pow(trace_generator, (safe_div((safe_mult(71, global_values.trace_length)), 1024))). + let pow925 = pow100 * pow924; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 128))). + let pow926 = pow100 * pow925; // pow(trace_generator, (safe_div((safe_mult(73, global_values.trace_length)), 1024))). + let pow927 = pow100 * pow926; // pow(trace_generator, (safe_div((safe_mult(37, global_values.trace_length)), 512))). + let pow928 = pow100 * pow927; // pow(trace_generator, (safe_div((safe_mult(75, global_values.trace_length)), 1024))). + let pow929 = pow100 * pow928; // pow(trace_generator, (safe_div((safe_mult(19, global_values.trace_length)), 256))). + let pow930 = pow100 * pow929; // pow(trace_generator, (safe_div((safe_mult(77, global_values.trace_length)), 1024))). + let pow931 = pow100 * pow930; // pow(trace_generator, (safe_div((safe_mult(39, global_values.trace_length)), 512))). + let pow932 = pow100 * pow931; // pow(trace_generator, (safe_div((safe_mult(79, global_values.trace_length)), 1024))). + let pow933 = pow100 * pow932; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 64))). + let pow934 = pow32 * pow933; // pow(trace_generator, (safe_div((safe_mult(5121, global_values.trace_length)), 65536))). + let pow935 = pow32 * pow934; // pow(trace_generator, (safe_div((safe_mult(2561, global_values.trace_length)), 32768))). + let pow936 = pow32 * pow935; // pow(trace_generator, (safe_div((safe_mult(5123, global_values.trace_length)), 65536))). + let pow937 = pow32 * pow936; // pow(trace_generator, (safe_div((safe_mult(1281, global_values.trace_length)), 16384))). + let pow938 = pow32 * pow937; // pow(trace_generator, (safe_div((safe_mult(5125, global_values.trace_length)), 65536))). + let pow939 = pow32 * pow938; // pow(trace_generator, (safe_div((safe_mult(2563, global_values.trace_length)), 32768))). + let pow940 = pow32 * pow939; // pow(trace_generator, (safe_div((safe_mult(5127, global_values.trace_length)), 65536))). + let pow941 = pow32 * pow940; // pow(trace_generator, (safe_div((safe_mult(641, global_values.trace_length)), 8192))). + let pow942 = pow32 * pow941; // pow(trace_generator, (safe_div((safe_mult(5129, global_values.trace_length)), 65536))). + let pow943 = pow32 * pow942; // pow(trace_generator, (safe_div((safe_mult(2565, global_values.trace_length)), 32768))). + let pow944 = pow32 * pow943; // pow(trace_generator, (safe_div((safe_mult(5131, global_values.trace_length)), 65536))). + let pow945 = pow32 * pow944; // pow(trace_generator, (safe_div((safe_mult(1283, global_values.trace_length)), 16384))). + let pow946 = pow32 * pow945; // pow(trace_generator, (safe_div((safe_mult(5133, global_values.trace_length)), 65536))). + let pow947 = pow32 * pow946; // pow(trace_generator, (safe_div((safe_mult(2567, global_values.trace_length)), 32768))). + let pow948 = pow32 * pow947; // pow(trace_generator, (safe_div((safe_mult(5135, global_values.trace_length)), 65536))). + let pow949 = pow32 * pow948; // pow(trace_generator, (safe_div((safe_mult(321, global_values.trace_length)), 4096))). + let pow950 = pow32 * pow949; // pow(trace_generator, (safe_div((safe_mult(5137, global_values.trace_length)), 65536))). + let pow951 = pow32 * pow950; // pow(trace_generator, (safe_div((safe_mult(2569, global_values.trace_length)), 32768))). + let pow952 = pow32 * pow951; // pow(trace_generator, (safe_div((safe_mult(5139, global_values.trace_length)), 65536))). + let pow953 = pow32 * pow952; // pow(trace_generator, (safe_div((safe_mult(1285, global_values.trace_length)), 16384))). + let pow954 = pow32 * pow953; // pow(trace_generator, (safe_div((safe_mult(5141, global_values.trace_length)), 65536))). + let pow955 = pow32 * pow954; // pow(trace_generator, (safe_div((safe_mult(2571, global_values.trace_length)), 32768))). + let pow956 = pow32 * pow955; // pow(trace_generator, (safe_div((safe_mult(5143, global_values.trace_length)), 65536))). + let pow957 = pow79 * pow956; // pow(trace_generator, (safe_div((safe_mult(81, global_values.trace_length)), 1024))). + let pow958 = pow100 * pow957; // pow(trace_generator, (safe_div((safe_mult(41, global_values.trace_length)), 512))). + let pow959 = pow100 * pow958; // pow(trace_generator, (safe_div((safe_mult(83, global_values.trace_length)), 1024))). + let pow960 = pow100 * pow959; // pow(trace_generator, (safe_div((safe_mult(21, global_values.trace_length)), 256))). + let pow961 = pow100 * pow960; // pow(trace_generator, (safe_div((safe_mult(85, global_values.trace_length)), 1024))). + let pow962 = pow100 * pow961; // pow(trace_generator, (safe_div((safe_mult(43, global_values.trace_length)), 512))). + let pow963 = pow100 * pow962; // pow(trace_generator, (safe_div((safe_mult(87, global_values.trace_length)), 1024))). + let pow964 = pow580 * pow963; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 32))). + let pow965 = pow32 * pow964; // pow(trace_generator, (safe_div((safe_mult(6145, global_values.trace_length)), 65536))). + let pow966 = pow32 * pow965; // pow(trace_generator, (safe_div((safe_mult(3073, global_values.trace_length)), 32768))). + let pow967 = pow32 * pow966; // pow(trace_generator, (safe_div((safe_mult(6147, global_values.trace_length)), 65536))). + let pow968 = pow32 * pow967; // pow(trace_generator, (safe_div((safe_mult(1537, global_values.trace_length)), 16384))). + let pow969 = pow32 * pow968; // pow(trace_generator, (safe_div((safe_mult(6149, global_values.trace_length)), 65536))). + let pow970 = pow32 * pow969; // pow(trace_generator, (safe_div((safe_mult(3075, global_values.trace_length)), 32768))). + let pow971 = pow32 * pow970; // pow(trace_generator, (safe_div((safe_mult(6151, global_values.trace_length)), 65536))). + let pow972 = pow32 * pow971; // pow(trace_generator, (safe_div((safe_mult(769, global_values.trace_length)), 8192))). + let pow973 = pow32 * pow972; // pow(trace_generator, (safe_div((safe_mult(6153, global_values.trace_length)), 65536))). + let pow974 = pow32 * pow973; // pow(trace_generator, (safe_div((safe_mult(3077, global_values.trace_length)), 32768))). + let pow975 = pow32 * pow974; // pow(trace_generator, (safe_div((safe_mult(6155, global_values.trace_length)), 65536))). + let pow976 = pow32 * pow975; // pow(trace_generator, (safe_div((safe_mult(1539, global_values.trace_length)), 16384))). + let pow977 = pow32 * pow976; // pow(trace_generator, (safe_div((safe_mult(6157, global_values.trace_length)), 65536))). + let pow978 = pow32 * pow977; // pow(trace_generator, (safe_div((safe_mult(3079, global_values.trace_length)), 32768))). + let pow979 = pow32 * pow978; // pow(trace_generator, (safe_div((safe_mult(6159, global_values.trace_length)), 65536))). + let pow980 = pow32 * pow979; // pow(trace_generator, (safe_div((safe_mult(385, global_values.trace_length)), 4096))). + let pow981 = pow32 * pow980; // pow(trace_generator, (safe_div((safe_mult(6161, global_values.trace_length)), 65536))). + let pow982 = pow32 * pow981; // pow(trace_generator, (safe_div((safe_mult(3081, global_values.trace_length)), 32768))). + let pow983 = pow32 * pow982; // pow(trace_generator, (safe_div((safe_mult(6163, global_values.trace_length)), 65536))). + let pow984 = pow32 * pow983; // pow(trace_generator, (safe_div((safe_mult(1541, global_values.trace_length)), 16384))). + let pow985 = pow32 * pow984; // pow(trace_generator, (safe_div((safe_mult(6165, global_values.trace_length)), 65536))). + let pow986 = pow32 * pow985; // pow(trace_generator, (safe_div((safe_mult(3083, global_values.trace_length)), 32768))). + let pow987 = pow32 * pow986; // pow(trace_generator, (safe_div((safe_mult(6167, global_values.trace_length)), 65536))). + let pow988 = pow793 * pow964; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 64))). + let pow989 = pow32 * pow988; // pow(trace_generator, (safe_div((safe_mult(7169, global_values.trace_length)), 65536))). + let pow990 = pow32 * pow989; // pow(trace_generator, (safe_div((safe_mult(3585, global_values.trace_length)), 32768))). + let pow991 = pow32 * pow990; // pow(trace_generator, (safe_div((safe_mult(7171, global_values.trace_length)), 65536))). + let pow992 = pow32 * pow991; // pow(trace_generator, (safe_div((safe_mult(1793, global_values.trace_length)), 16384))). + let pow993 = pow32 * pow992; // pow(trace_generator, (safe_div((safe_mult(7173, global_values.trace_length)), 65536))). + let pow994 = pow32 * pow993; // pow(trace_generator, (safe_div((safe_mult(3587, global_values.trace_length)), 32768))). + let pow995 = pow32 * pow994; // pow(trace_generator, (safe_div((safe_mult(7175, global_values.trace_length)), 65536))). + let pow996 = pow32 * pow995; // pow(trace_generator, (safe_div((safe_mult(897, global_values.trace_length)), 8192))). + let pow997 = pow32 * pow996; // pow(trace_generator, (safe_div((safe_mult(7177, global_values.trace_length)), 65536))). + let pow998 = pow32 * pow997; // pow(trace_generator, (safe_div((safe_mult(3589, global_values.trace_length)), 32768))). + let pow999 = pow32 * pow998; // pow(trace_generator, (safe_div((safe_mult(7179, global_values.trace_length)), 65536))). + let pow1000 = pow32 * pow999; // pow(trace_generator, (safe_div((safe_mult(1795, global_values.trace_length)), 16384))). + let pow1001 = pow32 * pow1000; // pow(trace_generator, (safe_div((safe_mult(7181, global_values.trace_length)), 65536))). + let pow1002 = pow32 * pow1001; // pow(trace_generator, (safe_div((safe_mult(3591, global_values.trace_length)), 32768))). + let pow1003 = pow32 * pow1002; // pow(trace_generator, (safe_div((safe_mult(7183, global_values.trace_length)), 65536))). + let pow1004 = pow32 * pow1003; // pow(trace_generator, (safe_div((safe_mult(449, global_values.trace_length)), 4096))). + let pow1005 = pow32 * pow1004; // pow(trace_generator, (safe_div((safe_mult(7185, global_values.trace_length)), 65536))). + let pow1006 = pow32 * pow1005; // pow(trace_generator, (safe_div((safe_mult(3593, global_values.trace_length)), 32768))). + let pow1007 = pow32 * pow1006; // pow(trace_generator, (safe_div((safe_mult(7187, global_values.trace_length)), 65536))). + let pow1008 = pow32 * pow1007; // pow(trace_generator, (safe_div((safe_mult(1797, global_values.trace_length)), 16384))). + let pow1009 = pow32 * pow1008; // pow(trace_generator, (safe_div((safe_mult(7189, global_values.trace_length)), 65536))). + let pow1010 = pow32 * pow1009; // pow(trace_generator, (safe_div((safe_mult(3595, global_values.trace_length)), 32768))). + let pow1011 = pow32 * pow1010; // pow(trace_generator, (safe_div((safe_mult(7191, global_values.trace_length)), 65536))). + let pow1012 = pow793 * pow988; // pow(trace_generator, (safe_div(global_values.trace_length, 8))). + let pow1013 = pow32 * pow1012; // pow(trace_generator, (safe_div((safe_mult(8193, global_values.trace_length)), 65536))). + let pow1014 = pow32 * pow1013; // pow(trace_generator, (safe_div((safe_mult(4097, global_values.trace_length)), 32768))). + let pow1015 = pow32 * pow1014; // pow(trace_generator, (safe_div((safe_mult(8195, global_values.trace_length)), 65536))). + let pow1016 = pow32 * pow1015; // pow(trace_generator, (safe_div((safe_mult(2049, global_values.trace_length)), 16384))). + let pow1017 = pow32 * pow1016; // pow(trace_generator, (safe_div((safe_mult(8197, global_values.trace_length)), 65536))). + let pow1018 = pow32 * pow1017; // pow(trace_generator, (safe_div((safe_mult(4099, global_values.trace_length)), 32768))). + let pow1019 = pow32 * pow1018; // pow(trace_generator, (safe_div((safe_mult(8199, global_values.trace_length)), 65536))). + let pow1020 = pow32 * pow1019; // pow(trace_generator, (safe_div((safe_mult(1025, global_values.trace_length)), 8192))). + let pow1021 = pow32 * pow1020; // pow(trace_generator, (safe_div((safe_mult(8201, global_values.trace_length)), 65536))). + let pow1022 = pow32 * pow1021; // pow(trace_generator, (safe_div((safe_mult(4101, global_values.trace_length)), 32768))). + let pow1023 = pow32 * pow1022; // pow(trace_generator, (safe_div((safe_mult(8203, global_values.trace_length)), 65536))). + let pow1024 = pow32 * pow1023; // pow(trace_generator, (safe_div((safe_mult(2051, global_values.trace_length)), 16384))). + let pow1025 = pow32 * pow1024; // pow(trace_generator, (safe_div((safe_mult(8205, global_values.trace_length)), 65536))). + let pow1026 = pow32 * pow1025; // pow(trace_generator, (safe_div((safe_mult(4103, global_values.trace_length)), 32768))). + let pow1027 = pow32 * pow1026; // pow(trace_generator, (safe_div((safe_mult(8207, global_values.trace_length)), 65536))). + let pow1028 = pow32 * pow1027; // pow(trace_generator, (safe_div((safe_mult(513, global_values.trace_length)), 4096))). + let pow1029 = pow32 * pow1028; // pow(trace_generator, (safe_div((safe_mult(8209, global_values.trace_length)), 65536))). + let pow1030 = pow32 * pow1029; // pow(trace_generator, (safe_div((safe_mult(4105, global_values.trace_length)), 32768))). + let pow1031 = pow32 * pow1030; // pow(trace_generator, (safe_div((safe_mult(8211, global_values.trace_length)), 65536))). + let pow1032 = pow32 * pow1031; // pow(trace_generator, (safe_div((safe_mult(2053, global_values.trace_length)), 16384))). + let pow1033 = pow32 * pow1032; // pow(trace_generator, (safe_div((safe_mult(8213, global_values.trace_length)), 65536))). + let pow1034 = pow32 * pow1033; // pow(trace_generator, (safe_div((safe_mult(4107, global_values.trace_length)), 32768))). + let pow1035 = pow32 * pow1034; // pow(trace_generator, (safe_div((safe_mult(8215, global_values.trace_length)), 65536))). + let pow1036 = pow793 * pow1012; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 64))). + let pow1037 = pow32 * pow1036; // pow(trace_generator, (safe_div((safe_mult(9217, global_values.trace_length)), 65536))). + let pow1038 = pow32 * pow1037; // pow(trace_generator, (safe_div((safe_mult(4609, global_values.trace_length)), 32768))). + let pow1039 = pow32 * pow1038; // pow(trace_generator, (safe_div((safe_mult(9219, global_values.trace_length)), 65536))). + let pow1040 = pow32 * pow1039; // pow(trace_generator, (safe_div((safe_mult(2305, global_values.trace_length)), 16384))). + let pow1041 = pow32 * pow1040; // pow(trace_generator, (safe_div((safe_mult(9221, global_values.trace_length)), 65536))). + let pow1042 = pow32 * pow1041; // pow(trace_generator, (safe_div((safe_mult(4611, global_values.trace_length)), 32768))). + let pow1043 = pow32 * pow1042; // pow(trace_generator, (safe_div((safe_mult(9223, global_values.trace_length)), 65536))). + let pow1044 = pow32 * pow1043; // pow(trace_generator, (safe_div((safe_mult(1153, global_values.trace_length)), 8192))). + let pow1045 = pow32 * pow1044; // pow(trace_generator, (safe_div((safe_mult(9225, global_values.trace_length)), 65536))). + let pow1046 = pow32 * pow1045; // pow(trace_generator, (safe_div((safe_mult(4613, global_values.trace_length)), 32768))). + let pow1047 = pow32 * pow1046; // pow(trace_generator, (safe_div((safe_mult(9227, global_values.trace_length)), 65536))). + let pow1048 = pow32 * pow1047; // pow(trace_generator, (safe_div((safe_mult(2307, global_values.trace_length)), 16384))). + let pow1049 = pow32 * pow1048; // pow(trace_generator, (safe_div((safe_mult(9229, global_values.trace_length)), 65536))). + let pow1050 = pow32 * pow1049; // pow(trace_generator, (safe_div((safe_mult(4615, global_values.trace_length)), 32768))). + let pow1051 = pow32 * pow1050; // pow(trace_generator, (safe_div((safe_mult(9231, global_values.trace_length)), 65536))). + let pow1052 = pow32 * pow1051; // pow(trace_generator, (safe_div((safe_mult(577, global_values.trace_length)), 4096))). + let pow1053 = pow32 * pow1052; // pow(trace_generator, (safe_div((safe_mult(9233, global_values.trace_length)), 65536))). + let pow1054 = pow32 * pow1053; // pow(trace_generator, (safe_div((safe_mult(4617, global_values.trace_length)), 32768))). + let pow1055 = pow32 * pow1054; // pow(trace_generator, (safe_div((safe_mult(9235, global_values.trace_length)), 65536))). + let pow1056 = pow32 * pow1055; // pow(trace_generator, (safe_div((safe_mult(2309, global_values.trace_length)), 16384))). + let pow1057 = pow32 * pow1056; // pow(trace_generator, (safe_div((safe_mult(9237, global_values.trace_length)), 65536))). + let pow1058 = pow32 * pow1057; // pow(trace_generator, (safe_div((safe_mult(4619, global_values.trace_length)), 32768))). + let pow1059 = pow32 * pow1058; // pow(trace_generator, (safe_div((safe_mult(9239, global_values.trace_length)), 65536))). + let pow1060 = pow793 * pow1036; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 32))). + let pow1061 = pow32 * pow1060; // pow(trace_generator, (safe_div((safe_mult(10241, global_values.trace_length)), 65536))). + let pow1062 = pow32 * pow1061; // pow(trace_generator, (safe_div((safe_mult(5121, global_values.trace_length)), 32768))). + let pow1063 = pow32 * pow1062; // pow(trace_generator, (safe_div((safe_mult(10243, global_values.trace_length)), 65536))). + let pow1064 = pow32 * pow1063; // pow(trace_generator, (safe_div((safe_mult(2561, global_values.trace_length)), 16384))). + let pow1065 = pow32 * pow1064; // pow(trace_generator, (safe_div((safe_mult(10245, global_values.trace_length)), 65536))). + let pow1066 = pow32 * pow1065; // pow(trace_generator, (safe_div((safe_mult(5123, global_values.trace_length)), 32768))). + let pow1067 = pow32 * pow1066; // pow(trace_generator, (safe_div((safe_mult(10247, global_values.trace_length)), 65536))). + let pow1068 = pow32 * pow1067; // pow(trace_generator, (safe_div((safe_mult(1281, global_values.trace_length)), 8192))). + let pow1069 = pow32 * pow1068; // pow(trace_generator, (safe_div((safe_mult(10249, global_values.trace_length)), 65536))). + let pow1070 = pow32 * pow1069; // pow(trace_generator, (safe_div((safe_mult(5125, global_values.trace_length)), 32768))). + let pow1071 = pow32 * pow1070; // pow(trace_generator, (safe_div((safe_mult(10251, global_values.trace_length)), 65536))). + let pow1072 = pow32 * pow1071; // pow(trace_generator, (safe_div((safe_mult(2563, global_values.trace_length)), 16384))). + let pow1073 = pow32 * pow1072; // pow(trace_generator, (safe_div((safe_mult(10253, global_values.trace_length)), 65536))). + let pow1074 = pow32 * pow1073; // pow(trace_generator, (safe_div((safe_mult(5127, global_values.trace_length)), 32768))). + let pow1075 = pow32 * pow1074; // pow(trace_generator, (safe_div((safe_mult(10255, global_values.trace_length)), 65536))). + let pow1076 = pow32 * pow1075; // pow(trace_generator, (safe_div((safe_mult(641, global_values.trace_length)), 4096))). + let pow1077 = pow32 * pow1076; // pow(trace_generator, (safe_div((safe_mult(10257, global_values.trace_length)), 65536))). + let pow1078 = pow32 * pow1077; // pow(trace_generator, (safe_div((safe_mult(5129, global_values.trace_length)), 32768))). + let pow1079 = pow32 * pow1078; // pow(trace_generator, (safe_div((safe_mult(10259, global_values.trace_length)), 65536))). + let pow1080 = pow32 * pow1079; // pow(trace_generator, (safe_div((safe_mult(2565, global_values.trace_length)), 16384))). + let pow1081 = pow32 * pow1080; // pow(trace_generator, (safe_div((safe_mult(10261, global_values.trace_length)), 65536))). + let pow1082 = pow32 * pow1081; // pow(trace_generator, (safe_div((safe_mult(5131, global_values.trace_length)), 32768))). + let pow1083 = pow32 * pow1082; // pow(trace_generator, (safe_div((safe_mult(10263, global_values.trace_length)), 65536))). + let pow1084 = pow79 * pow1083; // pow(trace_generator, (safe_div((safe_mult(161, global_values.trace_length)), 1024))). + let pow1085 = pow100 * pow1084; // pow(trace_generator, (safe_div((safe_mult(81, global_values.trace_length)), 512))). + let pow1086 = pow100 * pow1085; // pow(trace_generator, (safe_div((safe_mult(163, global_values.trace_length)), 1024))). + let pow1087 = pow100 * pow1086; // pow(trace_generator, (safe_div((safe_mult(41, global_values.trace_length)), 256))). + let pow1088 = pow100 * pow1087; // pow(trace_generator, (safe_div((safe_mult(165, global_values.trace_length)), 1024))). + let pow1089 = pow100 * pow1088; // pow(trace_generator, (safe_div((safe_mult(83, global_values.trace_length)), 512))). + let pow1090 = pow100 * pow1089; // pow(trace_generator, (safe_div((safe_mult(167, global_values.trace_length)), 1024))). + let pow1091 = pow100 * pow1090; // pow(trace_generator, (safe_div((safe_mult(21, global_values.trace_length)), 128))). + let pow1092 = pow100 * pow1091; // pow(trace_generator, (safe_div((safe_mult(169, global_values.trace_length)), 1024))). + let pow1093 = pow100 * pow1092; // pow(trace_generator, (safe_div((safe_mult(85, global_values.trace_length)), 512))). + let pow1094 = pow100 * pow1093; // pow(trace_generator, (safe_div((safe_mult(171, global_values.trace_length)), 1024))). + let pow1095 = pow100 * pow1094; // pow(trace_generator, (safe_div((safe_mult(43, global_values.trace_length)), 256))). + let pow1096 = pow100 * pow1095; // pow(trace_generator, (safe_div((safe_mult(173, global_values.trace_length)), 1024))). + let pow1097 = pow100 * pow1096; // pow(trace_generator, (safe_div((safe_mult(87, global_values.trace_length)), 512))). + let pow1098 = pow100 * pow1097; // pow(trace_generator, (safe_div((safe_mult(175, global_values.trace_length)), 1024))). + let pow1099 = pow100 * pow1098; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 64))). + let pow1100 = pow32 * pow1099; // pow(trace_generator, (safe_div((safe_mult(11265, global_values.trace_length)), 65536))). + let pow1101 = pow32 * pow1100; // pow(trace_generator, (safe_div((safe_mult(5633, global_values.trace_length)), 32768))). + let pow1102 = pow32 * pow1101; // pow(trace_generator, (safe_div((safe_mult(11267, global_values.trace_length)), 65536))). + let pow1103 = pow32 * pow1102; // pow(trace_generator, (safe_div((safe_mult(2817, global_values.trace_length)), 16384))). + let pow1104 = pow32 * pow1103; // pow(trace_generator, (safe_div((safe_mult(11269, global_values.trace_length)), 65536))). + let pow1105 = pow32 * pow1104; // pow(trace_generator, (safe_div((safe_mult(5635, global_values.trace_length)), 32768))). + let pow1106 = pow32 * pow1105; // pow(trace_generator, (safe_div((safe_mult(11271, global_values.trace_length)), 65536))). + let pow1107 = pow32 * pow1106; // pow(trace_generator, (safe_div((safe_mult(1409, global_values.trace_length)), 8192))). + let pow1108 = pow32 * pow1107; // pow(trace_generator, (safe_div((safe_mult(11273, global_values.trace_length)), 65536))). + let pow1109 = pow32 * pow1108; // pow(trace_generator, (safe_div((safe_mult(5637, global_values.trace_length)), 32768))). + let pow1110 = pow32 * pow1109; // pow(trace_generator, (safe_div((safe_mult(11275, global_values.trace_length)), 65536))). + let pow1111 = pow32 * pow1110; // pow(trace_generator, (safe_div((safe_mult(2819, global_values.trace_length)), 16384))). + let pow1112 = pow32 * pow1111; // pow(trace_generator, (safe_div((safe_mult(11277, global_values.trace_length)), 65536))). + let pow1113 = pow32 * pow1112; // pow(trace_generator, (safe_div((safe_mult(5639, global_values.trace_length)), 32768))). + let pow1114 = pow32 * pow1113; // pow(trace_generator, (safe_div((safe_mult(11279, global_values.trace_length)), 65536))). + let pow1115 = pow32 * pow1114; // pow(trace_generator, (safe_div((safe_mult(705, global_values.trace_length)), 4096))). + let pow1116 = pow32 * pow1115; // pow(trace_generator, (safe_div((safe_mult(11281, global_values.trace_length)), 65536))). + let pow1117 = pow32 * pow1116; // pow(trace_generator, (safe_div((safe_mult(5641, global_values.trace_length)), 32768))). + let pow1118 = pow32 * pow1117; // pow(trace_generator, (safe_div((safe_mult(11283, global_values.trace_length)), 65536))). + let pow1119 = pow32 * pow1118; // pow(trace_generator, (safe_div((safe_mult(2821, global_values.trace_length)), 16384))). + let pow1120 = pow32 * pow1119; // pow(trace_generator, (safe_div((safe_mult(11285, global_values.trace_length)), 65536))). + let pow1121 = pow32 * pow1120; // pow(trace_generator, (safe_div((safe_mult(5643, global_values.trace_length)), 32768))). + let pow1122 = pow32 * pow1121; // pow(trace_generator, (safe_div((safe_mult(11287, global_values.trace_length)), 65536))). + let pow1123 = pow79 * pow1122; // pow(trace_generator, (safe_div((safe_mult(177, global_values.trace_length)), 1024))). + let pow1124 = pow100 * pow1123; // pow(trace_generator, (safe_div((safe_mult(89, global_values.trace_length)), 512))). + let pow1125 = pow100 * pow1124; // pow(trace_generator, (safe_div((safe_mult(179, global_values.trace_length)), 1024))). + let pow1126 = pow100 * pow1125; // pow(trace_generator, (safe_div((safe_mult(45, global_values.trace_length)), 256))). + let pow1127 = pow100 * pow1126; // pow(trace_generator, (safe_div((safe_mult(181, global_values.trace_length)), 1024))). + let pow1128 = pow100 * pow1127; // pow(trace_generator, (safe_div((safe_mult(91, global_values.trace_length)), 512))). + let pow1129 = pow100 * pow1128; // pow(trace_generator, (safe_div((safe_mult(183, global_values.trace_length)), 1024))). + let pow1130 = pow580 * pow1129; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 16))). + let pow1131 = pow32 * pow1130; // pow(trace_generator, (safe_div((safe_mult(12289, global_values.trace_length)), 65536))). + let pow1132 = pow32 * pow1131; // pow(trace_generator, (safe_div((safe_mult(6145, global_values.trace_length)), 32768))). + let pow1133 = pow32 * pow1132; // pow(trace_generator, (safe_div((safe_mult(12291, global_values.trace_length)), 65536))). + let pow1134 = pow32 * pow1133; // pow(trace_generator, (safe_div((safe_mult(3073, global_values.trace_length)), 16384))). + let pow1135 = pow32 * pow1134; // pow(trace_generator, (safe_div((safe_mult(12293, global_values.trace_length)), 65536))). + let pow1136 = pow32 * pow1135; // pow(trace_generator, (safe_div((safe_mult(6147, global_values.trace_length)), 32768))). + let pow1137 = pow32 * pow1136; // pow(trace_generator, (safe_div((safe_mult(12295, global_values.trace_length)), 65536))). + let pow1138 = pow32 * pow1137; // pow(trace_generator, (safe_div((safe_mult(1537, global_values.trace_length)), 8192))). + let pow1139 = pow32 * pow1138; // pow(trace_generator, (safe_div((safe_mult(12297, global_values.trace_length)), 65536))). + let pow1140 = pow32 * pow1139; // pow(trace_generator, (safe_div((safe_mult(6149, global_values.trace_length)), 32768))). + let pow1141 = pow32 * pow1140; // pow(trace_generator, (safe_div((safe_mult(12299, global_values.trace_length)), 65536))). + let pow1142 = pow32 * pow1141; // pow(trace_generator, (safe_div((safe_mult(3075, global_values.trace_length)), 16384))). + let pow1143 = pow32 * pow1142; // pow(trace_generator, (safe_div((safe_mult(12301, global_values.trace_length)), 65536))). + let pow1144 = pow32 * pow1143; // pow(trace_generator, (safe_div((safe_mult(6151, global_values.trace_length)), 32768))). + let pow1145 = pow32 * pow1144; // pow(trace_generator, (safe_div((safe_mult(12303, global_values.trace_length)), 65536))). + let pow1146 = pow32 * pow1145; // pow(trace_generator, (safe_div((safe_mult(769, global_values.trace_length)), 4096))). + let pow1147 = pow32 * pow1146; // pow(trace_generator, (safe_div((safe_mult(12305, global_values.trace_length)), 65536))). + let pow1148 = pow32 * pow1147; // pow(trace_generator, (safe_div((safe_mult(6153, global_values.trace_length)), 32768))). + let pow1149 = pow32 * pow1148; // pow(trace_generator, (safe_div((safe_mult(12307, global_values.trace_length)), 65536))). + let pow1150 = pow32 * pow1149; // pow(trace_generator, (safe_div((safe_mult(3077, global_values.trace_length)), 16384))). + let pow1151 = pow32 * pow1150; // pow(trace_generator, (safe_div((safe_mult(12309, global_values.trace_length)), 65536))). + let pow1152 = pow32 * pow1151; // pow(trace_generator, (safe_div((safe_mult(6155, global_values.trace_length)), 32768))). + let pow1153 = pow32 * pow1152; // pow(trace_generator, (safe_div((safe_mult(12311, global_values.trace_length)), 65536))). + let pow1154 = pow79 * pow1153; // pow(trace_generator, (safe_div((safe_mult(193, global_values.trace_length)), 1024))). + let pow1155 = pow100 * pow1154; // pow(trace_generator, (safe_div((safe_mult(97, global_values.trace_length)), 512))). + let pow1156 = pow100 * pow1155; // pow(trace_generator, (safe_div((safe_mult(195, global_values.trace_length)), 1024))). + let pow1157 = pow100 * pow1156; // pow(trace_generator, (safe_div((safe_mult(49, global_values.trace_length)), 256))). + let pow1158 = pow100 * pow1157; // pow(trace_generator, (safe_div((safe_mult(197, global_values.trace_length)), 1024))). + let pow1159 = pow100 * pow1158; // pow(trace_generator, (safe_div((safe_mult(99, global_values.trace_length)), 512))). + let pow1160 = pow100 * pow1159; // pow(trace_generator, (safe_div((safe_mult(199, global_values.trace_length)), 1024))). + let pow1161 = pow100 * pow1160; // pow(trace_generator, (safe_div((safe_mult(25, global_values.trace_length)), 128))). + let pow1162 = pow100 * pow1161; // pow(trace_generator, (safe_div((safe_mult(201, global_values.trace_length)), 1024))). + let pow1163 = pow100 * pow1162; // pow(trace_generator, (safe_div((safe_mult(101, global_values.trace_length)), 512))). + let pow1164 = pow100 * pow1163; // pow(trace_generator, (safe_div((safe_mult(203, global_values.trace_length)), 1024))). + let pow1165 = pow100 * pow1164; // pow(trace_generator, (safe_div((safe_mult(51, global_values.trace_length)), 256))). + let pow1166 = pow100 * pow1165; // pow(trace_generator, (safe_div((safe_mult(205, global_values.trace_length)), 1024))). + let pow1167 = pow100 * pow1166; // pow(trace_generator, (safe_div((safe_mult(103, global_values.trace_length)), 512))). + let pow1168 = pow100 * pow1167; // pow(trace_generator, (safe_div((safe_mult(207, global_values.trace_length)), 1024))). + let pow1169 = pow100 * pow1168; // pow(trace_generator, (safe_div((safe_mult(13, global_values.trace_length)), 64))). + let pow1170 = pow32 * pow1169; // pow(trace_generator, (safe_div((safe_mult(13313, global_values.trace_length)), 65536))). + let pow1171 = pow32 * pow1170; // pow(trace_generator, (safe_div((safe_mult(6657, global_values.trace_length)), 32768))). + let pow1172 = pow32 * pow1171; // pow(trace_generator, (safe_div((safe_mult(13315, global_values.trace_length)), 65536))). + let pow1173 = pow32 * pow1172; // pow(trace_generator, (safe_div((safe_mult(3329, global_values.trace_length)), 16384))). + let pow1174 = pow32 * pow1173; // pow(trace_generator, (safe_div((safe_mult(13317, global_values.trace_length)), 65536))). + let pow1175 = pow32 * pow1174; // pow(trace_generator, (safe_div((safe_mult(6659, global_values.trace_length)), 32768))). + let pow1176 = pow32 * pow1175; // pow(trace_generator, (safe_div((safe_mult(13319, global_values.trace_length)), 65536))). + let pow1177 = pow32 * pow1176; // pow(trace_generator, (safe_div((safe_mult(1665, global_values.trace_length)), 8192))). + let pow1178 = pow32 * pow1177; // pow(trace_generator, (safe_div((safe_mult(13321, global_values.trace_length)), 65536))). + let pow1179 = pow32 * pow1178; // pow(trace_generator, (safe_div((safe_mult(6661, global_values.trace_length)), 32768))). + let pow1180 = pow32 * pow1179; // pow(trace_generator, (safe_div((safe_mult(13323, global_values.trace_length)), 65536))). + let pow1181 = pow32 * pow1180; // pow(trace_generator, (safe_div((safe_mult(3331, global_values.trace_length)), 16384))). + let pow1182 = pow32 * pow1181; // pow(trace_generator, (safe_div((safe_mult(13325, global_values.trace_length)), 65536))). + let pow1183 = pow32 * pow1182; // pow(trace_generator, (safe_div((safe_mult(6663, global_values.trace_length)), 32768))). + let pow1184 = pow32 * pow1183; // pow(trace_generator, (safe_div((safe_mult(13327, global_values.trace_length)), 65536))). + let pow1185 = pow32 * pow1184; // pow(trace_generator, (safe_div((safe_mult(833, global_values.trace_length)), 4096))). + let pow1186 = pow32 * pow1185; // pow(trace_generator, (safe_div((safe_mult(13329, global_values.trace_length)), 65536))). + let pow1187 = pow32 * pow1186; // pow(trace_generator, (safe_div((safe_mult(6665, global_values.trace_length)), 32768))). + let pow1188 = pow32 * pow1187; // pow(trace_generator, (safe_div((safe_mult(13331, global_values.trace_length)), 65536))). + let pow1189 = pow32 * pow1188; // pow(trace_generator, (safe_div((safe_mult(3333, global_values.trace_length)), 16384))). + let pow1190 = pow32 * pow1189; // pow(trace_generator, (safe_div((safe_mult(13333, global_values.trace_length)), 65536))). + let pow1191 = pow32 * pow1190; // pow(trace_generator, (safe_div((safe_mult(6667, global_values.trace_length)), 32768))). + let pow1192 = pow32 * pow1191; // pow(trace_generator, (safe_div((safe_mult(13335, global_values.trace_length)), 65536))). + let pow1193 = pow79 * pow1192; // pow(trace_generator, (safe_div((safe_mult(209, global_values.trace_length)), 1024))). + let pow1194 = pow100 * pow1193; // pow(trace_generator, (safe_div((safe_mult(105, global_values.trace_length)), 512))). + let pow1195 = pow100 * pow1194; // pow(trace_generator, (safe_div((safe_mult(211, global_values.trace_length)), 1024))). + let pow1196 = pow100 * pow1195; // pow(trace_generator, (safe_div((safe_mult(53, global_values.trace_length)), 256))). + let pow1197 = pow100 * pow1196; // pow(trace_generator, (safe_div((safe_mult(213, global_values.trace_length)), 1024))). + let pow1198 = pow100 * pow1197; // pow(trace_generator, (safe_div((safe_mult(107, global_values.trace_length)), 512))). + let pow1199 = pow100 * pow1198; // pow(trace_generator, (safe_div((safe_mult(215, global_values.trace_length)), 1024))). + let pow1200 = pow580 * pow1199; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 32))). + let pow1201 = pow32 * pow1200; // pow(trace_generator, (safe_div((safe_mult(14337, global_values.trace_length)), 65536))). + let pow1202 = pow32 * pow1201; // pow(trace_generator, (safe_div((safe_mult(7169, global_values.trace_length)), 32768))). + let pow1203 = pow32 * pow1202; // pow(trace_generator, (safe_div((safe_mult(14339, global_values.trace_length)), 65536))). + let pow1204 = pow32 * pow1203; // pow(trace_generator, (safe_div((safe_mult(3585, global_values.trace_length)), 16384))). + let pow1205 = pow32 * pow1204; // pow(trace_generator, (safe_div((safe_mult(14341, global_values.trace_length)), 65536))). + let pow1206 = pow32 * pow1205; // pow(trace_generator, (safe_div((safe_mult(7171, global_values.trace_length)), 32768))). + let pow1207 = pow32 * pow1206; // pow(trace_generator, (safe_div((safe_mult(14343, global_values.trace_length)), 65536))). + let pow1208 = pow32 * pow1207; // pow(trace_generator, (safe_div((safe_mult(1793, global_values.trace_length)), 8192))). + let pow1209 = pow32 * pow1208; // pow(trace_generator, (safe_div((safe_mult(14345, global_values.trace_length)), 65536))). + let pow1210 = pow32 * pow1209; // pow(trace_generator, (safe_div((safe_mult(7173, global_values.trace_length)), 32768))). + let pow1211 = pow32 * pow1210; // pow(trace_generator, (safe_div((safe_mult(14347, global_values.trace_length)), 65536))). + let pow1212 = pow32 * pow1211; // pow(trace_generator, (safe_div((safe_mult(3587, global_values.trace_length)), 16384))). + let pow1213 = pow32 * pow1212; // pow(trace_generator, (safe_div((safe_mult(14349, global_values.trace_length)), 65536))). + let pow1214 = pow32 * pow1213; // pow(trace_generator, (safe_div((safe_mult(7175, global_values.trace_length)), 32768))). + let pow1215 = pow32 * pow1214; // pow(trace_generator, (safe_div((safe_mult(14351, global_values.trace_length)), 65536))). + let pow1216 = pow32 * pow1215; // pow(trace_generator, (safe_div((safe_mult(897, global_values.trace_length)), 4096))). + let pow1217 = pow32 * pow1216; // pow(trace_generator, (safe_div((safe_mult(14353, global_values.trace_length)), 65536))). + let pow1218 = pow32 * pow1217; // pow(trace_generator, (safe_div((safe_mult(7177, global_values.trace_length)), 32768))). + let pow1219 = pow32 * pow1218; // pow(trace_generator, (safe_div((safe_mult(14355, global_values.trace_length)), 65536))). + let pow1220 = pow32 * pow1219; // pow(trace_generator, (safe_div((safe_mult(3589, global_values.trace_length)), 16384))). + let pow1221 = pow32 * pow1220; // pow(trace_generator, (safe_div((safe_mult(14357, global_values.trace_length)), 65536))). + let pow1222 = pow32 * pow1221; // pow(trace_generator, (safe_div((safe_mult(7179, global_values.trace_length)), 32768))). + let pow1223 = pow32 * pow1222; // pow(trace_generator, (safe_div((safe_mult(14359, global_values.trace_length)), 65536))). + let pow1224 = pow79 * pow1223; // pow(trace_generator, (safe_div((safe_mult(225, global_values.trace_length)), 1024))). + let pow1225 = pow100 * pow1224; // pow(trace_generator, (safe_div((safe_mult(113, global_values.trace_length)), 512))). + let pow1226 = pow100 * pow1225; // pow(trace_generator, (safe_div((safe_mult(227, global_values.trace_length)), 1024))). + let pow1227 = pow100 * pow1226; // pow(trace_generator, (safe_div((safe_mult(57, global_values.trace_length)), 256))). + let pow1228 = pow100 * pow1227; // pow(trace_generator, (safe_div((safe_mult(229, global_values.trace_length)), 1024))). + let pow1229 = pow100 * pow1228; // pow(trace_generator, (safe_div((safe_mult(115, global_values.trace_length)), 512))). + let pow1230 = pow100 * pow1229; // pow(trace_generator, (safe_div((safe_mult(231, global_values.trace_length)), 1024))). + let pow1231 = pow100 * pow1230; // pow(trace_generator, (safe_div((safe_mult(29, global_values.trace_length)), 128))). + let pow1232 = pow100 * pow1231; // pow(trace_generator, (safe_div((safe_mult(233, global_values.trace_length)), 1024))). + let pow1233 = pow100 * pow1232; // pow(trace_generator, (safe_div((safe_mult(117, global_values.trace_length)), 512))). + let pow1234 = pow100 * pow1233; // pow(trace_generator, (safe_div((safe_mult(235, global_values.trace_length)), 1024))). + let pow1235 = pow100 * pow1234; // pow(trace_generator, (safe_div((safe_mult(59, global_values.trace_length)), 256))). + let pow1236 = pow100 * pow1235; // pow(trace_generator, (safe_div((safe_mult(237, global_values.trace_length)), 1024))). + let pow1237 = pow100 * pow1236; // pow(trace_generator, (safe_div((safe_mult(119, global_values.trace_length)), 512))). + let pow1238 = pow100 * pow1237; // pow(trace_generator, (safe_div((safe_mult(239, global_values.trace_length)), 1024))). + let pow1239 = pow100 * pow1238; // pow(trace_generator, (safe_div((safe_mult(15, global_values.trace_length)), 64))). + let pow1240 = pow32 * pow1239; // pow(trace_generator, (safe_div((safe_mult(15361, global_values.trace_length)), 65536))). + let pow1241 = pow32 * pow1240; // pow(trace_generator, (safe_div((safe_mult(7681, global_values.trace_length)), 32768))). + let pow1242 = pow32 * pow1241; // pow(trace_generator, (safe_div((safe_mult(15363, global_values.trace_length)), 65536))). + let pow1243 = pow32 * pow1242; // pow(trace_generator, (safe_div((safe_mult(3841, global_values.trace_length)), 16384))). + let pow1244 = pow32 * pow1243; // pow(trace_generator, (safe_div((safe_mult(15365, global_values.trace_length)), 65536))). + let pow1245 = pow32 * pow1244; // pow(trace_generator, (safe_div((safe_mult(7683, global_values.trace_length)), 32768))). + let pow1246 = pow32 * pow1245; // pow(trace_generator, (safe_div((safe_mult(15367, global_values.trace_length)), 65536))). + let pow1247 = pow32 * pow1246; // pow(trace_generator, (safe_div((safe_mult(1921, global_values.trace_length)), 8192))). + let pow1248 = pow32 * pow1247; // pow(trace_generator, (safe_div((safe_mult(15369, global_values.trace_length)), 65536))). + let pow1249 = pow32 * pow1248; // pow(trace_generator, (safe_div((safe_mult(7685, global_values.trace_length)), 32768))). + let pow1250 = pow32 * pow1249; // pow(trace_generator, (safe_div((safe_mult(15371, global_values.trace_length)), 65536))). + let pow1251 = pow32 * pow1250; // pow(trace_generator, (safe_div((safe_mult(3843, global_values.trace_length)), 16384))). + let pow1252 = pow32 * pow1251; // pow(trace_generator, (safe_div((safe_mult(15373, global_values.trace_length)), 65536))). + let pow1253 = pow32 * pow1252; // pow(trace_generator, (safe_div((safe_mult(7687, global_values.trace_length)), 32768))). + let pow1254 = pow32 * pow1253; // pow(trace_generator, (safe_div((safe_mult(15375, global_values.trace_length)), 65536))). + let pow1255 = pow32 * pow1254; // pow(trace_generator, (safe_div((safe_mult(961, global_values.trace_length)), 4096))). + let pow1256 = pow32 * pow1255; // pow(trace_generator, (safe_div((safe_mult(15377, global_values.trace_length)), 65536))). + let pow1257 = pow32 * pow1256; // pow(trace_generator, (safe_div((safe_mult(7689, global_values.trace_length)), 32768))). + let pow1258 = pow32 * pow1257; // pow(trace_generator, (safe_div((safe_mult(15379, global_values.trace_length)), 65536))). + let pow1259 = pow32 * pow1258; // pow(trace_generator, (safe_div((safe_mult(3845, global_values.trace_length)), 16384))). + let pow1260 = pow32 * pow1259; // pow(trace_generator, (safe_div((safe_mult(15381, global_values.trace_length)), 65536))). + let pow1261 = pow32 * pow1260; // pow(trace_generator, (safe_div((safe_mult(7691, global_values.trace_length)), 32768))). + let pow1262 = pow32 * pow1261; // pow(trace_generator, (safe_div((safe_mult(15383, global_values.trace_length)), 65536))). + let pow1263 = pow79 * pow1262; // pow(trace_generator, (safe_div((safe_mult(241, global_values.trace_length)), 1024))). + let pow1264 = pow100 * pow1263; // pow(trace_generator, (safe_div((safe_mult(121, global_values.trace_length)), 512))). + let pow1265 = pow100 * pow1264; // pow(trace_generator, (safe_div((safe_mult(243, global_values.trace_length)), 1024))). + let pow1266 = pow100 * pow1265; // pow(trace_generator, (safe_div((safe_mult(61, global_values.trace_length)), 256))). + let pow1267 = pow100 * pow1266; // pow(trace_generator, (safe_div((safe_mult(245, global_values.trace_length)), 1024))). + let pow1268 = pow100 * pow1267; // pow(trace_generator, (safe_div((safe_mult(123, global_values.trace_length)), 512))). + let pow1269 = pow100 * pow1268; // pow(trace_generator, (safe_div((safe_mult(247, global_values.trace_length)), 1024))). + let pow1270 = pow580 * pow1269; // pow(trace_generator, (safe_div(global_values.trace_length, 4))). + let pow1271 = pow793 * pow1270; // pow(trace_generator, (safe_div((safe_mult(17, global_values.trace_length)), 64))). + let pow1272 = pow793 * pow1271; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 32))). + let pow1273 = pow793 * pow1272; // pow(trace_generator, (safe_div((safe_mult(19, global_values.trace_length)), 64))). + let pow1274 = pow32 * pow1270; // pow(trace_generator, (safe_div((safe_mult(16385, global_values.trace_length)), 65536))). + let pow1275 = pow32 * pow1271; // pow(trace_generator, (safe_div((safe_mult(17409, global_values.trace_length)), 65536))). + let pow1276 = pow32 * pow1272; // pow(trace_generator, (safe_div((safe_mult(18433, global_values.trace_length)), 65536))). + let pow1277 = pow32 * pow1273; // pow(trace_generator, (safe_div((safe_mult(19457, global_values.trace_length)), 65536))). + let pow1278 = pow32 * pow1274; // pow(trace_generator, (safe_div((safe_mult(8193, global_values.trace_length)), 32768))). + let pow1279 = pow32 * pow1275; // pow(trace_generator, (safe_div((safe_mult(8705, global_values.trace_length)), 32768))). + let pow1280 = pow32 * pow1276; // pow(trace_generator, (safe_div((safe_mult(9217, global_values.trace_length)), 32768))). + let pow1281 = pow32 * pow1277; // pow(trace_generator, (safe_div((safe_mult(9729, global_values.trace_length)), 32768))). + let pow1282 = pow32 * pow1278; // pow(trace_generator, (safe_div((safe_mult(16387, global_values.trace_length)), 65536))). + let pow1283 = pow32 * pow1279; // pow(trace_generator, (safe_div((safe_mult(17411, global_values.trace_length)), 65536))). + let pow1284 = pow32 * pow1280; // pow(trace_generator, (safe_div((safe_mult(18435, global_values.trace_length)), 65536))). + let pow1285 = pow32 * pow1281; // pow(trace_generator, (safe_div((safe_mult(19459, global_values.trace_length)), 65536))). + let pow1286 = pow32 * pow1282; // pow(trace_generator, (safe_div((safe_mult(4097, global_values.trace_length)), 16384))). + let pow1287 = pow32 * pow1283; // pow(trace_generator, (safe_div((safe_mult(4353, global_values.trace_length)), 16384))). + let pow1288 = pow32 * pow1284; // pow(trace_generator, (safe_div((safe_mult(4609, global_values.trace_length)), 16384))). + let pow1289 = pow32 * pow1285; // pow(trace_generator, (safe_div((safe_mult(4865, global_values.trace_length)), 16384))). + let pow1290 = pow32 * pow1286; // pow(trace_generator, (safe_div((safe_mult(16389, global_values.trace_length)), 65536))). + let pow1291 = pow32 * pow1287; // pow(trace_generator, (safe_div((safe_mult(17413, global_values.trace_length)), 65536))). + let pow1292 = pow32 * pow1288; // pow(trace_generator, (safe_div((safe_mult(18437, global_values.trace_length)), 65536))). + let pow1293 = pow32 * pow1289; // pow(trace_generator, (safe_div((safe_mult(19461, global_values.trace_length)), 65536))). + let pow1294 = pow32 * pow1290; // pow(trace_generator, (safe_div((safe_mult(8195, global_values.trace_length)), 32768))). + let pow1295 = pow32 * pow1291; // pow(trace_generator, (safe_div((safe_mult(8707, global_values.trace_length)), 32768))). + let pow1296 = pow32 * pow1292; // pow(trace_generator, (safe_div((safe_mult(9219, global_values.trace_length)), 32768))). + let pow1297 = pow32 * pow1293; // pow(trace_generator, (safe_div((safe_mult(9731, global_values.trace_length)), 32768))). + let pow1298 = pow32 * pow1294; // pow(trace_generator, (safe_div((safe_mult(16391, global_values.trace_length)), 65536))). + let pow1299 = pow32 * pow1298; // pow(trace_generator, (safe_div((safe_mult(2049, global_values.trace_length)), 8192))). + let pow1300 = pow32 * pow1295; // pow(trace_generator, (safe_div((safe_mult(17415, global_values.trace_length)), 65536))). + let pow1301 = pow32 * pow1300; // pow(trace_generator, (safe_div((safe_mult(2177, global_values.trace_length)), 8192))). + let pow1302 = pow32 * pow1296; // pow(trace_generator, (safe_div((safe_mult(18439, global_values.trace_length)), 65536))). + let pow1303 = pow32 * pow1302; // pow(trace_generator, (safe_div((safe_mult(2305, global_values.trace_length)), 8192))). + let pow1304 = pow32 * pow1297; // pow(trace_generator, (safe_div((safe_mult(19463, global_values.trace_length)), 65536))). + let pow1305 = pow32 * pow1304; // pow(trace_generator, (safe_div((safe_mult(2433, global_values.trace_length)), 8192))). + let pow1306 = pow32 * pow1299; // pow(trace_generator, (safe_div((safe_mult(16393, global_values.trace_length)), 65536))). + let pow1307 = pow32 * pow1301; // pow(trace_generator, (safe_div((safe_mult(17417, global_values.trace_length)), 65536))). + let pow1308 = pow32 * pow1303; // pow(trace_generator, (safe_div((safe_mult(18441, global_values.trace_length)), 65536))). + let pow1309 = pow32 * pow1305; // pow(trace_generator, (safe_div((safe_mult(19465, global_values.trace_length)), 65536))). + let pow1310 = pow32 * pow1306; // pow(trace_generator, (safe_div((safe_mult(8197, global_values.trace_length)), 32768))). + let pow1311 = pow32 * pow1307; // pow(trace_generator, (safe_div((safe_mult(8709, global_values.trace_length)), 32768))). + let pow1312 = pow32 * pow1308; // pow(trace_generator, (safe_div((safe_mult(9221, global_values.trace_length)), 32768))). + let pow1313 = pow32 * pow1309; // pow(trace_generator, (safe_div((safe_mult(9733, global_values.trace_length)), 32768))). + let pow1314 = pow32 * pow1310; // pow(trace_generator, (safe_div((safe_mult(16395, global_values.trace_length)), 65536))). + let pow1315 = pow32 * pow1311; // pow(trace_generator, (safe_div((safe_mult(17419, global_values.trace_length)), 65536))). + let pow1316 = pow32 * pow1312; // pow(trace_generator, (safe_div((safe_mult(18443, global_values.trace_length)), 65536))). + let pow1317 = pow32 * pow1313; // pow(trace_generator, (safe_div((safe_mult(19467, global_values.trace_length)), 65536))). + let pow1318 = pow32 * pow1314; // pow(trace_generator, (safe_div((safe_mult(4099, global_values.trace_length)), 16384))). + let pow1319 = pow32 * pow1315; // pow(trace_generator, (safe_div((safe_mult(4355, global_values.trace_length)), 16384))). + let pow1320 = pow32 * pow1316; // pow(trace_generator, (safe_div((safe_mult(4611, global_values.trace_length)), 16384))). + let pow1321 = pow32 * pow1317; // pow(trace_generator, (safe_div((safe_mult(4867, global_values.trace_length)), 16384))). + let pow1322 = pow32 * pow1318; // pow(trace_generator, (safe_div((safe_mult(16397, global_values.trace_length)), 65536))). + let pow1323 = pow32 * pow1319; // pow(trace_generator, (safe_div((safe_mult(17421, global_values.trace_length)), 65536))). + let pow1324 = pow32 * pow1320; // pow(trace_generator, (safe_div((safe_mult(18445, global_values.trace_length)), 65536))). + let pow1325 = pow32 * pow1321; // pow(trace_generator, (safe_div((safe_mult(19469, global_values.trace_length)), 65536))). + let pow1326 = pow32 * pow1322; // pow(trace_generator, (safe_div((safe_mult(8199, global_values.trace_length)), 32768))). + let pow1327 = pow32 * pow1323; // pow(trace_generator, (safe_div((safe_mult(8711, global_values.trace_length)), 32768))). + let pow1328 = pow32 * pow1324; // pow(trace_generator, (safe_div((safe_mult(9223, global_values.trace_length)), 32768))). + let pow1329 = pow32 * pow1325; // pow(trace_generator, (safe_div((safe_mult(9735, global_values.trace_length)), 32768))). + let pow1330 = pow32 * pow1326; // pow(trace_generator, (safe_div((safe_mult(16399, global_values.trace_length)), 65536))). + let pow1331 = pow32 * pow1327; // pow(trace_generator, (safe_div((safe_mult(17423, global_values.trace_length)), 65536))). + let pow1332 = pow32 * pow1328; // pow(trace_generator, (safe_div((safe_mult(18447, global_values.trace_length)), 65536))). + let pow1333 = pow32 * pow1329; // pow(trace_generator, (safe_div((safe_mult(19471, global_values.trace_length)), 65536))). + let pow1334 = pow32 * pow1330; // pow(trace_generator, (safe_div((safe_mult(1025, global_values.trace_length)), 4096))). + let pow1335 = pow32 * pow1331; // pow(trace_generator, (safe_div((safe_mult(1089, global_values.trace_length)), 4096))). + let pow1336 = pow32 * pow1332; // pow(trace_generator, (safe_div((safe_mult(1153, global_values.trace_length)), 4096))). + let pow1337 = pow32 * pow1333; // pow(trace_generator, (safe_div((safe_mult(1217, global_values.trace_length)), 4096))). + let pow1338 = pow32 * pow1334; // pow(trace_generator, (safe_div((safe_mult(16401, global_values.trace_length)), 65536))). + let pow1339 = pow32 * pow1335; // pow(trace_generator, (safe_div((safe_mult(17425, global_values.trace_length)), 65536))). + let pow1340 = pow32 * pow1336; // pow(trace_generator, (safe_div((safe_mult(18449, global_values.trace_length)), 65536))). + let pow1341 = pow32 * pow1337; // pow(trace_generator, (safe_div((safe_mult(19473, global_values.trace_length)), 65536))). + let pow1342 = pow32 * pow1338; // pow(trace_generator, (safe_div((safe_mult(8201, global_values.trace_length)), 32768))). + let pow1343 = pow32 * pow1339; // pow(trace_generator, (safe_div((safe_mult(8713, global_values.trace_length)), 32768))). + let pow1344 = pow32 * pow1340; // pow(trace_generator, (safe_div((safe_mult(9225, global_values.trace_length)), 32768))). + let pow1345 = pow32 * pow1341; // pow(trace_generator, (safe_div((safe_mult(9737, global_values.trace_length)), 32768))). + let pow1346 = pow32 * pow1342; // pow(trace_generator, (safe_div((safe_mult(16403, global_values.trace_length)), 65536))). + let pow1347 = pow32 * pow1343; // pow(trace_generator, (safe_div((safe_mult(17427, global_values.trace_length)), 65536))). + let pow1348 = pow32 * pow1344; // pow(trace_generator, (safe_div((safe_mult(18451, global_values.trace_length)), 65536))). + let pow1349 = pow32 * pow1345; // pow(trace_generator, (safe_div((safe_mult(19475, global_values.trace_length)), 65536))). + let pow1350 = pow32 * pow1346; // pow(trace_generator, (safe_div((safe_mult(4101, global_values.trace_length)), 16384))). + let pow1351 = pow32 * pow1347; // pow(trace_generator, (safe_div((safe_mult(4357, global_values.trace_length)), 16384))). + let pow1352 = pow32 * pow1348; // pow(trace_generator, (safe_div((safe_mult(4613, global_values.trace_length)), 16384))). + let pow1353 = pow32 * pow1349; // pow(trace_generator, (safe_div((safe_mult(4869, global_values.trace_length)), 16384))). + let pow1354 = pow32 * pow1350; // pow(trace_generator, (safe_div((safe_mult(16405, global_values.trace_length)), 65536))). + let pow1355 = pow32 * pow1351; // pow(trace_generator, (safe_div((safe_mult(17429, global_values.trace_length)), 65536))). + let pow1356 = pow32 * pow1352; // pow(trace_generator, (safe_div((safe_mult(18453, global_values.trace_length)), 65536))). + let pow1357 = pow32 * pow1353; // pow(trace_generator, (safe_div((safe_mult(19477, global_values.trace_length)), 65536))). + let pow1358 = pow32 * pow1354; // pow(trace_generator, (safe_div((safe_mult(8203, global_values.trace_length)), 32768))). + let pow1359 = pow32 * pow1355; // pow(trace_generator, (safe_div((safe_mult(8715, global_values.trace_length)), 32768))). + let pow1360 = pow32 * pow1356; // pow(trace_generator, (safe_div((safe_mult(9227, global_values.trace_length)), 32768))). + let pow1361 = pow32 * pow1357; // pow(trace_generator, (safe_div((safe_mult(9739, global_values.trace_length)), 32768))). + let pow1362 = pow32 * pow1358; // pow(trace_generator, (safe_div((safe_mult(16407, global_values.trace_length)), 65536))). + let pow1363 = pow32 * pow1359; // pow(trace_generator, (safe_div((safe_mult(17431, global_values.trace_length)), 65536))). + let pow1364 = pow32 * pow1360; // pow(trace_generator, (safe_div((safe_mult(18455, global_values.trace_length)), 65536))). + let pow1365 = pow32 * pow1361; // pow(trace_generator, (safe_div((safe_mult(19479, global_values.trace_length)), 65536))). + let pow1366 = pow793 * pow1273; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 16))). + let pow1367 = pow32 * pow1366; // pow(trace_generator, (safe_div((safe_mult(20481, global_values.trace_length)), 65536))). + let pow1368 = pow32 * pow1367; // pow(trace_generator, (safe_div((safe_mult(10241, global_values.trace_length)), 32768))). + let pow1369 = pow32 * pow1368; // pow(trace_generator, (safe_div((safe_mult(20483, global_values.trace_length)), 65536))). + let pow1370 = pow32 * pow1369; // pow(trace_generator, (safe_div((safe_mult(5121, global_values.trace_length)), 16384))). + let pow1371 = pow32 * pow1370; // pow(trace_generator, (safe_div((safe_mult(20485, global_values.trace_length)), 65536))). + let pow1372 = pow32 * pow1371; // pow(trace_generator, (safe_div((safe_mult(10243, global_values.trace_length)), 32768))). + let pow1373 = pow32 * pow1372; // pow(trace_generator, (safe_div((safe_mult(20487, global_values.trace_length)), 65536))). + let pow1374 = pow32 * pow1373; // pow(trace_generator, (safe_div((safe_mult(2561, global_values.trace_length)), 8192))). + let pow1375 = pow32 * pow1374; // pow(trace_generator, (safe_div((safe_mult(20489, global_values.trace_length)), 65536))). + let pow1376 = pow32 * pow1375; // pow(trace_generator, (safe_div((safe_mult(10245, global_values.trace_length)), 32768))). + let pow1377 = pow32 * pow1376; // pow(trace_generator, (safe_div((safe_mult(20491, global_values.trace_length)), 65536))). + let pow1378 = pow32 * pow1377; // pow(trace_generator, (safe_div((safe_mult(5123, global_values.trace_length)), 16384))). + let pow1379 = pow32 * pow1378; // pow(trace_generator, (safe_div((safe_mult(20493, global_values.trace_length)), 65536))). + let pow1380 = pow32 * pow1379; // pow(trace_generator, (safe_div((safe_mult(10247, global_values.trace_length)), 32768))). + let pow1381 = pow32 * pow1380; // pow(trace_generator, (safe_div((safe_mult(20495, global_values.trace_length)), 65536))). + let pow1382 = pow32 * pow1381; // pow(trace_generator, (safe_div((safe_mult(1281, global_values.trace_length)), 4096))). + let pow1383 = pow32 * pow1382; // pow(trace_generator, (safe_div((safe_mult(20497, global_values.trace_length)), 65536))). + let pow1384 = pow32 * pow1383; // pow(trace_generator, (safe_div((safe_mult(10249, global_values.trace_length)), 32768))). + let pow1385 = pow32 * pow1384; // pow(trace_generator, (safe_div((safe_mult(20499, global_values.trace_length)), 65536))). + let pow1386 = pow32 * pow1385; // pow(trace_generator, (safe_div((safe_mult(5125, global_values.trace_length)), 16384))). + let pow1387 = pow32 * pow1386; // pow(trace_generator, (safe_div((safe_mult(20501, global_values.trace_length)), 65536))). + let pow1388 = pow32 * pow1387; // pow(trace_generator, (safe_div((safe_mult(10251, global_values.trace_length)), 32768))). + let pow1389 = pow32 * pow1388; // pow(trace_generator, (safe_div((safe_mult(20503, global_values.trace_length)), 65536))). + let pow1390 = pow79 * pow1389; // pow(trace_generator, (safe_div((safe_mult(321, global_values.trace_length)), 1024))). + let pow1391 = pow100 * pow1390; // pow(trace_generator, (safe_div((safe_mult(161, global_values.trace_length)), 512))). + let pow1392 = pow100 * pow1391; // pow(trace_generator, (safe_div((safe_mult(323, global_values.trace_length)), 1024))). + let pow1393 = pow100 * pow1392; // pow(trace_generator, (safe_div((safe_mult(81, global_values.trace_length)), 256))). + let pow1394 = pow100 * pow1393; // pow(trace_generator, (safe_div((safe_mult(325, global_values.trace_length)), 1024))). + let pow1395 = pow100 * pow1394; // pow(trace_generator, (safe_div((safe_mult(163, global_values.trace_length)), 512))). + let pow1396 = pow100 * pow1395; // pow(trace_generator, (safe_div((safe_mult(327, global_values.trace_length)), 1024))). + let pow1397 = pow100 * pow1396; // pow(trace_generator, (safe_div((safe_mult(41, global_values.trace_length)), 128))). + let pow1398 = pow100 * pow1397; // pow(trace_generator, (safe_div((safe_mult(329, global_values.trace_length)), 1024))). + let pow1399 = pow100 * pow1398; // pow(trace_generator, (safe_div((safe_mult(165, global_values.trace_length)), 512))). + let pow1400 = pow100 * pow1399; // pow(trace_generator, (safe_div((safe_mult(331, global_values.trace_length)), 1024))). + let pow1401 = pow100 * pow1400; // pow(trace_generator, (safe_div((safe_mult(83, global_values.trace_length)), 256))). + let pow1402 = pow100 * pow1401; // pow(trace_generator, (safe_div((safe_mult(333, global_values.trace_length)), 1024))). + let pow1403 = pow100 * pow1402; // pow(trace_generator, (safe_div((safe_mult(167, global_values.trace_length)), 512))). + let pow1404 = pow100 * pow1403; // pow(trace_generator, (safe_div((safe_mult(335, global_values.trace_length)), 1024))). + let pow1405 = pow100 * pow1404; // pow(trace_generator, (safe_div((safe_mult(21, global_values.trace_length)), 64))). + let pow1406 = pow32 * pow1405; // pow(trace_generator, (safe_div((safe_mult(21505, global_values.trace_length)), 65536))). + let pow1407 = pow32 * pow1406; // pow(trace_generator, (safe_div((safe_mult(10753, global_values.trace_length)), 32768))). + let pow1408 = pow32 * pow1407; // pow(trace_generator, (safe_div((safe_mult(21507, global_values.trace_length)), 65536))). + let pow1409 = pow32 * pow1408; // pow(trace_generator, (safe_div((safe_mult(5377, global_values.trace_length)), 16384))). + let pow1410 = pow32 * pow1409; // pow(trace_generator, (safe_div((safe_mult(21509, global_values.trace_length)), 65536))). + let pow1411 = pow32 * pow1410; // pow(trace_generator, (safe_div((safe_mult(10755, global_values.trace_length)), 32768))). + let pow1412 = pow32 * pow1411; // pow(trace_generator, (safe_div((safe_mult(21511, global_values.trace_length)), 65536))). + let pow1413 = pow32 * pow1412; // pow(trace_generator, (safe_div((safe_mult(2689, global_values.trace_length)), 8192))). + let pow1414 = pow32 * pow1413; // pow(trace_generator, (safe_div((safe_mult(21513, global_values.trace_length)), 65536))). + let pow1415 = pow32 * pow1414; // pow(trace_generator, (safe_div((safe_mult(10757, global_values.trace_length)), 32768))). + let pow1416 = pow32 * pow1415; // pow(trace_generator, (safe_div((safe_mult(21515, global_values.trace_length)), 65536))). + let pow1417 = pow32 * pow1416; // pow(trace_generator, (safe_div((safe_mult(5379, global_values.trace_length)), 16384))). + let pow1418 = pow32 * pow1417; // pow(trace_generator, (safe_div((safe_mult(21517, global_values.trace_length)), 65536))). + let pow1419 = pow32 * pow1418; // pow(trace_generator, (safe_div((safe_mult(10759, global_values.trace_length)), 32768))). + let pow1420 = pow32 * pow1419; // pow(trace_generator, (safe_div((safe_mult(21519, global_values.trace_length)), 65536))). + let pow1421 = pow32 * pow1420; // pow(trace_generator, (safe_div((safe_mult(1345, global_values.trace_length)), 4096))). + let pow1422 = pow32 * pow1421; // pow(trace_generator, (safe_div((safe_mult(21521, global_values.trace_length)), 65536))). + let pow1423 = pow32 * pow1422; // pow(trace_generator, (safe_div((safe_mult(10761, global_values.trace_length)), 32768))). + let pow1424 = pow32 * pow1423; // pow(trace_generator, (safe_div((safe_mult(21523, global_values.trace_length)), 65536))). + let pow1425 = pow32 * pow1424; // pow(trace_generator, (safe_div((safe_mult(5381, global_values.trace_length)), 16384))). + let pow1426 = pow32 * pow1425; // pow(trace_generator, (safe_div((safe_mult(21525, global_values.trace_length)), 65536))). + let pow1427 = pow32 * pow1426; // pow(trace_generator, (safe_div((safe_mult(10763, global_values.trace_length)), 32768))). + let pow1428 = pow32 * pow1427; // pow(trace_generator, (safe_div((safe_mult(21527, global_values.trace_length)), 65536))). + let pow1429 = pow79 * pow1428; // pow(trace_generator, (safe_div((safe_mult(337, global_values.trace_length)), 1024))). + let pow1430 = pow100 * pow1429; // pow(trace_generator, (safe_div((safe_mult(169, global_values.trace_length)), 512))). + let pow1431 = pow100 * pow1430; // pow(trace_generator, (safe_div((safe_mult(339, global_values.trace_length)), 1024))). + let pow1432 = pow100 * pow1431; // pow(trace_generator, (safe_div((safe_mult(85, global_values.trace_length)), 256))). + let pow1433 = pow100 * pow1432; // pow(trace_generator, (safe_div((safe_mult(341, global_values.trace_length)), 1024))). + let pow1434 = pow100 * pow1433; // pow(trace_generator, (safe_div((safe_mult(171, global_values.trace_length)), 512))). + let pow1435 = pow100 * pow1434; // pow(trace_generator, (safe_div((safe_mult(343, global_values.trace_length)), 1024))). + let pow1436 = pow580 * pow1435; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 32))). + let pow1437 = pow32 * pow1436; // pow(trace_generator, (safe_div((safe_mult(22529, global_values.trace_length)), 65536))). + let pow1438 = pow32 * pow1437; // pow(trace_generator, (safe_div((safe_mult(11265, global_values.trace_length)), 32768))). + let pow1439 = pow32 * pow1438; // pow(trace_generator, (safe_div((safe_mult(22531, global_values.trace_length)), 65536))). + let pow1440 = pow32 * pow1439; // pow(trace_generator, (safe_div((safe_mult(5633, global_values.trace_length)), 16384))). + let pow1441 = pow32 * pow1440; // pow(trace_generator, (safe_div((safe_mult(22533, global_values.trace_length)), 65536))). + let pow1442 = pow32 * pow1441; // pow(trace_generator, (safe_div((safe_mult(11267, global_values.trace_length)), 32768))). + let pow1443 = pow32 * pow1442; // pow(trace_generator, (safe_div((safe_mult(22535, global_values.trace_length)), 65536))). + let pow1444 = pow32 * pow1443; // pow(trace_generator, (safe_div((safe_mult(2817, global_values.trace_length)), 8192))). + let pow1445 = pow32 * pow1444; // pow(trace_generator, (safe_div((safe_mult(22537, global_values.trace_length)), 65536))). + let pow1446 = pow32 * pow1445; // pow(trace_generator, (safe_div((safe_mult(11269, global_values.trace_length)), 32768))). + let pow1447 = pow32 * pow1446; // pow(trace_generator, (safe_div((safe_mult(22539, global_values.trace_length)), 65536))). + let pow1448 = pow32 * pow1447; // pow(trace_generator, (safe_div((safe_mult(5635, global_values.trace_length)), 16384))). + let pow1449 = pow32 * pow1448; // pow(trace_generator, (safe_div((safe_mult(22541, global_values.trace_length)), 65536))). + let pow1450 = pow32 * pow1449; // pow(trace_generator, (safe_div((safe_mult(11271, global_values.trace_length)), 32768))). + let pow1451 = pow32 * pow1450; // pow(trace_generator, (safe_div((safe_mult(22543, global_values.trace_length)), 65536))). + let pow1452 = pow32 * pow1451; // pow(trace_generator, (safe_div((safe_mult(1409, global_values.trace_length)), 4096))). + let pow1453 = pow32 * pow1452; // pow(trace_generator, (safe_div((safe_mult(22545, global_values.trace_length)), 65536))). + let pow1454 = pow32 * pow1453; // pow(trace_generator, (safe_div((safe_mult(11273, global_values.trace_length)), 32768))). + let pow1455 = pow32 * pow1454; // pow(trace_generator, (safe_div((safe_mult(22547, global_values.trace_length)), 65536))). + let pow1456 = pow32 * pow1455; // pow(trace_generator, (safe_div((safe_mult(5637, global_values.trace_length)), 16384))). + let pow1457 = pow32 * pow1456; // pow(trace_generator, (safe_div((safe_mult(22549, global_values.trace_length)), 65536))). + let pow1458 = pow32 * pow1457; // pow(trace_generator, (safe_div((safe_mult(11275, global_values.trace_length)), 32768))). + let pow1459 = pow32 * pow1458; // pow(trace_generator, (safe_div((safe_mult(22551, global_values.trace_length)), 65536))). + let pow1460 = pow79 * pow1459; // pow(trace_generator, (safe_div((safe_mult(353, global_values.trace_length)), 1024))). + let pow1461 = pow100 * pow1460; // pow(trace_generator, (safe_div((safe_mult(177, global_values.trace_length)), 512))). + let pow1462 = pow100 * pow1461; // pow(trace_generator, (safe_div((safe_mult(355, global_values.trace_length)), 1024))). + let pow1463 = pow100 * pow1462; // pow(trace_generator, (safe_div((safe_mult(89, global_values.trace_length)), 256))). + let pow1464 = pow100 * pow1463; // pow(trace_generator, (safe_div((safe_mult(357, global_values.trace_length)), 1024))). + let pow1465 = pow100 * pow1464; // pow(trace_generator, (safe_div((safe_mult(179, global_values.trace_length)), 512))). + let pow1466 = pow100 * pow1465; // pow(trace_generator, (safe_div((safe_mult(359, global_values.trace_length)), 1024))). + let pow1467 = pow100 * pow1466; // pow(trace_generator, (safe_div((safe_mult(45, global_values.trace_length)), 128))). + let pow1468 = pow100 * pow1467; // pow(trace_generator, (safe_div((safe_mult(361, global_values.trace_length)), 1024))). + let pow1469 = pow100 * pow1468; // pow(trace_generator, (safe_div((safe_mult(181, global_values.trace_length)), 512))). + let pow1470 = pow100 * pow1469; // pow(trace_generator, (safe_div((safe_mult(363, global_values.trace_length)), 1024))). + let pow1471 = pow100 * pow1470; // pow(trace_generator, (safe_div((safe_mult(91, global_values.trace_length)), 256))). + let pow1472 = pow100 * pow1471; // pow(trace_generator, (safe_div((safe_mult(365, global_values.trace_length)), 1024))). + let pow1473 = pow100 * pow1472; // pow(trace_generator, (safe_div((safe_mult(183, global_values.trace_length)), 512))). + let pow1474 = pow100 * pow1473; // pow(trace_generator, (safe_div((safe_mult(367, global_values.trace_length)), 1024))). + let pow1475 = pow100 * pow1474; // pow(trace_generator, (safe_div((safe_mult(23, global_values.trace_length)), 64))). + let pow1476 = pow32 * pow1475; // pow(trace_generator, (safe_div((safe_mult(23553, global_values.trace_length)), 65536))). + let pow1477 = pow32 * pow1476; // pow(trace_generator, (safe_div((safe_mult(11777, global_values.trace_length)), 32768))). + let pow1478 = pow32 * pow1477; // pow(trace_generator, (safe_div((safe_mult(23555, global_values.trace_length)), 65536))). + let pow1479 = pow32 * pow1478; // pow(trace_generator, (safe_div((safe_mult(5889, global_values.trace_length)), 16384))). + let pow1480 = pow32 * pow1479; // pow(trace_generator, (safe_div((safe_mult(23557, global_values.trace_length)), 65536))). + let pow1481 = pow32 * pow1480; // pow(trace_generator, (safe_div((safe_mult(11779, global_values.trace_length)), 32768))). + let pow1482 = pow32 * pow1481; // pow(trace_generator, (safe_div((safe_mult(23559, global_values.trace_length)), 65536))). + let pow1483 = pow32 * pow1482; // pow(trace_generator, (safe_div((safe_mult(2945, global_values.trace_length)), 8192))). + let pow1484 = pow32 * pow1483; // pow(trace_generator, (safe_div((safe_mult(23561, global_values.trace_length)), 65536))). + let pow1485 = pow32 * pow1484; // pow(trace_generator, (safe_div((safe_mult(11781, global_values.trace_length)), 32768))). + let pow1486 = pow32 * pow1485; // pow(trace_generator, (safe_div((safe_mult(23563, global_values.trace_length)), 65536))). + let pow1487 = pow32 * pow1486; // pow(trace_generator, (safe_div((safe_mult(5891, global_values.trace_length)), 16384))). + let pow1488 = pow32 * pow1487; // pow(trace_generator, (safe_div((safe_mult(23565, global_values.trace_length)), 65536))). + let pow1489 = pow32 * pow1488; // pow(trace_generator, (safe_div((safe_mult(11783, global_values.trace_length)), 32768))). + let pow1490 = pow32 * pow1489; // pow(trace_generator, (safe_div((safe_mult(23567, global_values.trace_length)), 65536))). + let pow1491 = pow32 * pow1490; // pow(trace_generator, (safe_div((safe_mult(1473, global_values.trace_length)), 4096))). + let pow1492 = pow32 * pow1491; // pow(trace_generator, (safe_div((safe_mult(23569, global_values.trace_length)), 65536))). + let pow1493 = pow32 * pow1492; // pow(trace_generator, (safe_div((safe_mult(11785, global_values.trace_length)), 32768))). + let pow1494 = pow32 * pow1493; // pow(trace_generator, (safe_div((safe_mult(23571, global_values.trace_length)), 65536))). + let pow1495 = pow32 * pow1494; // pow(trace_generator, (safe_div((safe_mult(5893, global_values.trace_length)), 16384))). + let pow1496 = pow32 * pow1495; // pow(trace_generator, (safe_div((safe_mult(23573, global_values.trace_length)), 65536))). + let pow1497 = pow32 * pow1496; // pow(trace_generator, (safe_div((safe_mult(11787, global_values.trace_length)), 32768))). + let pow1498 = pow32 * pow1497; // pow(trace_generator, (safe_div((safe_mult(23575, global_values.trace_length)), 65536))). + let pow1499 = pow79 * pow1498; // pow(trace_generator, (safe_div((safe_mult(369, global_values.trace_length)), 1024))). + let pow1500 = pow100 * pow1499; // pow(trace_generator, (safe_div((safe_mult(185, global_values.trace_length)), 512))). + let pow1501 = pow100 * pow1500; // pow(trace_generator, (safe_div((safe_mult(371, global_values.trace_length)), 1024))). + let pow1502 = pow100 * pow1501; // pow(trace_generator, (safe_div((safe_mult(93, global_values.trace_length)), 256))). + let pow1503 = pow100 * pow1502; // pow(trace_generator, (safe_div((safe_mult(373, global_values.trace_length)), 1024))). + let pow1504 = pow100 * pow1503; // pow(trace_generator, (safe_div((safe_mult(187, global_values.trace_length)), 512))). + let pow1505 = pow100 * pow1504; // pow(trace_generator, (safe_div((safe_mult(375, global_values.trace_length)), 1024))). + let pow1506 = pow580 * pow1505; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 8))). + let pow1507 = pow32 * pow1506; // pow(trace_generator, (safe_div((safe_mult(24577, global_values.trace_length)), 65536))). + let pow1508 = pow32 * pow1507; // pow(trace_generator, (safe_div((safe_mult(12289, global_values.trace_length)), 32768))). + let pow1509 = pow32 * pow1508; // pow(trace_generator, (safe_div((safe_mult(24579, global_values.trace_length)), 65536))). + let pow1510 = pow32 * pow1509; // pow(trace_generator, (safe_div((safe_mult(6145, global_values.trace_length)), 16384))). + let pow1511 = pow32 * pow1510; // pow(trace_generator, (safe_div((safe_mult(24581, global_values.trace_length)), 65536))). + let pow1512 = pow32 * pow1511; // pow(trace_generator, (safe_div((safe_mult(12291, global_values.trace_length)), 32768))). + let pow1513 = pow32 * pow1512; // pow(trace_generator, (safe_div((safe_mult(24583, global_values.trace_length)), 65536))). + let pow1514 = pow32 * pow1513; // pow(trace_generator, (safe_div((safe_mult(3073, global_values.trace_length)), 8192))). + let pow1515 = pow32 * pow1514; // pow(trace_generator, (safe_div((safe_mult(24585, global_values.trace_length)), 65536))). + let pow1516 = pow32 * pow1515; // pow(trace_generator, (safe_div((safe_mult(12293, global_values.trace_length)), 32768))). + let pow1517 = pow32 * pow1516; // pow(trace_generator, (safe_div((safe_mult(24587, global_values.trace_length)), 65536))). + let pow1518 = pow32 * pow1517; // pow(trace_generator, (safe_div((safe_mult(6147, global_values.trace_length)), 16384))). + let pow1519 = pow32 * pow1518; // pow(trace_generator, (safe_div((safe_mult(24589, global_values.trace_length)), 65536))). + let pow1520 = pow32 * pow1519; // pow(trace_generator, (safe_div((safe_mult(12295, global_values.trace_length)), 32768))). + let pow1521 = pow32 * pow1520; // pow(trace_generator, (safe_div((safe_mult(24591, global_values.trace_length)), 65536))). + let pow1522 = pow32 * pow1521; // pow(trace_generator, (safe_div((safe_mult(1537, global_values.trace_length)), 4096))). + let pow1523 = pow32 * pow1522; // pow(trace_generator, (safe_div((safe_mult(24593, global_values.trace_length)), 65536))). + let pow1524 = pow32 * pow1523; // pow(trace_generator, (safe_div((safe_mult(12297, global_values.trace_length)), 32768))). + let pow1525 = pow32 * pow1524; // pow(trace_generator, (safe_div((safe_mult(24595, global_values.trace_length)), 65536))). + let pow1526 = pow32 * pow1525; // pow(trace_generator, (safe_div((safe_mult(6149, global_values.trace_length)), 16384))). + let pow1527 = pow32 * pow1526; // pow(trace_generator, (safe_div((safe_mult(24597, global_values.trace_length)), 65536))). + let pow1528 = pow32 * pow1527; // pow(trace_generator, (safe_div((safe_mult(12299, global_values.trace_length)), 32768))). + let pow1529 = pow32 * pow1528; // pow(trace_generator, (safe_div((safe_mult(24599, global_values.trace_length)), 65536))). + let pow1530 = pow79 * pow1529; // pow(trace_generator, (safe_div((safe_mult(385, global_values.trace_length)), 1024))). + let pow1531 = pow100 * pow1530; // pow(trace_generator, (safe_div((safe_mult(193, global_values.trace_length)), 512))). + let pow1532 = pow100 * pow1531; // pow(trace_generator, (safe_div((safe_mult(387, global_values.trace_length)), 1024))). + let pow1533 = pow100 * pow1532; // pow(trace_generator, (safe_div((safe_mult(97, global_values.trace_length)), 256))). + let pow1534 = pow100 * pow1533; // pow(trace_generator, (safe_div((safe_mult(389, global_values.trace_length)), 1024))). + let pow1535 = pow100 * pow1534; // pow(trace_generator, (safe_div((safe_mult(195, global_values.trace_length)), 512))). + let pow1536 = pow100 * pow1535; // pow(trace_generator, (safe_div((safe_mult(391, global_values.trace_length)), 1024))). + let pow1537 = pow100 * pow1536; // pow(trace_generator, (safe_div((safe_mult(49, global_values.trace_length)), 128))). + let pow1538 = pow100 * pow1537; // pow(trace_generator, (safe_div((safe_mult(393, global_values.trace_length)), 1024))). + let pow1539 = pow100 * pow1538; // pow(trace_generator, (safe_div((safe_mult(197, global_values.trace_length)), 512))). + let pow1540 = pow100 * pow1539; // pow(trace_generator, (safe_div((safe_mult(395, global_values.trace_length)), 1024))). + let pow1541 = pow100 * pow1540; // pow(trace_generator, (safe_div((safe_mult(99, global_values.trace_length)), 256))). + let pow1542 = pow100 * pow1541; // pow(trace_generator, (safe_div((safe_mult(397, global_values.trace_length)), 1024))). + let pow1543 = pow100 * pow1542; // pow(trace_generator, (safe_div((safe_mult(199, global_values.trace_length)), 512))). + let pow1544 = pow100 * pow1543; // pow(trace_generator, (safe_div((safe_mult(399, global_values.trace_length)), 1024))). + let pow1545 = pow100 * pow1544; // pow(trace_generator, (safe_div((safe_mult(25, global_values.trace_length)), 64))). + let pow1546 = pow32 * pow1545; // pow(trace_generator, (safe_div((safe_mult(25601, global_values.trace_length)), 65536))). + let pow1547 = pow32 * pow1546; // pow(trace_generator, (safe_div((safe_mult(12801, global_values.trace_length)), 32768))). + let pow1548 = pow32 * pow1547; // pow(trace_generator, (safe_div((safe_mult(25603, global_values.trace_length)), 65536))). + let pow1549 = pow32 * pow1548; // pow(trace_generator, (safe_div((safe_mult(6401, global_values.trace_length)), 16384))). + let pow1550 = pow32 * pow1549; // pow(trace_generator, (safe_div((safe_mult(25605, global_values.trace_length)), 65536))). + let pow1551 = pow32 * pow1550; // pow(trace_generator, (safe_div((safe_mult(12803, global_values.trace_length)), 32768))). + let pow1552 = pow32 * pow1551; // pow(trace_generator, (safe_div((safe_mult(25607, global_values.trace_length)), 65536))). + let pow1553 = pow32 * pow1552; // pow(trace_generator, (safe_div((safe_mult(3201, global_values.trace_length)), 8192))). + let pow1554 = pow32 * pow1553; // pow(trace_generator, (safe_div((safe_mult(25609, global_values.trace_length)), 65536))). + let pow1555 = pow32 * pow1554; // pow(trace_generator, (safe_div((safe_mult(12805, global_values.trace_length)), 32768))). + let pow1556 = pow32 * pow1555; // pow(trace_generator, (safe_div((safe_mult(25611, global_values.trace_length)), 65536))). + let pow1557 = pow32 * pow1556; // pow(trace_generator, (safe_div((safe_mult(6403, global_values.trace_length)), 16384))). + let pow1558 = pow32 * pow1557; // pow(trace_generator, (safe_div((safe_mult(25613, global_values.trace_length)), 65536))). + let pow1559 = pow32 * pow1558; // pow(trace_generator, (safe_div((safe_mult(12807, global_values.trace_length)), 32768))). + let pow1560 = pow32 * pow1559; // pow(trace_generator, (safe_div((safe_mult(25615, global_values.trace_length)), 65536))). + let pow1561 = pow32 * pow1560; // pow(trace_generator, (safe_div((safe_mult(1601, global_values.trace_length)), 4096))). + let pow1562 = pow32 * pow1561; // pow(trace_generator, (safe_div((safe_mult(25617, global_values.trace_length)), 65536))). + let pow1563 = pow32 * pow1562; // pow(trace_generator, (safe_div((safe_mult(12809, global_values.trace_length)), 32768))). + let pow1564 = pow32 * pow1563; // pow(trace_generator, (safe_div((safe_mult(25619, global_values.trace_length)), 65536))). + let pow1565 = pow32 * pow1564; // pow(trace_generator, (safe_div((safe_mult(6405, global_values.trace_length)), 16384))). + let pow1566 = pow32 * pow1565; // pow(trace_generator, (safe_div((safe_mult(25621, global_values.trace_length)), 65536))). + let pow1567 = pow32 * pow1566; // pow(trace_generator, (safe_div((safe_mult(12811, global_values.trace_length)), 32768))). + let pow1568 = pow32 * pow1567; // pow(trace_generator, (safe_div((safe_mult(25623, global_values.trace_length)), 65536))). + let pow1569 = pow79 * pow1568; // pow(trace_generator, (safe_div((safe_mult(401, global_values.trace_length)), 1024))). + let pow1570 = pow100 * pow1569; // pow(trace_generator, (safe_div((safe_mult(201, global_values.trace_length)), 512))). + let pow1571 = pow100 * pow1570; // pow(trace_generator, (safe_div((safe_mult(403, global_values.trace_length)), 1024))). + let pow1572 = pow100 * pow1571; // pow(trace_generator, (safe_div((safe_mult(101, global_values.trace_length)), 256))). + let pow1573 = pow100 * pow1572; // pow(trace_generator, (safe_div((safe_mult(405, global_values.trace_length)), 1024))). + let pow1574 = pow100 * pow1573; // pow(trace_generator, (safe_div((safe_mult(203, global_values.trace_length)), 512))). + let pow1575 = pow100 * pow1574; // pow(trace_generator, (safe_div((safe_mult(407, global_values.trace_length)), 1024))). + let pow1576 = pow580 * pow1575; // pow(trace_generator, (safe_div((safe_mult(13, global_values.trace_length)), 32))). + let pow1577 = pow793 * pow1576; // pow(trace_generator, (safe_div((safe_mult(27, global_values.trace_length)), 64))). + let pow1578 = pow32 * pow1576; // pow(trace_generator, (safe_div((safe_mult(26625, global_values.trace_length)), 65536))). + let pow1579 = pow32 * pow1577; // pow(trace_generator, (safe_div((safe_mult(27649, global_values.trace_length)), 65536))). + let pow1580 = pow32 * pow1578; // pow(trace_generator, (safe_div((safe_mult(13313, global_values.trace_length)), 32768))). + let pow1581 = pow32 * pow1579; // pow(trace_generator, (safe_div((safe_mult(13825, global_values.trace_length)), 32768))). + let pow1582 = pow32 * pow1580; // pow(trace_generator, (safe_div((safe_mult(26627, global_values.trace_length)), 65536))). + let pow1583 = pow32 * pow1581; // pow(trace_generator, (safe_div((safe_mult(27651, global_values.trace_length)), 65536))). + let pow1584 = pow32 * pow1582; // pow(trace_generator, (safe_div((safe_mult(6657, global_values.trace_length)), 16384))). + let pow1585 = pow32 * pow1583; // pow(trace_generator, (safe_div((safe_mult(6913, global_values.trace_length)), 16384))). + let pow1586 = pow32 * pow1584; // pow(trace_generator, (safe_div((safe_mult(26629, global_values.trace_length)), 65536))). + let pow1587 = pow32 * pow1585; // pow(trace_generator, (safe_div((safe_mult(27653, global_values.trace_length)), 65536))). + let pow1588 = pow32 * pow1586; // pow(trace_generator, (safe_div((safe_mult(13315, global_values.trace_length)), 32768))). + let pow1589 = pow32 * pow1587; // pow(trace_generator, (safe_div((safe_mult(13827, global_values.trace_length)), 32768))). + let pow1590 = pow32 * pow1588; // pow(trace_generator, (safe_div((safe_mult(26631, global_values.trace_length)), 65536))). + let pow1591 = pow32 * pow1589; // pow(trace_generator, (safe_div((safe_mult(27655, global_values.trace_length)), 65536))). + let pow1592 = pow32 * pow1590; // pow(trace_generator, (safe_div((safe_mult(3329, global_values.trace_length)), 8192))). + let pow1593 = pow32 * pow1591; // pow(trace_generator, (safe_div((safe_mult(3457, global_values.trace_length)), 8192))). + let pow1594 = pow32 * pow1592; // pow(trace_generator, (safe_div((safe_mult(26633, global_values.trace_length)), 65536))). + let pow1595 = pow32 * pow1593; // pow(trace_generator, (safe_div((safe_mult(27657, global_values.trace_length)), 65536))). + let pow1596 = pow32 * pow1594; // pow(trace_generator, (safe_div((safe_mult(13317, global_values.trace_length)), 32768))). + let pow1597 = pow32 * pow1595; // pow(trace_generator, (safe_div((safe_mult(13829, global_values.trace_length)), 32768))). + let pow1598 = pow32 * pow1596; // pow(trace_generator, (safe_div((safe_mult(26635, global_values.trace_length)), 65536))). + let pow1599 = pow32 * pow1597; // pow(trace_generator, (safe_div((safe_mult(27659, global_values.trace_length)), 65536))). + let pow1600 = pow32 * pow1598; // pow(trace_generator, (safe_div((safe_mult(6659, global_values.trace_length)), 16384))). + let pow1601 = pow32 * pow1599; // pow(trace_generator, (safe_div((safe_mult(6915, global_values.trace_length)), 16384))). + let pow1602 = pow32 * pow1600; // pow(trace_generator, (safe_div((safe_mult(26637, global_values.trace_length)), 65536))). + let pow1603 = pow32 * pow1601; // pow(trace_generator, (safe_div((safe_mult(27661, global_values.trace_length)), 65536))). + let pow1604 = pow32 * pow1602; // pow(trace_generator, (safe_div((safe_mult(13319, global_values.trace_length)), 32768))). + let pow1605 = pow32 * pow1603; // pow(trace_generator, (safe_div((safe_mult(13831, global_values.trace_length)), 32768))). + let pow1606 = pow32 * pow1604; // pow(trace_generator, (safe_div((safe_mult(26639, global_values.trace_length)), 65536))). + let pow1607 = pow32 * pow1606; // pow(trace_generator, (safe_div((safe_mult(1665, global_values.trace_length)), 4096))). + let pow1608 = pow32 * pow1607; // pow(trace_generator, (safe_div((safe_mult(26641, global_values.trace_length)), 65536))). + let pow1609 = pow32 * pow1608; // pow(trace_generator, (safe_div((safe_mult(13321, global_values.trace_length)), 32768))). + let pow1610 = pow32 * pow1609; // pow(trace_generator, (safe_div((safe_mult(26643, global_values.trace_length)), 65536))). + let pow1611 = pow32 * pow1610; // pow(trace_generator, (safe_div((safe_mult(6661, global_values.trace_length)), 16384))). + let pow1612 = pow32 * pow1611; // pow(trace_generator, (safe_div((safe_mult(26645, global_values.trace_length)), 65536))). + let pow1613 = pow32 * pow1612; // pow(trace_generator, (safe_div((safe_mult(13323, global_values.trace_length)), 32768))). + let pow1614 = pow32 * pow1613; // pow(trace_generator, (safe_div((safe_mult(26647, global_values.trace_length)), 65536))). + let pow1615 = pow32 * pow1605; // pow(trace_generator, (safe_div((safe_mult(27663, global_values.trace_length)), 65536))). + let pow1616 = pow32 * pow1615; // pow(trace_generator, (safe_div((safe_mult(1729, global_values.trace_length)), 4096))). + let pow1617 = pow32 * pow1616; // pow(trace_generator, (safe_div((safe_mult(27665, global_values.trace_length)), 65536))). + let pow1618 = pow32 * pow1617; // pow(trace_generator, (safe_div((safe_mult(13833, global_values.trace_length)), 32768))). + let pow1619 = pow32 * pow1618; // pow(trace_generator, (safe_div((safe_mult(27667, global_values.trace_length)), 65536))). + let pow1620 = pow32 * pow1619; // pow(trace_generator, (safe_div((safe_mult(6917, global_values.trace_length)), 16384))). + let pow1621 = pow32 * pow1620; // pow(trace_generator, (safe_div((safe_mult(27669, global_values.trace_length)), 65536))). + let pow1622 = pow32 * pow1621; // pow(trace_generator, (safe_div((safe_mult(13835, global_values.trace_length)), 32768))). + let pow1623 = pow32 * pow1622; // pow(trace_generator, (safe_div((safe_mult(27671, global_values.trace_length)), 65536))). + let pow1624 = pow863 * pow1577; // pow(trace_generator, (safe_div((safe_mult(15, global_values.trace_length)), 32))). + let pow1625 = pow100 * pow1624; // pow(trace_generator, (safe_div((safe_mult(481, global_values.trace_length)), 1024))). + let pow1626 = pow100 * pow1625; // pow(trace_generator, (safe_div((safe_mult(241, global_values.trace_length)), 512))). + let pow1627 = pow100 * pow1626; // pow(trace_generator, (safe_div((safe_mult(483, global_values.trace_length)), 1024))). + let pow1628 = pow100 * pow1627; // pow(trace_generator, (safe_div((safe_mult(121, global_values.trace_length)), 256))). + let pow1629 = pow100 * pow1628; // pow(trace_generator, (safe_div((safe_mult(485, global_values.trace_length)), 1024))). + let pow1630 = pow100 * pow1629; // pow(trace_generator, (safe_div((safe_mult(243, global_values.trace_length)), 512))). + let pow1631 = pow100 * pow1630; // pow(trace_generator, (safe_div((safe_mult(487, global_values.trace_length)), 1024))). + let pow1632 = pow100 * pow1631; // pow(trace_generator, (safe_div((safe_mult(61, global_values.trace_length)), 128))). + let pow1633 = pow100 * pow1632; // pow(trace_generator, (safe_div((safe_mult(489, global_values.trace_length)), 1024))). + let pow1634 = pow100 * pow1633; // pow(trace_generator, (safe_div((safe_mult(245, global_values.trace_length)), 512))). + let pow1635 = pow100 * pow1634; // pow(trace_generator, (safe_div((safe_mult(491, global_values.trace_length)), 1024))). + let pow1636 = pow100 * pow1635; // pow(trace_generator, (safe_div((safe_mult(123, global_values.trace_length)), 256))). + let pow1637 = pow100 * pow1636; // pow(trace_generator, (safe_div((safe_mult(493, global_values.trace_length)), 1024))). + let pow1638 = pow100 * pow1637; // pow(trace_generator, (safe_div((safe_mult(247, global_values.trace_length)), 512))). + let pow1639 = pow100 * pow1638; // pow(trace_generator, (safe_div((safe_mult(495, global_values.trace_length)), 1024))). + let pow1640 = pow100 * pow1639; // pow(trace_generator, (safe_div((safe_mult(31, global_values.trace_length)), 64))). + let pow1641 = pow32 * pow1640; // pow(trace_generator, (safe_div((safe_mult(31745, global_values.trace_length)), 65536))). + let pow1642 = pow32 * pow1641; // pow(trace_generator, (safe_div((safe_mult(15873, global_values.trace_length)), 32768))). + let pow1643 = pow32 * pow1642; // pow(trace_generator, (safe_div((safe_mult(31747, global_values.trace_length)), 65536))). + let pow1644 = pow32 * pow1643; // pow(trace_generator, (safe_div((safe_mult(7937, global_values.trace_length)), 16384))). + let pow1645 = pow32 * pow1644; // pow(trace_generator, (safe_div((safe_mult(31749, global_values.trace_length)), 65536))). + let pow1646 = pow32 * pow1645; // pow(trace_generator, (safe_div((safe_mult(15875, global_values.trace_length)), 32768))). + let pow1647 = pow32 * pow1646; // pow(trace_generator, (safe_div((safe_mult(31751, global_values.trace_length)), 65536))). + let pow1648 = pow32 * pow1647; // pow(trace_generator, (safe_div((safe_mult(3969, global_values.trace_length)), 8192))). + let pow1649 = pow32 * pow1648; // pow(trace_generator, (safe_div((safe_mult(31753, global_values.trace_length)), 65536))). + let pow1650 = pow32 * pow1649; // pow(trace_generator, (safe_div((safe_mult(15877, global_values.trace_length)), 32768))). + let pow1651 = pow32 * pow1650; // pow(trace_generator, (safe_div((safe_mult(31755, global_values.trace_length)), 65536))). + let pow1652 = pow32 * pow1651; // pow(trace_generator, (safe_div((safe_mult(7939, global_values.trace_length)), 16384))). + let pow1653 = pow32 * pow1652; // pow(trace_generator, (safe_div((safe_mult(31757, global_values.trace_length)), 65536))). + let pow1654 = pow32 * pow1653; // pow(trace_generator, (safe_div((safe_mult(15879, global_values.trace_length)), 32768))). + let pow1655 = pow32 * pow1654; // pow(trace_generator, (safe_div((safe_mult(31759, global_values.trace_length)), 65536))). + let pow1656 = pow32 * pow1655; // pow(trace_generator, (safe_div((safe_mult(1985, global_values.trace_length)), 4096))). + let pow1657 = pow32 * pow1656; // pow(trace_generator, (safe_div((safe_mult(31761, global_values.trace_length)), 65536))). + let pow1658 = pow32 * pow1657; // pow(trace_generator, (safe_div((safe_mult(15881, global_values.trace_length)), 32768))). + let pow1659 = pow32 * pow1658; // pow(trace_generator, (safe_div((safe_mult(31763, global_values.trace_length)), 65536))). + let pow1660 = pow32 * pow1659; // pow(trace_generator, (safe_div((safe_mult(7941, global_values.trace_length)), 16384))). + let pow1661 = pow32 * pow1660; // pow(trace_generator, (safe_div((safe_mult(31765, global_values.trace_length)), 65536))). + let pow1662 = pow32 * pow1661; // pow(trace_generator, (safe_div((safe_mult(15883, global_values.trace_length)), 32768))). + let pow1663 = pow32 * pow1662; // pow(trace_generator, (safe_div((safe_mult(31767, global_values.trace_length)), 65536))). + let pow1664 = pow79 * pow1663; // pow(trace_generator, (safe_div((safe_mult(497, global_values.trace_length)), 1024))). + let pow1665 = pow100 * pow1664; // pow(trace_generator, (safe_div((safe_mult(249, global_values.trace_length)), 512))). + let pow1666 = pow100 * pow1665; // pow(trace_generator, (safe_div((safe_mult(499, global_values.trace_length)), 1024))). + let pow1667 = pow100 * pow1666; // pow(trace_generator, (safe_div((safe_mult(125, global_values.trace_length)), 256))). + let pow1668 = pow100 * pow1667; // pow(trace_generator, (safe_div((safe_mult(501, global_values.trace_length)), 1024))). + let pow1669 = pow100 * pow1668; // pow(trace_generator, (safe_div((safe_mult(251, global_values.trace_length)), 512))). + let pow1670 = pow100 * pow1669; // pow(trace_generator, (safe_div((safe_mult(503, global_values.trace_length)), 1024))). + let pow1671 = pow580 * pow1670; // pow(trace_generator, (safe_div(global_values.trace_length, 2))). + let pow1672 = pow100 * pow1671; // pow(trace_generator, (safe_div((safe_mult(513, global_values.trace_length)), 1024))). + let pow1673 = pow100 * pow1672; // pow(trace_generator, (safe_div((safe_mult(257, global_values.trace_length)), 512))). + let pow1674 = pow100 * pow1673; // pow(trace_generator, (safe_div((safe_mult(515, global_values.trace_length)), 1024))). + let pow1675 = pow100 * pow1674; // pow(trace_generator, (safe_div((safe_mult(129, global_values.trace_length)), 256))). + let pow1676 = pow100 * pow1675; // pow(trace_generator, (safe_div((safe_mult(517, global_values.trace_length)), 1024))). + let pow1677 = pow100 * pow1676; // pow(trace_generator, (safe_div((safe_mult(259, global_values.trace_length)), 512))). + let pow1678 = pow100 * pow1677; // pow(trace_generator, (safe_div((safe_mult(519, global_values.trace_length)), 1024))). + let pow1679 = pow100 * pow1678; // pow(trace_generator, (safe_div((safe_mult(65, global_values.trace_length)), 128))). + let pow1680 = pow100 * pow1679; // pow(trace_generator, (safe_div((safe_mult(521, global_values.trace_length)), 1024))). + let pow1681 = pow100 * pow1680; // pow(trace_generator, (safe_div((safe_mult(261, global_values.trace_length)), 512))). + let pow1682 = pow100 * pow1681; // pow(trace_generator, (safe_div((safe_mult(523, global_values.trace_length)), 1024))). + let pow1683 = pow100 * pow1682; // pow(trace_generator, (safe_div((safe_mult(131, global_values.trace_length)), 256))). + let pow1684 = pow100 * pow1683; // pow(trace_generator, (safe_div((safe_mult(525, global_values.trace_length)), 1024))). + let pow1685 = pow100 * pow1684; // pow(trace_generator, (safe_div((safe_mult(263, global_values.trace_length)), 512))). + let pow1686 = pow100 * pow1685; // pow(trace_generator, (safe_div((safe_mult(527, global_values.trace_length)), 1024))). + let pow1687 = pow100 * pow1686; // pow(trace_generator, (safe_div((safe_mult(33, global_values.trace_length)), 64))). + let pow1688 = pow100 * pow1687; // pow(trace_generator, (safe_div((safe_mult(529, global_values.trace_length)), 1024))). + let pow1689 = pow100 * pow1688; // pow(trace_generator, (safe_div((safe_mult(265, global_values.trace_length)), 512))). + let pow1690 = pow100 * pow1689; // pow(trace_generator, (safe_div((safe_mult(531, global_values.trace_length)), 1024))). + let pow1691 = pow100 * pow1690; // pow(trace_generator, (safe_div((safe_mult(133, global_values.trace_length)), 256))). + let pow1692 = pow100 * pow1691; // pow(trace_generator, (safe_div((safe_mult(533, global_values.trace_length)), 1024))). + let pow1693 = pow100 * pow1692; // pow(trace_generator, (safe_div((safe_mult(267, global_values.trace_length)), 512))). + let pow1694 = pow100 * pow1693; // pow(trace_generator, (safe_div((safe_mult(535, global_values.trace_length)), 1024))). + let pow1695 = pow580 * pow1694; // pow(trace_generator, (safe_div((safe_mult(17, global_values.trace_length)), 32))). + let pow1696 = pow100 * pow1695; // pow(trace_generator, (safe_div((safe_mult(545, global_values.trace_length)), 1024))). + let pow1697 = pow100 * pow1696; // pow(trace_generator, (safe_div((safe_mult(273, global_values.trace_length)), 512))). + let pow1698 = pow100 * pow1697; // pow(trace_generator, (safe_div((safe_mult(547, global_values.trace_length)), 1024))). + let pow1699 = pow100 * pow1698; // pow(trace_generator, (safe_div((safe_mult(137, global_values.trace_length)), 256))). + let pow1700 = pow100 * pow1699; // pow(trace_generator, (safe_div((safe_mult(549, global_values.trace_length)), 1024))). + let pow1701 = pow100 * pow1700; // pow(trace_generator, (safe_div((safe_mult(275, global_values.trace_length)), 512))). + let pow1702 = pow100 * pow1701; // pow(trace_generator, (safe_div((safe_mult(551, global_values.trace_length)), 1024))). + let pow1703 = pow100 * pow1702; // pow(trace_generator, (safe_div((safe_mult(69, global_values.trace_length)), 128))). + let pow1704 = pow100 * pow1703; // pow(trace_generator, (safe_div((safe_mult(553, global_values.trace_length)), 1024))). + let pow1705 = pow100 * pow1704; // pow(trace_generator, (safe_div((safe_mult(277, global_values.trace_length)), 512))). + let pow1706 = pow100 * pow1705; // pow(trace_generator, (safe_div((safe_mult(555, global_values.trace_length)), 1024))). + let pow1707 = pow100 * pow1706; // pow(trace_generator, (safe_div((safe_mult(139, global_values.trace_length)), 256))). + let pow1708 = pow100 * pow1707; // pow(trace_generator, (safe_div((safe_mult(557, global_values.trace_length)), 1024))). + let pow1709 = pow100 * pow1708; // pow(trace_generator, (safe_div((safe_mult(279, global_values.trace_length)), 512))). + let pow1710 = pow100 * pow1709; // pow(trace_generator, (safe_div((safe_mult(559, global_values.trace_length)), 1024))). + let pow1711 = pow100 * pow1710; // pow(trace_generator, (safe_div((safe_mult(35, global_values.trace_length)), 64))). + let pow1712 = pow100 * pow1711; // pow(trace_generator, (safe_div((safe_mult(561, global_values.trace_length)), 1024))). + let pow1713 = pow100 * pow1712; // pow(trace_generator, (safe_div((safe_mult(281, global_values.trace_length)), 512))). + let pow1714 = pow100 * pow1713; // pow(trace_generator, (safe_div((safe_mult(563, global_values.trace_length)), 1024))). + let pow1715 = pow100 * pow1714; // pow(trace_generator, (safe_div((safe_mult(141, global_values.trace_length)), 256))). + let pow1716 = pow100 * pow1715; // pow(trace_generator, (safe_div((safe_mult(565, global_values.trace_length)), 1024))). + let pow1717 = pow100 * pow1716; // pow(trace_generator, (safe_div((safe_mult(283, global_values.trace_length)), 512))). + let pow1718 = pow100 * pow1717; // pow(trace_generator, (safe_div((safe_mult(567, global_values.trace_length)), 1024))). + let pow1719 = pow580 * pow1718; // pow(trace_generator, (safe_div((safe_mult(9, global_values.trace_length)), 16))). + let pow1720 = pow32 * pow1719; // pow(trace_generator, (safe_div((safe_mult(36865, global_values.trace_length)), 65536))). + let pow1721 = pow32 * pow1720; // pow(trace_generator, (safe_div((safe_mult(18433, global_values.trace_length)), 32768))). + let pow1722 = pow32 * pow1721; // pow(trace_generator, (safe_div((safe_mult(36867, global_values.trace_length)), 65536))). + let pow1723 = pow32 * pow1722; // pow(trace_generator, (safe_div((safe_mult(9217, global_values.trace_length)), 16384))). + let pow1724 = pow32 * pow1723; // pow(trace_generator, (safe_div((safe_mult(36869, global_values.trace_length)), 65536))). + let pow1725 = pow32 * pow1724; // pow(trace_generator, (safe_div((safe_mult(18435, global_values.trace_length)), 32768))). + let pow1726 = pow32 * pow1725; // pow(trace_generator, (safe_div((safe_mult(36871, global_values.trace_length)), 65536))). + let pow1727 = pow32 * pow1726; // pow(trace_generator, (safe_div((safe_mult(4609, global_values.trace_length)), 8192))). + let pow1728 = pow32 * pow1727; // pow(trace_generator, (safe_div((safe_mult(36873, global_values.trace_length)), 65536))). + let pow1729 = pow32 * pow1728; // pow(trace_generator, (safe_div((safe_mult(18437, global_values.trace_length)), 32768))). + let pow1730 = pow32 * pow1729; // pow(trace_generator, (safe_div((safe_mult(36875, global_values.trace_length)), 65536))). + let pow1731 = pow32 * pow1730; // pow(trace_generator, (safe_div((safe_mult(9219, global_values.trace_length)), 16384))). + let pow1732 = pow32 * pow1731; // pow(trace_generator, (safe_div((safe_mult(36877, global_values.trace_length)), 65536))). + let pow1733 = pow32 * pow1732; // pow(trace_generator, (safe_div((safe_mult(18439, global_values.trace_length)), 32768))). + let pow1734 = pow32 * pow1733; // pow(trace_generator, (safe_div((safe_mult(36879, global_values.trace_length)), 65536))). + let pow1735 = pow32 * pow1734; // pow(trace_generator, (safe_div((safe_mult(2305, global_values.trace_length)), 4096))). + let pow1736 = pow32 * pow1735; // pow(trace_generator, (safe_div((safe_mult(36881, global_values.trace_length)), 65536))). + let pow1737 = pow32 * pow1736; // pow(trace_generator, (safe_div((safe_mult(18441, global_values.trace_length)), 32768))). + let pow1738 = pow32 * pow1737; // pow(trace_generator, (safe_div((safe_mult(36883, global_values.trace_length)), 65536))). + let pow1739 = pow32 * pow1738; // pow(trace_generator, (safe_div((safe_mult(9221, global_values.trace_length)), 16384))). + let pow1740 = pow32 * pow1739; // pow(trace_generator, (safe_div((safe_mult(36885, global_values.trace_length)), 65536))). + let pow1741 = pow32 * pow1740; // pow(trace_generator, (safe_div((safe_mult(18443, global_values.trace_length)), 32768))). + let pow1742 = pow32 * pow1741; // pow(trace_generator, (safe_div((safe_mult(36887, global_values.trace_length)), 65536))). + let pow1743 = pow793 * pow1719; // pow(trace_generator, (safe_div((safe_mult(37, global_values.trace_length)), 64))). + let pow1744 = pow32 * pow1743; // pow(trace_generator, (safe_div((safe_mult(37889, global_values.trace_length)), 65536))). + let pow1745 = pow32 * pow1744; // pow(trace_generator, (safe_div((safe_mult(18945, global_values.trace_length)), 32768))). + let pow1746 = pow32 * pow1745; // pow(trace_generator, (safe_div((safe_mult(37891, global_values.trace_length)), 65536))). + let pow1747 = pow32 * pow1746; // pow(trace_generator, (safe_div((safe_mult(9473, global_values.trace_length)), 16384))). + let pow1748 = pow32 * pow1747; // pow(trace_generator, (safe_div((safe_mult(37893, global_values.trace_length)), 65536))). + let pow1749 = pow32 * pow1748; // pow(trace_generator, (safe_div((safe_mult(18947, global_values.trace_length)), 32768))). + let pow1750 = pow32 * pow1749; // pow(trace_generator, (safe_div((safe_mult(37895, global_values.trace_length)), 65536))). + let pow1751 = pow32 * pow1750; // pow(trace_generator, (safe_div((safe_mult(4737, global_values.trace_length)), 8192))). + let pow1752 = pow32 * pow1751; // pow(trace_generator, (safe_div((safe_mult(37897, global_values.trace_length)), 65536))). + let pow1753 = pow32 * pow1752; // pow(trace_generator, (safe_div((safe_mult(18949, global_values.trace_length)), 32768))). + let pow1754 = pow32 * pow1753; // pow(trace_generator, (safe_div((safe_mult(37899, global_values.trace_length)), 65536))). + let pow1755 = pow32 * pow1754; // pow(trace_generator, (safe_div((safe_mult(9475, global_values.trace_length)), 16384))). + let pow1756 = pow32 * pow1755; // pow(trace_generator, (safe_div((safe_mult(37901, global_values.trace_length)), 65536))). + let pow1757 = pow32 * pow1756; // pow(trace_generator, (safe_div((safe_mult(18951, global_values.trace_length)), 32768))). + let pow1758 = pow32 * pow1757; // pow(trace_generator, (safe_div((safe_mult(37903, global_values.trace_length)), 65536))). + let pow1759 = pow32 * pow1758; // pow(trace_generator, (safe_div((safe_mult(2369, global_values.trace_length)), 4096))). + let pow1760 = pow32 * pow1759; // pow(trace_generator, (safe_div((safe_mult(37905, global_values.trace_length)), 65536))). + let pow1761 = pow32 * pow1760; // pow(trace_generator, (safe_div((safe_mult(18953, global_values.trace_length)), 32768))). + let pow1762 = pow32 * pow1761; // pow(trace_generator, (safe_div((safe_mult(37907, global_values.trace_length)), 65536))). + let pow1763 = pow32 * pow1762; // pow(trace_generator, (safe_div((safe_mult(9477, global_values.trace_length)), 16384))). + let pow1764 = pow32 * pow1763; // pow(trace_generator, (safe_div((safe_mult(37909, global_values.trace_length)), 65536))). + let pow1765 = pow32 * pow1764; // pow(trace_generator, (safe_div((safe_mult(18955, global_values.trace_length)), 32768))). + let pow1766 = pow32 * pow1765; // pow(trace_generator, (safe_div((safe_mult(37911, global_values.trace_length)), 65536))). + let pow1767 = pow793 * pow1743; // pow(trace_generator, (safe_div((safe_mult(19, global_values.trace_length)), 32))). + let pow1768 = pow32 * pow1767; // pow(trace_generator, (safe_div((safe_mult(38913, global_values.trace_length)), 65536))). + let pow1769 = pow32 * pow1768; // pow(trace_generator, (safe_div((safe_mult(19457, global_values.trace_length)), 32768))). + let pow1770 = pow32 * pow1769; // pow(trace_generator, (safe_div((safe_mult(38915, global_values.trace_length)), 65536))). + let pow1771 = pow32 * pow1770; // pow(trace_generator, (safe_div((safe_mult(9729, global_values.trace_length)), 16384))). + let pow1772 = pow32 * pow1771; // pow(trace_generator, (safe_div((safe_mult(38917, global_values.trace_length)), 65536))). + let pow1773 = pow32 * pow1772; // pow(trace_generator, (safe_div((safe_mult(19459, global_values.trace_length)), 32768))). + let pow1774 = pow32 * pow1773; // pow(trace_generator, (safe_div((safe_mult(38919, global_values.trace_length)), 65536))). + let pow1775 = pow32 * pow1774; // pow(trace_generator, (safe_div((safe_mult(4865, global_values.trace_length)), 8192))). + let pow1776 = pow32 * pow1775; // pow(trace_generator, (safe_div((safe_mult(38921, global_values.trace_length)), 65536))). + let pow1777 = pow32 * pow1776; // pow(trace_generator, (safe_div((safe_mult(19461, global_values.trace_length)), 32768))). + let pow1778 = pow32 * pow1777; // pow(trace_generator, (safe_div((safe_mult(38923, global_values.trace_length)), 65536))). + let pow1779 = pow32 * pow1778; // pow(trace_generator, (safe_div((safe_mult(9731, global_values.trace_length)), 16384))). + let pow1780 = pow32 * pow1779; // pow(trace_generator, (safe_div((safe_mult(38925, global_values.trace_length)), 65536))). + let pow1781 = pow32 * pow1780; // pow(trace_generator, (safe_div((safe_mult(19463, global_values.trace_length)), 32768))). + let pow1782 = pow32 * pow1781; // pow(trace_generator, (safe_div((safe_mult(38927, global_values.trace_length)), 65536))). + let pow1783 = pow32 * pow1782; // pow(trace_generator, (safe_div((safe_mult(2433, global_values.trace_length)), 4096))). + let pow1784 = pow32 * pow1783; // pow(trace_generator, (safe_div((safe_mult(38929, global_values.trace_length)), 65536))). + let pow1785 = pow32 * pow1784; // pow(trace_generator, (safe_div((safe_mult(19465, global_values.trace_length)), 32768))). + let pow1786 = pow32 * pow1785; // pow(trace_generator, (safe_div((safe_mult(38931, global_values.trace_length)), 65536))). + let pow1787 = pow32 * pow1786; // pow(trace_generator, (safe_div((safe_mult(9733, global_values.trace_length)), 16384))). + let pow1788 = pow32 * pow1787; // pow(trace_generator, (safe_div((safe_mult(38933, global_values.trace_length)), 65536))). + let pow1789 = pow32 * pow1788; // pow(trace_generator, (safe_div((safe_mult(19467, global_values.trace_length)), 32768))). + let pow1790 = pow32 * pow1789; // pow(trace_generator, (safe_div((safe_mult(38935, global_values.trace_length)), 65536))). + let pow1791 = pow793 * pow1767; // pow(trace_generator, (safe_div((safe_mult(39, global_values.trace_length)), 64))). + let pow1792 = pow32 * pow1791; // pow(trace_generator, (safe_div((safe_mult(39937, global_values.trace_length)), 65536))). + let pow1793 = pow32 * pow1792; // pow(trace_generator, (safe_div((safe_mult(19969, global_values.trace_length)), 32768))). + let pow1794 = pow32 * pow1793; // pow(trace_generator, (safe_div((safe_mult(39939, global_values.trace_length)), 65536))). + let pow1795 = pow32 * pow1794; // pow(trace_generator, (safe_div((safe_mult(9985, global_values.trace_length)), 16384))). + let pow1796 = pow32 * pow1795; // pow(trace_generator, (safe_div((safe_mult(39941, global_values.trace_length)), 65536))). + let pow1797 = pow32 * pow1796; // pow(trace_generator, (safe_div((safe_mult(19971, global_values.trace_length)), 32768))). + let pow1798 = pow32 * pow1797; // pow(trace_generator, (safe_div((safe_mult(39943, global_values.trace_length)), 65536))). + let pow1799 = pow32 * pow1798; // pow(trace_generator, (safe_div((safe_mult(4993, global_values.trace_length)), 8192))). + let pow1800 = pow32 * pow1799; // pow(trace_generator, (safe_div((safe_mult(39945, global_values.trace_length)), 65536))). + let pow1801 = pow32 * pow1800; // pow(trace_generator, (safe_div((safe_mult(19973, global_values.trace_length)), 32768))). + let pow1802 = pow32 * pow1801; // pow(trace_generator, (safe_div((safe_mult(39947, global_values.trace_length)), 65536))). + let pow1803 = pow32 * pow1802; // pow(trace_generator, (safe_div((safe_mult(9987, global_values.trace_length)), 16384))). + let pow1804 = pow32 * pow1803; // pow(trace_generator, (safe_div((safe_mult(39949, global_values.trace_length)), 65536))). + let pow1805 = pow32 * pow1804; // pow(trace_generator, (safe_div((safe_mult(19975, global_values.trace_length)), 32768))). + let pow1806 = pow32 * pow1805; // pow(trace_generator, (safe_div((safe_mult(39951, global_values.trace_length)), 65536))). + let pow1807 = pow32 * pow1806; // pow(trace_generator, (safe_div((safe_mult(2497, global_values.trace_length)), 4096))). + let pow1808 = pow32 * pow1807; // pow(trace_generator, (safe_div((safe_mult(39953, global_values.trace_length)), 65536))). + let pow1809 = pow32 * pow1808; // pow(trace_generator, (safe_div((safe_mult(19977, global_values.trace_length)), 32768))). + let pow1810 = pow32 * pow1809; // pow(trace_generator, (safe_div((safe_mult(39955, global_values.trace_length)), 65536))). + let pow1811 = pow32 * pow1810; // pow(trace_generator, (safe_div((safe_mult(9989, global_values.trace_length)), 16384))). + let pow1812 = pow32 * pow1811; // pow(trace_generator, (safe_div((safe_mult(39957, global_values.trace_length)), 65536))). + let pow1813 = pow32 * pow1812; // pow(trace_generator, (safe_div((safe_mult(19979, global_values.trace_length)), 32768))). + let pow1814 = pow32 * pow1813; // pow(trace_generator, (safe_div((safe_mult(39959, global_values.trace_length)), 65536))). + let pow1815 = pow793 * pow1791; // pow(trace_generator, (safe_div((safe_mult(5, global_values.trace_length)), 8))). + let pow1816 = pow32 * pow1815; // pow(trace_generator, (safe_div((safe_mult(40961, global_values.trace_length)), 65536))). + let pow1817 = pow32 * pow1816; // pow(trace_generator, (safe_div((safe_mult(20481, global_values.trace_length)), 32768))). + let pow1818 = pow32 * pow1817; // pow(trace_generator, (safe_div((safe_mult(40963, global_values.trace_length)), 65536))). + let pow1819 = pow32 * pow1818; // pow(trace_generator, (safe_div((safe_mult(10241, global_values.trace_length)), 16384))). + let pow1820 = pow32 * pow1819; // pow(trace_generator, (safe_div((safe_mult(40965, global_values.trace_length)), 65536))). + let pow1821 = pow32 * pow1820; // pow(trace_generator, (safe_div((safe_mult(20483, global_values.trace_length)), 32768))). + let pow1822 = pow32 * pow1821; // pow(trace_generator, (safe_div((safe_mult(40967, global_values.trace_length)), 65536))). + let pow1823 = pow32 * pow1822; // pow(trace_generator, (safe_div((safe_mult(5121, global_values.trace_length)), 8192))). + let pow1824 = pow32 * pow1823; // pow(trace_generator, (safe_div((safe_mult(40969, global_values.trace_length)), 65536))). + let pow1825 = pow32 * pow1824; // pow(trace_generator, (safe_div((safe_mult(20485, global_values.trace_length)), 32768))). + let pow1826 = pow32 * pow1825; // pow(trace_generator, (safe_div((safe_mult(40971, global_values.trace_length)), 65536))). + let pow1827 = pow32 * pow1826; // pow(trace_generator, (safe_div((safe_mult(10243, global_values.trace_length)), 16384))). + let pow1828 = pow32 * pow1827; // pow(trace_generator, (safe_div((safe_mult(40973, global_values.trace_length)), 65536))). + let pow1829 = pow32 * pow1828; // pow(trace_generator, (safe_div((safe_mult(20487, global_values.trace_length)), 32768))). + let pow1830 = pow32 * pow1829; // pow(trace_generator, (safe_div((safe_mult(40975, global_values.trace_length)), 65536))). + let pow1831 = pow32 * pow1830; // pow(trace_generator, (safe_div((safe_mult(2561, global_values.trace_length)), 4096))). + let pow1832 = pow32 * pow1831; // pow(trace_generator, (safe_div((safe_mult(40977, global_values.trace_length)), 65536))). + let pow1833 = pow32 * pow1832; // pow(trace_generator, (safe_div((safe_mult(20489, global_values.trace_length)), 32768))). + let pow1834 = pow32 * pow1833; // pow(trace_generator, (safe_div((safe_mult(40979, global_values.trace_length)), 65536))). + let pow1835 = pow32 * pow1834; // pow(trace_generator, (safe_div((safe_mult(10245, global_values.trace_length)), 16384))). + let pow1836 = pow32 * pow1835; // pow(trace_generator, (safe_div((safe_mult(40981, global_values.trace_length)), 65536))). + let pow1837 = pow32 * pow1836; // pow(trace_generator, (safe_div((safe_mult(20491, global_values.trace_length)), 32768))). + let pow1838 = pow32 * pow1837; // pow(trace_generator, (safe_div((safe_mult(40983, global_values.trace_length)), 65536))). + let pow1839 = pow79 * pow1838; // pow(trace_generator, (safe_div((safe_mult(641, global_values.trace_length)), 1024))). + let pow1840 = pow100 * pow1839; // pow(trace_generator, (safe_div((safe_mult(321, global_values.trace_length)), 512))). + let pow1841 = pow100 * pow1840; // pow(trace_generator, (safe_div((safe_mult(643, global_values.trace_length)), 1024))). + let pow1842 = pow100 * pow1841; // pow(trace_generator, (safe_div((safe_mult(161, global_values.trace_length)), 256))). + let pow1843 = pow100 * pow1842; // pow(trace_generator, (safe_div((safe_mult(645, global_values.trace_length)), 1024))). + let pow1844 = pow100 * pow1843; // pow(trace_generator, (safe_div((safe_mult(323, global_values.trace_length)), 512))). + let pow1845 = pow100 * pow1844; // pow(trace_generator, (safe_div((safe_mult(647, global_values.trace_length)), 1024))). + let pow1846 = pow100 * pow1845; // pow(trace_generator, (safe_div((safe_mult(81, global_values.trace_length)), 128))). + let pow1847 = pow100 * pow1846; // pow(trace_generator, (safe_div((safe_mult(649, global_values.trace_length)), 1024))). + let pow1848 = pow100 * pow1847; // pow(trace_generator, (safe_div((safe_mult(325, global_values.trace_length)), 512))). + let pow1849 = pow100 * pow1848; // pow(trace_generator, (safe_div((safe_mult(651, global_values.trace_length)), 1024))). + let pow1850 = pow100 * pow1849; // pow(trace_generator, (safe_div((safe_mult(163, global_values.trace_length)), 256))). + let pow1851 = pow100 * pow1850; // pow(trace_generator, (safe_div((safe_mult(653, global_values.trace_length)), 1024))). + let pow1852 = pow100 * pow1851; // pow(trace_generator, (safe_div((safe_mult(327, global_values.trace_length)), 512))). + let pow1853 = pow100 * pow1852; // pow(trace_generator, (safe_div((safe_mult(655, global_values.trace_length)), 1024))). + let pow1854 = pow100 * pow1853; // pow(trace_generator, (safe_div((safe_mult(41, global_values.trace_length)), 64))). + let pow1855 = pow32 * pow1854; // pow(trace_generator, (safe_div((safe_mult(41985, global_values.trace_length)), 65536))). + let pow1856 = pow32 * pow1855; // pow(trace_generator, (safe_div((safe_mult(20993, global_values.trace_length)), 32768))). + let pow1857 = pow32 * pow1856; // pow(trace_generator, (safe_div((safe_mult(41987, global_values.trace_length)), 65536))). + let pow1858 = pow32 * pow1857; // pow(trace_generator, (safe_div((safe_mult(10497, global_values.trace_length)), 16384))). + let pow1859 = pow32 * pow1858; // pow(trace_generator, (safe_div((safe_mult(41989, global_values.trace_length)), 65536))). + let pow1860 = pow32 * pow1859; // pow(trace_generator, (safe_div((safe_mult(20995, global_values.trace_length)), 32768))). + let pow1861 = pow32 * pow1860; // pow(trace_generator, (safe_div((safe_mult(41991, global_values.trace_length)), 65536))). + let pow1862 = pow32 * pow1861; // pow(trace_generator, (safe_div((safe_mult(5249, global_values.trace_length)), 8192))). + let pow1863 = pow32 * pow1862; // pow(trace_generator, (safe_div((safe_mult(41993, global_values.trace_length)), 65536))). + let pow1864 = pow32 * pow1863; // pow(trace_generator, (safe_div((safe_mult(20997, global_values.trace_length)), 32768))). + let pow1865 = pow32 * pow1864; // pow(trace_generator, (safe_div((safe_mult(41995, global_values.trace_length)), 65536))). + let pow1866 = pow32 * pow1865; // pow(trace_generator, (safe_div((safe_mult(10499, global_values.trace_length)), 16384))). + let pow1867 = pow32 * pow1866; // pow(trace_generator, (safe_div((safe_mult(41997, global_values.trace_length)), 65536))). + let pow1868 = pow32 * pow1867; // pow(trace_generator, (safe_div((safe_mult(20999, global_values.trace_length)), 32768))). + let pow1869 = pow32 * pow1868; // pow(trace_generator, (safe_div((safe_mult(41999, global_values.trace_length)), 65536))). + let pow1870 = pow32 * pow1869; // pow(trace_generator, (safe_div((safe_mult(2625, global_values.trace_length)), 4096))). + let pow1871 = pow32 * pow1870; // pow(trace_generator, (safe_div((safe_mult(42001, global_values.trace_length)), 65536))). + let pow1872 = pow32 * pow1871; // pow(trace_generator, (safe_div((safe_mult(21001, global_values.trace_length)), 32768))). + let pow1873 = pow32 * pow1872; // pow(trace_generator, (safe_div((safe_mult(42003, global_values.trace_length)), 65536))). + let pow1874 = pow32 * pow1873; // pow(trace_generator, (safe_div((safe_mult(10501, global_values.trace_length)), 16384))). + let pow1875 = pow32 * pow1874; // pow(trace_generator, (safe_div((safe_mult(42005, global_values.trace_length)), 65536))). + let pow1876 = pow32 * pow1875; // pow(trace_generator, (safe_div((safe_mult(21003, global_values.trace_length)), 32768))). + let pow1877 = pow32 * pow1876; // pow(trace_generator, (safe_div((safe_mult(42007, global_values.trace_length)), 65536))). + let pow1878 = pow79 * pow1877; // pow(trace_generator, (safe_div((safe_mult(657, global_values.trace_length)), 1024))). + let pow1879 = pow100 * pow1878; // pow(trace_generator, (safe_div((safe_mult(329, global_values.trace_length)), 512))). + let pow1880 = pow100 * pow1879; // pow(trace_generator, (safe_div((safe_mult(659, global_values.trace_length)), 1024))). + let pow1881 = pow100 * pow1880; // pow(trace_generator, (safe_div((safe_mult(165, global_values.trace_length)), 256))). + let pow1882 = pow100 * pow1881; // pow(trace_generator, (safe_div((safe_mult(661, global_values.trace_length)), 1024))). + let pow1883 = pow100 * pow1882; // pow(trace_generator, (safe_div((safe_mult(331, global_values.trace_length)), 512))). + let pow1884 = pow100 * pow1883; // pow(trace_generator, (safe_div((safe_mult(663, global_values.trace_length)), 1024))). + let pow1885 = pow580 * pow1884; // pow(trace_generator, (safe_div((safe_mult(21, global_values.trace_length)), 32))). + let pow1886 = pow32 * pow1885; // pow(trace_generator, (safe_div((safe_mult(43009, global_values.trace_length)), 65536))). + let pow1887 = pow32 * pow1886; // pow(trace_generator, (safe_div((safe_mult(21505, global_values.trace_length)), 32768))). + let pow1888 = pow32 * pow1887; // pow(trace_generator, (safe_div((safe_mult(43011, global_values.trace_length)), 65536))). + let pow1889 = pow32 * pow1888; // pow(trace_generator, (safe_div((safe_mult(10753, global_values.trace_length)), 16384))). + let pow1890 = pow32 * pow1889; // pow(trace_generator, (safe_div((safe_mult(43013, global_values.trace_length)), 65536))). + let pow1891 = pow32 * pow1890; // pow(trace_generator, (safe_div((safe_mult(21507, global_values.trace_length)), 32768))). + let pow1892 = pow32 * pow1891; // pow(trace_generator, (safe_div((safe_mult(43015, global_values.trace_length)), 65536))). + let pow1893 = pow32 * pow1892; // pow(trace_generator, (safe_div((safe_mult(5377, global_values.trace_length)), 8192))). + let pow1894 = pow32 * pow1893; // pow(trace_generator, (safe_div((safe_mult(43017, global_values.trace_length)), 65536))). + let pow1895 = pow32 * pow1894; // pow(trace_generator, (safe_div((safe_mult(21509, global_values.trace_length)), 32768))). + let pow1896 = pow32 * pow1895; // pow(trace_generator, (safe_div((safe_mult(43019, global_values.trace_length)), 65536))). + let pow1897 = pow32 * pow1896; // pow(trace_generator, (safe_div((safe_mult(10755, global_values.trace_length)), 16384))). + let pow1898 = pow32 * pow1897; // pow(trace_generator, (safe_div((safe_mult(43021, global_values.trace_length)), 65536))). + let pow1899 = pow32 * pow1898; // pow(trace_generator, (safe_div((safe_mult(21511, global_values.trace_length)), 32768))). + let pow1900 = pow32 * pow1899; // pow(trace_generator, (safe_div((safe_mult(43023, global_values.trace_length)), 65536))). + let pow1901 = pow32 * pow1900; // pow(trace_generator, (safe_div((safe_mult(2689, global_values.trace_length)), 4096))). + let pow1902 = pow32 * pow1901; // pow(trace_generator, (safe_div((safe_mult(43025, global_values.trace_length)), 65536))). + let pow1903 = pow32 * pow1902; // pow(trace_generator, (safe_div((safe_mult(21513, global_values.trace_length)), 32768))). + let pow1904 = pow32 * pow1903; // pow(trace_generator, (safe_div((safe_mult(43027, global_values.trace_length)), 65536))). + let pow1905 = pow32 * pow1904; // pow(trace_generator, (safe_div((safe_mult(10757, global_values.trace_length)), 16384))). + let pow1906 = pow32 * pow1905; // pow(trace_generator, (safe_div((safe_mult(43029, global_values.trace_length)), 65536))). + let pow1907 = pow32 * pow1906; // pow(trace_generator, (safe_div((safe_mult(21515, global_values.trace_length)), 32768))). + let pow1908 = pow32 * pow1907; // pow(trace_generator, (safe_div((safe_mult(43031, global_values.trace_length)), 65536))). + let pow1909 = pow79 * pow1908; // pow(trace_generator, (safe_div((safe_mult(673, global_values.trace_length)), 1024))). + let pow1910 = pow100 * pow1909; // pow(trace_generator, (safe_div((safe_mult(337, global_values.trace_length)), 512))). + let pow1911 = pow100 * pow1910; // pow(trace_generator, (safe_div((safe_mult(675, global_values.trace_length)), 1024))). + let pow1912 = pow100 * pow1911; // pow(trace_generator, (safe_div((safe_mult(169, global_values.trace_length)), 256))). + let pow1913 = pow100 * pow1912; // pow(trace_generator, (safe_div((safe_mult(677, global_values.trace_length)), 1024))). + let pow1914 = pow100 * pow1913; // pow(trace_generator, (safe_div((safe_mult(339, global_values.trace_length)), 512))). + let pow1915 = pow100 * pow1914; // pow(trace_generator, (safe_div((safe_mult(679, global_values.trace_length)), 1024))). + let pow1916 = pow100 * pow1915; // pow(trace_generator, (safe_div((safe_mult(85, global_values.trace_length)), 128))). + let pow1917 = pow100 * pow1916; // pow(trace_generator, (safe_div((safe_mult(681, global_values.trace_length)), 1024))). + let pow1918 = pow100 * pow1917; // pow(trace_generator, (safe_div((safe_mult(341, global_values.trace_length)), 512))). + let pow1919 = pow100 * pow1918; // pow(trace_generator, (safe_div((safe_mult(683, global_values.trace_length)), 1024))). + let pow1920 = pow100 * pow1919; // pow(trace_generator, (safe_div((safe_mult(171, global_values.trace_length)), 256))). + let pow1921 = pow100 * pow1920; // pow(trace_generator, (safe_div((safe_mult(685, global_values.trace_length)), 1024))). + let pow1922 = pow100 * pow1921; // pow(trace_generator, (safe_div((safe_mult(343, global_values.trace_length)), 512))). + let pow1923 = pow100 * pow1922; // pow(trace_generator, (safe_div((safe_mult(687, global_values.trace_length)), 1024))). + let pow1924 = pow100 * pow1923; // pow(trace_generator, (safe_div((safe_mult(43, global_values.trace_length)), 64))). + let pow1925 = pow32 * pow1924; // pow(trace_generator, (safe_div((safe_mult(44033, global_values.trace_length)), 65536))). + let pow1926 = pow32 * pow1925; // pow(trace_generator, (safe_div((safe_mult(22017, global_values.trace_length)), 32768))). + let pow1927 = pow32 * pow1926; // pow(trace_generator, (safe_div((safe_mult(44035, global_values.trace_length)), 65536))). + let pow1928 = pow32 * pow1927; // pow(trace_generator, (safe_div((safe_mult(11009, global_values.trace_length)), 16384))). + let pow1929 = pow32 * pow1928; // pow(trace_generator, (safe_div((safe_mult(44037, global_values.trace_length)), 65536))). + let pow1930 = pow32 * pow1929; // pow(trace_generator, (safe_div((safe_mult(22019, global_values.trace_length)), 32768))). + let pow1931 = pow32 * pow1930; // pow(trace_generator, (safe_div((safe_mult(44039, global_values.trace_length)), 65536))). + let pow1932 = pow32 * pow1931; // pow(trace_generator, (safe_div((safe_mult(5505, global_values.trace_length)), 8192))). + let pow1933 = pow32 * pow1932; // pow(trace_generator, (safe_div((safe_mult(44041, global_values.trace_length)), 65536))). + let pow1934 = pow32 * pow1933; // pow(trace_generator, (safe_div((safe_mult(22021, global_values.trace_length)), 32768))). + let pow1935 = pow32 * pow1934; // pow(trace_generator, (safe_div((safe_mult(44043, global_values.trace_length)), 65536))). + let pow1936 = pow32 * pow1935; // pow(trace_generator, (safe_div((safe_mult(11011, global_values.trace_length)), 16384))). + let pow1937 = pow32 * pow1936; // pow(trace_generator, (safe_div((safe_mult(44045, global_values.trace_length)), 65536))). + let pow1938 = pow32 * pow1937; // pow(trace_generator, (safe_div((safe_mult(22023, global_values.trace_length)), 32768))). + let pow1939 = pow32 * pow1938; // pow(trace_generator, (safe_div((safe_mult(44047, global_values.trace_length)), 65536))). + let pow1940 = pow32 * pow1939; // pow(trace_generator, (safe_div((safe_mult(2753, global_values.trace_length)), 4096))). + let pow1941 = pow32 * pow1940; // pow(trace_generator, (safe_div((safe_mult(44049, global_values.trace_length)), 65536))). + let pow1942 = pow32 * pow1941; // pow(trace_generator, (safe_div((safe_mult(22025, global_values.trace_length)), 32768))). + let pow1943 = pow32 * pow1942; // pow(trace_generator, (safe_div((safe_mult(44051, global_values.trace_length)), 65536))). + let pow1944 = pow32 * pow1943; // pow(trace_generator, (safe_div((safe_mult(11013, global_values.trace_length)), 16384))). + let pow1945 = pow32 * pow1944; // pow(trace_generator, (safe_div((safe_mult(44053, global_values.trace_length)), 65536))). + let pow1946 = pow32 * pow1945; // pow(trace_generator, (safe_div((safe_mult(22027, global_values.trace_length)), 32768))). + let pow1947 = pow32 * pow1946; // pow(trace_generator, (safe_div((safe_mult(44055, global_values.trace_length)), 65536))). + let pow1948 = pow79 * pow1947; // pow(trace_generator, (safe_div((safe_mult(689, global_values.trace_length)), 1024))). + let pow1949 = pow100 * pow1948; // pow(trace_generator, (safe_div((safe_mult(345, global_values.trace_length)), 512))). + let pow1950 = pow100 * pow1949; // pow(trace_generator, (safe_div((safe_mult(691, global_values.trace_length)), 1024))). + let pow1951 = pow100 * pow1950; // pow(trace_generator, (safe_div((safe_mult(173, global_values.trace_length)), 256))). + let pow1952 = pow100 * pow1951; // pow(trace_generator, (safe_div((safe_mult(693, global_values.trace_length)), 1024))). + let pow1953 = pow100 * pow1952; // pow(trace_generator, (safe_div((safe_mult(347, global_values.trace_length)), 512))). + let pow1954 = pow100 * pow1953; // pow(trace_generator, (safe_div((safe_mult(695, global_values.trace_length)), 1024))). + let pow1955 = pow580 * pow1954; // pow(trace_generator, (safe_div((safe_mult(11, global_values.trace_length)), 16))). + let pow1956 = pow32 * pow1955; // pow(trace_generator, (safe_div((safe_mult(45057, global_values.trace_length)), 65536))). + let pow1957 = pow32 * pow1956; // pow(trace_generator, (safe_div((safe_mult(22529, global_values.trace_length)), 32768))). + let pow1958 = pow32 * pow1957; // pow(trace_generator, (safe_div((safe_mult(45059, global_values.trace_length)), 65536))). + let pow1959 = pow32 * pow1958; // pow(trace_generator, (safe_div((safe_mult(11265, global_values.trace_length)), 16384))). + let pow1960 = pow32 * pow1959; // pow(trace_generator, (safe_div((safe_mult(45061, global_values.trace_length)), 65536))). + let pow1961 = pow32 * pow1960; // pow(trace_generator, (safe_div((safe_mult(22531, global_values.trace_length)), 32768))). + let pow1962 = pow32 * pow1961; // pow(trace_generator, (safe_div((safe_mult(45063, global_values.trace_length)), 65536))). + let pow1963 = pow32 * pow1962; // pow(trace_generator, (safe_div((safe_mult(5633, global_values.trace_length)), 8192))). + let pow1964 = pow32 * pow1963; // pow(trace_generator, (safe_div((safe_mult(45065, global_values.trace_length)), 65536))). + let pow1965 = pow32 * pow1964; // pow(trace_generator, (safe_div((safe_mult(22533, global_values.trace_length)), 32768))). + let pow1966 = pow32 * pow1965; // pow(trace_generator, (safe_div((safe_mult(45067, global_values.trace_length)), 65536))). + let pow1967 = pow32 * pow1966; // pow(trace_generator, (safe_div((safe_mult(11267, global_values.trace_length)), 16384))). + let pow1968 = pow32 * pow1967; // pow(trace_generator, (safe_div((safe_mult(45069, global_values.trace_length)), 65536))). + let pow1969 = pow32 * pow1968; // pow(trace_generator, (safe_div((safe_mult(22535, global_values.trace_length)), 32768))). + let pow1970 = pow32 * pow1969; // pow(trace_generator, (safe_div((safe_mult(45071, global_values.trace_length)), 65536))). + let pow1971 = pow32 * pow1970; // pow(trace_generator, (safe_div((safe_mult(2817, global_values.trace_length)), 4096))). + let pow1972 = pow32 * pow1971; // pow(trace_generator, (safe_div((safe_mult(45073, global_values.trace_length)), 65536))). + let pow1973 = pow32 * pow1972; // pow(trace_generator, (safe_div((safe_mult(22537, global_values.trace_length)), 32768))). + let pow1974 = pow32 * pow1973; // pow(trace_generator, (safe_div((safe_mult(45075, global_values.trace_length)), 65536))). + let pow1975 = pow32 * pow1974; // pow(trace_generator, (safe_div((safe_mult(11269, global_values.trace_length)), 16384))). + let pow1976 = pow32 * pow1975; // pow(trace_generator, (safe_div((safe_mult(45077, global_values.trace_length)), 65536))). + let pow1977 = pow32 * pow1976; // pow(trace_generator, (safe_div((safe_mult(22539, global_values.trace_length)), 32768))). + let pow1978 = pow32 * pow1977; // pow(trace_generator, (safe_div((safe_mult(45079, global_values.trace_length)), 65536))). + let pow1979 = pow79 * pow1978; // pow(trace_generator, (safe_div((safe_mult(705, global_values.trace_length)), 1024))). + let pow1980 = pow100 * pow1979; // pow(trace_generator, (safe_div((safe_mult(353, global_values.trace_length)), 512))). + let pow1981 = pow100 * pow1980; // pow(trace_generator, (safe_div((safe_mult(707, global_values.trace_length)), 1024))). + let pow1982 = pow100 * pow1981; // pow(trace_generator, (safe_div((safe_mult(177, global_values.trace_length)), 256))). + let pow1983 = pow100 * pow1982; // pow(trace_generator, (safe_div((safe_mult(709, global_values.trace_length)), 1024))). + let pow1984 = pow100 * pow1983; // pow(trace_generator, (safe_div((safe_mult(355, global_values.trace_length)), 512))). + let pow1985 = pow100 * pow1984; // pow(trace_generator, (safe_div((safe_mult(711, global_values.trace_length)), 1024))). + let pow1986 = pow100 * pow1985; // pow(trace_generator, (safe_div((safe_mult(89, global_values.trace_length)), 128))). + let pow1987 = pow100 * pow1986; // pow(trace_generator, (safe_div((safe_mult(713, global_values.trace_length)), 1024))). + let pow1988 = pow100 * pow1987; // pow(trace_generator, (safe_div((safe_mult(357, global_values.trace_length)), 512))). + let pow1989 = pow100 * pow1988; // pow(trace_generator, (safe_div((safe_mult(715, global_values.trace_length)), 1024))). + let pow1990 = pow100 * pow1989; // pow(trace_generator, (safe_div((safe_mult(179, global_values.trace_length)), 256))). + let pow1991 = pow100 * pow1990; // pow(trace_generator, (safe_div((safe_mult(717, global_values.trace_length)), 1024))). + let pow1992 = pow100 * pow1991; // pow(trace_generator, (safe_div((safe_mult(359, global_values.trace_length)), 512))). + let pow1993 = pow100 * pow1992; // pow(trace_generator, (safe_div((safe_mult(719, global_values.trace_length)), 1024))). + let pow1994 = pow100 * pow1993; // pow(trace_generator, (safe_div((safe_mult(45, global_values.trace_length)), 64))). + let pow1995 = pow32 * pow1994; // pow(trace_generator, (safe_div((safe_mult(46081, global_values.trace_length)), 65536))). + let pow1996 = pow32 * pow1995; // pow(trace_generator, (safe_div((safe_mult(23041, global_values.trace_length)), 32768))). + let pow1997 = pow32 * pow1996; // pow(trace_generator, (safe_div((safe_mult(46083, global_values.trace_length)), 65536))). + let pow1998 = pow32 * pow1997; // pow(trace_generator, (safe_div((safe_mult(11521, global_values.trace_length)), 16384))). + let pow1999 = pow32 * pow1998; // pow(trace_generator, (safe_div((safe_mult(46085, global_values.trace_length)), 65536))). + let pow2000 = pow32 * pow1999; // pow(trace_generator, (safe_div((safe_mult(23043, global_values.trace_length)), 32768))). + let pow2001 = pow32 * pow2000; // pow(trace_generator, (safe_div((safe_mult(46087, global_values.trace_length)), 65536))). + let pow2002 = pow32 * pow2001; // pow(trace_generator, (safe_div((safe_mult(5761, global_values.trace_length)), 8192))). + let pow2003 = pow32 * pow2002; // pow(trace_generator, (safe_div((safe_mult(46089, global_values.trace_length)), 65536))). + let pow2004 = pow32 * pow2003; // pow(trace_generator, (safe_div((safe_mult(23045, global_values.trace_length)), 32768))). + let pow2005 = pow32 * pow2004; // pow(trace_generator, (safe_div((safe_mult(46091, global_values.trace_length)), 65536))). + let pow2006 = pow32 * pow2005; // pow(trace_generator, (safe_div((safe_mult(11523, global_values.trace_length)), 16384))). + let pow2007 = pow32 * pow2006; // pow(trace_generator, (safe_div((safe_mult(46093, global_values.trace_length)), 65536))). + let pow2008 = pow32 * pow2007; // pow(trace_generator, (safe_div((safe_mult(23047, global_values.trace_length)), 32768))). + let pow2009 = pow32 * pow2008; // pow(trace_generator, (safe_div((safe_mult(46095, global_values.trace_length)), 65536))). + let pow2010 = pow32 * pow2009; // pow(trace_generator, (safe_div((safe_mult(2881, global_values.trace_length)), 4096))). + let pow2011 = pow32 * pow2010; // pow(trace_generator, (safe_div((safe_mult(46097, global_values.trace_length)), 65536))). + let pow2012 = pow32 * pow2011; // pow(trace_generator, (safe_div((safe_mult(23049, global_values.trace_length)), 32768))). + let pow2013 = pow32 * pow2012; // pow(trace_generator, (safe_div((safe_mult(46099, global_values.trace_length)), 65536))). + let pow2014 = pow32 * pow2013; // pow(trace_generator, (safe_div((safe_mult(11525, global_values.trace_length)), 16384))). + let pow2015 = pow32 * pow2014; // pow(trace_generator, (safe_div((safe_mult(46101, global_values.trace_length)), 65536))). + let pow2016 = pow32 * pow2015; // pow(trace_generator, (safe_div((safe_mult(23051, global_values.trace_length)), 32768))). + let pow2017 = pow32 * pow2016; // pow(trace_generator, (safe_div((safe_mult(46103, global_values.trace_length)), 65536))). + let pow2018 = pow79 * pow2017; // pow(trace_generator, (safe_div((safe_mult(721, global_values.trace_length)), 1024))). + let pow2019 = pow100 * pow2018; // pow(trace_generator, (safe_div((safe_mult(361, global_values.trace_length)), 512))). + let pow2020 = pow100 * pow2019; // pow(trace_generator, (safe_div((safe_mult(723, global_values.trace_length)), 1024))). + let pow2021 = pow100 * pow2020; // pow(trace_generator, (safe_div((safe_mult(181, global_values.trace_length)), 256))). + let pow2022 = pow100 * pow2021; // pow(trace_generator, (safe_div((safe_mult(725, global_values.trace_length)), 1024))). + let pow2023 = pow100 * pow2022; // pow(trace_generator, (safe_div((safe_mult(363, global_values.trace_length)), 512))). + let pow2024 = pow100 * pow2023; // pow(trace_generator, (safe_div((safe_mult(727, global_values.trace_length)), 1024))). + let pow2025 = pow580 * pow2024; // pow(trace_generator, (safe_div((safe_mult(23, global_values.trace_length)), 32))). + let pow2026 = pow793 * pow2025; // pow(trace_generator, (safe_div((safe_mult(47, global_values.trace_length)), 64))). + let pow2027 = pow32 * pow2025; // pow(trace_generator, (safe_div((safe_mult(47105, global_values.trace_length)), 65536))). + let pow2028 = pow32 * pow2026; // pow(trace_generator, (safe_div((safe_mult(48129, global_values.trace_length)), 65536))). + let pow2029 = pow32 * pow2027; // pow(trace_generator, (safe_div((safe_mult(23553, global_values.trace_length)), 32768))). + let pow2030 = pow32 * pow2028; // pow(trace_generator, (safe_div((safe_mult(24065, global_values.trace_length)), 32768))). + let pow2031 = pow32 * pow2029; // pow(trace_generator, (safe_div((safe_mult(47107, global_values.trace_length)), 65536))). + let pow2032 = pow32 * pow2030; // pow(trace_generator, (safe_div((safe_mult(48131, global_values.trace_length)), 65536))). + let pow2033 = pow32 * pow2031; // pow(trace_generator, (safe_div((safe_mult(11777, global_values.trace_length)), 16384))). + let pow2034 = pow32 * pow2032; // pow(trace_generator, (safe_div((safe_mult(12033, global_values.trace_length)), 16384))). + let pow2035 = pow32 * pow2033; // pow(trace_generator, (safe_div((safe_mult(47109, global_values.trace_length)), 65536))). + let pow2036 = pow32 * pow2034; // pow(trace_generator, (safe_div((safe_mult(48133, global_values.trace_length)), 65536))). + let pow2037 = pow32 * pow2035; // pow(trace_generator, (safe_div((safe_mult(23555, global_values.trace_length)), 32768))). + let pow2038 = pow32 * pow2036; // pow(trace_generator, (safe_div((safe_mult(24067, global_values.trace_length)), 32768))). + let pow2039 = pow32 * pow2037; // pow(trace_generator, (safe_div((safe_mult(47111, global_values.trace_length)), 65536))). + let pow2040 = pow32 * pow2039; // pow(trace_generator, (safe_div((safe_mult(5889, global_values.trace_length)), 8192))). + let pow2041 = pow32 * pow2040; // pow(trace_generator, (safe_div((safe_mult(47113, global_values.trace_length)), 65536))). + let pow2042 = pow32 * pow2041; // pow(trace_generator, (safe_div((safe_mult(23557, global_values.trace_length)), 32768))). + let pow2043 = pow32 * pow2042; // pow(trace_generator, (safe_div((safe_mult(47115, global_values.trace_length)), 65536))). + let pow2044 = pow32 * pow2043; // pow(trace_generator, (safe_div((safe_mult(11779, global_values.trace_length)), 16384))). + let pow2045 = pow32 * pow2044; // pow(trace_generator, (safe_div((safe_mult(47117, global_values.trace_length)), 65536))). + let pow2046 = pow32 * pow2045; // pow(trace_generator, (safe_div((safe_mult(23559, global_values.trace_length)), 32768))). + let pow2047 = pow32 * pow2046; // pow(trace_generator, (safe_div((safe_mult(47119, global_values.trace_length)), 65536))). + let pow2048 = pow32 * pow2047; // pow(trace_generator, (safe_div((safe_mult(2945, global_values.trace_length)), 4096))). + let pow2049 = pow32 * pow2048; // pow(trace_generator, (safe_div((safe_mult(47121, global_values.trace_length)), 65536))). + let pow2050 = pow32 * pow2049; // pow(trace_generator, (safe_div((safe_mult(23561, global_values.trace_length)), 32768))). + let pow2051 = pow32 * pow2050; // pow(trace_generator, (safe_div((safe_mult(47123, global_values.trace_length)), 65536))). + let pow2052 = pow32 * pow2051; // pow(trace_generator, (safe_div((safe_mult(11781, global_values.trace_length)), 16384))). + let pow2053 = pow32 * pow2052; // pow(trace_generator, (safe_div((safe_mult(47125, global_values.trace_length)), 65536))). + let pow2054 = pow32 * pow2053; // pow(trace_generator, (safe_div((safe_mult(23563, global_values.trace_length)), 32768))). + let pow2055 = pow32 * pow2054; // pow(trace_generator, (safe_div((safe_mult(47127, global_values.trace_length)), 65536))). + let pow2056 = pow32 * pow2038; // pow(trace_generator, (safe_div((safe_mult(48135, global_values.trace_length)), 65536))). + let pow2057 = pow32 * pow2056; // pow(trace_generator, (safe_div((safe_mult(6017, global_values.trace_length)), 8192))). + let pow2058 = pow32 * pow2057; // pow(trace_generator, (safe_div((safe_mult(48137, global_values.trace_length)), 65536))). + let pow2059 = pow32 * pow2058; // pow(trace_generator, (safe_div((safe_mult(24069, global_values.trace_length)), 32768))). + let pow2060 = pow32 * pow2059; // pow(trace_generator, (safe_div((safe_mult(48139, global_values.trace_length)), 65536))). + let pow2061 = pow32 * pow2060; // pow(trace_generator, (safe_div((safe_mult(12035, global_values.trace_length)), 16384))). + let pow2062 = pow32 * pow2061; // pow(trace_generator, (safe_div((safe_mult(48141, global_values.trace_length)), 65536))). + let pow2063 = pow32 * pow2062; // pow(trace_generator, (safe_div((safe_mult(24071, global_values.trace_length)), 32768))). + let pow2064 = pow32 * pow2063; // pow(trace_generator, (safe_div((safe_mult(48143, global_values.trace_length)), 65536))). + let pow2065 = pow32 * pow2064; // pow(trace_generator, (safe_div((safe_mult(3009, global_values.trace_length)), 4096))). + let pow2066 = pow32 * pow2065; // pow(trace_generator, (safe_div((safe_mult(48145, global_values.trace_length)), 65536))). + let pow2067 = pow32 * pow2066; // pow(trace_generator, (safe_div((safe_mult(24073, global_values.trace_length)), 32768))). + let pow2068 = pow32 * pow2067; // pow(trace_generator, (safe_div((safe_mult(48147, global_values.trace_length)), 65536))). + let pow2069 = pow32 * pow2068; // pow(trace_generator, (safe_div((safe_mult(12037, global_values.trace_length)), 16384))). + let pow2070 = pow32 * pow2069; // pow(trace_generator, (safe_div((safe_mult(48149, global_values.trace_length)), 65536))). + let pow2071 = pow32 * pow2070; // pow(trace_generator, (safe_div((safe_mult(24075, global_values.trace_length)), 32768))). + let pow2072 = pow32 * pow2071; // pow(trace_generator, (safe_div((safe_mult(48151, global_values.trace_length)), 65536))). + let pow2073 = pow793 * pow2026; // pow(trace_generator, (safe_div((safe_mult(3, global_values.trace_length)), 4))). + let pow2074 = pow32 * pow2073; // pow(trace_generator, (safe_div((safe_mult(49153, global_values.trace_length)), 65536))). + let pow2075 = pow32 * pow2074; // pow(trace_generator, (safe_div((safe_mult(24577, global_values.trace_length)), 32768))). + let pow2076 = pow32 * pow2075; // pow(trace_generator, (safe_div((safe_mult(49155, global_values.trace_length)), 65536))). + let pow2077 = pow32 * pow2076; // pow(trace_generator, (safe_div((safe_mult(12289, global_values.trace_length)), 16384))). + let pow2078 = pow32 * pow2077; // pow(trace_generator, (safe_div((safe_mult(49157, global_values.trace_length)), 65536))). + let pow2079 = pow32 * pow2078; // pow(trace_generator, (safe_div((safe_mult(24579, global_values.trace_length)), 32768))). + let pow2080 = pow32 * pow2079; // pow(trace_generator, (safe_div((safe_mult(49159, global_values.trace_length)), 65536))). + let pow2081 = pow32 * pow2080; // pow(trace_generator, (safe_div((safe_mult(6145, global_values.trace_length)), 8192))). + let pow2082 = pow32 * pow2081; // pow(trace_generator, (safe_div((safe_mult(49161, global_values.trace_length)), 65536))). + let pow2083 = pow32 * pow2082; // pow(trace_generator, (safe_div((safe_mult(24581, global_values.trace_length)), 32768))). + let pow2084 = pow32 * pow2083; // pow(trace_generator, (safe_div((safe_mult(49163, global_values.trace_length)), 65536))). + let pow2085 = pow32 * pow2084; // pow(trace_generator, (safe_div((safe_mult(12291, global_values.trace_length)), 16384))). + let pow2086 = pow32 * pow2085; // pow(trace_generator, (safe_div((safe_mult(49165, global_values.trace_length)), 65536))). + let pow2087 = pow32 * pow2086; // pow(trace_generator, (safe_div((safe_mult(24583, global_values.trace_length)), 32768))). + let pow2088 = pow32 * pow2087; // pow(trace_generator, (safe_div((safe_mult(49167, global_values.trace_length)), 65536))). + let pow2089 = pow32 * pow2088; // pow(trace_generator, (safe_div((safe_mult(3073, global_values.trace_length)), 4096))). + let pow2090 = pow32 * pow2089; // pow(trace_generator, (safe_div((safe_mult(49169, global_values.trace_length)), 65536))). + let pow2091 = pow32 * pow2090; // pow(trace_generator, (safe_div((safe_mult(24585, global_values.trace_length)), 32768))). + let pow2092 = pow32 * pow2091; // pow(trace_generator, (safe_div((safe_mult(49171, global_values.trace_length)), 65536))). + let pow2093 = pow32 * pow2092; // pow(trace_generator, (safe_div((safe_mult(12293, global_values.trace_length)), 16384))). + let pow2094 = pow32 * pow2093; // pow(trace_generator, (safe_div((safe_mult(49173, global_values.trace_length)), 65536))). + let pow2095 = pow32 * pow2094; // pow(trace_generator, (safe_div((safe_mult(24587, global_values.trace_length)), 32768))). + let pow2096 = pow32 * pow2095; // pow(trace_generator, (safe_div((safe_mult(49175, global_values.trace_length)), 65536))). + let pow2097 = pow793 * pow2073; // pow(trace_generator, (safe_div((safe_mult(49, global_values.trace_length)), 64))). + let pow2098 = pow32 * pow2097; // pow(trace_generator, (safe_div((safe_mult(50177, global_values.trace_length)), 65536))). + let pow2099 = pow32 * pow2098; // pow(trace_generator, (safe_div((safe_mult(25089, global_values.trace_length)), 32768))). + let pow2100 = pow32 * pow2099; // pow(trace_generator, (safe_div((safe_mult(50179, global_values.trace_length)), 65536))). + let pow2101 = pow32 * pow2100; // pow(trace_generator, (safe_div((safe_mult(12545, global_values.trace_length)), 16384))). + let pow2102 = pow32 * pow2101; // pow(trace_generator, (safe_div((safe_mult(50181, global_values.trace_length)), 65536))). + let pow2103 = pow32 * pow2102; // pow(trace_generator, (safe_div((safe_mult(25091, global_values.trace_length)), 32768))). + let pow2104 = pow32 * pow2103; // pow(trace_generator, (safe_div((safe_mult(50183, global_values.trace_length)), 65536))). + let pow2105 = pow32 * pow2104; // pow(trace_generator, (safe_div((safe_mult(6273, global_values.trace_length)), 8192))). + let pow2106 = pow32 * pow2105; // pow(trace_generator, (safe_div((safe_mult(50185, global_values.trace_length)), 65536))). + let pow2107 = pow32 * pow2106; // pow(trace_generator, (safe_div((safe_mult(25093, global_values.trace_length)), 32768))). + let pow2108 = pow32 * pow2107; // pow(trace_generator, (safe_div((safe_mult(50187, global_values.trace_length)), 65536))). + let pow2109 = pow32 * pow2108; // pow(trace_generator, (safe_div((safe_mult(12547, global_values.trace_length)), 16384))). + let pow2110 = pow32 * pow2109; // pow(trace_generator, (safe_div((safe_mult(50189, global_values.trace_length)), 65536))). + let pow2111 = pow32 * pow2110; // pow(trace_generator, (safe_div((safe_mult(25095, global_values.trace_length)), 32768))). + let pow2112 = pow32 * pow2111; // pow(trace_generator, (safe_div((safe_mult(50191, global_values.trace_length)), 65536))). + let pow2113 = pow32 * pow2112; // pow(trace_generator, (safe_div((safe_mult(3137, global_values.trace_length)), 4096))). + let pow2114 = pow32 * pow2113; // pow(trace_generator, (safe_div((safe_mult(50193, global_values.trace_length)), 65536))). + let pow2115 = pow32 * pow2114; // pow(trace_generator, (safe_div((safe_mult(25097, global_values.trace_length)), 32768))). + let pow2116 = pow32 * pow2115; // pow(trace_generator, (safe_div((safe_mult(50195, global_values.trace_length)), 65536))). + let pow2117 = pow32 * pow2116; // pow(trace_generator, (safe_div((safe_mult(12549, global_values.trace_length)), 16384))). + let pow2118 = pow32 * pow2117; // pow(trace_generator, (safe_div((safe_mult(50197, global_values.trace_length)), 65536))). + let pow2119 = pow32 * pow2118; // pow(trace_generator, (safe_div((safe_mult(25099, global_values.trace_length)), 32768))). + let pow2120 = pow32 * pow2119; // pow(trace_generator, (safe_div((safe_mult(50199, global_values.trace_length)), 65536))). + let pow2121 = pow793 * pow2097; // pow(trace_generator, (safe_div((safe_mult(25, global_values.trace_length)), 32))). + let pow2122 = pow793 * pow2121; // pow(trace_generator, (safe_div((safe_mult(51, global_values.trace_length)), 64))). + let pow2123 = pow32 * pow2121; // pow(trace_generator, (safe_div((safe_mult(51201, global_values.trace_length)), 65536))). + let pow2124 = pow32 * pow2122; // pow(trace_generator, (safe_div((safe_mult(52225, global_values.trace_length)), 65536))). + let pow2125 = pow32 * pow2123; // pow(trace_generator, (safe_div((safe_mult(25601, global_values.trace_length)), 32768))). + let pow2126 = pow32 * pow2124; // pow(trace_generator, (safe_div((safe_mult(26113, global_values.trace_length)), 32768))). + let pow2127 = pow32 * pow2125; // pow(trace_generator, (safe_div((safe_mult(51203, global_values.trace_length)), 65536))). + let pow2128 = pow32 * pow2126; // pow(trace_generator, (safe_div((safe_mult(52227, global_values.trace_length)), 65536))). + let pow2129 = pow32 * pow2127; // pow(trace_generator, (safe_div((safe_mult(12801, global_values.trace_length)), 16384))). + let pow2130 = pow32 * pow2128; // pow(trace_generator, (safe_div((safe_mult(13057, global_values.trace_length)), 16384))). + let pow2131 = pow32 * pow2129; // pow(trace_generator, (safe_div((safe_mult(51205, global_values.trace_length)), 65536))). + let pow2132 = pow32 * pow2130; // pow(trace_generator, (safe_div((safe_mult(52229, global_values.trace_length)), 65536))). + let pow2133 = pow32 * pow2131; // pow(trace_generator, (safe_div((safe_mult(25603, global_values.trace_length)), 32768))). + let pow2134 = pow32 * pow2132; // pow(trace_generator, (safe_div((safe_mult(26115, global_values.trace_length)), 32768))). + let pow2135 = pow32 * pow2133; // pow(trace_generator, (safe_div((safe_mult(51207, global_values.trace_length)), 65536))). + let pow2136 = pow32 * pow2135; // pow(trace_generator, (safe_div((safe_mult(6401, global_values.trace_length)), 8192))). + let pow2137 = pow32 * pow2136; // pow(trace_generator, (safe_div((safe_mult(51209, global_values.trace_length)), 65536))). + let pow2138 = pow32 * pow2137; // pow(trace_generator, (safe_div((safe_mult(25605, global_values.trace_length)), 32768))). + let pow2139 = pow32 * pow2138; // pow(trace_generator, (safe_div((safe_mult(51211, global_values.trace_length)), 65536))). + let pow2140 = pow32 * pow2139; // pow(trace_generator, (safe_div((safe_mult(12803, global_values.trace_length)), 16384))). + let pow2141 = pow32 * pow2140; // pow(trace_generator, (safe_div((safe_mult(51213, global_values.trace_length)), 65536))). + let pow2142 = pow32 * pow2141; // pow(trace_generator, (safe_div((safe_mult(25607, global_values.trace_length)), 32768))). + let pow2143 = pow32 * pow2142; // pow(trace_generator, (safe_div((safe_mult(51215, global_values.trace_length)), 65536))). + let pow2144 = pow32 * pow2143; // pow(trace_generator, (safe_div((safe_mult(3201, global_values.trace_length)), 4096))). + let pow2145 = pow32 * pow2144; // pow(trace_generator, (safe_div((safe_mult(51217, global_values.trace_length)), 65536))). + let pow2146 = pow32 * pow2145; // pow(trace_generator, (safe_div((safe_mult(25609, global_values.trace_length)), 32768))). + let pow2147 = pow32 * pow2146; // pow(trace_generator, (safe_div((safe_mult(51219, global_values.trace_length)), 65536))). + let pow2148 = pow32 * pow2147; // pow(trace_generator, (safe_div((safe_mult(12805, global_values.trace_length)), 16384))). + let pow2149 = pow32 * pow2148; // pow(trace_generator, (safe_div((safe_mult(51221, global_values.trace_length)), 65536))). + let pow2150 = pow32 * pow2149; // pow(trace_generator, (safe_div((safe_mult(25611, global_values.trace_length)), 32768))). + let pow2151 = pow32 * pow2150; // pow(trace_generator, (safe_div((safe_mult(51223, global_values.trace_length)), 65536))). + let pow2152 = pow32 * pow2134; // pow(trace_generator, (safe_div((safe_mult(52231, global_values.trace_length)), 65536))). + let pow2153 = pow32 * pow2152; // pow(trace_generator, (safe_div((safe_mult(6529, global_values.trace_length)), 8192))). + let pow2154 = pow32 * pow2153; // pow(trace_generator, (safe_div((safe_mult(52233, global_values.trace_length)), 65536))). + let pow2155 = pow32 * pow2154; // pow(trace_generator, (safe_div((safe_mult(26117, global_values.trace_length)), 32768))). + let pow2156 = pow32 * pow2155; // pow(trace_generator, (safe_div((safe_mult(52235, global_values.trace_length)), 65536))). + let pow2157 = pow32 * pow2156; // pow(trace_generator, (safe_div((safe_mult(13059, global_values.trace_length)), 16384))). + let pow2158 = pow32 * pow2157; // pow(trace_generator, (safe_div((safe_mult(52237, global_values.trace_length)), 65536))). + let pow2159 = pow32 * pow2158; // pow(trace_generator, (safe_div((safe_mult(26119, global_values.trace_length)), 32768))). + let pow2160 = pow32 * pow2159; // pow(trace_generator, (safe_div((safe_mult(52239, global_values.trace_length)), 65536))). + let pow2161 = pow32 * pow2160; // pow(trace_generator, (safe_div((safe_mult(3265, global_values.trace_length)), 4096))). + let pow2162 = pow32 * pow2161; // pow(trace_generator, (safe_div((safe_mult(52241, global_values.trace_length)), 65536))). + let pow2163 = pow32 * pow2162; // pow(trace_generator, (safe_div((safe_mult(26121, global_values.trace_length)), 32768))). + let pow2164 = pow32 * pow2163; // pow(trace_generator, (safe_div((safe_mult(52243, global_values.trace_length)), 65536))). + let pow2165 = pow32 * pow2164; // pow(trace_generator, (safe_div((safe_mult(13061, global_values.trace_length)), 16384))). + let pow2166 = pow32 * pow2165; // pow(trace_generator, (safe_div((safe_mult(52245, global_values.trace_length)), 65536))). + let pow2167 = pow32 * pow2166; // pow(trace_generator, (safe_div((safe_mult(26123, global_values.trace_length)), 32768))). + let pow2168 = pow32 * pow2167; // pow(trace_generator, (safe_div((safe_mult(52247, global_values.trace_length)), 65536))). + let pow2169 = pow793 * pow2122; // pow(trace_generator, (safe_div((safe_mult(13, global_values.trace_length)), 16))). + let pow2170 = pow32 * pow2169; // pow(trace_generator, (safe_div((safe_mult(53249, global_values.trace_length)), 65536))). + let pow2171 = pow32 * pow2170; // pow(trace_generator, (safe_div((safe_mult(26625, global_values.trace_length)), 32768))). + let pow2172 = pow32 * pow2171; // pow(trace_generator, (safe_div((safe_mult(53251, global_values.trace_length)), 65536))). + let pow2173 = pow32 * pow2172; // pow(trace_generator, (safe_div((safe_mult(13313, global_values.trace_length)), 16384))). + let pow2174 = pow32 * pow2173; // pow(trace_generator, (safe_div((safe_mult(53253, global_values.trace_length)), 65536))). + let pow2175 = pow32 * pow2174; // pow(trace_generator, (safe_div((safe_mult(26627, global_values.trace_length)), 32768))). + let pow2176 = pow32 * pow2175; // pow(trace_generator, (safe_div((safe_mult(53255, global_values.trace_length)), 65536))). + let pow2177 = pow32 * pow2176; // pow(trace_generator, (safe_div((safe_mult(6657, global_values.trace_length)), 8192))). + let pow2178 = pow32 * pow2177; // pow(trace_generator, (safe_div((safe_mult(53257, global_values.trace_length)), 65536))). + let pow2179 = pow32 * pow2178; // pow(trace_generator, (safe_div((safe_mult(26629, global_values.trace_length)), 32768))). + let pow2180 = pow32 * pow2179; // pow(trace_generator, (safe_div((safe_mult(53259, global_values.trace_length)), 65536))). + let pow2181 = pow32 * pow2180; // pow(trace_generator, (safe_div((safe_mult(13315, global_values.trace_length)), 16384))). + let pow2182 = pow32 * pow2181; // pow(trace_generator, (safe_div((safe_mult(53261, global_values.trace_length)), 65536))). + let pow2183 = pow32 * pow2182; // pow(trace_generator, (safe_div((safe_mult(26631, global_values.trace_length)), 32768))). + let pow2184 = pow32 * pow2183; // pow(trace_generator, (safe_div((safe_mult(53263, global_values.trace_length)), 65536))). + let pow2185 = pow32 * pow2184; // pow(trace_generator, (safe_div((safe_mult(3329, global_values.trace_length)), 4096))). + let pow2186 = pow32 * pow2185; // pow(trace_generator, (safe_div((safe_mult(53265, global_values.trace_length)), 65536))). + let pow2187 = pow32 * pow2186; // pow(trace_generator, (safe_div((safe_mult(26633, global_values.trace_length)), 32768))). + let pow2188 = pow32 * pow2187; // pow(trace_generator, (safe_div((safe_mult(53267, global_values.trace_length)), 65536))). + let pow2189 = pow32 * pow2188; // pow(trace_generator, (safe_div((safe_mult(13317, global_values.trace_length)), 16384))). + let pow2190 = pow32 * pow2189; // pow(trace_generator, (safe_div((safe_mult(53269, global_values.trace_length)), 65536))). + let pow2191 = pow32 * pow2190; // pow(trace_generator, (safe_div((safe_mult(26635, global_values.trace_length)), 32768))). + let pow2192 = pow32 * pow2191; // pow(trace_generator, (safe_div((safe_mult(53271, global_values.trace_length)), 65536))). + let pow2193 = pow79 * pow2192; // pow(trace_generator, (safe_div((safe_mult(833, global_values.trace_length)), 1024))). + let pow2194 = pow100 * pow2193; // pow(trace_generator, (safe_div((safe_mult(417, global_values.trace_length)), 512))). + let pow2195 = pow100 * pow2194; // pow(trace_generator, (safe_div((safe_mult(835, global_values.trace_length)), 1024))). + let pow2196 = pow100 * pow2195; // pow(trace_generator, (safe_div((safe_mult(209, global_values.trace_length)), 256))). + let pow2197 = pow100 * pow2196; // pow(trace_generator, (safe_div((safe_mult(837, global_values.trace_length)), 1024))). + let pow2198 = pow100 * pow2197; // pow(trace_generator, (safe_div((safe_mult(419, global_values.trace_length)), 512))). + let pow2199 = pow100 * pow2198; // pow(trace_generator, (safe_div((safe_mult(839, global_values.trace_length)), 1024))). + let pow2200 = pow100 * pow2199; // pow(trace_generator, (safe_div((safe_mult(105, global_values.trace_length)), 128))). + let pow2201 = pow100 * pow2200; // pow(trace_generator, (safe_div((safe_mult(841, global_values.trace_length)), 1024))). + let pow2202 = pow100 * pow2201; // pow(trace_generator, (safe_div((safe_mult(421, global_values.trace_length)), 512))). + let pow2203 = pow100 * pow2202; // pow(trace_generator, (safe_div((safe_mult(843, global_values.trace_length)), 1024))). + let pow2204 = pow100 * pow2203; // pow(trace_generator, (safe_div((safe_mult(211, global_values.trace_length)), 256))). + let pow2205 = pow100 * pow2204; // pow(trace_generator, (safe_div((safe_mult(845, global_values.trace_length)), 1024))). + let pow2206 = pow100 * pow2205; // pow(trace_generator, (safe_div((safe_mult(423, global_values.trace_length)), 512))). + let pow2207 = pow100 * pow2206; // pow(trace_generator, (safe_div((safe_mult(847, global_values.trace_length)), 1024))). + let pow2208 = pow100 * pow2207; // pow(trace_generator, (safe_div((safe_mult(53, global_values.trace_length)), 64))). + let pow2209 = pow32 * pow2208; // pow(trace_generator, (safe_div((safe_mult(54273, global_values.trace_length)), 65536))). + let pow2210 = pow32 * pow2209; // pow(trace_generator, (safe_div((safe_mult(27137, global_values.trace_length)), 32768))). + let pow2211 = pow32 * pow2210; // pow(trace_generator, (safe_div((safe_mult(54275, global_values.trace_length)), 65536))). + let pow2212 = pow32 * pow2211; // pow(trace_generator, (safe_div((safe_mult(13569, global_values.trace_length)), 16384))). + let pow2213 = pow32 * pow2212; // pow(trace_generator, (safe_div((safe_mult(54277, global_values.trace_length)), 65536))). + let pow2214 = pow32 * pow2213; // pow(trace_generator, (safe_div((safe_mult(27139, global_values.trace_length)), 32768))). + let pow2215 = pow32 * pow2214; // pow(trace_generator, (safe_div((safe_mult(54279, global_values.trace_length)), 65536))). + let pow2216 = pow32 * pow2215; // pow(trace_generator, (safe_div((safe_mult(6785, global_values.trace_length)), 8192))). + let pow2217 = pow32 * pow2216; // pow(trace_generator, (safe_div((safe_mult(54281, global_values.trace_length)), 65536))). + let pow2218 = pow32 * pow2217; // pow(trace_generator, (safe_div((safe_mult(27141, global_values.trace_length)), 32768))). + let pow2219 = pow32 * pow2218; // pow(trace_generator, (safe_div((safe_mult(54283, global_values.trace_length)), 65536))). + let pow2220 = pow32 * pow2219; // pow(trace_generator, (safe_div((safe_mult(13571, global_values.trace_length)), 16384))). + let pow2221 = pow32 * pow2220; // pow(trace_generator, (safe_div((safe_mult(54285, global_values.trace_length)), 65536))). + let pow2222 = pow32 * pow2221; // pow(trace_generator, (safe_div((safe_mult(27143, global_values.trace_length)), 32768))). + let pow2223 = pow32 * pow2222; // pow(trace_generator, (safe_div((safe_mult(54287, global_values.trace_length)), 65536))). + let pow2224 = pow32 * pow2223; // pow(trace_generator, (safe_div((safe_mult(3393, global_values.trace_length)), 4096))). + let pow2225 = pow32 * pow2224; // pow(trace_generator, (safe_div((safe_mult(54289, global_values.trace_length)), 65536))). + let pow2226 = pow32 * pow2225; // pow(trace_generator, (safe_div((safe_mult(27145, global_values.trace_length)), 32768))). + let pow2227 = pow32 * pow2226; // pow(trace_generator, (safe_div((safe_mult(54291, global_values.trace_length)), 65536))). + let pow2228 = pow32 * pow2227; // pow(trace_generator, (safe_div((safe_mult(13573, global_values.trace_length)), 16384))). + let pow2229 = pow32 * pow2228; // pow(trace_generator, (safe_div((safe_mult(54293, global_values.trace_length)), 65536))). + let pow2230 = pow32 * pow2229; // pow(trace_generator, (safe_div((safe_mult(27147, global_values.trace_length)), 32768))). + let pow2231 = pow32 * pow2230; // pow(trace_generator, (safe_div((safe_mult(54295, global_values.trace_length)), 65536))). + let pow2232 = pow79 * pow2231; // pow(trace_generator, (safe_div((safe_mult(849, global_values.trace_length)), 1024))). + let pow2233 = pow100 * pow2232; // pow(trace_generator, (safe_div((safe_mult(425, global_values.trace_length)), 512))). + let pow2234 = pow100 * pow2233; // pow(trace_generator, (safe_div((safe_mult(851, global_values.trace_length)), 1024))). + let pow2235 = pow100 * pow2234; // pow(trace_generator, (safe_div((safe_mult(213, global_values.trace_length)), 256))). + let pow2236 = pow100 * pow2235; // pow(trace_generator, (safe_div((safe_mult(853, global_values.trace_length)), 1024))). + let pow2237 = pow100 * pow2236; // pow(trace_generator, (safe_div((safe_mult(427, global_values.trace_length)), 512))). + let pow2238 = pow100 * pow2237; // pow(trace_generator, (safe_div((safe_mult(855, global_values.trace_length)), 1024))). + let pow2239 = pow100 * pow2238; // pow(trace_generator, (safe_div((safe_mult(107, global_values.trace_length)), 128))). + let pow2240 = pow100 * pow2239; // pow(trace_generator, (safe_div((safe_mult(857, global_values.trace_length)), 1024))). + let pow2241 = pow100 * pow2240; // pow(trace_generator, (safe_div((safe_mult(429, global_values.trace_length)), 512))). + let pow2242 = pow100 * pow2241; // pow(trace_generator, (safe_div((safe_mult(859, global_values.trace_length)), 1024))). + let pow2243 = pow100 * pow2242; // pow(trace_generator, (safe_div((safe_mult(215, global_values.trace_length)), 256))). + let pow2244 = pow100 * pow2243; // pow(trace_generator, (safe_div((safe_mult(861, global_values.trace_length)), 1024))). + let pow2245 = pow220 * pow2244; // pow(trace_generator, (safe_div((safe_mult(27, global_values.trace_length)), 32))). + let pow2246 = pow32 * pow2245; // pow(trace_generator, (safe_div((safe_mult(55297, global_values.trace_length)), 65536))). + let pow2247 = pow32 * pow2246; // pow(trace_generator, (safe_div((safe_mult(27649, global_values.trace_length)), 32768))). + let pow2248 = pow32 * pow2247; // pow(trace_generator, (safe_div((safe_mult(55299, global_values.trace_length)), 65536))). + let pow2249 = pow32 * pow2248; // pow(trace_generator, (safe_div((safe_mult(13825, global_values.trace_length)), 16384))). + let pow2250 = pow32 * pow2249; // pow(trace_generator, (safe_div((safe_mult(55301, global_values.trace_length)), 65536))). + let pow2251 = pow32 * pow2250; // pow(trace_generator, (safe_div((safe_mult(27651, global_values.trace_length)), 32768))). + let pow2252 = pow32 * pow2251; // pow(trace_generator, (safe_div((safe_mult(55303, global_values.trace_length)), 65536))). + let pow2253 = pow32 * pow2252; // pow(trace_generator, (safe_div((safe_mult(6913, global_values.trace_length)), 8192))). + let pow2254 = pow32 * pow2253; // pow(trace_generator, (safe_div((safe_mult(55305, global_values.trace_length)), 65536))). + let pow2255 = pow32 * pow2254; // pow(trace_generator, (safe_div((safe_mult(27653, global_values.trace_length)), 32768))). + let pow2256 = pow32 * pow2255; // pow(trace_generator, (safe_div((safe_mult(55307, global_values.trace_length)), 65536))). + let pow2257 = pow32 * pow2256; // pow(trace_generator, (safe_div((safe_mult(13827, global_values.trace_length)), 16384))). + let pow2258 = pow32 * pow2257; // pow(trace_generator, (safe_div((safe_mult(55309, global_values.trace_length)), 65536))). + let pow2259 = pow32 * pow2258; // pow(trace_generator, (safe_div((safe_mult(27655, global_values.trace_length)), 32768))). + let pow2260 = pow32 * pow2259; // pow(trace_generator, (safe_div((safe_mult(55311, global_values.trace_length)), 65536))). + let pow2261 = pow32 * pow2260; // pow(trace_generator, (safe_div((safe_mult(3457, global_values.trace_length)), 4096))). + let pow2262 = pow32 * pow2261; // pow(trace_generator, (safe_div((safe_mult(55313, global_values.trace_length)), 65536))). + let pow2263 = pow32 * pow2262; // pow(trace_generator, (safe_div((safe_mult(27657, global_values.trace_length)), 32768))). + let pow2264 = pow32 * pow2263; // pow(trace_generator, (safe_div((safe_mult(55315, global_values.trace_length)), 65536))). + let pow2265 = pow32 * pow2264; // pow(trace_generator, (safe_div((safe_mult(13829, global_values.trace_length)), 16384))). + let pow2266 = pow32 * pow2265; // pow(trace_generator, (safe_div((safe_mult(55317, global_values.trace_length)), 65536))). + let pow2267 = pow32 * pow2266; // pow(trace_generator, (safe_div((safe_mult(27659, global_values.trace_length)), 32768))). + let pow2268 = pow32 * pow2267; // pow(trace_generator, (safe_div((safe_mult(55319, global_values.trace_length)), 65536))). + let pow2269 = pow79 * pow2268; // pow(trace_generator, (safe_div((safe_mult(865, global_values.trace_length)), 1024))). + let pow2270 = pow100 * pow2269; // pow(trace_generator, (safe_div((safe_mult(433, global_values.trace_length)), 512))). + let pow2271 = pow100 * pow2270; // pow(trace_generator, (safe_div((safe_mult(867, global_values.trace_length)), 1024))). + let pow2272 = pow100 * pow2271; // pow(trace_generator, (safe_div((safe_mult(217, global_values.trace_length)), 256))). + let pow2273 = pow100 * pow2272; // pow(trace_generator, (safe_div((safe_mult(869, global_values.trace_length)), 1024))). + let pow2274 = pow100 * pow2273; // pow(trace_generator, (safe_div((safe_mult(435, global_values.trace_length)), 512))). + let pow2275 = pow100 * pow2274; // pow(trace_generator, (safe_div((safe_mult(871, global_values.trace_length)), 1024))). + let pow2276 = pow100 * pow2275; // pow(trace_generator, (safe_div((safe_mult(109, global_values.trace_length)), 128))). + let pow2277 = pow100 * pow2276; // pow(trace_generator, (safe_div((safe_mult(873, global_values.trace_length)), 1024))). + let pow2278 = pow100 * pow2277; // pow(trace_generator, (safe_div((safe_mult(437, global_values.trace_length)), 512))). + let pow2279 = pow100 * pow2278; // pow(trace_generator, (safe_div((safe_mult(875, global_values.trace_length)), 1024))). + let pow2280 = pow100 * pow2279; // pow(trace_generator, (safe_div((safe_mult(219, global_values.trace_length)), 256))). + let pow2281 = pow100 * pow2280; // pow(trace_generator, (safe_div((safe_mult(877, global_values.trace_length)), 1024))). + let pow2282 = pow100 * pow2281; // pow(trace_generator, (safe_div((safe_mult(439, global_values.trace_length)), 512))). + let pow2283 = pow100 * pow2282; // pow(trace_generator, (safe_div((safe_mult(879, global_values.trace_length)), 1024))). + let pow2284 = pow100 * pow2283; // pow(trace_generator, (safe_div((safe_mult(55, global_values.trace_length)), 64))). + let pow2285 = pow32 * pow2284; // pow(trace_generator, (safe_div((safe_mult(56321, global_values.trace_length)), 65536))). + let pow2286 = pow32 * pow2285; // pow(trace_generator, (safe_div((safe_mult(28161, global_values.trace_length)), 32768))). + let pow2287 = pow32 * pow2286; // pow(trace_generator, (safe_div((safe_mult(56323, global_values.trace_length)), 65536))). + let pow2288 = pow32 * pow2287; // pow(trace_generator, (safe_div((safe_mult(14081, global_values.trace_length)), 16384))). + let pow2289 = pow32 * pow2288; // pow(trace_generator, (safe_div((safe_mult(56325, global_values.trace_length)), 65536))). + let pow2290 = pow32 * pow2289; // pow(trace_generator, (safe_div((safe_mult(28163, global_values.trace_length)), 32768))). + let pow2291 = pow32 * pow2290; // pow(trace_generator, (safe_div((safe_mult(56327, global_values.trace_length)), 65536))). + let pow2292 = pow32 * pow2291; // pow(trace_generator, (safe_div((safe_mult(7041, global_values.trace_length)), 8192))). + let pow2293 = pow32 * pow2292; // pow(trace_generator, (safe_div((safe_mult(56329, global_values.trace_length)), 65536))). + let pow2294 = pow32 * pow2293; // pow(trace_generator, (safe_div((safe_mult(28165, global_values.trace_length)), 32768))). + let pow2295 = pow32 * pow2294; // pow(trace_generator, (safe_div((safe_mult(56331, global_values.trace_length)), 65536))). + let pow2296 = pow32 * pow2295; // pow(trace_generator, (safe_div((safe_mult(14083, global_values.trace_length)), 16384))). + let pow2297 = pow32 * pow2296; // pow(trace_generator, (safe_div((safe_mult(56333, global_values.trace_length)), 65536))). + let pow2298 = pow32 * pow2297; // pow(trace_generator, (safe_div((safe_mult(28167, global_values.trace_length)), 32768))). + let pow2299 = pow32 * pow2298; // pow(trace_generator, (safe_div((safe_mult(56335, global_values.trace_length)), 65536))). + let pow2300 = pow32 * pow2299; // pow(trace_generator, (safe_div((safe_mult(3521, global_values.trace_length)), 4096))). + let pow2301 = pow32 * pow2300; // pow(trace_generator, (safe_div((safe_mult(56337, global_values.trace_length)), 65536))). + let pow2302 = pow32 * pow2301; // pow(trace_generator, (safe_div((safe_mult(28169, global_values.trace_length)), 32768))). + let pow2303 = pow32 * pow2302; // pow(trace_generator, (safe_div((safe_mult(56339, global_values.trace_length)), 65536))). + let pow2304 = pow32 * pow2303; // pow(trace_generator, (safe_div((safe_mult(14085, global_values.trace_length)), 16384))). + let pow2305 = pow32 * pow2304; // pow(trace_generator, (safe_div((safe_mult(56341, global_values.trace_length)), 65536))). + let pow2306 = pow32 * pow2305; // pow(trace_generator, (safe_div((safe_mult(28171, global_values.trace_length)), 32768))). + let pow2307 = pow32 * pow2306; // pow(trace_generator, (safe_div((safe_mult(56343, global_values.trace_length)), 65536))). + let pow2308 = pow79 * pow2307; // pow(trace_generator, (safe_div((safe_mult(881, global_values.trace_length)), 1024))). + let pow2309 = pow100 * pow2308; // pow(trace_generator, (safe_div((safe_mult(441, global_values.trace_length)), 512))). + let pow2310 = pow100 * pow2309; // pow(trace_generator, (safe_div((safe_mult(883, global_values.trace_length)), 1024))). + let pow2311 = pow100 * pow2310; // pow(trace_generator, (safe_div((safe_mult(221, global_values.trace_length)), 256))). + let pow2312 = pow100 * pow2311; // pow(trace_generator, (safe_div((safe_mult(885, global_values.trace_length)), 1024))). + let pow2313 = pow100 * pow2312; // pow(trace_generator, (safe_div((safe_mult(443, global_values.trace_length)), 512))). + let pow2314 = pow100 * pow2313; // pow(trace_generator, (safe_div((safe_mult(887, global_values.trace_length)), 1024))). + let pow2315 = pow100 * pow2314; // pow(trace_generator, (safe_div((safe_mult(111, global_values.trace_length)), 128))). + let pow2316 = pow100 * pow2315; // pow(trace_generator, (safe_div((safe_mult(889, global_values.trace_length)), 1024))). + let pow2317 = pow100 * pow2316; // pow(trace_generator, (safe_div((safe_mult(445, global_values.trace_length)), 512))). + let pow2318 = pow100 * pow2317; // pow(trace_generator, (safe_div((safe_mult(891, global_values.trace_length)), 1024))). + let pow2319 = pow100 * pow2318; // pow(trace_generator, (safe_div((safe_mult(223, global_values.trace_length)), 256))). + let pow2320 = pow100 * pow2319; // pow(trace_generator, (safe_div((safe_mult(893, global_values.trace_length)), 1024))). + let pow2321 = pow220 * pow2320; // pow(trace_generator, (safe_div((safe_mult(7, global_values.trace_length)), 8))). + let pow2322 = pow32 * pow2321; // pow(trace_generator, (safe_div((safe_mult(57345, global_values.trace_length)), 65536))). + let pow2323 = pow32 * pow2322; // pow(trace_generator, (safe_div((safe_mult(28673, global_values.trace_length)), 32768))). + let pow2324 = pow32 * pow2323; // pow(trace_generator, (safe_div((safe_mult(57347, global_values.trace_length)), 65536))). + let pow2325 = pow32 * pow2324; // pow(trace_generator, (safe_div((safe_mult(14337, global_values.trace_length)), 16384))). + let pow2326 = pow32 * pow2325; // pow(trace_generator, (safe_div((safe_mult(57349, global_values.trace_length)), 65536))). + let pow2327 = pow32 * pow2326; // pow(trace_generator, (safe_div((safe_mult(28675, global_values.trace_length)), 32768))). + let pow2328 = pow32 * pow2327; // pow(trace_generator, (safe_div((safe_mult(57351, global_values.trace_length)), 65536))). + let pow2329 = pow32 * pow2328; // pow(trace_generator, (safe_div((safe_mult(7169, global_values.trace_length)), 8192))). + let pow2330 = pow32 * pow2329; // pow(trace_generator, (safe_div((safe_mult(57353, global_values.trace_length)), 65536))). + let pow2331 = pow32 * pow2330; // pow(trace_generator, (safe_div((safe_mult(28677, global_values.trace_length)), 32768))). + let pow2332 = pow32 * pow2331; // pow(trace_generator, (safe_div((safe_mult(57355, global_values.trace_length)), 65536))). + let pow2333 = pow32 * pow2332; // pow(trace_generator, (safe_div((safe_mult(14339, global_values.trace_length)), 16384))). + let pow2334 = pow32 * pow2333; // pow(trace_generator, (safe_div((safe_mult(57357, global_values.trace_length)), 65536))). + let pow2335 = pow32 * pow2334; // pow(trace_generator, (safe_div((safe_mult(28679, global_values.trace_length)), 32768))). + let pow2336 = pow32 * pow2335; // pow(trace_generator, (safe_div((safe_mult(57359, global_values.trace_length)), 65536))). + let pow2337 = pow32 * pow2336; // pow(trace_generator, (safe_div((safe_mult(3585, global_values.trace_length)), 4096))). + let pow2338 = pow32 * pow2337; // pow(trace_generator, (safe_div((safe_mult(57361, global_values.trace_length)), 65536))). + let pow2339 = pow32 * pow2338; // pow(trace_generator, (safe_div((safe_mult(28681, global_values.trace_length)), 32768))). + let pow2340 = pow32 * pow2339; // pow(trace_generator, (safe_div((safe_mult(57363, global_values.trace_length)), 65536))). + let pow2341 = pow32 * pow2340; // pow(trace_generator, (safe_div((safe_mult(14341, global_values.trace_length)), 16384))). + let pow2342 = pow32 * pow2341; // pow(trace_generator, (safe_div((safe_mult(57365, global_values.trace_length)), 65536))). + let pow2343 = pow32 * pow2342; // pow(trace_generator, (safe_div((safe_mult(28683, global_values.trace_length)), 32768))). + let pow2344 = pow32 * pow2343; // pow(trace_generator, (safe_div((safe_mult(57367, global_values.trace_length)), 65536))). + let pow2345 = pow79 * pow2344; // pow(trace_generator, (safe_div((safe_mult(897, global_values.trace_length)), 1024))). + let pow2346 = pow100 * pow2345; // pow(trace_generator, (safe_div((safe_mult(449, global_values.trace_length)), 512))). + let pow2347 = pow100 * pow2346; // pow(trace_generator, (safe_div((safe_mult(899, global_values.trace_length)), 1024))). + let pow2348 = pow100 * pow2347; // pow(trace_generator, (safe_div((safe_mult(225, global_values.trace_length)), 256))). + let pow2349 = pow100 * pow2348; // pow(trace_generator, (safe_div((safe_mult(901, global_values.trace_length)), 1024))). + let pow2350 = pow100 * pow2349; // pow(trace_generator, (safe_div((safe_mult(451, global_values.trace_length)), 512))). + let pow2351 = pow100 * pow2350; // pow(trace_generator, (safe_div((safe_mult(903, global_values.trace_length)), 1024))). + let pow2352 = pow100 * pow2351; // pow(trace_generator, (safe_div((safe_mult(113, global_values.trace_length)), 128))). + let pow2353 = pow100 * pow2352; // pow(trace_generator, (safe_div((safe_mult(905, global_values.trace_length)), 1024))). + let pow2354 = pow100 * pow2353; // pow(trace_generator, (safe_div((safe_mult(453, global_values.trace_length)), 512))). + let pow2355 = pow100 * pow2354; // pow(trace_generator, (safe_div((safe_mult(907, global_values.trace_length)), 1024))). + let pow2356 = pow100 * pow2355; // pow(trace_generator, (safe_div((safe_mult(227, global_values.trace_length)), 256))). + let pow2357 = pow100 * pow2356; // pow(trace_generator, (safe_div((safe_mult(909, global_values.trace_length)), 1024))). + let pow2358 = pow100 * pow2357; // pow(trace_generator, (safe_div((safe_mult(455, global_values.trace_length)), 512))). + let pow2359 = pow100 * pow2358; // pow(trace_generator, (safe_div((safe_mult(911, global_values.trace_length)), 1024))). + let pow2360 = pow100 * pow2359; // pow(trace_generator, (safe_div((safe_mult(57, global_values.trace_length)), 64))). + let pow2361 = pow32 * pow2360; // pow(trace_generator, (safe_div((safe_mult(58369, global_values.trace_length)), 65536))). + let pow2362 = pow32 * pow2361; // pow(trace_generator, (safe_div((safe_mult(29185, global_values.trace_length)), 32768))). + let pow2363 = pow32 * pow2362; // pow(trace_generator, (safe_div((safe_mult(58371, global_values.trace_length)), 65536))). + let pow2364 = pow32 * pow2363; // pow(trace_generator, (safe_div((safe_mult(14593, global_values.trace_length)), 16384))). + let pow2365 = pow32 * pow2364; // pow(trace_generator, (safe_div((safe_mult(58373, global_values.trace_length)), 65536))). + let pow2366 = pow32 * pow2365; // pow(trace_generator, (safe_div((safe_mult(29187, global_values.trace_length)), 32768))). + let pow2367 = pow32 * pow2366; // pow(trace_generator, (safe_div((safe_mult(58375, global_values.trace_length)), 65536))). + let pow2368 = pow32 * pow2367; // pow(trace_generator, (safe_div((safe_mult(7297, global_values.trace_length)), 8192))). + let pow2369 = pow32 * pow2368; // pow(trace_generator, (safe_div((safe_mult(58377, global_values.trace_length)), 65536))). + let pow2370 = pow32 * pow2369; // pow(trace_generator, (safe_div((safe_mult(29189, global_values.trace_length)), 32768))). + let pow2371 = pow32 * pow2370; // pow(trace_generator, (safe_div((safe_mult(58379, global_values.trace_length)), 65536))). + let pow2372 = pow32 * pow2371; // pow(trace_generator, (safe_div((safe_mult(14595, global_values.trace_length)), 16384))). + let pow2373 = pow32 * pow2372; // pow(trace_generator, (safe_div((safe_mult(58381, global_values.trace_length)), 65536))). + let pow2374 = pow32 * pow2373; // pow(trace_generator, (safe_div((safe_mult(29191, global_values.trace_length)), 32768))). + let pow2375 = pow32 * pow2374; // pow(trace_generator, (safe_div((safe_mult(58383, global_values.trace_length)), 65536))). + let pow2376 = pow32 * pow2375; // pow(trace_generator, (safe_div((safe_mult(3649, global_values.trace_length)), 4096))). + let pow2377 = pow32 * pow2376; // pow(trace_generator, (safe_div((safe_mult(58385, global_values.trace_length)), 65536))). + let pow2378 = pow32 * pow2377; // pow(trace_generator, (safe_div((safe_mult(29193, global_values.trace_length)), 32768))). + let pow2379 = pow32 * pow2378; // pow(trace_generator, (safe_div((safe_mult(58387, global_values.trace_length)), 65536))). + let pow2380 = pow32 * pow2379; // pow(trace_generator, (safe_div((safe_mult(14597, global_values.trace_length)), 16384))). + let pow2381 = pow32 * pow2380; // pow(trace_generator, (safe_div((safe_mult(58389, global_values.trace_length)), 65536))). + let pow2382 = pow32 * pow2381; // pow(trace_generator, (safe_div((safe_mult(29195, global_values.trace_length)), 32768))). + let pow2383 = pow32 * pow2382; // pow(trace_generator, (safe_div((safe_mult(58391, global_values.trace_length)), 65536))). + let pow2384 = pow79 * pow2383; // pow(trace_generator, (safe_div((safe_mult(913, global_values.trace_length)), 1024))). + let pow2385 = pow100 * pow2384; // pow(trace_generator, (safe_div((safe_mult(457, global_values.trace_length)), 512))). + let pow2386 = pow100 * pow2385; // pow(trace_generator, (safe_div((safe_mult(915, global_values.trace_length)), 1024))). + let pow2387 = pow100 * pow2386; // pow(trace_generator, (safe_div((safe_mult(229, global_values.trace_length)), 256))). + let pow2388 = pow100 * pow2387; // pow(trace_generator, (safe_div((safe_mult(917, global_values.trace_length)), 1024))). + let pow2389 = pow100 * pow2388; // pow(trace_generator, (safe_div((safe_mult(459, global_values.trace_length)), 512))). + let pow2390 = pow100 * pow2389; // pow(trace_generator, (safe_div((safe_mult(919, global_values.trace_length)), 1024))). + let pow2391 = pow100 * pow2390; // pow(trace_generator, (safe_div((safe_mult(115, global_values.trace_length)), 128))). + let pow2392 = pow100 * pow2391; // pow(trace_generator, (safe_div((safe_mult(921, global_values.trace_length)), 1024))). + let pow2393 = pow100 * pow2392; // pow(trace_generator, (safe_div((safe_mult(461, global_values.trace_length)), 512))). + let pow2394 = pow100 * pow2393; // pow(trace_generator, (safe_div((safe_mult(923, global_values.trace_length)), 1024))). + let pow2395 = pow100 * pow2394; // pow(trace_generator, (safe_div((safe_mult(231, global_values.trace_length)), 256))). + let pow2396 = pow100 * pow2395; // pow(trace_generator, (safe_div((safe_mult(925, global_values.trace_length)), 1024))). + let pow2397 = pow220 * pow2396; // pow(trace_generator, (safe_div((safe_mult(29, global_values.trace_length)), 32))). + let pow2398 = pow32 * pow2397; // pow(trace_generator, (safe_div((safe_mult(59393, global_values.trace_length)), 65536))). + let pow2399 = pow32 * pow2398; // pow(trace_generator, (safe_div((safe_mult(29697, global_values.trace_length)), 32768))). + let pow2400 = pow32 * pow2399; // pow(trace_generator, (safe_div((safe_mult(59395, global_values.trace_length)), 65536))). + let pow2401 = pow32 * pow2400; // pow(trace_generator, (safe_div((safe_mult(14849, global_values.trace_length)), 16384))). + let pow2402 = pow32 * pow2401; // pow(trace_generator, (safe_div((safe_mult(59397, global_values.trace_length)), 65536))). + let pow2403 = pow32 * pow2402; // pow(trace_generator, (safe_div((safe_mult(29699, global_values.trace_length)), 32768))). + let pow2404 = pow32 * pow2403; // pow(trace_generator, (safe_div((safe_mult(59399, global_values.trace_length)), 65536))). + let pow2405 = pow32 * pow2404; // pow(trace_generator, (safe_div((safe_mult(7425, global_values.trace_length)), 8192))). + let pow2406 = pow32 * pow2405; // pow(trace_generator, (safe_div((safe_mult(59401, global_values.trace_length)), 65536))). + let pow2407 = pow32 * pow2406; // pow(trace_generator, (safe_div((safe_mult(29701, global_values.trace_length)), 32768))). + let pow2408 = pow32 * pow2407; // pow(trace_generator, (safe_div((safe_mult(59403, global_values.trace_length)), 65536))). + let pow2409 = pow32 * pow2408; // pow(trace_generator, (safe_div((safe_mult(14851, global_values.trace_length)), 16384))). + let pow2410 = pow32 * pow2409; // pow(trace_generator, (safe_div((safe_mult(59405, global_values.trace_length)), 65536))). + let pow2411 = pow32 * pow2410; // pow(trace_generator, (safe_div((safe_mult(29703, global_values.trace_length)), 32768))). + let pow2412 = pow32 * pow2411; // pow(trace_generator, (safe_div((safe_mult(59407, global_values.trace_length)), 65536))). + let pow2413 = pow32 * pow2412; // pow(trace_generator, (safe_div((safe_mult(3713, global_values.trace_length)), 4096))). + let pow2414 = pow32 * pow2413; // pow(trace_generator, (safe_div((safe_mult(59409, global_values.trace_length)), 65536))). + let pow2415 = pow32 * pow2414; // pow(trace_generator, (safe_div((safe_mult(29705, global_values.trace_length)), 32768))). + let pow2416 = pow32 * pow2415; // pow(trace_generator, (safe_div((safe_mult(59411, global_values.trace_length)), 65536))). + let pow2417 = pow32 * pow2416; // pow(trace_generator, (safe_div((safe_mult(14853, global_values.trace_length)), 16384))). + let pow2418 = pow32 * pow2417; // pow(trace_generator, (safe_div((safe_mult(59413, global_values.trace_length)), 65536))). + let pow2419 = pow32 * pow2418; // pow(trace_generator, (safe_div((safe_mult(29707, global_values.trace_length)), 32768))). + let pow2420 = pow32 * pow2419; // pow(trace_generator, (safe_div((safe_mult(59415, global_values.trace_length)), 65536))). + let pow2421 = pow79 * pow2420; // pow(trace_generator, (safe_div((safe_mult(929, global_values.trace_length)), 1024))). + let pow2422 = pow100 * pow2421; // pow(trace_generator, (safe_div((safe_mult(465, global_values.trace_length)), 512))). + let pow2423 = pow100 * pow2422; // pow(trace_generator, (safe_div((safe_mult(931, global_values.trace_length)), 1024))). + let pow2424 = pow100 * pow2423; // pow(trace_generator, (safe_div((safe_mult(233, global_values.trace_length)), 256))). + let pow2425 = pow100 * pow2424; // pow(trace_generator, (safe_div((safe_mult(933, global_values.trace_length)), 1024))). + let pow2426 = pow100 * pow2425; // pow(trace_generator, (safe_div((safe_mult(467, global_values.trace_length)), 512))). + let pow2427 = pow100 * pow2426; // pow(trace_generator, (safe_div((safe_mult(935, global_values.trace_length)), 1024))). + let pow2428 = pow100 * pow2427; // pow(trace_generator, (safe_div((safe_mult(117, global_values.trace_length)), 128))). + let pow2429 = pow100 * pow2428; // pow(trace_generator, (safe_div((safe_mult(937, global_values.trace_length)), 1024))). + let pow2430 = pow100 * pow2429; // pow(trace_generator, (safe_div((safe_mult(469, global_values.trace_length)), 512))). + let pow2431 = pow100 * pow2430; // pow(trace_generator, (safe_div((safe_mult(939, global_values.trace_length)), 1024))). + let pow2432 = pow100 * pow2431; // pow(trace_generator, (safe_div((safe_mult(235, global_values.trace_length)), 256))). + let pow2433 = pow100 * pow2432; // pow(trace_generator, (safe_div((safe_mult(941, global_values.trace_length)), 1024))). + let pow2434 = pow100 * pow2433; // pow(trace_generator, (safe_div((safe_mult(471, global_values.trace_length)), 512))). + let pow2435 = pow100 * pow2434; // pow(trace_generator, (safe_div((safe_mult(943, global_values.trace_length)), 1024))). + let pow2436 = pow100 * pow2435; // pow(trace_generator, (safe_div((safe_mult(59, global_values.trace_length)), 64))). + let pow2437 = pow32 * pow2436; // pow(trace_generator, (safe_div((safe_mult(60417, global_values.trace_length)), 65536))). + let pow2438 = pow32 * pow2437; // pow(trace_generator, (safe_div((safe_mult(30209, global_values.trace_length)), 32768))). + let pow2439 = pow32 * pow2438; // pow(trace_generator, (safe_div((safe_mult(60419, global_values.trace_length)), 65536))). + let pow2440 = pow32 * pow2439; // pow(trace_generator, (safe_div((safe_mult(15105, global_values.trace_length)), 16384))). + let pow2441 = pow32 * pow2440; // pow(trace_generator, (safe_div((safe_mult(60421, global_values.trace_length)), 65536))). + let pow2442 = pow32 * pow2441; // pow(trace_generator, (safe_div((safe_mult(30211, global_values.trace_length)), 32768))). + let pow2443 = pow32 * pow2442; // pow(trace_generator, (safe_div((safe_mult(60423, global_values.trace_length)), 65536))). + let pow2444 = pow32 * pow2443; // pow(trace_generator, (safe_div((safe_mult(7553, global_values.trace_length)), 8192))). + let pow2445 = pow32 * pow2444; // pow(trace_generator, (safe_div((safe_mult(60425, global_values.trace_length)), 65536))). + let pow2446 = pow32 * pow2445; // pow(trace_generator, (safe_div((safe_mult(30213, global_values.trace_length)), 32768))). + let pow2447 = pow32 * pow2446; // pow(trace_generator, (safe_div((safe_mult(60427, global_values.trace_length)), 65536))). + let pow2448 = pow32 * pow2447; // pow(trace_generator, (safe_div((safe_mult(15107, global_values.trace_length)), 16384))). + let pow2449 = pow32 * pow2448; // pow(trace_generator, (safe_div((safe_mult(60429, global_values.trace_length)), 65536))). + let pow2450 = pow32 * pow2449; // pow(trace_generator, (safe_div((safe_mult(30215, global_values.trace_length)), 32768))). + let pow2451 = pow32 * pow2450; // pow(trace_generator, (safe_div((safe_mult(60431, global_values.trace_length)), 65536))). + let pow2452 = pow32 * pow2451; // pow(trace_generator, (safe_div((safe_mult(3777, global_values.trace_length)), 4096))). + let pow2453 = pow32 * pow2452; // pow(trace_generator, (safe_div((safe_mult(60433, global_values.trace_length)), 65536))). + let pow2454 = pow32 * pow2453; // pow(trace_generator, (safe_div((safe_mult(30217, global_values.trace_length)), 32768))). + let pow2455 = pow32 * pow2454; // pow(trace_generator, (safe_div((safe_mult(60435, global_values.trace_length)), 65536))). + let pow2456 = pow32 * pow2455; // pow(trace_generator, (safe_div((safe_mult(15109, global_values.trace_length)), 16384))). + let pow2457 = pow32 * pow2456; // pow(trace_generator, (safe_div((safe_mult(60437, global_values.trace_length)), 65536))). + let pow2458 = pow32 * pow2457; // pow(trace_generator, (safe_div((safe_mult(30219, global_values.trace_length)), 32768))). + let pow2459 = pow32 * pow2458; // pow(trace_generator, (safe_div((safe_mult(60439, global_values.trace_length)), 65536))). + let pow2460 = pow79 * pow2459; // pow(trace_generator, (safe_div((safe_mult(945, global_values.trace_length)), 1024))). + let pow2461 = pow100 * pow2460; // pow(trace_generator, (safe_div((safe_mult(473, global_values.trace_length)), 512))). + let pow2462 = pow100 * pow2461; // pow(trace_generator, (safe_div((safe_mult(947, global_values.trace_length)), 1024))). + let pow2463 = pow100 * pow2462; // pow(trace_generator, (safe_div((safe_mult(237, global_values.trace_length)), 256))). + let pow2464 = pow100 * pow2463; // pow(trace_generator, (safe_div((safe_mult(949, global_values.trace_length)), 1024))). + let pow2465 = pow100 * pow2464; // pow(trace_generator, (safe_div((safe_mult(475, global_values.trace_length)), 512))). + let pow2466 = pow100 * pow2465; // pow(trace_generator, (safe_div((safe_mult(951, global_values.trace_length)), 1024))). + let pow2467 = pow100 * pow2466; // pow(trace_generator, (safe_div((safe_mult(119, global_values.trace_length)), 128))). + let pow2468 = pow100 * pow2467; // pow(trace_generator, (safe_div((safe_mult(953, global_values.trace_length)), 1024))). + let pow2469 = pow100 * pow2468; // pow(trace_generator, (safe_div((safe_mult(477, global_values.trace_length)), 512))). + let pow2470 = pow100 * pow2469; // pow(trace_generator, (safe_div((safe_mult(955, global_values.trace_length)), 1024))). + let pow2471 = pow100 * pow2470; // pow(trace_generator, (safe_div((safe_mult(239, global_values.trace_length)), 256))). + let pow2472 = pow100 * pow2471; // pow(trace_generator, (safe_div((safe_mult(957, global_values.trace_length)), 1024))). + let pow2473 = pow220 * pow2472; // pow(trace_generator, (safe_div((safe_mult(15, global_values.trace_length)), 16))). + let pow2474 = pow32 * pow2473; // pow(trace_generator, (safe_div((safe_mult(61441, global_values.trace_length)), 65536))). + let pow2475 = pow32 * pow2474; // pow(trace_generator, (safe_div((safe_mult(30721, global_values.trace_length)), 32768))). + let pow2476 = pow32 * pow2475; // pow(trace_generator, (safe_div((safe_mult(61443, global_values.trace_length)), 65536))). + let pow2477 = pow32 * pow2476; // pow(trace_generator, (safe_div((safe_mult(15361, global_values.trace_length)), 16384))). + let pow2478 = pow32 * pow2477; // pow(trace_generator, (safe_div((safe_mult(61445, global_values.trace_length)), 65536))). + let pow2479 = pow32 * pow2478; // pow(trace_generator, (safe_div((safe_mult(30723, global_values.trace_length)), 32768))). + let pow2480 = pow32 * pow2479; // pow(trace_generator, (safe_div((safe_mult(61447, global_values.trace_length)), 65536))). + let pow2481 = pow32 * pow2480; // pow(trace_generator, (safe_div((safe_mult(7681, global_values.trace_length)), 8192))). + let pow2482 = pow32 * pow2481; // pow(trace_generator, (safe_div((safe_mult(61449, global_values.trace_length)), 65536))). + let pow2483 = pow32 * pow2482; // pow(trace_generator, (safe_div((safe_mult(30725, global_values.trace_length)), 32768))). + let pow2484 = pow32 * pow2483; // pow(trace_generator, (safe_div((safe_mult(61451, global_values.trace_length)), 65536))). + let pow2485 = pow32 * pow2484; // pow(trace_generator, (safe_div((safe_mult(15363, global_values.trace_length)), 16384))). + let pow2486 = pow32 * pow2485; // pow(trace_generator, (safe_div((safe_mult(61453, global_values.trace_length)), 65536))). + let pow2487 = pow32 * pow2486; // pow(trace_generator, (safe_div((safe_mult(30727, global_values.trace_length)), 32768))). + let pow2488 = pow32 * pow2487; // pow(trace_generator, (safe_div((safe_mult(61455, global_values.trace_length)), 65536))). + let pow2489 = pow32 * pow2488; // pow(trace_generator, (safe_div((safe_mult(3841, global_values.trace_length)), 4096))). + let pow2490 = pow32 * pow2489; // pow(trace_generator, (safe_div((safe_mult(61457, global_values.trace_length)), 65536))). + let pow2491 = pow32 * pow2490; // pow(trace_generator, (safe_div((safe_mult(30729, global_values.trace_length)), 32768))). + let pow2492 = pow32 * pow2491; // pow(trace_generator, (safe_div((safe_mult(61459, global_values.trace_length)), 65536))). + let pow2493 = pow32 * pow2492; // pow(trace_generator, (safe_div((safe_mult(15365, global_values.trace_length)), 16384))). + let pow2494 = pow32 * pow2493; // pow(trace_generator, (safe_div((safe_mult(61461, global_values.trace_length)), 65536))). + let pow2495 = pow32 * pow2494; // pow(trace_generator, (safe_div((safe_mult(30731, global_values.trace_length)), 32768))). + let pow2496 = pow32 * pow2495; // pow(trace_generator, (safe_div((safe_mult(61463, global_values.trace_length)), 65536))). + let pow2497 = pow79 * pow2496; // pow(trace_generator, (safe_div((safe_mult(961, global_values.trace_length)), 1024))). + let pow2498 = pow100 * pow2497; // pow(trace_generator, (safe_div((safe_mult(481, global_values.trace_length)), 512))). + let pow2499 = pow100 * pow2498; // pow(trace_generator, (safe_div((safe_mult(963, global_values.trace_length)), 1024))). + let pow2500 = pow100 * pow2499; // pow(trace_generator, (safe_div((safe_mult(241, global_values.trace_length)), 256))). + let pow2501 = pow100 * pow2500; // pow(trace_generator, (safe_div((safe_mult(965, global_values.trace_length)), 1024))). + let pow2502 = pow100 * pow2501; // pow(trace_generator, (safe_div((safe_mult(483, global_values.trace_length)), 512))). + let pow2503 = pow100 * pow2502; // pow(trace_generator, (safe_div((safe_mult(967, global_values.trace_length)), 1024))). + let pow2504 = pow100 * pow2503; // pow(trace_generator, (safe_div((safe_mult(121, global_values.trace_length)), 128))). + let pow2505 = pow100 * pow2504; // pow(trace_generator, (safe_div((safe_mult(969, global_values.trace_length)), 1024))). + let pow2506 = pow100 * pow2505; // pow(trace_generator, (safe_div((safe_mult(485, global_values.trace_length)), 512))). + let pow2507 = pow100 * pow2506; // pow(trace_generator, (safe_div((safe_mult(971, global_values.trace_length)), 1024))). + let pow2508 = pow100 * pow2507; // pow(trace_generator, (safe_div((safe_mult(243, global_values.trace_length)), 256))). + let pow2509 = pow100 * pow2508; // pow(trace_generator, (safe_div((safe_mult(973, global_values.trace_length)), 1024))). + let pow2510 = pow100 * pow2509; // pow(trace_generator, (safe_div((safe_mult(487, global_values.trace_length)), 512))). + let pow2511 = pow100 * pow2510; // pow(trace_generator, (safe_div((safe_mult(975, global_values.trace_length)), 1024))). + let pow2512 = pow100 * pow2511; // pow(trace_generator, (safe_div((safe_mult(61, global_values.trace_length)), 64))). + let pow2513 = pow32 * pow2512; // pow(trace_generator, (safe_div((safe_mult(62465, global_values.trace_length)), 65536))). + let pow2514 = pow32 * pow2513; // pow(trace_generator, (safe_div((safe_mult(31233, global_values.trace_length)), 32768))). + let pow2515 = pow32 * pow2514; // pow(trace_generator, (safe_div((safe_mult(62467, global_values.trace_length)), 65536))). + let pow2516 = pow32 * pow2515; // pow(trace_generator, (safe_div((safe_mult(15617, global_values.trace_length)), 16384))). + let pow2517 = pow32 * pow2516; // pow(trace_generator, (safe_div((safe_mult(62469, global_values.trace_length)), 65536))). + let pow2518 = pow32 * pow2517; // pow(trace_generator, (safe_div((safe_mult(31235, global_values.trace_length)), 32768))). + let pow2519 = pow32 * pow2518; // pow(trace_generator, (safe_div((safe_mult(62471, global_values.trace_length)), 65536))). + let pow2520 = pow32 * pow2519; // pow(trace_generator, (safe_div((safe_mult(7809, global_values.trace_length)), 8192))). + let pow2521 = pow32 * pow2520; // pow(trace_generator, (safe_div((safe_mult(62473, global_values.trace_length)), 65536))). + let pow2522 = pow32 * pow2521; // pow(trace_generator, (safe_div((safe_mult(31237, global_values.trace_length)), 32768))). + let pow2523 = pow32 * pow2522; // pow(trace_generator, (safe_div((safe_mult(62475, global_values.trace_length)), 65536))). + let pow2524 = pow32 * pow2523; // pow(trace_generator, (safe_div((safe_mult(15619, global_values.trace_length)), 16384))). + let pow2525 = pow32 * pow2524; // pow(trace_generator, (safe_div((safe_mult(62477, global_values.trace_length)), 65536))). + let pow2526 = pow32 * pow2525; // pow(trace_generator, (safe_div((safe_mult(31239, global_values.trace_length)), 32768))). + let pow2527 = pow32 * pow2526; // pow(trace_generator, (safe_div((safe_mult(62479, global_values.trace_length)), 65536))). + let pow2528 = pow32 * pow2527; // pow(trace_generator, (safe_div((safe_mult(3905, global_values.trace_length)), 4096))). + let pow2529 = pow32 * pow2528; // pow(trace_generator, (safe_div((safe_mult(62481, global_values.trace_length)), 65536))). + let pow2530 = pow32 * pow2529; // pow(trace_generator, (safe_div((safe_mult(31241, global_values.trace_length)), 32768))). + let pow2531 = pow32 * pow2530; // pow(trace_generator, (safe_div((safe_mult(62483, global_values.trace_length)), 65536))). + let pow2532 = pow32 * pow2531; // pow(trace_generator, (safe_div((safe_mult(15621, global_values.trace_length)), 16384))). + let pow2533 = pow32 * pow2532; // pow(trace_generator, (safe_div((safe_mult(62485, global_values.trace_length)), 65536))). + let pow2534 = pow32 * pow2533; // pow(trace_generator, (safe_div((safe_mult(31243, global_values.trace_length)), 32768))). + let pow2535 = pow32 * pow2534; // pow(trace_generator, (safe_div((safe_mult(62487, global_values.trace_length)), 65536))). + let pow2536 = pow79 * pow2535; // pow(trace_generator, (safe_div((safe_mult(977, global_values.trace_length)), 1024))). + let pow2537 = pow100 * pow2536; // pow(trace_generator, (safe_div((safe_mult(489, global_values.trace_length)), 512))). + let pow2538 = pow100 * pow2537; // pow(trace_generator, (safe_div((safe_mult(979, global_values.trace_length)), 1024))). + let pow2539 = pow100 * pow2538; // pow(trace_generator, (safe_div((safe_mult(245, global_values.trace_length)), 256))). + let pow2540 = pow100 * pow2539; // pow(trace_generator, (safe_div((safe_mult(981, global_values.trace_length)), 1024))). + let pow2541 = pow100 * pow2540; // pow(trace_generator, (safe_div((safe_mult(491, global_values.trace_length)), 512))). + let pow2542 = pow100 * pow2541; // pow(trace_generator, (safe_div((safe_mult(983, global_values.trace_length)), 1024))). + let pow2543 = pow100 * pow2542; // pow(trace_generator, (safe_div((safe_mult(123, global_values.trace_length)), 128))). + let pow2544 = pow100 * pow2543; // pow(trace_generator, (safe_div((safe_mult(985, global_values.trace_length)), 1024))). + let pow2545 = pow100 * pow2544; // pow(trace_generator, (safe_div((safe_mult(493, global_values.trace_length)), 512))). + let pow2546 = pow100 * pow2545; // pow(trace_generator, (safe_div((safe_mult(987, global_values.trace_length)), 1024))). + let pow2547 = pow100 * pow2546; // pow(trace_generator, (safe_div((safe_mult(247, global_values.trace_length)), 256))). + let pow2548 = pow100 * pow2547; // pow(trace_generator, (safe_div((safe_mult(989, global_values.trace_length)), 1024))). + let pow2549 = pow220 * pow2548; // pow(trace_generator, (safe_div((safe_mult(31, global_values.trace_length)), 32))). + let pow2550 = pow32 * pow2549; // pow(trace_generator, (safe_div((safe_mult(63489, global_values.trace_length)), 65536))). + let pow2551 = pow32 * pow2550; // pow(trace_generator, (safe_div((safe_mult(31745, global_values.trace_length)), 32768))). + let pow2552 = pow32 * pow2551; // pow(trace_generator, (safe_div((safe_mult(63491, global_values.trace_length)), 65536))). + let pow2553 = pow32 * pow2552; // pow(trace_generator, (safe_div((safe_mult(15873, global_values.trace_length)), 16384))). + let pow2554 = pow32 * pow2553; // pow(trace_generator, (safe_div((safe_mult(63493, global_values.trace_length)), 65536))). + let pow2555 = pow32 * pow2554; // pow(trace_generator, (safe_div((safe_mult(31747, global_values.trace_length)), 32768))). + let pow2556 = pow32 * pow2555; // pow(trace_generator, (safe_div((safe_mult(63495, global_values.trace_length)), 65536))). + let pow2557 = pow32 * pow2556; // pow(trace_generator, (safe_div((safe_mult(7937, global_values.trace_length)), 8192))). + let pow2558 = pow32 * pow2557; // pow(trace_generator, (safe_div((safe_mult(63497, global_values.trace_length)), 65536))). + let pow2559 = pow32 * pow2558; // pow(trace_generator, (safe_div((safe_mult(31749, global_values.trace_length)), 32768))). + let pow2560 = pow32 * pow2559; // pow(trace_generator, (safe_div((safe_mult(63499, global_values.trace_length)), 65536))). + let pow2561 = pow32 * pow2560; // pow(trace_generator, (safe_div((safe_mult(15875, global_values.trace_length)), 16384))). + let pow2562 = pow32 * pow2561; // pow(trace_generator, (safe_div((safe_mult(63501, global_values.trace_length)), 65536))). + let pow2563 = pow32 * pow2562; // pow(trace_generator, (safe_div((safe_mult(31751, global_values.trace_length)), 32768))). + let pow2564 = pow32 * pow2563; // pow(trace_generator, (safe_div((safe_mult(63503, global_values.trace_length)), 65536))). + let pow2565 = pow32 * pow2564; // pow(trace_generator, (safe_div((safe_mult(3969, global_values.trace_length)), 4096))). + let pow2566 = pow32 * pow2565; // pow(trace_generator, (safe_div((safe_mult(63505, global_values.trace_length)), 65536))). + let pow2567 = pow32 * pow2566; // pow(trace_generator, (safe_div((safe_mult(31753, global_values.trace_length)), 32768))). + let pow2568 = pow32 * pow2567; // pow(trace_generator, (safe_div((safe_mult(63507, global_values.trace_length)), 65536))). + let pow2569 = pow32 * pow2568; // pow(trace_generator, (safe_div((safe_mult(15877, global_values.trace_length)), 16384))). + let pow2570 = pow32 * pow2569; // pow(trace_generator, (safe_div((safe_mult(63509, global_values.trace_length)), 65536))). + let pow2571 = pow32 * pow2570; // pow(trace_generator, (safe_div((safe_mult(31755, global_values.trace_length)), 32768))). + let pow2572 = pow32 * pow2571; // pow(trace_generator, (safe_div((safe_mult(63511, global_values.trace_length)), 65536))). + let pow2573 = pow79 * pow2572; // pow(trace_generator, (safe_div((safe_mult(993, global_values.trace_length)), 1024))). + let pow2574 = pow100 * pow2573; // pow(trace_generator, (safe_div((safe_mult(497, global_values.trace_length)), 512))). + let pow2575 = pow100 * pow2574; // pow(trace_generator, (safe_div((safe_mult(995, global_values.trace_length)), 1024))). + let pow2576 = pow100 * pow2575; // pow(trace_generator, (safe_div((safe_mult(249, global_values.trace_length)), 256))). + let pow2577 = pow100 * pow2576; // pow(trace_generator, (safe_div((safe_mult(997, global_values.trace_length)), 1024))). + let pow2578 = pow100 * pow2577; // pow(trace_generator, (safe_div((safe_mult(499, global_values.trace_length)), 512))). + let pow2579 = pow100 * pow2578; // pow(trace_generator, (safe_div((safe_mult(999, global_values.trace_length)), 1024))). + let pow2580 = pow100 * pow2579; // pow(trace_generator, (safe_div((safe_mult(125, global_values.trace_length)), 128))). + let pow2581 = pow100 * pow2580; // pow(trace_generator, (safe_div((safe_mult(1001, global_values.trace_length)), 1024))). + let pow2582 = pow100 * pow2581; // pow(trace_generator, (safe_div((safe_mult(501, global_values.trace_length)), 512))). + let pow2583 = pow100 * pow2582; // pow(trace_generator, (safe_div((safe_mult(1003, global_values.trace_length)), 1024))). + let pow2584 = pow100 * pow2583; // pow(trace_generator, (safe_div((safe_mult(251, global_values.trace_length)), 256))). + let pow2585 = pow100 * pow2584; // pow(trace_generator, (safe_div((safe_mult(1005, global_values.trace_length)), 1024))). + let pow2586 = pow100 * pow2585; // pow(trace_generator, (safe_div((safe_mult(503, global_values.trace_length)), 512))). + let pow2587 = pow100 * pow2586; // pow(trace_generator, (safe_div((safe_mult(1007, global_values.trace_length)), 1024))). + let pow2588 = pow100 * pow2587; // pow(trace_generator, (safe_div((safe_mult(63, global_values.trace_length)), 64))). + let pow2589 = pow32 * pow2588; // pow(trace_generator, (safe_div((safe_mult(64513, global_values.trace_length)), 65536))). + let pow2590 = pow32 * pow2589; // pow(trace_generator, (safe_div((safe_mult(32257, global_values.trace_length)), 32768))). + let pow2591 = pow32 * pow2590; // pow(trace_generator, (safe_div((safe_mult(64515, global_values.trace_length)), 65536))). + let pow2592 = pow32 * pow2591; // pow(trace_generator, (safe_div((safe_mult(16129, global_values.trace_length)), 16384))). + let pow2593 = pow32 * pow2592; // pow(trace_generator, (safe_div((safe_mult(64517, global_values.trace_length)), 65536))). + let pow2594 = pow32 * pow2593; // pow(trace_generator, (safe_div((safe_mult(32259, global_values.trace_length)), 32768))). + let pow2595 = pow32 * pow2594; // pow(trace_generator, (safe_div((safe_mult(64519, global_values.trace_length)), 65536))). + let pow2596 = pow32 * pow2595; // pow(trace_generator, (safe_div((safe_mult(8065, global_values.trace_length)), 8192))). + let pow2597 = pow32 * pow2596; // pow(trace_generator, (safe_div((safe_mult(64521, global_values.trace_length)), 65536))). + let pow2598 = pow32 * pow2597; // pow(trace_generator, (safe_div((safe_mult(32261, global_values.trace_length)), 32768))). + let pow2599 = pow32 * pow2598; // pow(trace_generator, (safe_div((safe_mult(64523, global_values.trace_length)), 65536))). + let pow2600 = pow32 * pow2599; // pow(trace_generator, (safe_div((safe_mult(16131, global_values.trace_length)), 16384))). + let pow2601 = pow32 * pow2600; // pow(trace_generator, (safe_div((safe_mult(64525, global_values.trace_length)), 65536))). + let pow2602 = pow32 * pow2601; // pow(trace_generator, (safe_div((safe_mult(32263, global_values.trace_length)), 32768))). + let pow2603 = pow32 * pow2602; // pow(trace_generator, (safe_div((safe_mult(64527, global_values.trace_length)), 65536))). + let pow2604 = pow32 * pow2603; // pow(trace_generator, (safe_div((safe_mult(4033, global_values.trace_length)), 4096))). + let pow2605 = pow32 * pow2604; // pow(trace_generator, (safe_div((safe_mult(64529, global_values.trace_length)), 65536))). + let pow2606 = pow32 * pow2605; // pow(trace_generator, (safe_div((safe_mult(32265, global_values.trace_length)), 32768))). + let pow2607 = pow32 * pow2606; // pow(trace_generator, (safe_div((safe_mult(64531, global_values.trace_length)), 65536))). + let pow2608 = pow32 * pow2607; // pow(trace_generator, (safe_div((safe_mult(16133, global_values.trace_length)), 16384))). + let pow2609 = pow32 * pow2608; // pow(trace_generator, (safe_div((safe_mult(64533, global_values.trace_length)), 65536))). + let pow2610 = pow32 * pow2609; // pow(trace_generator, (safe_div((safe_mult(32267, global_values.trace_length)), 32768))). + let pow2611 = pow32 * pow2610; // pow(trace_generator, (safe_div((safe_mult(64535, global_values.trace_length)), 65536))). + let pow2612 = pow32 * pow2611; // pow(trace_generator, (safe_div((safe_mult(8067, global_values.trace_length)), 8192))). + let pow2613 = pow32 * pow2612; // pow(trace_generator, (safe_div((safe_mult(64537, global_values.trace_length)), 65536))). + let pow2614 = pow32 * pow2613; // pow(trace_generator, (safe_div((safe_mult(32269, global_values.trace_length)), 32768))). + let pow2615 = pow32 * pow2614; // pow(trace_generator, (safe_div((safe_mult(64539, global_values.trace_length)), 65536))). + let pow2616 = pow32 * pow2615; // pow(trace_generator, (safe_div((safe_mult(16135, global_values.trace_length)), 16384))). + let pow2617 = pow32 * pow2616; // pow(trace_generator, (safe_div((safe_mult(64541, global_values.trace_length)), 65536))). + let pow2618 = pow41 * pow2617; // pow(trace_generator, (safe_div((safe_mult(2017, global_values.trace_length)), 2048))). + let pow2619 = pow32 * pow2618; // pow(trace_generator, (safe_div((safe_mult(64545, global_values.trace_length)), 65536))). + let pow2620 = pow32 * pow2619; // pow(trace_generator, (safe_div((safe_mult(32273, global_values.trace_length)), 32768))). + let pow2621 = pow32 * pow2620; // pow(trace_generator, (safe_div((safe_mult(64547, global_values.trace_length)), 65536))). + let pow2622 = pow32 * pow2621; // pow(trace_generator, (safe_div((safe_mult(16137, global_values.trace_length)), 16384))). + let pow2623 = pow32 * pow2622; // pow(trace_generator, (safe_div((safe_mult(64549, global_values.trace_length)), 65536))). + let pow2624 = pow32 * pow2623; // pow(trace_generator, (safe_div((safe_mult(32275, global_values.trace_length)), 32768))). + let pow2625 = pow32 * pow2624; // pow(trace_generator, (safe_div((safe_mult(64551, global_values.trace_length)), 65536))). + let pow2626 = pow32 * pow2625; // pow(trace_generator, (safe_div((safe_mult(8069, global_values.trace_length)), 8192))). + let pow2627 = pow32 * pow2626; // pow(trace_generator, (safe_div((safe_mult(64553, global_values.trace_length)), 65536))). + let pow2628 = pow32 * pow2627; // pow(trace_generator, (safe_div((safe_mult(32277, global_values.trace_length)), 32768))). + let pow2629 = pow32 * pow2628; // pow(trace_generator, (safe_div((safe_mult(64555, global_values.trace_length)), 65536))). + let pow2630 = pow32 * pow2629; // pow(trace_generator, (safe_div((safe_mult(16139, global_values.trace_length)), 16384))). + let pow2631 = pow32 * pow2630; // pow(trace_generator, (safe_div((safe_mult(64557, global_values.trace_length)), 65536))). + let pow2632 = pow32 * pow2631; // pow(trace_generator, (safe_div((safe_mult(32279, global_values.trace_length)), 32768))). + let pow2633 = pow32 * pow2632; // pow(trace_generator, (safe_div((safe_mult(64559, global_values.trace_length)), 65536))). + let pow2634 = pow32 * pow2633; // pow(trace_generator, (safe_div((safe_mult(4035, global_values.trace_length)), 4096))). + let pow2635 = pow32 * pow2634; // pow(trace_generator, (safe_div((safe_mult(64561, global_values.trace_length)), 65536))). + let pow2636 = pow32 * pow2635; // pow(trace_generator, (safe_div((safe_mult(32281, global_values.trace_length)), 32768))). + let pow2637 = pow32 * pow2636; // pow(trace_generator, (safe_div((safe_mult(64563, global_values.trace_length)), 65536))). + let pow2638 = pow32 * pow2637; // pow(trace_generator, (safe_div((safe_mult(16141, global_values.trace_length)), 16384))). + let pow2639 = pow32 * pow2638; // pow(trace_generator, (safe_div((safe_mult(64565, global_values.trace_length)), 65536))). + let pow2640 = pow32 * pow2639; // pow(trace_generator, (safe_div((safe_mult(32283, global_values.trace_length)), 32768))). + let pow2641 = pow32 * pow2640; // pow(trace_generator, (safe_div((safe_mult(64567, global_values.trace_length)), 65536))). + let pow2642 = pow32 * pow2641; // pow(trace_generator, (safe_div((safe_mult(8071, global_values.trace_length)), 8192))). + let pow2643 = pow32 * pow2642; // pow(trace_generator, (safe_div((safe_mult(64569, global_values.trace_length)), 65536))). + let pow2644 = pow32 * pow2643; // pow(trace_generator, (safe_div((safe_mult(32285, global_values.trace_length)), 32768))). + let pow2645 = pow32 * pow2644; // pow(trace_generator, (safe_div((safe_mult(64571, global_values.trace_length)), 65536))). + let pow2646 = pow32 * pow2645; // pow(trace_generator, (safe_div((safe_mult(16143, global_values.trace_length)), 16384))). + let pow2647 = pow32 * pow2646; // pow(trace_generator, (safe_div((safe_mult(64573, global_values.trace_length)), 65536))). + let pow2648 = pow41 * pow2647; // pow(trace_generator, (safe_div((safe_mult(1009, global_values.trace_length)), 1024))). + let pow2649 = pow32 * pow2648; // pow(trace_generator, (safe_div((safe_mult(64577, global_values.trace_length)), 65536))). + let pow2650 = pow32 * pow2649; // pow(trace_generator, (safe_div((safe_mult(32289, global_values.trace_length)), 32768))). + let pow2651 = pow32 * pow2650; // pow(trace_generator, (safe_div((safe_mult(64579, global_values.trace_length)), 65536))). + let pow2652 = pow32 * pow2651; // pow(trace_generator, (safe_div((safe_mult(16145, global_values.trace_length)), 16384))). + let pow2653 = pow32 * pow2652; // pow(trace_generator, (safe_div((safe_mult(64581, global_values.trace_length)), 65536))). + let pow2654 = pow32 * pow2653; // pow(trace_generator, (safe_div((safe_mult(32291, global_values.trace_length)), 32768))). + let pow2655 = pow32 * pow2654; // pow(trace_generator, (safe_div((safe_mult(64583, global_values.trace_length)), 65536))). + let pow2656 = pow32 * pow2655; // pow(trace_generator, (safe_div((safe_mult(8073, global_values.trace_length)), 8192))). + let pow2657 = pow32 * pow2656; // pow(trace_generator, (safe_div((safe_mult(64585, global_values.trace_length)), 65536))). + let pow2658 = pow32 * pow2657; // pow(trace_generator, (safe_div((safe_mult(32293, global_values.trace_length)), 32768))). + let pow2659 = pow32 * pow2658; // pow(trace_generator, (safe_div((safe_mult(64587, global_values.trace_length)), 65536))). + let pow2660 = pow32 * pow2659; // pow(trace_generator, (safe_div((safe_mult(16147, global_values.trace_length)), 16384))). + let pow2661 = pow32 * pow2660; // pow(trace_generator, (safe_div((safe_mult(64589, global_values.trace_length)), 65536))). + let pow2662 = pow32 * pow2661; // pow(trace_generator, (safe_div((safe_mult(32295, global_values.trace_length)), 32768))). + let pow2663 = pow32 * pow2662; // pow(trace_generator, (safe_div((safe_mult(64591, global_values.trace_length)), 65536))). + let pow2664 = pow32 * pow2663; // pow(trace_generator, (safe_div((safe_mult(4037, global_values.trace_length)), 4096))). + let pow2665 = pow32 * pow2664; // pow(trace_generator, (safe_div((safe_mult(64593, global_values.trace_length)), 65536))). + let pow2666 = pow32 * pow2665; // pow(trace_generator, (safe_div((safe_mult(32297, global_values.trace_length)), 32768))). + let pow2667 = pow32 * pow2666; // pow(trace_generator, (safe_div((safe_mult(64595, global_values.trace_length)), 65536))). + let pow2668 = pow32 * pow2667; // pow(trace_generator, (safe_div((safe_mult(16149, global_values.trace_length)), 16384))). + let pow2669 = pow32 * pow2668; // pow(trace_generator, (safe_div((safe_mult(64597, global_values.trace_length)), 65536))). + let pow2670 = pow32 * pow2669; // pow(trace_generator, (safe_div((safe_mult(32299, global_values.trace_length)), 32768))). + let pow2671 = pow32 * pow2670; // pow(trace_generator, (safe_div((safe_mult(64599, global_values.trace_length)), 65536))). + let pow2672 = pow32 * pow2671; // pow(trace_generator, (safe_div((safe_mult(8075, global_values.trace_length)), 8192))). + let pow2673 = pow32 * pow2672; // pow(trace_generator, (safe_div((safe_mult(64601, global_values.trace_length)), 65536))). + let pow2674 = pow32 * pow2673; // pow(trace_generator, (safe_div((safe_mult(32301, global_values.trace_length)), 32768))). + let pow2675 = pow32 * pow2674; // pow(trace_generator, (safe_div((safe_mult(64603, global_values.trace_length)), 65536))). + let pow2676 = pow32 * pow2675; // pow(trace_generator, (safe_div((safe_mult(16151, global_values.trace_length)), 16384))). + let pow2677 = pow32 * pow2676; // pow(trace_generator, (safe_div((safe_mult(64605, global_values.trace_length)), 65536))). + let pow2678 = pow41 * pow2677; // pow(trace_generator, (safe_div((safe_mult(2019, global_values.trace_length)), 2048))). + let pow2679 = pow32 * pow2678; // pow(trace_generator, (safe_div((safe_mult(64609, global_values.trace_length)), 65536))). + let pow2680 = pow32 * pow2679; // pow(trace_generator, (safe_div((safe_mult(32305, global_values.trace_length)), 32768))). + let pow2681 = pow32 * pow2680; // pow(trace_generator, (safe_div((safe_mult(64611, global_values.trace_length)), 65536))). + let pow2682 = pow32 * pow2681; // pow(trace_generator, (safe_div((safe_mult(16153, global_values.trace_length)), 16384))). + let pow2683 = pow32 * pow2682; // pow(trace_generator, (safe_div((safe_mult(64613, global_values.trace_length)), 65536))). + let pow2684 = pow32 * pow2683; // pow(trace_generator, (safe_div((safe_mult(32307, global_values.trace_length)), 32768))). + let pow2685 = pow32 * pow2684; // pow(trace_generator, (safe_div((safe_mult(64615, global_values.trace_length)), 65536))). + let pow2686 = pow32 * pow2685; // pow(trace_generator, (safe_div((safe_mult(8077, global_values.trace_length)), 8192))). + let pow2687 = pow32 * pow2686; // pow(trace_generator, (safe_div((safe_mult(64617, global_values.trace_length)), 65536))). + let pow2688 = pow32 * pow2687; // pow(trace_generator, (safe_div((safe_mult(32309, global_values.trace_length)), 32768))). + let pow2689 = pow32 * pow2688; // pow(trace_generator, (safe_div((safe_mult(64619, global_values.trace_length)), 65536))). + let pow2690 = pow32 * pow2689; // pow(trace_generator, (safe_div((safe_mult(16155, global_values.trace_length)), 16384))). + let pow2691 = pow32 * pow2690; // pow(trace_generator, (safe_div((safe_mult(64621, global_values.trace_length)), 65536))). + let pow2692 = pow32 * pow2691; // pow(trace_generator, (safe_div((safe_mult(32311, global_values.trace_length)), 32768))). + let pow2693 = pow32 * pow2692; // pow(trace_generator, (safe_div((safe_mult(64623, global_values.trace_length)), 65536))). + let pow2694 = pow32 * pow2693; // pow(trace_generator, (safe_div((safe_mult(4039, global_values.trace_length)), 4096))). + let pow2695 = pow32 * pow2694; // pow(trace_generator, (safe_div((safe_mult(64625, global_values.trace_length)), 65536))). + let pow2696 = pow32 * pow2695; // pow(trace_generator, (safe_div((safe_mult(32313, global_values.trace_length)), 32768))). + let pow2697 = pow32 * pow2696; // pow(trace_generator, (safe_div((safe_mult(64627, global_values.trace_length)), 65536))). + let pow2698 = pow32 * pow2697; // pow(trace_generator, (safe_div((safe_mult(16157, global_values.trace_length)), 16384))). + let pow2699 = pow32 * pow2698; // pow(trace_generator, (safe_div((safe_mult(64629, global_values.trace_length)), 65536))). + let pow2700 = pow32 * pow2699; // pow(trace_generator, (safe_div((safe_mult(32315, global_values.trace_length)), 32768))). + let pow2701 = pow32 * pow2700; // pow(trace_generator, (safe_div((safe_mult(64631, global_values.trace_length)), 65536))). + let pow2702 = pow32 * pow2701; // pow(trace_generator, (safe_div((safe_mult(8079, global_values.trace_length)), 8192))). + let pow2703 = pow32 * pow2702; // pow(trace_generator, (safe_div((safe_mult(64633, global_values.trace_length)), 65536))). + let pow2704 = pow32 * pow2703; // pow(trace_generator, (safe_div((safe_mult(32317, global_values.trace_length)), 32768))). + let pow2705 = pow32 * pow2704; // pow(trace_generator, (safe_div((safe_mult(64635, global_values.trace_length)), 65536))). + let pow2706 = pow32 * pow2705; // pow(trace_generator, (safe_div((safe_mult(16159, global_values.trace_length)), 16384))). + let pow2707 = pow32 * pow2706; // pow(trace_generator, (safe_div((safe_mult(64637, global_values.trace_length)), 65536))). + let pow2708 = pow41 * pow2707; // pow(trace_generator, (safe_div((safe_mult(505, global_values.trace_length)), 512))). + let pow2709 = pow32 * pow2708; // pow(trace_generator, (safe_div((safe_mult(64641, global_values.trace_length)), 65536))). + let pow2710 = pow32 * pow2709; // pow(trace_generator, (safe_div((safe_mult(32321, global_values.trace_length)), 32768))). + let pow2711 = pow32 * pow2710; // pow(trace_generator, (safe_div((safe_mult(64643, global_values.trace_length)), 65536))). + let pow2712 = pow32 * pow2711; // pow(trace_generator, (safe_div((safe_mult(16161, global_values.trace_length)), 16384))). + let pow2713 = pow32 * pow2712; // pow(trace_generator, (safe_div((safe_mult(64645, global_values.trace_length)), 65536))). + let pow2714 = pow32 * pow2713; // pow(trace_generator, (safe_div((safe_mult(32323, global_values.trace_length)), 32768))). + let pow2715 = pow32 * pow2714; // pow(trace_generator, (safe_div((safe_mult(64647, global_values.trace_length)), 65536))). + let pow2716 = pow32 * pow2715; // pow(trace_generator, (safe_div((safe_mult(8081, global_values.trace_length)), 8192))). + let pow2717 = pow32 * pow2716; // pow(trace_generator, (safe_div((safe_mult(64649, global_values.trace_length)), 65536))). + let pow2718 = pow32 * pow2717; // pow(trace_generator, (safe_div((safe_mult(32325, global_values.trace_length)), 32768))). + let pow2719 = pow32 * pow2718; // pow(trace_generator, (safe_div((safe_mult(64651, global_values.trace_length)), 65536))). + let pow2720 = pow32 * pow2719; // pow(trace_generator, (safe_div((safe_mult(16163, global_values.trace_length)), 16384))). + let pow2721 = pow32 * pow2720; // pow(trace_generator, (safe_div((safe_mult(64653, global_values.trace_length)), 65536))). + let pow2722 = pow32 * pow2721; // pow(trace_generator, (safe_div((safe_mult(32327, global_values.trace_length)), 32768))). + let pow2723 = pow32 * pow2722; // pow(trace_generator, (safe_div((safe_mult(64655, global_values.trace_length)), 65536))). + let pow2724 = pow32 * pow2723; // pow(trace_generator, (safe_div((safe_mult(4041, global_values.trace_length)), 4096))). + let pow2725 = pow32 * pow2724; // pow(trace_generator, (safe_div((safe_mult(64657, global_values.trace_length)), 65536))). + let pow2726 = pow32 * pow2725; // pow(trace_generator, (safe_div((safe_mult(32329, global_values.trace_length)), 32768))). + let pow2727 = pow32 * pow2726; // pow(trace_generator, (safe_div((safe_mult(64659, global_values.trace_length)), 65536))). + let pow2728 = pow32 * pow2727; // pow(trace_generator, (safe_div((safe_mult(16165, global_values.trace_length)), 16384))). + let pow2729 = pow32 * pow2728; // pow(trace_generator, (safe_div((safe_mult(64661, global_values.trace_length)), 65536))). + let pow2730 = pow32 * pow2729; // pow(trace_generator, (safe_div((safe_mult(32331, global_values.trace_length)), 32768))). + let pow2731 = pow32 * pow2730; // pow(trace_generator, (safe_div((safe_mult(64663, global_values.trace_length)), 65536))). + let pow2732 = pow32 * pow2731; // pow(trace_generator, (safe_div((safe_mult(8083, global_values.trace_length)), 8192))). + let pow2733 = pow32 * pow2732; // pow(trace_generator, (safe_div((safe_mult(64665, global_values.trace_length)), 65536))). + let pow2734 = pow32 * pow2733; // pow(trace_generator, (safe_div((safe_mult(32333, global_values.trace_length)), 32768))). + let pow2735 = pow32 * pow2734; // pow(trace_generator, (safe_div((safe_mult(64667, global_values.trace_length)), 65536))). + let pow2736 = pow32 * pow2735; // pow(trace_generator, (safe_div((safe_mult(16167, global_values.trace_length)), 16384))). + let pow2737 = pow32 * pow2736; // pow(trace_generator, (safe_div((safe_mult(64669, global_values.trace_length)), 65536))). + let pow2738 = pow41 * pow2737; // pow(trace_generator, (safe_div((safe_mult(2021, global_values.trace_length)), 2048))). + let pow2739 = pow32 * pow2738; // pow(trace_generator, (safe_div((safe_mult(64673, global_values.trace_length)), 65536))). + let pow2740 = pow32 * pow2739; // pow(trace_generator, (safe_div((safe_mult(32337, global_values.trace_length)), 32768))). + let pow2741 = pow32 * pow2740; // pow(trace_generator, (safe_div((safe_mult(64675, global_values.trace_length)), 65536))). + let pow2742 = pow32 * pow2741; // pow(trace_generator, (safe_div((safe_mult(16169, global_values.trace_length)), 16384))). + let pow2743 = pow32 * pow2742; // pow(trace_generator, (safe_div((safe_mult(64677, global_values.trace_length)), 65536))). + let pow2744 = pow32 * pow2743; // pow(trace_generator, (safe_div((safe_mult(32339, global_values.trace_length)), 32768))). + let pow2745 = pow32 * pow2744; // pow(trace_generator, (safe_div((safe_mult(64679, global_values.trace_length)), 65536))). + let pow2746 = pow32 * pow2745; // pow(trace_generator, (safe_div((safe_mult(8085, global_values.trace_length)), 8192))). + let pow2747 = pow32 * pow2746; // pow(trace_generator, (safe_div((safe_mult(64681, global_values.trace_length)), 65536))). + let pow2748 = pow32 * pow2747; // pow(trace_generator, (safe_div((safe_mult(32341, global_values.trace_length)), 32768))). + let pow2749 = pow32 * pow2748; // pow(trace_generator, (safe_div((safe_mult(64683, global_values.trace_length)), 65536))). + let pow2750 = pow32 * pow2749; // pow(trace_generator, (safe_div((safe_mult(16171, global_values.trace_length)), 16384))). + let pow2751 = pow32 * pow2750; // pow(trace_generator, (safe_div((safe_mult(64685, global_values.trace_length)), 65536))). + let pow2752 = pow32 * pow2751; // pow(trace_generator, (safe_div((safe_mult(32343, global_values.trace_length)), 32768))). + let pow2753 = pow32 * pow2752; // pow(trace_generator, (safe_div((safe_mult(64687, global_values.trace_length)), 65536))). + let pow2754 = pow32 * pow2753; // pow(trace_generator, (safe_div((safe_mult(4043, global_values.trace_length)), 4096))). + let pow2755 = pow32 * pow2754; // pow(trace_generator, (safe_div((safe_mult(64689, global_values.trace_length)), 65536))). + let pow2756 = pow32 * pow2755; // pow(trace_generator, (safe_div((safe_mult(32345, global_values.trace_length)), 32768))). + let pow2757 = pow32 * pow2756; // pow(trace_generator, (safe_div((safe_mult(64691, global_values.trace_length)), 65536))). + let pow2758 = pow32 * pow2757; // pow(trace_generator, (safe_div((safe_mult(16173, global_values.trace_length)), 16384))). + let pow2759 = pow32 * pow2758; // pow(trace_generator, (safe_div((safe_mult(64693, global_values.trace_length)), 65536))). + let pow2760 = pow32 * pow2759; // pow(trace_generator, (safe_div((safe_mult(32347, global_values.trace_length)), 32768))). + let pow2761 = pow32 * pow2760; // pow(trace_generator, (safe_div((safe_mult(64695, global_values.trace_length)), 65536))). + let pow2762 = pow32 * pow2761; // pow(trace_generator, (safe_div((safe_mult(8087, global_values.trace_length)), 8192))). + let pow2763 = pow32 * pow2762; // pow(trace_generator, (safe_div((safe_mult(64697, global_values.trace_length)), 65536))). + let pow2764 = pow32 * pow2763; // pow(trace_generator, (safe_div((safe_mult(32349, global_values.trace_length)), 32768))). + let pow2765 = pow32 * pow2764; // pow(trace_generator, (safe_div((safe_mult(64699, global_values.trace_length)), 65536))). + let pow2766 = pow32 * pow2765; // pow(trace_generator, (safe_div((safe_mult(16175, global_values.trace_length)), 16384))). + let pow2767 = pow32 * pow2766; // pow(trace_generator, (safe_div((safe_mult(64701, global_values.trace_length)), 65536))). + let pow2768 = pow41 * pow2767; // pow(trace_generator, (safe_div((safe_mult(1011, global_values.trace_length)), 1024))). + let pow2769 = pow32 * pow2768; // pow(trace_generator, (safe_div((safe_mult(64705, global_values.trace_length)), 65536))). + let pow2770 = pow32 * pow2769; // pow(trace_generator, (safe_div((safe_mult(32353, global_values.trace_length)), 32768))). + let pow2771 = pow32 * pow2770; // pow(trace_generator, (safe_div((safe_mult(64707, global_values.trace_length)), 65536))). + let pow2772 = pow32 * pow2771; // pow(trace_generator, (safe_div((safe_mult(16177, global_values.trace_length)), 16384))). + let pow2773 = pow32 * pow2772; // pow(trace_generator, (safe_div((safe_mult(64709, global_values.trace_length)), 65536))). + let pow2774 = pow32 * pow2773; // pow(trace_generator, (safe_div((safe_mult(32355, global_values.trace_length)), 32768))). + let pow2775 = pow32 * pow2774; // pow(trace_generator, (safe_div((safe_mult(64711, global_values.trace_length)), 65536))). + let pow2776 = pow32 * pow2775; // pow(trace_generator, (safe_div((safe_mult(8089, global_values.trace_length)), 8192))). + let pow2777 = pow32 * pow2776; // pow(trace_generator, (safe_div((safe_mult(64713, global_values.trace_length)), 65536))). + let pow2778 = pow32 * pow2777; // pow(trace_generator, (safe_div((safe_mult(32357, global_values.trace_length)), 32768))). + let pow2779 = pow32 * pow2778; // pow(trace_generator, (safe_div((safe_mult(64715, global_values.trace_length)), 65536))). + let pow2780 = pow32 * pow2779; // pow(trace_generator, (safe_div((safe_mult(16179, global_values.trace_length)), 16384))). + let pow2781 = pow32 * pow2780; // pow(trace_generator, (safe_div((safe_mult(64717, global_values.trace_length)), 65536))). + let pow2782 = pow32 * pow2781; // pow(trace_generator, (safe_div((safe_mult(32359, global_values.trace_length)), 32768))). + let pow2783 = pow32 * pow2782; // pow(trace_generator, (safe_div((safe_mult(64719, global_values.trace_length)), 65536))). + let pow2784 = pow32 * pow2783; // pow(trace_generator, (safe_div((safe_mult(4045, global_values.trace_length)), 4096))). + let pow2785 = pow32 * pow2784; // pow(trace_generator, (safe_div((safe_mult(64721, global_values.trace_length)), 65536))). + let pow2786 = pow32 * pow2785; // pow(trace_generator, (safe_div((safe_mult(32361, global_values.trace_length)), 32768))). + let pow2787 = pow32 * pow2786; // pow(trace_generator, (safe_div((safe_mult(64723, global_values.trace_length)), 65536))). + let pow2788 = pow32 * pow2787; // pow(trace_generator, (safe_div((safe_mult(16181, global_values.trace_length)), 16384))). + let pow2789 = pow32 * pow2788; // pow(trace_generator, (safe_div((safe_mult(64725, global_values.trace_length)), 65536))). + let pow2790 = pow32 * pow2789; // pow(trace_generator, (safe_div((safe_mult(32363, global_values.trace_length)), 32768))). + let pow2791 = pow32 * pow2790; // pow(trace_generator, (safe_div((safe_mult(64727, global_values.trace_length)), 65536))). + let pow2792 = pow32 * pow2791; // pow(trace_generator, (safe_div((safe_mult(8091, global_values.trace_length)), 8192))). + let pow2793 = pow32 * pow2792; // pow(trace_generator, (safe_div((safe_mult(64729, global_values.trace_length)), 65536))). + let pow2794 = pow32 * pow2793; // pow(trace_generator, (safe_div((safe_mult(32365, global_values.trace_length)), 32768))). + let pow2795 = pow32 * pow2794; // pow(trace_generator, (safe_div((safe_mult(64731, global_values.trace_length)), 65536))). + let pow2796 = pow32 * pow2795; // pow(trace_generator, (safe_div((safe_mult(16183, global_values.trace_length)), 16384))). + let pow2797 = pow32 * pow2796; // pow(trace_generator, (safe_div((safe_mult(64733, global_values.trace_length)), 65536))). + let pow2798 = pow41 * pow2797; // pow(trace_generator, (safe_div((safe_mult(2023, global_values.trace_length)), 2048))). + let pow2799 = pow32 * pow2798; // pow(trace_generator, (safe_div((safe_mult(64737, global_values.trace_length)), 65536))). + let pow2800 = pow32 * pow2799; // pow(trace_generator, (safe_div((safe_mult(32369, global_values.trace_length)), 32768))). + let pow2801 = pow32 * pow2800; // pow(trace_generator, (safe_div((safe_mult(64739, global_values.trace_length)), 65536))). + let pow2802 = pow32 * pow2801; // pow(trace_generator, (safe_div((safe_mult(16185, global_values.trace_length)), 16384))). + let pow2803 = pow32 * pow2802; // pow(trace_generator, (safe_div((safe_mult(64741, global_values.trace_length)), 65536))). + let pow2804 = pow32 * pow2803; // pow(trace_generator, (safe_div((safe_mult(32371, global_values.trace_length)), 32768))). + let pow2805 = pow32 * pow2804; // pow(trace_generator, (safe_div((safe_mult(64743, global_values.trace_length)), 65536))). + let pow2806 = pow32 * pow2805; // pow(trace_generator, (safe_div((safe_mult(8093, global_values.trace_length)), 8192))). + let pow2807 = pow32 * pow2806; // pow(trace_generator, (safe_div((safe_mult(64745, global_values.trace_length)), 65536))). + let pow2808 = pow32 * pow2807; // pow(trace_generator, (safe_div((safe_mult(32373, global_values.trace_length)), 32768))). + let pow2809 = pow32 * pow2808; // pow(trace_generator, (safe_div((safe_mult(64747, global_values.trace_length)), 65536))). + let pow2810 = pow32 * pow2809; // pow(trace_generator, (safe_div((safe_mult(16187, global_values.trace_length)), 16384))). + let pow2811 = pow32 * pow2810; // pow(trace_generator, (safe_div((safe_mult(64749, global_values.trace_length)), 65536))). + let pow2812 = pow32 * pow2811; // pow(trace_generator, (safe_div((safe_mult(32375, global_values.trace_length)), 32768))). + let pow2813 = pow32 * pow2812; // pow(trace_generator, (safe_div((safe_mult(64751, global_values.trace_length)), 65536))). + let pow2814 = pow32 * pow2813; // pow(trace_generator, (safe_div((safe_mult(4047, global_values.trace_length)), 4096))). + let pow2815 = pow32 * pow2814; // pow(trace_generator, (safe_div((safe_mult(64753, global_values.trace_length)), 65536))). + let pow2816 = pow32 * pow2815; // pow(trace_generator, (safe_div((safe_mult(32377, global_values.trace_length)), 32768))). + let pow2817 = pow32 * pow2816; // pow(trace_generator, (safe_div((safe_mult(64755, global_values.trace_length)), 65536))). + let pow2818 = pow32 * pow2817; // pow(trace_generator, (safe_div((safe_mult(16189, global_values.trace_length)), 16384))). + let pow2819 = pow32 * pow2818; // pow(trace_generator, (safe_div((safe_mult(64757, global_values.trace_length)), 65536))). + let pow2820 = pow32 * pow2819; // pow(trace_generator, (safe_div((safe_mult(32379, global_values.trace_length)), 32768))). + let pow2821 = pow32 * pow2820; // pow(trace_generator, (safe_div((safe_mult(64759, global_values.trace_length)), 65536))). + let pow2822 = pow32 * pow2821; // pow(trace_generator, (safe_div((safe_mult(8095, global_values.trace_length)), 8192))). + let pow2823 = pow32 * pow2822; // pow(trace_generator, (safe_div((safe_mult(64761, global_values.trace_length)), 65536))). + let pow2824 = pow32 * pow2823; // pow(trace_generator, (safe_div((safe_mult(32381, global_values.trace_length)), 32768))). + let pow2825 = pow32 * pow2824; // pow(trace_generator, (safe_div((safe_mult(64763, global_values.trace_length)), 65536))). + let pow2826 = pow32 * pow2825; // pow(trace_generator, (safe_div((safe_mult(16191, global_values.trace_length)), 16384))). + let pow2827 = pow32 * pow2826; // pow(trace_generator, (safe_div((safe_mult(64765, global_values.trace_length)), 65536))). + let pow2828 = pow41 * pow2827; // pow(trace_generator, (safe_div((safe_mult(253, global_values.trace_length)), 256))). + let pow2829 = pow32 * pow2828; // pow(trace_generator, (safe_div((safe_mult(64769, global_values.trace_length)), 65536))). + let pow2830 = pow32 * pow2829; // pow(trace_generator, (safe_div((safe_mult(32385, global_values.trace_length)), 32768))). + let pow2831 = pow32 * pow2830; // pow(trace_generator, (safe_div((safe_mult(64771, global_values.trace_length)), 65536))). + let pow2832 = pow32 * pow2831; // pow(trace_generator, (safe_div((safe_mult(16193, global_values.trace_length)), 16384))). + let pow2833 = pow32 * pow2832; // pow(trace_generator, (safe_div((safe_mult(64773, global_values.trace_length)), 65536))). + let pow2834 = pow32 * pow2833; // pow(trace_generator, (safe_div((safe_mult(32387, global_values.trace_length)), 32768))). + let pow2835 = pow32 * pow2834; // pow(trace_generator, (safe_div((safe_mult(64775, global_values.trace_length)), 65536))). + let pow2836 = pow32 * pow2835; // pow(trace_generator, (safe_div((safe_mult(8097, global_values.trace_length)), 8192))). + let pow2837 = pow32 * pow2836; // pow(trace_generator, (safe_div((safe_mult(64777, global_values.trace_length)), 65536))). + let pow2838 = pow32 * pow2837; // pow(trace_generator, (safe_div((safe_mult(32389, global_values.trace_length)), 32768))). + let pow2839 = pow32 * pow2838; // pow(trace_generator, (safe_div((safe_mult(64779, global_values.trace_length)), 65536))). + let pow2840 = pow32 * pow2839; // pow(trace_generator, (safe_div((safe_mult(16195, global_values.trace_length)), 16384))). + let pow2841 = pow32 * pow2840; // pow(trace_generator, (safe_div((safe_mult(64781, global_values.trace_length)), 65536))). + let pow2842 = pow32 * pow2841; // pow(trace_generator, (safe_div((safe_mult(32391, global_values.trace_length)), 32768))). + let pow2843 = pow32 * pow2842; // pow(trace_generator, (safe_div((safe_mult(64783, global_values.trace_length)), 65536))). + let pow2844 = pow32 * pow2843; // pow(trace_generator, (safe_div((safe_mult(4049, global_values.trace_length)), 4096))). + let pow2845 = pow32 * pow2844; // pow(trace_generator, (safe_div((safe_mult(64785, global_values.trace_length)), 65536))). + let pow2846 = pow32 * pow2845; // pow(trace_generator, (safe_div((safe_mult(32393, global_values.trace_length)), 32768))). + let pow2847 = pow32 * pow2846; // pow(trace_generator, (safe_div((safe_mult(64787, global_values.trace_length)), 65536))). + let pow2848 = pow32 * pow2847; // pow(trace_generator, (safe_div((safe_mult(16197, global_values.trace_length)), 16384))). + let pow2849 = pow32 * pow2848; // pow(trace_generator, (safe_div((safe_mult(64789, global_values.trace_length)), 65536))). + let pow2850 = pow32 * pow2849; // pow(trace_generator, (safe_div((safe_mult(32395, global_values.trace_length)), 32768))). + let pow2851 = pow32 * pow2850; // pow(trace_generator, (safe_div((safe_mult(64791, global_values.trace_length)), 65536))). + let pow2852 = pow32 * pow2851; // pow(trace_generator, (safe_div((safe_mult(8099, global_values.trace_length)), 8192))). + let pow2853 = pow32 * pow2852; // pow(trace_generator, (safe_div((safe_mult(64793, global_values.trace_length)), 65536))). + let pow2854 = pow32 * pow2853; // pow(trace_generator, (safe_div((safe_mult(32397, global_values.trace_length)), 32768))). + let pow2855 = pow32 * pow2854; // pow(trace_generator, (safe_div((safe_mult(64795, global_values.trace_length)), 65536))). + let pow2856 = pow32 * pow2855; // pow(trace_generator, (safe_div((safe_mult(16199, global_values.trace_length)), 16384))). + let pow2857 = pow32 * pow2856; // pow(trace_generator, (safe_div((safe_mult(64797, global_values.trace_length)), 65536))). + let pow2858 = pow41 * pow2857; // pow(trace_generator, (safe_div((safe_mult(2025, global_values.trace_length)), 2048))). + let pow2859 = pow32 * pow2858; // pow(trace_generator, (safe_div((safe_mult(64801, global_values.trace_length)), 65536))). + let pow2860 = pow32 * pow2859; // pow(trace_generator, (safe_div((safe_mult(32401, global_values.trace_length)), 32768))). + let pow2861 = pow32 * pow2860; // pow(trace_generator, (safe_div((safe_mult(64803, global_values.trace_length)), 65536))). + let pow2862 = pow32 * pow2861; // pow(trace_generator, (safe_div((safe_mult(16201, global_values.trace_length)), 16384))). + let pow2863 = pow32 * pow2862; // pow(trace_generator, (safe_div((safe_mult(64805, global_values.trace_length)), 65536))). + let pow2864 = pow32 * pow2863; // pow(trace_generator, (safe_div((safe_mult(32403, global_values.trace_length)), 32768))). + let pow2865 = pow32 * pow2864; // pow(trace_generator, (safe_div((safe_mult(64807, global_values.trace_length)), 65536))). + let pow2866 = pow32 * pow2865; // pow(trace_generator, (safe_div((safe_mult(8101, global_values.trace_length)), 8192))). + let pow2867 = pow32 * pow2866; // pow(trace_generator, (safe_div((safe_mult(64809, global_values.trace_length)), 65536))). + let pow2868 = pow32 * pow2867; // pow(trace_generator, (safe_div((safe_mult(32405, global_values.trace_length)), 32768))). + let pow2869 = pow32 * pow2868; // pow(trace_generator, (safe_div((safe_mult(64811, global_values.trace_length)), 65536))). + let pow2870 = pow32 * pow2869; // pow(trace_generator, (safe_div((safe_mult(16203, global_values.trace_length)), 16384))). + let pow2871 = pow32 * pow2870; // pow(trace_generator, (safe_div((safe_mult(64813, global_values.trace_length)), 65536))). + let pow2872 = pow32 * pow2871; // pow(trace_generator, (safe_div((safe_mult(32407, global_values.trace_length)), 32768))). + let pow2873 = pow32 * pow2872; // pow(trace_generator, (safe_div((safe_mult(64815, global_values.trace_length)), 65536))). + let pow2874 = pow32 * pow2873; // pow(trace_generator, (safe_div((safe_mult(4051, global_values.trace_length)), 4096))). + let pow2875 = pow32 * pow2874; // pow(trace_generator, (safe_div((safe_mult(64817, global_values.trace_length)), 65536))). + let pow2876 = pow32 * pow2875; // pow(trace_generator, (safe_div((safe_mult(32409, global_values.trace_length)), 32768))). + let pow2877 = pow32 * pow2876; // pow(trace_generator, (safe_div((safe_mult(64819, global_values.trace_length)), 65536))). + let pow2878 = pow32 * pow2877; // pow(trace_generator, (safe_div((safe_mult(16205, global_values.trace_length)), 16384))). + let pow2879 = pow32 * pow2878; // pow(trace_generator, (safe_div((safe_mult(64821, global_values.trace_length)), 65536))). + let pow2880 = pow32 * pow2879; // pow(trace_generator, (safe_div((safe_mult(32411, global_values.trace_length)), 32768))). + let pow2881 = pow32 * pow2880; // pow(trace_generator, (safe_div((safe_mult(64823, global_values.trace_length)), 65536))). + let pow2882 = pow32 * pow2881; // pow(trace_generator, (safe_div((safe_mult(8103, global_values.trace_length)), 8192))). + let pow2883 = pow32 * pow2882; // pow(trace_generator, (safe_div((safe_mult(64825, global_values.trace_length)), 65536))). + let pow2884 = pow32 * pow2883; // pow(trace_generator, (safe_div((safe_mult(32413, global_values.trace_length)), 32768))). + let pow2885 = pow32 * pow2884; // pow(trace_generator, (safe_div((safe_mult(64827, global_values.trace_length)), 65536))). + let pow2886 = pow32 * pow2885; // pow(trace_generator, (safe_div((safe_mult(16207, global_values.trace_length)), 16384))). + let pow2887 = pow32 * pow2886; // pow(trace_generator, (safe_div((safe_mult(64829, global_values.trace_length)), 65536))). + let pow2888 = pow41 * pow2887; // pow(trace_generator, (safe_div((safe_mult(1013, global_values.trace_length)), 1024))). + let pow2889 = pow32 * pow2888; // pow(trace_generator, (safe_div((safe_mult(64833, global_values.trace_length)), 65536))). + let pow2890 = pow32 * pow2889; // pow(trace_generator, (safe_div((safe_mult(32417, global_values.trace_length)), 32768))). + let pow2891 = pow32 * pow2890; // pow(trace_generator, (safe_div((safe_mult(64835, global_values.trace_length)), 65536))). + let pow2892 = pow32 * pow2891; // pow(trace_generator, (safe_div((safe_mult(16209, global_values.trace_length)), 16384))). + let pow2893 = pow32 * pow2892; // pow(trace_generator, (safe_div((safe_mult(64837, global_values.trace_length)), 65536))). + let pow2894 = pow32 * pow2893; // pow(trace_generator, (safe_div((safe_mult(32419, global_values.trace_length)), 32768))). + let pow2895 = pow32 * pow2894; // pow(trace_generator, (safe_div((safe_mult(64839, global_values.trace_length)), 65536))). + let pow2896 = pow32 * pow2895; // pow(trace_generator, (safe_div((safe_mult(8105, global_values.trace_length)), 8192))). + let pow2897 = pow32 * pow2896; // pow(trace_generator, (safe_div((safe_mult(64841, global_values.trace_length)), 65536))). + let pow2898 = pow32 * pow2897; // pow(trace_generator, (safe_div((safe_mult(32421, global_values.trace_length)), 32768))). + let pow2899 = pow32 * pow2898; // pow(trace_generator, (safe_div((safe_mult(64843, global_values.trace_length)), 65536))). + let pow2900 = pow32 * pow2899; // pow(trace_generator, (safe_div((safe_mult(16211, global_values.trace_length)), 16384))). + let pow2901 = pow32 * pow2900; // pow(trace_generator, (safe_div((safe_mult(64845, global_values.trace_length)), 65536))). + let pow2902 = pow32 * pow2901; // pow(trace_generator, (safe_div((safe_mult(32423, global_values.trace_length)), 32768))). + let pow2903 = pow32 * pow2902; // pow(trace_generator, (safe_div((safe_mult(64847, global_values.trace_length)), 65536))). + let pow2904 = pow32 * pow2903; // pow(trace_generator, (safe_div((safe_mult(4053, global_values.trace_length)), 4096))). + let pow2905 = pow32 * pow2904; // pow(trace_generator, (safe_div((safe_mult(64849, global_values.trace_length)), 65536))). + let pow2906 = pow32 * pow2905; // pow(trace_generator, (safe_div((safe_mult(32425, global_values.trace_length)), 32768))). + let pow2907 = pow32 * pow2906; // pow(trace_generator, (safe_div((safe_mult(64851, global_values.trace_length)), 65536))). + let pow2908 = pow32 * pow2907; // pow(trace_generator, (safe_div((safe_mult(16213, global_values.trace_length)), 16384))). + let pow2909 = pow32 * pow2908; // pow(trace_generator, (safe_div((safe_mult(64853, global_values.trace_length)), 65536))). + let pow2910 = pow32 * pow2909; // pow(trace_generator, (safe_div((safe_mult(32427, global_values.trace_length)), 32768))). + let pow2911 = pow32 * pow2910; // pow(trace_generator, (safe_div((safe_mult(64855, global_values.trace_length)), 65536))). + let pow2912 = pow32 * pow2911; // pow(trace_generator, (safe_div((safe_mult(8107, global_values.trace_length)), 8192))). + let pow2913 = pow32 * pow2912; // pow(trace_generator, (safe_div((safe_mult(64857, global_values.trace_length)), 65536))). + let pow2914 = pow32 * pow2913; // pow(trace_generator, (safe_div((safe_mult(32429, global_values.trace_length)), 32768))). + let pow2915 = pow32 * pow2914; // pow(trace_generator, (safe_div((safe_mult(64859, global_values.trace_length)), 65536))). + let pow2916 = pow32 * pow2915; // pow(trace_generator, (safe_div((safe_mult(16215, global_values.trace_length)), 16384))). + let pow2917 = pow32 * pow2916; // pow(trace_generator, (safe_div((safe_mult(64861, global_values.trace_length)), 65536))). + let pow2918 = pow41 * pow2917; // pow(trace_generator, (safe_div((safe_mult(2027, global_values.trace_length)), 2048))). + let pow2919 = pow32 * pow2918; // pow(trace_generator, (safe_div((safe_mult(64865, global_values.trace_length)), 65536))). + let pow2920 = pow32 * pow2919; // pow(trace_generator, (safe_div((safe_mult(32433, global_values.trace_length)), 32768))). + let pow2921 = pow32 * pow2920; // pow(trace_generator, (safe_div((safe_mult(64867, global_values.trace_length)), 65536))). + let pow2922 = pow32 * pow2921; // pow(trace_generator, (safe_div((safe_mult(16217, global_values.trace_length)), 16384))). + let pow2923 = pow32 * pow2922; // pow(trace_generator, (safe_div((safe_mult(64869, global_values.trace_length)), 65536))). + let pow2924 = pow32 * pow2923; // pow(trace_generator, (safe_div((safe_mult(32435, global_values.trace_length)), 32768))). + let pow2925 = pow32 * pow2924; // pow(trace_generator, (safe_div((safe_mult(64871, global_values.trace_length)), 65536))). + let pow2926 = pow32 * pow2925; // pow(trace_generator, (safe_div((safe_mult(8109, global_values.trace_length)), 8192))). + let pow2927 = pow32 * pow2926; // pow(trace_generator, (safe_div((safe_mult(64873, global_values.trace_length)), 65536))). + let pow2928 = pow32 * pow2927; // pow(trace_generator, (safe_div((safe_mult(32437, global_values.trace_length)), 32768))). + let pow2929 = pow32 * pow2928; // pow(trace_generator, (safe_div((safe_mult(64875, global_values.trace_length)), 65536))). + let pow2930 = pow32 * pow2929; // pow(trace_generator, (safe_div((safe_mult(16219, global_values.trace_length)), 16384))). + let pow2931 = pow32 * pow2930; // pow(trace_generator, (safe_div((safe_mult(64877, global_values.trace_length)), 65536))). + let pow2932 = pow32 * pow2931; // pow(trace_generator, (safe_div((safe_mult(32439, global_values.trace_length)), 32768))). + let pow2933 = pow32 * pow2932; // pow(trace_generator, (safe_div((safe_mult(64879, global_values.trace_length)), 65536))). + let pow2934 = pow32 * pow2933; // pow(trace_generator, (safe_div((safe_mult(4055, global_values.trace_length)), 4096))). + let pow2935 = pow32 * pow2934; // pow(trace_generator, (safe_div((safe_mult(64881, global_values.trace_length)), 65536))). + let pow2936 = pow32 * pow2935; // pow(trace_generator, (safe_div((safe_mult(32441, global_values.trace_length)), 32768))). + let pow2937 = pow32 * pow2936; // pow(trace_generator, (safe_div((safe_mult(64883, global_values.trace_length)), 65536))). + let pow2938 = pow32 * pow2937; // pow(trace_generator, (safe_div((safe_mult(16221, global_values.trace_length)), 16384))). + let pow2939 = pow32 * pow2938; // pow(trace_generator, (safe_div((safe_mult(64885, global_values.trace_length)), 65536))). + let pow2940 = pow32 * pow2939; // pow(trace_generator, (safe_div((safe_mult(32443, global_values.trace_length)), 32768))). + let pow2941 = pow32 * pow2940; // pow(trace_generator, (safe_div((safe_mult(64887, global_values.trace_length)), 65536))). + let pow2942 = pow32 * pow2941; // pow(trace_generator, (safe_div((safe_mult(8111, global_values.trace_length)), 8192))). + let pow2943 = pow32 * pow2942; // pow(trace_generator, (safe_div((safe_mult(64889, global_values.trace_length)), 65536))). + let pow2944 = pow32 * pow2943; // pow(trace_generator, (safe_div((safe_mult(32445, global_values.trace_length)), 32768))). + let pow2945 = pow32 * pow2944; // pow(trace_generator, (safe_div((safe_mult(64891, global_values.trace_length)), 65536))). + let pow2946 = pow32 * pow2945; // pow(trace_generator, (safe_div((safe_mult(16223, global_values.trace_length)), 16384))). + let pow2947 = pow32 * pow2946; // pow(trace_generator, (safe_div((safe_mult(64893, global_values.trace_length)), 65536))). + let pow2948 = pow41 * pow2947; // pow(trace_generator, (safe_div((safe_mult(507, global_values.trace_length)), 512))). + let pow2949 = pow32 * pow2948; // pow(trace_generator, (safe_div((safe_mult(64897, global_values.trace_length)), 65536))). + let pow2950 = pow32 * pow2949; // pow(trace_generator, (safe_div((safe_mult(32449, global_values.trace_length)), 32768))). + let pow2951 = pow32 * pow2950; // pow(trace_generator, (safe_div((safe_mult(64899, global_values.trace_length)), 65536))). + let pow2952 = pow32 * pow2951; // pow(trace_generator, (safe_div((safe_mult(16225, global_values.trace_length)), 16384))). + let pow2953 = pow32 * pow2952; // pow(trace_generator, (safe_div((safe_mult(64901, global_values.trace_length)), 65536))). + let pow2954 = pow32 * pow2953; // pow(trace_generator, (safe_div((safe_mult(32451, global_values.trace_length)), 32768))). + let pow2955 = pow32 * pow2954; // pow(trace_generator, (safe_div((safe_mult(64903, global_values.trace_length)), 65536))). + let pow2956 = pow32 * pow2955; // pow(trace_generator, (safe_div((safe_mult(8113, global_values.trace_length)), 8192))). + let pow2957 = pow32 * pow2956; // pow(trace_generator, (safe_div((safe_mult(64905, global_values.trace_length)), 65536))). + let pow2958 = pow32 * pow2957; // pow(trace_generator, (safe_div((safe_mult(32453, global_values.trace_length)), 32768))). + let pow2959 = pow32 * pow2958; // pow(trace_generator, (safe_div((safe_mult(64907, global_values.trace_length)), 65536))). + let pow2960 = pow32 * pow2959; // pow(trace_generator, (safe_div((safe_mult(16227, global_values.trace_length)), 16384))). + let pow2961 = pow32 * pow2960; // pow(trace_generator, (safe_div((safe_mult(64909, global_values.trace_length)), 65536))). + let pow2962 = pow32 * pow2961; // pow(trace_generator, (safe_div((safe_mult(32455, global_values.trace_length)), 32768))). + let pow2963 = pow32 * pow2962; // pow(trace_generator, (safe_div((safe_mult(64911, global_values.trace_length)), 65536))). + let pow2964 = pow32 * pow2963; // pow(trace_generator, (safe_div((safe_mult(4057, global_values.trace_length)), 4096))). + let pow2965 = pow32 * pow2964; // pow(trace_generator, (safe_div((safe_mult(64913, global_values.trace_length)), 65536))). + let pow2966 = pow32 * pow2965; // pow(trace_generator, (safe_div((safe_mult(32457, global_values.trace_length)), 32768))). + let pow2967 = pow32 * pow2966; // pow(trace_generator, (safe_div((safe_mult(64915, global_values.trace_length)), 65536))). + let pow2968 = pow32 * pow2967; // pow(trace_generator, (safe_div((safe_mult(16229, global_values.trace_length)), 16384))). + let pow2969 = pow32 * pow2968; // pow(trace_generator, (safe_div((safe_mult(64917, global_values.trace_length)), 65536))). + let pow2970 = pow32 * pow2969; // pow(trace_generator, (safe_div((safe_mult(32459, global_values.trace_length)), 32768))). + let pow2971 = pow32 * pow2970; // pow(trace_generator, (safe_div((safe_mult(64919, global_values.trace_length)), 65536))). + let pow2972 = pow32 * pow2971; // pow(trace_generator, (safe_div((safe_mult(8115, global_values.trace_length)), 8192))). + let pow2973 = pow32 * pow2972; // pow(trace_generator, (safe_div((safe_mult(64921, global_values.trace_length)), 65536))). + let pow2974 = pow32 * pow2973; // pow(trace_generator, (safe_div((safe_mult(32461, global_values.trace_length)), 32768))). + let pow2975 = pow32 * pow2974; // pow(trace_generator, (safe_div((safe_mult(64923, global_values.trace_length)), 65536))). + let pow2976 = pow32 * pow2975; // pow(trace_generator, (safe_div((safe_mult(16231, global_values.trace_length)), 16384))). + let pow2977 = pow32 * pow2976; // pow(trace_generator, (safe_div((safe_mult(64925, global_values.trace_length)), 65536))). + let pow2978 = pow41 * pow2977; // pow(trace_generator, (safe_div((safe_mult(2029, global_values.trace_length)), 2048))). + let pow2979 = pow32 * pow2978; // pow(trace_generator, (safe_div((safe_mult(64929, global_values.trace_length)), 65536))). + let pow2980 = pow32 * pow2979; // pow(trace_generator, (safe_div((safe_mult(32465, global_values.trace_length)), 32768))). + let pow2981 = pow32 * pow2980; // pow(trace_generator, (safe_div((safe_mult(64931, global_values.trace_length)), 65536))). + let pow2982 = pow32 * pow2981; // pow(trace_generator, (safe_div((safe_mult(16233, global_values.trace_length)), 16384))). + let pow2983 = pow32 * pow2982; // pow(trace_generator, (safe_div((safe_mult(64933, global_values.trace_length)), 65536))). + let pow2984 = pow32 * pow2983; // pow(trace_generator, (safe_div((safe_mult(32467, global_values.trace_length)), 32768))). + let pow2985 = pow32 * pow2984; // pow(trace_generator, (safe_div((safe_mult(64935, global_values.trace_length)), 65536))). + let pow2986 = pow32 * pow2985; // pow(trace_generator, (safe_div((safe_mult(8117, global_values.trace_length)), 8192))). + let pow2987 = pow32 * pow2986; // pow(trace_generator, (safe_div((safe_mult(64937, global_values.trace_length)), 65536))). + let pow2988 = pow32 * pow2987; // pow(trace_generator, (safe_div((safe_mult(32469, global_values.trace_length)), 32768))). + let pow2989 = pow32 * pow2988; // pow(trace_generator, (safe_div((safe_mult(64939, global_values.trace_length)), 65536))). + let pow2990 = pow32 * pow2989; // pow(trace_generator, (safe_div((safe_mult(16235, global_values.trace_length)), 16384))). + let pow2991 = pow32 * pow2990; // pow(trace_generator, (safe_div((safe_mult(64941, global_values.trace_length)), 65536))). + let pow2992 = pow32 * pow2991; // pow(trace_generator, (safe_div((safe_mult(32471, global_values.trace_length)), 32768))). + let pow2993 = pow32 * pow2992; // pow(trace_generator, (safe_div((safe_mult(64943, global_values.trace_length)), 65536))). + let pow2994 = pow32 * pow2993; // pow(trace_generator, (safe_div((safe_mult(4059, global_values.trace_length)), 4096))). + let pow2995 = pow32 * pow2994; // pow(trace_generator, (safe_div((safe_mult(64945, global_values.trace_length)), 65536))). + let pow2996 = pow32 * pow2995; // pow(trace_generator, (safe_div((safe_mult(32473, global_values.trace_length)), 32768))). + let pow2997 = pow32 * pow2996; // pow(trace_generator, (safe_div((safe_mult(64947, global_values.trace_length)), 65536))). + let pow2998 = pow32 * pow2997; // pow(trace_generator, (safe_div((safe_mult(16237, global_values.trace_length)), 16384))). + let pow2999 = pow32 * pow2998; // pow(trace_generator, (safe_div((safe_mult(64949, global_values.trace_length)), 65536))). + let pow3000 = pow32 * pow2999; // pow(trace_generator, (safe_div((safe_mult(32475, global_values.trace_length)), 32768))). + let pow3001 = pow32 * pow3000; // pow(trace_generator, (safe_div((safe_mult(64951, global_values.trace_length)), 65536))). + let pow3002 = pow32 * pow3001; // pow(trace_generator, (safe_div((safe_mult(8119, global_values.trace_length)), 8192))). + let pow3003 = pow32 * pow3002; // pow(trace_generator, (safe_div((safe_mult(64953, global_values.trace_length)), 65536))). + let pow3004 = pow32 * pow3003; // pow(trace_generator, (safe_div((safe_mult(32477, global_values.trace_length)), 32768))). + let pow3005 = pow32 * pow3004; // pow(trace_generator, (safe_div((safe_mult(64955, global_values.trace_length)), 65536))). + let pow3006 = pow32 * pow3005; // pow(trace_generator, (safe_div((safe_mult(16239, global_values.trace_length)), 16384))). + let pow3007 = pow32 * pow3006; // pow(trace_generator, (safe_div((safe_mult(64957, global_values.trace_length)), 65536))). + let pow3008 = pow41 * pow3007; // pow(trace_generator, (safe_div((safe_mult(1015, global_values.trace_length)), 1024))). + let pow3009 = pow32 * pow3008; // pow(trace_generator, (safe_div((safe_mult(64961, global_values.trace_length)), 65536))). + let pow3010 = pow32 * pow3009; // pow(trace_generator, (safe_div((safe_mult(32481, global_values.trace_length)), 32768))). + let pow3011 = pow32 * pow3010; // pow(trace_generator, (safe_div((safe_mult(64963, global_values.trace_length)), 65536))). + let pow3012 = pow32 * pow3011; // pow(trace_generator, (safe_div((safe_mult(16241, global_values.trace_length)), 16384))). + let pow3013 = pow32 * pow3012; // pow(trace_generator, (safe_div((safe_mult(64965, global_values.trace_length)), 65536))). + let pow3014 = pow32 * pow3013; // pow(trace_generator, (safe_div((safe_mult(32483, global_values.trace_length)), 32768))). + let pow3015 = pow32 * pow3014; // pow(trace_generator, (safe_div((safe_mult(64967, global_values.trace_length)), 65536))). + let pow3016 = pow32 * pow3015; // pow(trace_generator, (safe_div((safe_mult(8121, global_values.trace_length)), 8192))). + let pow3017 = pow32 * pow3016; // pow(trace_generator, (safe_div((safe_mult(64969, global_values.trace_length)), 65536))). + let pow3018 = pow32 * pow3017; // pow(trace_generator, (safe_div((safe_mult(32485, global_values.trace_length)), 32768))). + let pow3019 = pow32 * pow3018; // pow(trace_generator, (safe_div((safe_mult(64971, global_values.trace_length)), 65536))). + let pow3020 = pow32 * pow3019; // pow(trace_generator, (safe_div((safe_mult(16243, global_values.trace_length)), 16384))). + let pow3021 = pow32 * pow3020; // pow(trace_generator, (safe_div((safe_mult(64973, global_values.trace_length)), 65536))). + let pow3022 = pow32 * pow3021; // pow(trace_generator, (safe_div((safe_mult(32487, global_values.trace_length)), 32768))). + let pow3023 = pow32 * pow3022; // pow(trace_generator, (safe_div((safe_mult(64975, global_values.trace_length)), 65536))). + let pow3024 = pow32 * pow3023; // pow(trace_generator, (safe_div((safe_mult(4061, global_values.trace_length)), 4096))). + let pow3025 = pow32 * pow3024; // pow(trace_generator, (safe_div((safe_mult(64977, global_values.trace_length)), 65536))). + let pow3026 = pow32 * pow3025; // pow(trace_generator, (safe_div((safe_mult(32489, global_values.trace_length)), 32768))). + let pow3027 = pow32 * pow3026; // pow(trace_generator, (safe_div((safe_mult(64979, global_values.trace_length)), 65536))). + let pow3028 = pow32 * pow3027; // pow(trace_generator, (safe_div((safe_mult(16245, global_values.trace_length)), 16384))). + let pow3029 = pow32 * pow3028; // pow(trace_generator, (safe_div((safe_mult(64981, global_values.trace_length)), 65536))). + let pow3030 = pow32 * pow3029; // pow(trace_generator, (safe_div((safe_mult(32491, global_values.trace_length)), 32768))). + let pow3031 = pow32 * pow3030; // pow(trace_generator, (safe_div((safe_mult(64983, global_values.trace_length)), 65536))). + let pow3032 = pow32 * pow3031; // pow(trace_generator, (safe_div((safe_mult(8123, global_values.trace_length)), 8192))). + let pow3033 = pow32 * pow3032; // pow(trace_generator, (safe_div((safe_mult(64985, global_values.trace_length)), 65536))). + let pow3034 = pow32 * pow3033; // pow(trace_generator, (safe_div((safe_mult(32493, global_values.trace_length)), 32768))). + let pow3035 = pow32 * pow3034; // pow(trace_generator, (safe_div((safe_mult(64987, global_values.trace_length)), 65536))). + let pow3036 = pow32 * pow3035; // pow(trace_generator, (safe_div((safe_mult(16247, global_values.trace_length)), 16384))). + let pow3037 = pow32 * pow3036; // pow(trace_generator, (safe_div((safe_mult(64989, global_values.trace_length)), 65536))). + let pow3038 = pow41 * pow3037; // pow(trace_generator, (safe_div((safe_mult(2031, global_values.trace_length)), 2048))). + let pow3039 = pow32 * pow3038; // pow(trace_generator, (safe_div((safe_mult(64993, global_values.trace_length)), 65536))). + let pow3040 = pow32 * pow3039; // pow(trace_generator, (safe_div((safe_mult(32497, global_values.trace_length)), 32768))). + let pow3041 = pow32 * pow3040; // pow(trace_generator, (safe_div((safe_mult(64995, global_values.trace_length)), 65536))). + let pow3042 = pow32 * pow3041; // pow(trace_generator, (safe_div((safe_mult(16249, global_values.trace_length)), 16384))). + let pow3043 = pow32 * pow3042; // pow(trace_generator, (safe_div((safe_mult(64997, global_values.trace_length)), 65536))). + let pow3044 = pow32 * pow3043; // pow(trace_generator, (safe_div((safe_mult(32499, global_values.trace_length)), 32768))). + let pow3045 = pow32 * pow3044; // pow(trace_generator, (safe_div((safe_mult(64999, global_values.trace_length)), 65536))). + let pow3046 = pow32 * pow3045; // pow(trace_generator, (safe_div((safe_mult(8125, global_values.trace_length)), 8192))). + let pow3047 = pow32 * pow3046; // pow(trace_generator, (safe_div((safe_mult(65001, global_values.trace_length)), 65536))). + let pow3048 = pow32 * pow3047; // pow(trace_generator, (safe_div((safe_mult(32501, global_values.trace_length)), 32768))). + let pow3049 = pow32 * pow3048; // pow(trace_generator, (safe_div((safe_mult(65003, global_values.trace_length)), 65536))). + let pow3050 = pow32 * pow3049; // pow(trace_generator, (safe_div((safe_mult(16251, global_values.trace_length)), 16384))). + let pow3051 = pow32 * pow3050; // pow(trace_generator, (safe_div((safe_mult(65005, global_values.trace_length)), 65536))). + let pow3052 = pow32 * pow3051; // pow(trace_generator, (safe_div((safe_mult(32503, global_values.trace_length)), 32768))). + let pow3053 = pow32 * pow3052; // pow(trace_generator, (safe_div((safe_mult(65007, global_values.trace_length)), 65536))). + let pow3054 = pow32 * pow3053; // pow(trace_generator, (safe_div((safe_mult(4063, global_values.trace_length)), 4096))). + let pow3055 = pow32 * pow3054; // pow(trace_generator, (safe_div((safe_mult(65009, global_values.trace_length)), 65536))). + let pow3056 = pow32 * pow3055; // pow(trace_generator, (safe_div((safe_mult(32505, global_values.trace_length)), 32768))). + let pow3057 = pow32 * pow3056; // pow(trace_generator, (safe_div((safe_mult(65011, global_values.trace_length)), 65536))). + let pow3058 = pow32 * pow3057; // pow(trace_generator, (safe_div((safe_mult(16253, global_values.trace_length)), 16384))). + let pow3059 = pow32 * pow3058; // pow(trace_generator, (safe_div((safe_mult(65013, global_values.trace_length)), 65536))). + let pow3060 = pow32 * pow3059; // pow(trace_generator, (safe_div((safe_mult(32507, global_values.trace_length)), 32768))). + let pow3061 = pow32 * pow3060; // pow(trace_generator, (safe_div((safe_mult(65015, global_values.trace_length)), 65536))). + let pow3062 = pow32 * pow3061; // pow(trace_generator, (safe_div((safe_mult(8127, global_values.trace_length)), 8192))). + let pow3063 = pow32 * pow3062; // pow(trace_generator, (safe_div((safe_mult(65017, global_values.trace_length)), 65536))). + let pow3064 = pow32 * pow3063; // pow(trace_generator, (safe_div((safe_mult(32509, global_values.trace_length)), 32768))). + let pow3065 = pow32 * pow3064; // pow(trace_generator, (safe_div((safe_mult(65019, global_values.trace_length)), 65536))). + let pow3066 = pow32 * pow3065; // pow(trace_generator, (safe_div((safe_mult(16255, global_values.trace_length)), 16384))). + let pow3067 = pow32 * pow3066; // pow(trace_generator, (safe_div((safe_mult(65021, global_values.trace_length)), 65536))). + let pow3068 = pow41 * pow3067; // pow(trace_generator, (safe_div((safe_mult(127, global_values.trace_length)), 128))). + let pow3069 = pow32 * pow3068; // pow(trace_generator, (safe_div((safe_mult(65025, global_values.trace_length)), 65536))). + let pow3070 = pow32 * pow3069; // pow(trace_generator, (safe_div((safe_mult(32513, global_values.trace_length)), 32768))). + let pow3071 = pow32 * pow3070; // pow(trace_generator, (safe_div((safe_mult(65027, global_values.trace_length)), 65536))). + let pow3072 = pow32 * pow3071; // pow(trace_generator, (safe_div((safe_mult(16257, global_values.trace_length)), 16384))). + let pow3073 = pow32 * pow3072; // pow(trace_generator, (safe_div((safe_mult(65029, global_values.trace_length)), 65536))). + let pow3074 = pow32 * pow3073; // pow(trace_generator, (safe_div((safe_mult(32515, global_values.trace_length)), 32768))). + let pow3075 = pow32 * pow3074; // pow(trace_generator, (safe_div((safe_mult(65031, global_values.trace_length)), 65536))). + let pow3076 = pow32 * pow3075; // pow(trace_generator, (safe_div((safe_mult(8129, global_values.trace_length)), 8192))). + let pow3077 = pow32 * pow3076; // pow(trace_generator, (safe_div((safe_mult(65033, global_values.trace_length)), 65536))). + let pow3078 = pow32 * pow3077; // pow(trace_generator, (safe_div((safe_mult(32517, global_values.trace_length)), 32768))). + let pow3079 = pow32 * pow3078; // pow(trace_generator, (safe_div((safe_mult(65035, global_values.trace_length)), 65536))). + let pow3080 = pow32 * pow3079; // pow(trace_generator, (safe_div((safe_mult(16259, global_values.trace_length)), 16384))). + let pow3081 = pow32 * pow3080; // pow(trace_generator, (safe_div((safe_mult(65037, global_values.trace_length)), 65536))). + let pow3082 = pow32 * pow3081; // pow(trace_generator, (safe_div((safe_mult(32519, global_values.trace_length)), 32768))). + let pow3083 = pow32 * pow3082; // pow(trace_generator, (safe_div((safe_mult(65039, global_values.trace_length)), 65536))). + let pow3084 = pow32 * pow3083; // pow(trace_generator, (safe_div((safe_mult(4065, global_values.trace_length)), 4096))). + let pow3085 = pow32 * pow3084; // pow(trace_generator, (safe_div((safe_mult(65041, global_values.trace_length)), 65536))). + let pow3086 = pow32 * pow3085; // pow(trace_generator, (safe_div((safe_mult(32521, global_values.trace_length)), 32768))). + let pow3087 = pow32 * pow3086; // pow(trace_generator, (safe_div((safe_mult(65043, global_values.trace_length)), 65536))). + let pow3088 = pow32 * pow3087; // pow(trace_generator, (safe_div((safe_mult(16261, global_values.trace_length)), 16384))). + let pow3089 = pow32 * pow3088; // pow(trace_generator, (safe_div((safe_mult(65045, global_values.trace_length)), 65536))). + let pow3090 = pow32 * pow3089; // pow(trace_generator, (safe_div((safe_mult(32523, global_values.trace_length)), 32768))). + let pow3091 = pow32 * pow3090; // pow(trace_generator, (safe_div((safe_mult(65047, global_values.trace_length)), 65536))). + let pow3092 = pow32 * pow3091; // pow(trace_generator, (safe_div((safe_mult(8131, global_values.trace_length)), 8192))). + let pow3093 = pow32 * pow3092; // pow(trace_generator, (safe_div((safe_mult(65049, global_values.trace_length)), 65536))). + let pow3094 = pow32 * pow3093; // pow(trace_generator, (safe_div((safe_mult(32525, global_values.trace_length)), 32768))). + let pow3095 = pow32 * pow3094; // pow(trace_generator, (safe_div((safe_mult(65051, global_values.trace_length)), 65536))). + let pow3096 = pow32 * pow3095; // pow(trace_generator, (safe_div((safe_mult(16263, global_values.trace_length)), 16384))). + let pow3097 = pow32 * pow3096; // pow(trace_generator, (safe_div((safe_mult(65053, global_values.trace_length)), 65536))). + let pow3098 = pow41 * pow3097; // pow(trace_generator, (safe_div((safe_mult(2033, global_values.trace_length)), 2048))). + let pow3099 = pow32 * pow3098; // pow(trace_generator, (safe_div((safe_mult(65057, global_values.trace_length)), 65536))). + let pow3100 = pow32 * pow3099; // pow(trace_generator, (safe_div((safe_mult(32529, global_values.trace_length)), 32768))). + let pow3101 = pow32 * pow3100; // pow(trace_generator, (safe_div((safe_mult(65059, global_values.trace_length)), 65536))). + let pow3102 = pow32 * pow3101; // pow(trace_generator, (safe_div((safe_mult(16265, global_values.trace_length)), 16384))). + let pow3103 = pow32 * pow3102; // pow(trace_generator, (safe_div((safe_mult(65061, global_values.trace_length)), 65536))). + let pow3104 = pow32 * pow3103; // pow(trace_generator, (safe_div((safe_mult(32531, global_values.trace_length)), 32768))). + let pow3105 = pow32 * pow3104; // pow(trace_generator, (safe_div((safe_mult(65063, global_values.trace_length)), 65536))). + let pow3106 = pow32 * pow3105; // pow(trace_generator, (safe_div((safe_mult(8133, global_values.trace_length)), 8192))). + let pow3107 = pow32 * pow3106; // pow(trace_generator, (safe_div((safe_mult(65065, global_values.trace_length)), 65536))). + let pow3108 = pow32 * pow3107; // pow(trace_generator, (safe_div((safe_mult(32533, global_values.trace_length)), 32768))). + let pow3109 = pow32 * pow3108; // pow(trace_generator, (safe_div((safe_mult(65067, global_values.trace_length)), 65536))). + let pow3110 = pow32 * pow3109; // pow(trace_generator, (safe_div((safe_mult(16267, global_values.trace_length)), 16384))). + let pow3111 = pow32 * pow3110; // pow(trace_generator, (safe_div((safe_mult(65069, global_values.trace_length)), 65536))). + let pow3112 = pow32 * pow3111; // pow(trace_generator, (safe_div((safe_mult(32535, global_values.trace_length)), 32768))). + let pow3113 = pow32 * pow3112; // pow(trace_generator, (safe_div((safe_mult(65071, global_values.trace_length)), 65536))). + let pow3114 = pow32 * pow3113; // pow(trace_generator, (safe_div((safe_mult(4067, global_values.trace_length)), 4096))). + let pow3115 = pow32 * pow3114; // pow(trace_generator, (safe_div((safe_mult(65073, global_values.trace_length)), 65536))). + let pow3116 = pow32 * pow3115; // pow(trace_generator, (safe_div((safe_mult(32537, global_values.trace_length)), 32768))). + let pow3117 = pow32 * pow3116; // pow(trace_generator, (safe_div((safe_mult(65075, global_values.trace_length)), 65536))). + let pow3118 = pow32 * pow3117; // pow(trace_generator, (safe_div((safe_mult(16269, global_values.trace_length)), 16384))). + let pow3119 = pow32 * pow3118; // pow(trace_generator, (safe_div((safe_mult(65077, global_values.trace_length)), 65536))). + let pow3120 = pow32 * pow3119; // pow(trace_generator, (safe_div((safe_mult(32539, global_values.trace_length)), 32768))). + let pow3121 = pow32 * pow3120; // pow(trace_generator, (safe_div((safe_mult(65079, global_values.trace_length)), 65536))). + let pow3122 = pow32 * pow3121; // pow(trace_generator, (safe_div((safe_mult(8135, global_values.trace_length)), 8192))). + let pow3123 = pow32 * pow3122; // pow(trace_generator, (safe_div((safe_mult(65081, global_values.trace_length)), 65536))). + let pow3124 = pow32 * pow3123; // pow(trace_generator, (safe_div((safe_mult(32541, global_values.trace_length)), 32768))). + let pow3125 = pow32 * pow3124; // pow(trace_generator, (safe_div((safe_mult(65083, global_values.trace_length)), 65536))). + let pow3126 = pow32 * pow3125; // pow(trace_generator, (safe_div((safe_mult(16271, global_values.trace_length)), 16384))). + let pow3127 = pow32 * pow3126; // pow(trace_generator, (safe_div((safe_mult(65085, global_values.trace_length)), 65536))). + let pow3128 = pow41 * pow3127; // pow(trace_generator, (safe_div((safe_mult(1017, global_values.trace_length)), 1024))). + let pow3129 = pow32 * pow3128; // pow(trace_generator, (safe_div((safe_mult(65089, global_values.trace_length)), 65536))). + let pow3130 = pow32 * pow3129; // pow(trace_generator, (safe_div((safe_mult(32545, global_values.trace_length)), 32768))). + let pow3131 = pow32 * pow3130; // pow(trace_generator, (safe_div((safe_mult(65091, global_values.trace_length)), 65536))). + let pow3132 = pow32 * pow3131; // pow(trace_generator, (safe_div((safe_mult(16273, global_values.trace_length)), 16384))). + let pow3133 = pow32 * pow3132; // pow(trace_generator, (safe_div((safe_mult(65093, global_values.trace_length)), 65536))). + let pow3134 = pow32 * pow3133; // pow(trace_generator, (safe_div((safe_mult(32547, global_values.trace_length)), 32768))). + let pow3135 = pow32 * pow3134; // pow(trace_generator, (safe_div((safe_mult(65095, global_values.trace_length)), 65536))). + let pow3136 = pow32 * pow3135; // pow(trace_generator, (safe_div((safe_mult(8137, global_values.trace_length)), 8192))). + let pow3137 = pow32 * pow3136; // pow(trace_generator, (safe_div((safe_mult(65097, global_values.trace_length)), 65536))). + let pow3138 = pow32 * pow3137; // pow(trace_generator, (safe_div((safe_mult(32549, global_values.trace_length)), 32768))). + let pow3139 = pow32 * pow3138; // pow(trace_generator, (safe_div((safe_mult(65099, global_values.trace_length)), 65536))). + let pow3140 = pow32 * pow3139; // pow(trace_generator, (safe_div((safe_mult(16275, global_values.trace_length)), 16384))). + let pow3141 = pow32 * pow3140; // pow(trace_generator, (safe_div((safe_mult(65101, global_values.trace_length)), 65536))). + let pow3142 = pow32 * pow3141; // pow(trace_generator, (safe_div((safe_mult(32551, global_values.trace_length)), 32768))). + let pow3143 = pow32 * pow3142; // pow(trace_generator, (safe_div((safe_mult(65103, global_values.trace_length)), 65536))). + let pow3144 = pow32 * pow3143; // pow(trace_generator, (safe_div((safe_mult(4069, global_values.trace_length)), 4096))). + let pow3145 = pow32 * pow3144; // pow(trace_generator, (safe_div((safe_mult(65105, global_values.trace_length)), 65536))). + let pow3146 = pow32 * pow3145; // pow(trace_generator, (safe_div((safe_mult(32553, global_values.trace_length)), 32768))). + let pow3147 = pow32 * pow3146; // pow(trace_generator, (safe_div((safe_mult(65107, global_values.trace_length)), 65536))). + let pow3148 = pow32 * pow3147; // pow(trace_generator, (safe_div((safe_mult(16277, global_values.trace_length)), 16384))). + let pow3149 = pow32 * pow3148; // pow(trace_generator, (safe_div((safe_mult(65109, global_values.trace_length)), 65536))). + let pow3150 = pow32 * pow3149; // pow(trace_generator, (safe_div((safe_mult(32555, global_values.trace_length)), 32768))). + let pow3151 = pow32 * pow3150; // pow(trace_generator, (safe_div((safe_mult(65111, global_values.trace_length)), 65536))). + let pow3152 = pow32 * pow3151; // pow(trace_generator, (safe_div((safe_mult(8139, global_values.trace_length)), 8192))). + let pow3153 = pow32 * pow3152; // pow(trace_generator, (safe_div((safe_mult(65113, global_values.trace_length)), 65536))). + let pow3154 = pow32 * pow3153; // pow(trace_generator, (safe_div((safe_mult(32557, global_values.trace_length)), 32768))). + let pow3155 = pow32 * pow3154; // pow(trace_generator, (safe_div((safe_mult(65115, global_values.trace_length)), 65536))). + let pow3156 = pow32 * pow3155; // pow(trace_generator, (safe_div((safe_mult(16279, global_values.trace_length)), 16384))). + let pow3157 = pow32 * pow3156; // pow(trace_generator, (safe_div((safe_mult(65117, global_values.trace_length)), 65536))). + let pow3158 = pow41 * pow3157; // pow(trace_generator, (safe_div((safe_mult(2035, global_values.trace_length)), 2048))). + let pow3159 = pow32 * pow3158; // pow(trace_generator, (safe_div((safe_mult(65121, global_values.trace_length)), 65536))). + let pow3160 = pow32 * pow3159; // pow(trace_generator, (safe_div((safe_mult(32561, global_values.trace_length)), 32768))). + let pow3161 = pow32 * pow3160; // pow(trace_generator, (safe_div((safe_mult(65123, global_values.trace_length)), 65536))). + let pow3162 = pow32 * pow3161; // pow(trace_generator, (safe_div((safe_mult(16281, global_values.trace_length)), 16384))). + let pow3163 = pow32 * pow3162; // pow(trace_generator, (safe_div((safe_mult(65125, global_values.trace_length)), 65536))). + let pow3164 = pow32 * pow3163; // pow(trace_generator, (safe_div((safe_mult(32563, global_values.trace_length)), 32768))). + let pow3165 = pow32 * pow3164; // pow(trace_generator, (safe_div((safe_mult(65127, global_values.trace_length)), 65536))). + let pow3166 = pow32 * pow3165; // pow(trace_generator, (safe_div((safe_mult(8141, global_values.trace_length)), 8192))). + let pow3167 = pow32 * pow3166; // pow(trace_generator, (safe_div((safe_mult(65129, global_values.trace_length)), 65536))). + let pow3168 = pow32 * pow3167; // pow(trace_generator, (safe_div((safe_mult(32565, global_values.trace_length)), 32768))). + let pow3169 = pow32 * pow3168; // pow(trace_generator, (safe_div((safe_mult(65131, global_values.trace_length)), 65536))). + let pow3170 = pow32 * pow3169; // pow(trace_generator, (safe_div((safe_mult(16283, global_values.trace_length)), 16384))). + let pow3171 = pow32 * pow3170; // pow(trace_generator, (safe_div((safe_mult(65133, global_values.trace_length)), 65536))). + let pow3172 = pow32 * pow3171; // pow(trace_generator, (safe_div((safe_mult(32567, global_values.trace_length)), 32768))). + let pow3173 = pow32 * pow3172; // pow(trace_generator, (safe_div((safe_mult(65135, global_values.trace_length)), 65536))). + let pow3174 = pow32 * pow3173; // pow(trace_generator, (safe_div((safe_mult(4071, global_values.trace_length)), 4096))). + let pow3175 = pow32 * pow3174; // pow(trace_generator, (safe_div((safe_mult(65137, global_values.trace_length)), 65536))). + let pow3176 = pow32 * pow3175; // pow(trace_generator, (safe_div((safe_mult(32569, global_values.trace_length)), 32768))). + let pow3177 = pow32 * pow3176; // pow(trace_generator, (safe_div((safe_mult(65139, global_values.trace_length)), 65536))). + let pow3178 = pow32 * pow3177; // pow(trace_generator, (safe_div((safe_mult(16285, global_values.trace_length)), 16384))). + let pow3179 = pow32 * pow3178; // pow(trace_generator, (safe_div((safe_mult(65141, global_values.trace_length)), 65536))). + let pow3180 = pow32 * pow3179; // pow(trace_generator, (safe_div((safe_mult(32571, global_values.trace_length)), 32768))). + let pow3181 = pow32 * pow3180; // pow(trace_generator, (safe_div((safe_mult(65143, global_values.trace_length)), 65536))). + let pow3182 = pow32 * pow3181; // pow(trace_generator, (safe_div((safe_mult(8143, global_values.trace_length)), 8192))). + let pow3183 = pow32 * pow3182; // pow(trace_generator, (safe_div((safe_mult(65145, global_values.trace_length)), 65536))). + let pow3184 = pow32 * pow3183; // pow(trace_generator, (safe_div((safe_mult(32573, global_values.trace_length)), 32768))). + let pow3185 = pow32 * pow3184; // pow(trace_generator, (safe_div((safe_mult(65147, global_values.trace_length)), 65536))). + let pow3186 = pow32 * pow3185; // pow(trace_generator, (safe_div((safe_mult(16287, global_values.trace_length)), 16384))). + let pow3187 = pow32 * pow3186; // pow(trace_generator, (safe_div((safe_mult(65149, global_values.trace_length)), 65536))). + let pow3188 = pow41 * pow3187; // pow(trace_generator, (safe_div((safe_mult(509, global_values.trace_length)), 512))). + let pow3189 = pow32 * pow3188; // pow(trace_generator, (safe_div((safe_mult(65153, global_values.trace_length)), 65536))). + let pow3190 = pow32 * pow3189; // pow(trace_generator, (safe_div((safe_mult(32577, global_values.trace_length)), 32768))). + let pow3191 = pow32 * pow3190; // pow(trace_generator, (safe_div((safe_mult(65155, global_values.trace_length)), 65536))). + let pow3192 = pow32 * pow3191; // pow(trace_generator, (safe_div((safe_mult(16289, global_values.trace_length)), 16384))). + let pow3193 = pow32 * pow3192; // pow(trace_generator, (safe_div((safe_mult(65157, global_values.trace_length)), 65536))). + let pow3194 = pow32 * pow3193; // pow(trace_generator, (safe_div((safe_mult(32579, global_values.trace_length)), 32768))). + let pow3195 = pow32 * pow3194; // pow(trace_generator, (safe_div((safe_mult(65159, global_values.trace_length)), 65536))). + let pow3196 = pow32 * pow3195; // pow(trace_generator, (safe_div((safe_mult(8145, global_values.trace_length)), 8192))). + let pow3197 = pow32 * pow3196; // pow(trace_generator, (safe_div((safe_mult(65161, global_values.trace_length)), 65536))). + let pow3198 = pow32 * pow3197; // pow(trace_generator, (safe_div((safe_mult(32581, global_values.trace_length)), 32768))). + let pow3199 = pow32 * pow3198; // pow(trace_generator, (safe_div((safe_mult(65163, global_values.trace_length)), 65536))). + let pow3200 = pow32 * pow3199; // pow(trace_generator, (safe_div((safe_mult(16291, global_values.trace_length)), 16384))). + let pow3201 = pow32 * pow3200; // pow(trace_generator, (safe_div((safe_mult(65165, global_values.trace_length)), 65536))). + let pow3202 = pow32 * pow3201; // pow(trace_generator, (safe_div((safe_mult(32583, global_values.trace_length)), 32768))). + let pow3203 = pow32 * pow3202; // pow(trace_generator, (safe_div((safe_mult(65167, global_values.trace_length)), 65536))). + let pow3204 = pow32 * pow3203; // pow(trace_generator, (safe_div((safe_mult(4073, global_values.trace_length)), 4096))). + let pow3205 = pow32 * pow3204; // pow(trace_generator, (safe_div((safe_mult(65169, global_values.trace_length)), 65536))). + let pow3206 = pow32 * pow3205; // pow(trace_generator, (safe_div((safe_mult(32585, global_values.trace_length)), 32768))). + let pow3207 = pow32 * pow3206; // pow(trace_generator, (safe_div((safe_mult(65171, global_values.trace_length)), 65536))). + let pow3208 = pow32 * pow3207; // pow(trace_generator, (safe_div((safe_mult(16293, global_values.trace_length)), 16384))). + let pow3209 = pow32 * pow3208; // pow(trace_generator, (safe_div((safe_mult(65173, global_values.trace_length)), 65536))). + let pow3210 = pow32 * pow3209; // pow(trace_generator, (safe_div((safe_mult(32587, global_values.trace_length)), 32768))). + let pow3211 = pow32 * pow3210; // pow(trace_generator, (safe_div((safe_mult(65175, global_values.trace_length)), 65536))). + let pow3212 = pow32 * pow3211; // pow(trace_generator, (safe_div((safe_mult(8147, global_values.trace_length)), 8192))). + let pow3213 = pow32 * pow3212; // pow(trace_generator, (safe_div((safe_mult(65177, global_values.trace_length)), 65536))). + let pow3214 = pow32 * pow3213; // pow(trace_generator, (safe_div((safe_mult(32589, global_values.trace_length)), 32768))). + let pow3215 = pow32 * pow3214; // pow(trace_generator, (safe_div((safe_mult(65179, global_values.trace_length)), 65536))). + let pow3216 = pow32 * pow3215; // pow(trace_generator, (safe_div((safe_mult(16295, global_values.trace_length)), 16384))). + let pow3217 = pow32 * pow3216; // pow(trace_generator, (safe_div((safe_mult(65181, global_values.trace_length)), 65536))). + let pow3218 = pow41 * pow3217; // pow(trace_generator, (safe_div((safe_mult(2037, global_values.trace_length)), 2048))). + let pow3219 = pow32 * pow3218; // pow(trace_generator, (safe_div((safe_mult(65185, global_values.trace_length)), 65536))). + let pow3220 = pow32 * pow3219; // pow(trace_generator, (safe_div((safe_mult(32593, global_values.trace_length)), 32768))). + let pow3221 = pow32 * pow3220; // pow(trace_generator, (safe_div((safe_mult(65187, global_values.trace_length)), 65536))). + let pow3222 = pow32 * pow3221; // pow(trace_generator, (safe_div((safe_mult(16297, global_values.trace_length)), 16384))). + let pow3223 = pow32 * pow3222; // pow(trace_generator, (safe_div((safe_mult(65189, global_values.trace_length)), 65536))). + let pow3224 = pow32 * pow3223; // pow(trace_generator, (safe_div((safe_mult(32595, global_values.trace_length)), 32768))). + let pow3225 = pow32 * pow3224; // pow(trace_generator, (safe_div((safe_mult(65191, global_values.trace_length)), 65536))). + let pow3226 = pow32 * pow3225; // pow(trace_generator, (safe_div((safe_mult(8149, global_values.trace_length)), 8192))). + let pow3227 = pow32 * pow3226; // pow(trace_generator, (safe_div((safe_mult(65193, global_values.trace_length)), 65536))). + let pow3228 = pow32 * pow3227; // pow(trace_generator, (safe_div((safe_mult(32597, global_values.trace_length)), 32768))). + let pow3229 = pow32 * pow3228; // pow(trace_generator, (safe_div((safe_mult(65195, global_values.trace_length)), 65536))). + let pow3230 = pow32 * pow3229; // pow(trace_generator, (safe_div((safe_mult(16299, global_values.trace_length)), 16384))). + let pow3231 = pow32 * pow3230; // pow(trace_generator, (safe_div((safe_mult(65197, global_values.trace_length)), 65536))). + let pow3232 = pow32 * pow3231; // pow(trace_generator, (safe_div((safe_mult(32599, global_values.trace_length)), 32768))). + let pow3233 = pow32 * pow3232; // pow(trace_generator, (safe_div((safe_mult(65199, global_values.trace_length)), 65536))). + let pow3234 = pow32 * pow3233; // pow(trace_generator, (safe_div((safe_mult(4075, global_values.trace_length)), 4096))). + let pow3235 = pow32 * pow3234; // pow(trace_generator, (safe_div((safe_mult(65201, global_values.trace_length)), 65536))). + let pow3236 = pow32 * pow3235; // pow(trace_generator, (safe_div((safe_mult(32601, global_values.trace_length)), 32768))). + let pow3237 = pow32 * pow3236; // pow(trace_generator, (safe_div((safe_mult(65203, global_values.trace_length)), 65536))). + let pow3238 = pow32 * pow3237; // pow(trace_generator, (safe_div((safe_mult(16301, global_values.trace_length)), 16384))). + let pow3239 = pow32 * pow3238; // pow(trace_generator, (safe_div((safe_mult(65205, global_values.trace_length)), 65536))). + let pow3240 = pow32 * pow3239; // pow(trace_generator, (safe_div((safe_mult(32603, global_values.trace_length)), 32768))). + let pow3241 = pow32 * pow3240; // pow(trace_generator, (safe_div((safe_mult(65207, global_values.trace_length)), 65536))). + let pow3242 = pow32 * pow3241; // pow(trace_generator, (safe_div((safe_mult(8151, global_values.trace_length)), 8192))). + let pow3243 = pow32 * pow3242; // pow(trace_generator, (safe_div((safe_mult(65209, global_values.trace_length)), 65536))). + let pow3244 = pow32 * pow3243; // pow(trace_generator, (safe_div((safe_mult(32605, global_values.trace_length)), 32768))). + let pow3245 = pow32 * pow3244; // pow(trace_generator, (safe_div((safe_mult(65211, global_values.trace_length)), 65536))). + let pow3246 = pow32 * pow3245; // pow(trace_generator, (safe_div((safe_mult(16303, global_values.trace_length)), 16384))). + let pow3247 = pow32 * pow3246; // pow(trace_generator, (safe_div((safe_mult(65213, global_values.trace_length)), 65536))). + let pow3248 = pow41 * pow3247; // pow(trace_generator, (safe_div((safe_mult(1019, global_values.trace_length)), 1024))). + let pow3249 = pow32 * pow3248; // pow(trace_generator, (safe_div((safe_mult(65217, global_values.trace_length)), 65536))). + let pow3250 = pow32 * pow3249; // pow(trace_generator, (safe_div((safe_mult(32609, global_values.trace_length)), 32768))). + let pow3251 = pow32 * pow3250; // pow(trace_generator, (safe_div((safe_mult(65219, global_values.trace_length)), 65536))). + let pow3252 = pow32 * pow3251; // pow(trace_generator, (safe_div((safe_mult(16305, global_values.trace_length)), 16384))). + let pow3253 = pow32 * pow3252; // pow(trace_generator, (safe_div((safe_mult(65221, global_values.trace_length)), 65536))). + let pow3254 = pow32 * pow3253; // pow(trace_generator, (safe_div((safe_mult(32611, global_values.trace_length)), 32768))). + let pow3255 = pow32 * pow3254; // pow(trace_generator, (safe_div((safe_mult(65223, global_values.trace_length)), 65536))). + let pow3256 = pow32 * pow3255; // pow(trace_generator, (safe_div((safe_mult(8153, global_values.trace_length)), 8192))). + let pow3257 = pow32 * pow3256; // pow(trace_generator, (safe_div((safe_mult(65225, global_values.trace_length)), 65536))). + let pow3258 = pow32 * pow3257; // pow(trace_generator, (safe_div((safe_mult(32613, global_values.trace_length)), 32768))). + let pow3259 = pow32 * pow3258; // pow(trace_generator, (safe_div((safe_mult(65227, global_values.trace_length)), 65536))). + let pow3260 = pow32 * pow3259; // pow(trace_generator, (safe_div((safe_mult(16307, global_values.trace_length)), 16384))). + let pow3261 = pow32 * pow3260; // pow(trace_generator, (safe_div((safe_mult(65229, global_values.trace_length)), 65536))). + let pow3262 = pow32 * pow3261; // pow(trace_generator, (safe_div((safe_mult(32615, global_values.trace_length)), 32768))). + let pow3263 = pow32 * pow3262; // pow(trace_generator, (safe_div((safe_mult(65231, global_values.trace_length)), 65536))). + let pow3264 = pow32 * pow3263; // pow(trace_generator, (safe_div((safe_mult(4077, global_values.trace_length)), 4096))). + let pow3265 = pow32 * pow3264; // pow(trace_generator, (safe_div((safe_mult(65233, global_values.trace_length)), 65536))). + let pow3266 = pow32 * pow3265; // pow(trace_generator, (safe_div((safe_mult(32617, global_values.trace_length)), 32768))). + let pow3267 = pow32 * pow3266; // pow(trace_generator, (safe_div((safe_mult(65235, global_values.trace_length)), 65536))). + let pow3268 = pow32 * pow3267; // pow(trace_generator, (safe_div((safe_mult(16309, global_values.trace_length)), 16384))). + let pow3269 = pow32 * pow3268; // pow(trace_generator, (safe_div((safe_mult(65237, global_values.trace_length)), 65536))). + let pow3270 = pow32 * pow3269; // pow(trace_generator, (safe_div((safe_mult(32619, global_values.trace_length)), 32768))). + let pow3271 = pow32 * pow3270; // pow(trace_generator, (safe_div((safe_mult(65239, global_values.trace_length)), 65536))). + let pow3272 = pow32 * pow3271; // pow(trace_generator, (safe_div((safe_mult(8155, global_values.trace_length)), 8192))). + let pow3273 = pow32 * pow3272; // pow(trace_generator, (safe_div((safe_mult(65241, global_values.trace_length)), 65536))). + let pow3274 = pow32 * pow3273; // pow(trace_generator, (safe_div((safe_mult(32621, global_values.trace_length)), 32768))). + let pow3275 = pow32 * pow3274; // pow(trace_generator, (safe_div((safe_mult(65243, global_values.trace_length)), 65536))). + let pow3276 = pow32 * pow3275; // pow(trace_generator, (safe_div((safe_mult(16311, global_values.trace_length)), 16384))). + let pow3277 = pow32 * pow3276; // pow(trace_generator, (safe_div((safe_mult(65245, global_values.trace_length)), 65536))). + let pow3278 = pow41 * pow3277; // pow(trace_generator, (safe_div((safe_mult(2039, global_values.trace_length)), 2048))). + let pow3279 = pow32 * pow3278; // pow(trace_generator, (safe_div((safe_mult(65249, global_values.trace_length)), 65536))). + let pow3280 = pow32 * pow3279; // pow(trace_generator, (safe_div((safe_mult(32625, global_values.trace_length)), 32768))). + let pow3281 = pow32 * pow3280; // pow(trace_generator, (safe_div((safe_mult(65251, global_values.trace_length)), 65536))). + let pow3282 = pow32 * pow3281; // pow(trace_generator, (safe_div((safe_mult(16313, global_values.trace_length)), 16384))). + let pow3283 = pow32 * pow3282; // pow(trace_generator, (safe_div((safe_mult(65253, global_values.trace_length)), 65536))). + let pow3284 = pow32 * pow3283; // pow(trace_generator, (safe_div((safe_mult(32627, global_values.trace_length)), 32768))). + let pow3285 = pow32 * pow3284; // pow(trace_generator, (safe_div((safe_mult(65255, global_values.trace_length)), 65536))). + let pow3286 = pow32 * pow3285; // pow(trace_generator, (safe_div((safe_mult(8157, global_values.trace_length)), 8192))). + let pow3287 = pow32 * pow3286; // pow(trace_generator, (safe_div((safe_mult(65257, global_values.trace_length)), 65536))). + let pow3288 = pow32 * pow3287; // pow(trace_generator, (safe_div((safe_mult(32629, global_values.trace_length)), 32768))). + let pow3289 = pow32 * pow3288; // pow(trace_generator, (safe_div((safe_mult(65259, global_values.trace_length)), 65536))). + let pow3290 = pow32 * pow3289; // pow(trace_generator, (safe_div((safe_mult(16315, global_values.trace_length)), 16384))). + let pow3291 = pow32 * pow3290; // pow(trace_generator, (safe_div((safe_mult(65261, global_values.trace_length)), 65536))). + let pow3292 = pow32 * pow3291; // pow(trace_generator, (safe_div((safe_mult(32631, global_values.trace_length)), 32768))). + let pow3293 = pow32 * pow3292; // pow(trace_generator, (safe_div((safe_mult(65263, global_values.trace_length)), 65536))). + let pow3294 = pow32 * pow3293; // pow(trace_generator, (safe_div((safe_mult(4079, global_values.trace_length)), 4096))). + let pow3295 = pow32 * pow3294; // pow(trace_generator, (safe_div((safe_mult(65265, global_values.trace_length)), 65536))). + let pow3296 = pow32 * pow3295; // pow(trace_generator, (safe_div((safe_mult(32633, global_values.trace_length)), 32768))). + let pow3297 = pow32 * pow3296; // pow(trace_generator, (safe_div((safe_mult(65267, global_values.trace_length)), 65536))). + let pow3298 = pow32 * pow3297; // pow(trace_generator, (safe_div((safe_mult(16317, global_values.trace_length)), 16384))). + let pow3299 = pow32 * pow3298; // pow(trace_generator, (safe_div((safe_mult(65269, global_values.trace_length)), 65536))). + let pow3300 = pow32 * pow3299; // pow(trace_generator, (safe_div((safe_mult(32635, global_values.trace_length)), 32768))). + let pow3301 = pow32 * pow3300; // pow(trace_generator, (safe_div((safe_mult(65271, global_values.trace_length)), 65536))). + let pow3302 = pow32 * pow3301; // pow(trace_generator, (safe_div((safe_mult(8159, global_values.trace_length)), 8192))). + let pow3303 = pow32 * pow3302; // pow(trace_generator, (safe_div((safe_mult(65273, global_values.trace_length)), 65536))). + let pow3304 = pow32 * pow3303; // pow(trace_generator, (safe_div((safe_mult(32637, global_values.trace_length)), 32768))). + let pow3305 = pow32 * pow3304; // pow(trace_generator, (safe_div((safe_mult(65275, global_values.trace_length)), 65536))). + let pow3306 = pow32 * pow3305; // pow(trace_generator, (safe_div((safe_mult(16319, global_values.trace_length)), 16384))). + let pow3307 = pow32 * pow3306; // pow(trace_generator, (safe_div((safe_mult(65277, global_values.trace_length)), 65536))). + let pow3308 = pow41 * pow3307; // pow(trace_generator, (safe_div((safe_mult(255, global_values.trace_length)), 256))). + let pow3309 = pow32 * pow3308; // pow(trace_generator, (safe_div((safe_mult(65281, global_values.trace_length)), 65536))). + let pow3310 = pow32 * pow3309; // pow(trace_generator, (safe_div((safe_mult(32641, global_values.trace_length)), 32768))). + let pow3311 = pow32 * pow3310; // pow(trace_generator, (safe_div((safe_mult(65283, global_values.trace_length)), 65536))). + let pow3312 = pow32 * pow3311; // pow(trace_generator, (safe_div((safe_mult(16321, global_values.trace_length)), 16384))). + let pow3313 = pow32 * pow3312; // pow(trace_generator, (safe_div((safe_mult(65285, global_values.trace_length)), 65536))). + let pow3314 = pow32 * pow3313; // pow(trace_generator, (safe_div((safe_mult(32643, global_values.trace_length)), 32768))). + let pow3315 = pow32 * pow3314; // pow(trace_generator, (safe_div((safe_mult(65287, global_values.trace_length)), 65536))). + let pow3316 = pow32 * pow3315; // pow(trace_generator, (safe_div((safe_mult(8161, global_values.trace_length)), 8192))). + let pow3317 = pow32 * pow3316; // pow(trace_generator, (safe_div((safe_mult(65289, global_values.trace_length)), 65536))). + let pow3318 = pow32 * pow3317; // pow(trace_generator, (safe_div((safe_mult(32645, global_values.trace_length)), 32768))). + let pow3319 = pow32 * pow3318; // pow(trace_generator, (safe_div((safe_mult(65291, global_values.trace_length)), 65536))). + let pow3320 = pow32 * pow3319; // pow(trace_generator, (safe_div((safe_mult(16323, global_values.trace_length)), 16384))). + let pow3321 = pow32 * pow3320; // pow(trace_generator, (safe_div((safe_mult(65293, global_values.trace_length)), 65536))). + let pow3322 = pow32 * pow3321; // pow(trace_generator, (safe_div((safe_mult(32647, global_values.trace_length)), 32768))). + let pow3323 = pow32 * pow3322; // pow(trace_generator, (safe_div((safe_mult(65295, global_values.trace_length)), 65536))). + let pow3324 = pow32 * pow3323; // pow(trace_generator, (safe_div((safe_mult(4081, global_values.trace_length)), 4096))). + let pow3325 = pow32 * pow3324; // pow(trace_generator, (safe_div((safe_mult(65297, global_values.trace_length)), 65536))). + let pow3326 = pow32 * pow3325; // pow(trace_generator, (safe_div((safe_mult(32649, global_values.trace_length)), 32768))). + let pow3327 = pow32 * pow3326; // pow(trace_generator, (safe_div((safe_mult(65299, global_values.trace_length)), 65536))). + let pow3328 = pow32 * pow3327; // pow(trace_generator, (safe_div((safe_mult(16325, global_values.trace_length)), 16384))). + let pow3329 = pow32 * pow3328; // pow(trace_generator, (safe_div((safe_mult(65301, global_values.trace_length)), 65536))). + let pow3330 = pow32 * pow3329; // pow(trace_generator, (safe_div((safe_mult(32651, global_values.trace_length)), 32768))). + let pow3331 = pow32 * pow3330; // pow(trace_generator, (safe_div((safe_mult(65303, global_values.trace_length)), 65536))). + let pow3332 = pow32 * pow3331; // pow(trace_generator, (safe_div((safe_mult(8163, global_values.trace_length)), 8192))). + let pow3333 = pow32 * pow3332; // pow(trace_generator, (safe_div((safe_mult(65305, global_values.trace_length)), 65536))). + let pow3334 = pow32 * pow3333; // pow(trace_generator, (safe_div((safe_mult(32653, global_values.trace_length)), 32768))). + let pow3335 = pow32 * pow3334; // pow(trace_generator, (safe_div((safe_mult(65307, global_values.trace_length)), 65536))). + let pow3336 = pow32 * pow3335; // pow(trace_generator, (safe_div((safe_mult(16327, global_values.trace_length)), 16384))). + let pow3337 = pow32 * pow3336; // pow(trace_generator, (safe_div((safe_mult(65309, global_values.trace_length)), 65536))). + let pow3338 = pow41 * pow3337; // pow(trace_generator, (safe_div((safe_mult(2041, global_values.trace_length)), 2048))). + let pow3339 = pow32 * pow3338; // pow(trace_generator, (safe_div((safe_mult(65313, global_values.trace_length)), 65536))). + let pow3340 = pow32 * pow3339; // pow(trace_generator, (safe_div((safe_mult(32657, global_values.trace_length)), 32768))). + let pow3341 = pow32 * pow3340; // pow(trace_generator, (safe_div((safe_mult(65315, global_values.trace_length)), 65536))). + let pow3342 = pow32 * pow3341; // pow(trace_generator, (safe_div((safe_mult(16329, global_values.trace_length)), 16384))). + let pow3343 = pow32 * pow3342; // pow(trace_generator, (safe_div((safe_mult(65317, global_values.trace_length)), 65536))). + let pow3344 = pow32 * pow3343; // pow(trace_generator, (safe_div((safe_mult(32659, global_values.trace_length)), 32768))). + let pow3345 = pow32 * pow3344; // pow(trace_generator, (safe_div((safe_mult(65319, global_values.trace_length)), 65536))). + let pow3346 = pow32 * pow3345; // pow(trace_generator, (safe_div((safe_mult(8165, global_values.trace_length)), 8192))). + let pow3347 = pow32 * pow3346; // pow(trace_generator, (safe_div((safe_mult(65321, global_values.trace_length)), 65536))). + let pow3348 = pow32 * pow3347; // pow(trace_generator, (safe_div((safe_mult(32661, global_values.trace_length)), 32768))). + let pow3349 = pow32 * pow3348; // pow(trace_generator, (safe_div((safe_mult(65323, global_values.trace_length)), 65536))). + let pow3350 = pow32 * pow3349; // pow(trace_generator, (safe_div((safe_mult(16331, global_values.trace_length)), 16384))). + let pow3351 = pow32 * pow3350; // pow(trace_generator, (safe_div((safe_mult(65325, global_values.trace_length)), 65536))). + let pow3352 = pow32 * pow3351; // pow(trace_generator, (safe_div((safe_mult(32663, global_values.trace_length)), 32768))). + let pow3353 = pow32 * pow3352; // pow(trace_generator, (safe_div((safe_mult(65327, global_values.trace_length)), 65536))). + let pow3354 = pow32 * pow3353; // pow(trace_generator, (safe_div((safe_mult(4083, global_values.trace_length)), 4096))). + let pow3355 = pow32 * pow3354; // pow(trace_generator, (safe_div((safe_mult(65329, global_values.trace_length)), 65536))). + let pow3356 = pow32 * pow3355; // pow(trace_generator, (safe_div((safe_mult(32665, global_values.trace_length)), 32768))). + let pow3357 = pow32 * pow3356; // pow(trace_generator, (safe_div((safe_mult(65331, global_values.trace_length)), 65536))). + let pow3358 = pow32 * pow3357; // pow(trace_generator, (safe_div((safe_mult(16333, global_values.trace_length)), 16384))). + let pow3359 = pow32 * pow3358; // pow(trace_generator, (safe_div((safe_mult(65333, global_values.trace_length)), 65536))). + let pow3360 = pow32 * pow3359; // pow(trace_generator, (safe_div((safe_mult(32667, global_values.trace_length)), 32768))). + let pow3361 = pow32 * pow3360; // pow(trace_generator, (safe_div((safe_mult(65335, global_values.trace_length)), 65536))). + let pow3362 = pow32 * pow3361; // pow(trace_generator, (safe_div((safe_mult(8167, global_values.trace_length)), 8192))). + let pow3363 = pow32 * pow3362; // pow(trace_generator, (safe_div((safe_mult(65337, global_values.trace_length)), 65536))). + let pow3364 = pow32 * pow3363; // pow(trace_generator, (safe_div((safe_mult(32669, global_values.trace_length)), 32768))). + let pow3365 = pow32 * pow3364; // pow(trace_generator, (safe_div((safe_mult(65339, global_values.trace_length)), 65536))). + let pow3366 = pow32 * pow3365; // pow(trace_generator, (safe_div((safe_mult(16335, global_values.trace_length)), 16384))). + let pow3367 = pow32 * pow3366; // pow(trace_generator, (safe_div((safe_mult(65341, global_values.trace_length)), 65536))). + let pow3368 = pow41 * pow3367; // pow(trace_generator, (safe_div((safe_mult(1021, global_values.trace_length)), 1024))). + + // Compute domains. + let domain0 = pow14 - 1; + let domain1 = pow13 - 1; + let domain2 = pow12 - 1; + let domain3 = pow11 - 1; + let domain4 = pow10 - pow2473; + let domain5 = pow10 - 1; + let domain6 = pow9 - 1; + let domain7 = pow8 - 1; + let domain8 = pow7 - 1; + let domain9 = pow7 - pow3308; + let domain10 = pow7 - pow2588; + let mut temp = pow7 - pow824; + let domain11 = temp * (domain8); + let domain12 = pow7 - pow2073; + let domain13 = pow6 - pow1671; + let domain14 = pow6 - 1; + let domain15 = pow6 - pow2549; + temp = pow6 - pow1955; + temp *= pow6 - pow2025; + temp *= pow6 - pow2073; + temp *= pow6 - pow2121; + temp *= pow6 - pow2169; + temp *= pow6 - pow2245; + temp *= pow6 - pow2321; + temp *= pow6 - pow2397; + temp *= pow6 - pow2473; + let domain16 = temp * (domain15); + temp = pow6 - pow2512; + temp *= pow6 - pow2588; + let domain17 = temp * (domain15); + temp = pow6 - pow1767; + temp *= pow6 - pow1815; + temp *= pow6 - pow1885; + let domain18 = temp * (domain16); + let domain19 = pow5 - pow2073; + let domain20 = pow5 - 1; + temp = pow5 - pow793; + temp *= pow5 - pow824; + temp *= pow5 - pow863; + temp *= pow5 - pow894; + temp *= pow5 - pow933; + temp *= pow5 - pow964; + temp *= pow5 - pow988; + temp *= pow5 - pow1012; + temp *= pow5 - pow1036; + temp *= pow5 - pow1060; + temp *= pow5 - pow1099; + temp *= pow5 - pow1130; + temp *= pow5 - pow1169; + temp *= pow5 - pow1200; + temp *= pow5 - pow1239; + let domain21 = temp * (domain20); + let domain22 = pow4 - 1; + temp = pow3 - 1; + temp *= pow3 - pow100; + temp *= pow3 - pow160; + temp *= pow3 - pow220; + temp *= pow3 - pow280; + temp *= pow3 - pow340; + temp *= pow3 - pow400; + let domain23 = temp * (pow3 - pow460); + temp = pow3 - pow520; + temp *= pow3 - pow580; + temp *= pow3 - pow640; + temp *= pow3 - pow700; + temp *= pow3 - pow760; + temp *= pow3 - pow790; + temp *= pow3 - pow791; + temp *= pow3 - pow792; + temp *= pow3 - pow793; + temp *= pow3 - pow817; + temp *= pow3 - pow818; + temp *= pow3 - pow819; + temp *= pow3 - pow820; + temp *= pow3 - pow821; + temp *= pow3 - pow822; + temp *= pow3 - pow823; + let domain24 = temp * (domain23); + temp = pow3 - pow1060; + temp *= pow3 - pow1084; + temp *= pow3 - pow1085; + temp *= pow3 - pow1086; + temp *= pow3 - pow1087; + temp *= pow3 - pow1088; + temp *= pow3 - pow1089; + temp *= pow3 - pow1090; + temp *= pow3 - pow1091; + temp *= pow3 - pow1092; + temp *= pow3 - pow1093; + temp *= pow3 - pow1094; + temp *= pow3 - pow1095; + temp *= pow3 - pow1096; + temp *= pow3 - pow1097; + temp *= pow3 - pow1098; + temp *= pow3 - pow1099; + temp *= pow3 - pow1123; + temp *= pow3 - pow1124; + temp *= pow3 - pow1125; + temp *= pow3 - pow1126; + temp *= pow3 - pow1127; + temp *= pow3 - pow1128; + temp *= pow3 - pow1129; + temp *= pow3 - pow1366; + temp *= pow3 - pow1390; + temp *= pow3 - pow1391; + temp *= pow3 - pow1392; + temp *= pow3 - pow1393; + temp *= pow3 - pow1394; + temp *= pow3 - pow1395; + temp *= pow3 - pow1396; + temp *= pow3 - pow1397; + temp *= pow3 - pow1398; + temp *= pow3 - pow1399; + temp *= pow3 - pow1400; + temp *= pow3 - pow1401; + temp *= pow3 - pow1402; + temp *= pow3 - pow1403; + temp *= pow3 - pow1404; + temp *= pow3 - pow1405; + temp *= pow3 - pow1429; + temp *= pow3 - pow1430; + temp *= pow3 - pow1431; + temp *= pow3 - pow1432; + temp *= pow3 - pow1433; + temp *= pow3 - pow1434; + temp *= pow3 - pow1435; + temp *= pow3 - pow1624; + temp *= pow3 - pow1625; + temp *= pow3 - pow1626; + temp *= pow3 - pow1627; + temp *= pow3 - pow1628; + temp *= pow3 - pow1629; + temp *= pow3 - pow1630; + temp *= pow3 - pow1631; + temp *= pow3 - pow1632; + temp *= pow3 - pow1633; + temp *= pow3 - pow1634; + temp *= pow3 - pow1635; + temp *= pow3 - pow1636; + temp *= pow3 - pow1637; + temp *= pow3 - pow1638; + temp *= pow3 - pow1639; + temp *= pow3 - pow1640; + temp *= pow3 - pow1664; + temp *= pow3 - pow1665; + temp *= pow3 - pow1666; + temp *= pow3 - pow1667; + temp *= pow3 - pow1668; + temp *= pow3 - pow1669; + temp *= pow3 - pow1670; + temp *= pow3 - pow1815; + temp *= pow3 - pow1839; + temp *= pow3 - pow1840; + temp *= pow3 - pow1841; + temp *= pow3 - pow1842; + temp *= pow3 - pow1843; + temp *= pow3 - pow1844; + temp *= pow3 - pow1845; + temp *= pow3 - pow1846; + temp *= pow3 - pow1847; + temp *= pow3 - pow1848; + temp *= pow3 - pow1849; + temp *= pow3 - pow1850; + temp *= pow3 - pow1851; + temp *= pow3 - pow1852; + temp *= pow3 - pow1853; + temp *= pow3 - pow1854; + temp *= pow3 - pow1878; + temp *= pow3 - pow1879; + temp *= pow3 - pow1880; + temp *= pow3 - pow1881; + temp *= pow3 - pow1882; + temp *= pow3 - pow1883; + temp *= pow3 - pow1884; + let domain25 = temp * (domain24); + temp = pow3 - pow824; + temp *= pow3 - pow848; + temp *= pow3 - pow849; + temp *= pow3 - pow850; + temp *= pow3 - pow851; + temp *= pow3 - pow852; + temp *= pow3 - pow853; + temp *= pow3 - pow854; + temp *= pow3 - pow855; + temp *= pow3 - pow856; + temp *= pow3 - pow857; + temp *= pow3 - pow858; + temp *= pow3 - pow859; + temp *= pow3 - pow860; + temp *= pow3 - pow861; + temp *= pow3 - pow862; + temp *= pow3 - pow863; + temp *= pow3 - pow887; + temp *= pow3 - pow888; + temp *= pow3 - pow889; + temp *= pow3 - pow890; + temp *= pow3 - pow891; + temp *= pow3 - pow892; + temp *= pow3 - pow893; + temp *= pow3 - pow894; + temp *= pow3 - pow918; + temp *= pow3 - pow919; + temp *= pow3 - pow920; + temp *= pow3 - pow921; + temp *= pow3 - pow922; + temp *= pow3 - pow923; + temp *= pow3 - pow924; + temp *= pow3 - pow925; + temp *= pow3 - pow926; + temp *= pow3 - pow927; + temp *= pow3 - pow928; + temp *= pow3 - pow929; + temp *= pow3 - pow930; + temp *= pow3 - pow931; + temp *= pow3 - pow932; + temp *= pow3 - pow933; + temp *= pow3 - pow957; + temp *= pow3 - pow958; + temp *= pow3 - pow959; + temp *= pow3 - pow960; + temp *= pow3 - pow961; + temp *= pow3 - pow962; + temp *= pow3 - pow963; + temp *= pow3 - pow1130; + temp *= pow3 - pow1154; + temp *= pow3 - pow1155; + temp *= pow3 - pow1156; + temp *= pow3 - pow1157; + temp *= pow3 - pow1158; + temp *= pow3 - pow1159; + temp *= pow3 - pow1160; + temp *= pow3 - pow1161; + temp *= pow3 - pow1162; + temp *= pow3 - pow1163; + temp *= pow3 - pow1164; + temp *= pow3 - pow1165; + temp *= pow3 - pow1166; + temp *= pow3 - pow1167; + temp *= pow3 - pow1168; + temp *= pow3 - pow1169; + temp *= pow3 - pow1193; + temp *= pow3 - pow1194; + temp *= pow3 - pow1195; + temp *= pow3 - pow1196; + temp *= pow3 - pow1197; + temp *= pow3 - pow1198; + temp *= pow3 - pow1199; + temp *= pow3 - pow1200; + temp *= pow3 - pow1224; + temp *= pow3 - pow1225; + temp *= pow3 - pow1226; + temp *= pow3 - pow1227; + temp *= pow3 - pow1228; + temp *= pow3 - pow1229; + temp *= pow3 - pow1230; + temp *= pow3 - pow1231; + temp *= pow3 - pow1232; + temp *= pow3 - pow1233; + temp *= pow3 - pow1234; + temp *= pow3 - pow1235; + temp *= pow3 - pow1236; + temp *= pow3 - pow1237; + temp *= pow3 - pow1238; + temp *= pow3 - pow1239; + temp *= pow3 - pow1263; + temp *= pow3 - pow1264; + temp *= pow3 - pow1265; + temp *= pow3 - pow1266; + temp *= pow3 - pow1267; + temp *= pow3 - pow1268; + temp *= pow3 - pow1269; + temp *= pow3 - pow1436; + temp *= pow3 - pow1460; + temp *= pow3 - pow1461; + temp *= pow3 - pow1462; + temp *= pow3 - pow1463; + temp *= pow3 - pow1464; + temp *= pow3 - pow1465; + temp *= pow3 - pow1466; + temp *= pow3 - pow1467; + temp *= pow3 - pow1468; + temp *= pow3 - pow1469; + temp *= pow3 - pow1470; + temp *= pow3 - pow1471; + temp *= pow3 - pow1472; + temp *= pow3 - pow1473; + temp *= pow3 - pow1474; + temp *= pow3 - pow1475; + temp *= pow3 - pow1499; + temp *= pow3 - pow1500; + temp *= pow3 - pow1501; + temp *= pow3 - pow1502; + temp *= pow3 - pow1503; + temp *= pow3 - pow1504; + temp *= pow3 - pow1505; + temp *= pow3 - pow1506; + temp *= pow3 - pow1530; + temp *= pow3 - pow1531; + temp *= pow3 - pow1532; + temp *= pow3 - pow1533; + temp *= pow3 - pow1534; + temp *= pow3 - pow1535; + temp *= pow3 - pow1536; + temp *= pow3 - pow1537; + temp *= pow3 - pow1538; + temp *= pow3 - pow1539; + temp *= pow3 - pow1540; + temp *= pow3 - pow1541; + temp *= pow3 - pow1542; + temp *= pow3 - pow1543; + temp *= pow3 - pow1544; + temp *= pow3 - pow1545; + temp *= pow3 - pow1569; + temp *= pow3 - pow1570; + temp *= pow3 - pow1571; + temp *= pow3 - pow1572; + temp *= pow3 - pow1573; + temp *= pow3 - pow1574; + temp *= pow3 - pow1575; + temp *= pow3 - pow1671; + temp *= pow3 - pow1672; + temp *= pow3 - pow1673; + temp *= pow3 - pow1674; + temp *= pow3 - pow1675; + temp *= pow3 - pow1676; + temp *= pow3 - pow1677; + temp *= pow3 - pow1678; + temp *= pow3 - pow1679; + temp *= pow3 - pow1680; + temp *= pow3 - pow1681; + temp *= pow3 - pow1682; + temp *= pow3 - pow1683; + temp *= pow3 - pow1684; + temp *= pow3 - pow1685; + temp *= pow3 - pow1686; + temp *= pow3 - pow1687; + temp *= pow3 - pow1688; + temp *= pow3 - pow1689; + temp *= pow3 - pow1690; + temp *= pow3 - pow1691; + temp *= pow3 - pow1692; + temp *= pow3 - pow1693; + temp *= pow3 - pow1694; + temp *= pow3 - pow1695; + temp *= pow3 - pow1696; + temp *= pow3 - pow1697; + temp *= pow3 - pow1698; + temp *= pow3 - pow1699; + temp *= pow3 - pow1700; + temp *= pow3 - pow1701; + temp *= pow3 - pow1702; + temp *= pow3 - pow1703; + temp *= pow3 - pow1704; + temp *= pow3 - pow1705; + temp *= pow3 - pow1706; + temp *= pow3 - pow1707; + temp *= pow3 - pow1708; + temp *= pow3 - pow1709; + temp *= pow3 - pow1710; + temp *= pow3 - pow1711; + temp *= pow3 - pow1712; + temp *= pow3 - pow1713; + temp *= pow3 - pow1714; + temp *= pow3 - pow1715; + temp *= pow3 - pow1716; + temp *= pow3 - pow1717; + temp *= pow3 - pow1718; + temp *= pow3 - pow1885; + temp *= pow3 - pow1909; + temp *= pow3 - pow1910; + temp *= pow3 - pow1911; + temp *= pow3 - pow1912; + temp *= pow3 - pow1913; + temp *= pow3 - pow1914; + temp *= pow3 - pow1915; + temp *= pow3 - pow1916; + temp *= pow3 - pow1917; + temp *= pow3 - pow1918; + temp *= pow3 - pow1919; + temp *= pow3 - pow1920; + temp *= pow3 - pow1921; + temp *= pow3 - pow1922; + temp *= pow3 - pow1923; + temp *= pow3 - pow1924; + temp *= pow3 - pow1948; + temp *= pow3 - pow1949; + temp *= pow3 - pow1950; + temp *= pow3 - pow1951; + temp *= pow3 - pow1952; + temp *= pow3 - pow1953; + temp *= pow3 - pow1954; + temp *= pow3 - pow1955; + temp *= pow3 - pow1979; + temp *= pow3 - pow1980; + temp *= pow3 - pow1981; + temp *= pow3 - pow1982; + temp *= pow3 - pow1983; + temp *= pow3 - pow1984; + temp *= pow3 - pow1985; + temp *= pow3 - pow1986; + temp *= pow3 - pow1987; + temp *= pow3 - pow1988; + temp *= pow3 - pow1989; + temp *= pow3 - pow1990; + temp *= pow3 - pow1991; + temp *= pow3 - pow1992; + temp *= pow3 - pow1993; + temp *= pow3 - pow1994; + temp *= pow3 - pow2018; + temp *= pow3 - pow2019; + temp *= pow3 - pow2020; + temp *= pow3 - pow2021; + temp *= pow3 - pow2022; + temp *= pow3 - pow2023; + temp *= pow3 - pow2024; + let domain26 = temp * (domain25); + let domain27 = pow2 - pow3308; + let domain28 = pow2 - pow2584; + let domain29 = pow2 - 1; + let domain30 = pow2 - pow2588; + let domain31 = pow1 - pow3308; + let domain32 = pow1 - pow2584; + let domain33 = pow1 - 1; + let domain34 = pow0 - 1; + temp = pow0 - pow32; + let domain35 = temp * (domain34); + temp = pow0 - pow25; + temp *= pow0 - pow26; + temp *= pow0 - pow27; + temp *= pow0 - pow28; + temp *= pow0 - pow29; + temp *= pow0 - pow30; + temp *= pow0 - pow31; + temp *= pow0 - pow33; + temp *= pow0 - pow34; + temp *= pow0 - pow35; + temp *= pow0 - pow36; + temp *= pow0 - pow37; + temp *= pow0 - pow38; + temp *= pow0 - pow39; + let domain36 = temp * (domain35); + temp = pow0 - pow40; + temp *= pow0 - pow41; + temp *= pow0 - pow42; + temp *= pow0 - pow43; + temp *= pow0 - pow44; + temp *= pow0 - pow45; + let domain37 = temp * (domain35); + temp = pow0 - pow46; + temp *= pow0 - pow47; + temp *= pow0 - pow48; + temp *= pow0 - pow49; + temp *= pow0 - pow50; + temp *= pow0 - pow51; + temp *= pow0 - pow52; + temp *= pow0 - pow53; + temp *= pow0 - pow54; + temp *= pow0 - pow55; + temp *= pow0 - pow56; + temp *= pow0 - pow57; + temp *= pow0 - pow58; + temp *= pow0 - pow59; + temp *= pow0 - pow60; + temp *= pow0 - pow61; + let domain38 = temp * (domain37); + temp = pow0 - pow62; + temp *= pow0 - pow63; + temp *= pow0 - pow64; + temp *= pow0 - pow65; + temp *= pow0 - pow66; + temp *= pow0 - pow67; + let domain39 = temp * (domain38); + temp = pow0 - pow68; + temp *= pow0 - pow69; + let domain40 = temp * (domain39); + temp = pow0 - pow70; + temp *= pow0 - pow100; + temp *= pow0 - pow130; + temp *= pow0 - pow160; + temp *= pow0 - pow190; + temp *= pow0 - pow220; + temp *= pow0 - pow250; + temp *= pow0 - pow280; + temp *= pow0 - pow310; + temp *= pow0 - pow340; + temp *= pow0 - pow370; + temp *= pow0 - pow400; + temp *= pow0 - pow430; + temp *= pow0 - pow460; + temp *= pow0 - pow490; + temp *= pow0 - pow520; + temp *= pow0 - pow550; + temp *= pow0 - pow580; + temp *= pow0 - pow610; + temp *= pow0 - pow640; + temp *= pow0 - pow670; + temp *= pow0 - pow700; + temp *= pow0 - pow730; + let domain41 = temp * (pow0 - pow760); + temp = pow0 - pow71; + temp *= pow0 - pow101; + temp *= pow0 - pow131; + temp *= pow0 - pow161; + temp *= pow0 - pow191; + temp *= pow0 - pow221; + temp *= pow0 - pow251; + temp *= pow0 - pow281; + temp *= pow0 - pow311; + temp *= pow0 - pow341; + temp *= pow0 - pow371; + temp *= pow0 - pow401; + temp *= pow0 - pow431; + temp *= pow0 - pow461; + temp *= pow0 - pow491; + temp *= pow0 - pow521; + temp *= pow0 - pow551; + temp *= pow0 - pow581; + temp *= pow0 - pow611; + temp *= pow0 - pow641; + temp *= pow0 - pow671; + temp *= pow0 - pow701; + temp *= pow0 - pow731; + temp *= pow0 - pow761; + let domain42 = temp * (domain41); + temp = domain35; + let domain43 = temp * (domain42); + temp = pow0 - pow72; + temp *= pow0 - pow73; + temp *= pow0 - pow74; + temp *= pow0 - pow75; + temp *= pow0 - pow76; + temp *= pow0 - pow77; + temp *= pow0 - pow78; + temp *= pow0 - pow79; + temp *= pow0 - pow80; + temp *= pow0 - pow81; + temp *= pow0 - pow82; + temp *= pow0 - pow83; + temp *= pow0 - pow84; + temp *= pow0 - pow85; + temp *= pow0 - pow86; + temp *= pow0 - pow87; + temp *= pow0 - pow88; + temp *= pow0 - pow89; + temp *= pow0 - pow90; + temp *= pow0 - pow91; + temp *= pow0 - pow92; + temp *= pow0 - pow93; + temp *= pow0 - pow94; + temp *= pow0 - pow95; + temp *= pow0 - pow96; + temp *= pow0 - pow97; + temp *= pow0 - pow98; + temp *= pow0 - pow99; + temp *= pow0 - pow102; + temp *= pow0 - pow103; + temp *= pow0 - pow104; + temp *= pow0 - pow105; + temp *= pow0 - pow106; + temp *= pow0 - pow107; + temp *= pow0 - pow108; + temp *= pow0 - pow109; + temp *= pow0 - pow110; + temp *= pow0 - pow111; + temp *= pow0 - pow112; + temp *= pow0 - pow113; + temp *= pow0 - pow114; + temp *= pow0 - pow115; + temp *= pow0 - pow116; + temp *= pow0 - pow117; + temp *= pow0 - pow118; + temp *= pow0 - pow119; + temp *= pow0 - pow120; + temp *= pow0 - pow121; + temp *= pow0 - pow122; + temp *= pow0 - pow123; + temp *= pow0 - pow124; + temp *= pow0 - pow125; + temp *= pow0 - pow126; + temp *= pow0 - pow127; + temp *= pow0 - pow128; + temp *= pow0 - pow129; + temp *= pow0 - pow132; + temp *= pow0 - pow133; + temp *= pow0 - pow134; + temp *= pow0 - pow135; + temp *= pow0 - pow136; + temp *= pow0 - pow137; + temp *= pow0 - pow138; + temp *= pow0 - pow139; + temp *= pow0 - pow140; + temp *= pow0 - pow141; + temp *= pow0 - pow142; + temp *= pow0 - pow143; + temp *= pow0 - pow144; + temp *= pow0 - pow145; + temp *= pow0 - pow146; + temp *= pow0 - pow147; + temp *= pow0 - pow148; + temp *= pow0 - pow149; + temp *= pow0 - pow150; + temp *= pow0 - pow151; + temp *= pow0 - pow152; + temp *= pow0 - pow153; + temp *= pow0 - pow154; + temp *= pow0 - pow155; + temp *= pow0 - pow156; + temp *= pow0 - pow157; + temp *= pow0 - pow158; + temp *= pow0 - pow159; + temp *= pow0 - pow162; + temp *= pow0 - pow163; + temp *= pow0 - pow164; + temp *= pow0 - pow165; + temp *= pow0 - pow166; + temp *= pow0 - pow167; + temp *= pow0 - pow168; + temp *= pow0 - pow169; + temp *= pow0 - pow170; + temp *= pow0 - pow171; + temp *= pow0 - pow172; + temp *= pow0 - pow173; + temp *= pow0 - pow174; + temp *= pow0 - pow175; + temp *= pow0 - pow176; + temp *= pow0 - pow177; + temp *= pow0 - pow178; + temp *= pow0 - pow179; + temp *= pow0 - pow180; + temp *= pow0 - pow181; + temp *= pow0 - pow182; + temp *= pow0 - pow183; + temp *= pow0 - pow184; + temp *= pow0 - pow185; + temp *= pow0 - pow186; + temp *= pow0 - pow187; + temp *= pow0 - pow188; + temp *= pow0 - pow189; + temp *= pow0 - pow192; + temp *= pow0 - pow193; + temp *= pow0 - pow194; + temp *= pow0 - pow195; + temp *= pow0 - pow196; + temp *= pow0 - pow197; + temp *= pow0 - pow198; + temp *= pow0 - pow199; + temp *= pow0 - pow200; + temp *= pow0 - pow201; + temp *= pow0 - pow202; + temp *= pow0 - pow203; + temp *= pow0 - pow204; + temp *= pow0 - pow205; + temp *= pow0 - pow206; + temp *= pow0 - pow207; + temp *= pow0 - pow208; + temp *= pow0 - pow209; + temp *= pow0 - pow210; + temp *= pow0 - pow211; + temp *= pow0 - pow212; + temp *= pow0 - pow213; + temp *= pow0 - pow214; + temp *= pow0 - pow215; + temp *= pow0 - pow216; + temp *= pow0 - pow217; + temp *= pow0 - pow218; + temp *= pow0 - pow219; + temp *= pow0 - pow222; + temp *= pow0 - pow223; + temp *= pow0 - pow224; + temp *= pow0 - pow225; + temp *= pow0 - pow226; + temp *= pow0 - pow227; + temp *= pow0 - pow228; + temp *= pow0 - pow229; + temp *= pow0 - pow230; + temp *= pow0 - pow231; + temp *= pow0 - pow232; + temp *= pow0 - pow233; + temp *= pow0 - pow234; + temp *= pow0 - pow235; + temp *= pow0 - pow236; + temp *= pow0 - pow237; + temp *= pow0 - pow238; + temp *= pow0 - pow239; + temp *= pow0 - pow240; + temp *= pow0 - pow241; + temp *= pow0 - pow242; + temp *= pow0 - pow243; + temp *= pow0 - pow244; + temp *= pow0 - pow245; + temp *= pow0 - pow246; + temp *= pow0 - pow247; + temp *= pow0 - pow248; + temp *= pow0 - pow249; + temp *= pow0 - pow252; + temp *= pow0 - pow253; + temp *= pow0 - pow254; + temp *= pow0 - pow255; + temp *= pow0 - pow256; + temp *= pow0 - pow257; + temp *= pow0 - pow258; + temp *= pow0 - pow259; + temp *= pow0 - pow260; + temp *= pow0 - pow261; + temp *= pow0 - pow262; + temp *= pow0 - pow263; + temp *= pow0 - pow264; + temp *= pow0 - pow265; + temp *= pow0 - pow266; + temp *= pow0 - pow267; + temp *= pow0 - pow268; + temp *= pow0 - pow269; + temp *= pow0 - pow270; + temp *= pow0 - pow271; + temp *= pow0 - pow272; + temp *= pow0 - pow273; + temp *= pow0 - pow274; + temp *= pow0 - pow275; + temp *= pow0 - pow276; + temp *= pow0 - pow277; + temp *= pow0 - pow278; + temp *= pow0 - pow279; + temp *= pow0 - pow282; + temp *= pow0 - pow283; + temp *= pow0 - pow284; + temp *= pow0 - pow285; + temp *= pow0 - pow286; + temp *= pow0 - pow287; + temp *= pow0 - pow288; + temp *= pow0 - pow289; + temp *= pow0 - pow290; + temp *= pow0 - pow291; + temp *= pow0 - pow292; + temp *= pow0 - pow293; + temp *= pow0 - pow294; + temp *= pow0 - pow295; + temp *= pow0 - pow296; + temp *= pow0 - pow297; + temp *= pow0 - pow298; + temp *= pow0 - pow299; + temp *= pow0 - pow300; + temp *= pow0 - pow301; + temp *= pow0 - pow302; + temp *= pow0 - pow303; + temp *= pow0 - pow304; + temp *= pow0 - pow305; + temp *= pow0 - pow306; + temp *= pow0 - pow307; + temp *= pow0 - pow308; + temp *= pow0 - pow309; + temp *= pow0 - pow312; + temp *= pow0 - pow313; + temp *= pow0 - pow314; + temp *= pow0 - pow315; + temp *= pow0 - pow316; + temp *= pow0 - pow317; + temp *= pow0 - pow318; + temp *= pow0 - pow319; + temp *= pow0 - pow320; + temp *= pow0 - pow321; + temp *= pow0 - pow322; + temp *= pow0 - pow323; + temp *= pow0 - pow324; + temp *= pow0 - pow325; + temp *= pow0 - pow326; + temp *= pow0 - pow327; + temp *= pow0 - pow328; + temp *= pow0 - pow329; + temp *= pow0 - pow330; + temp *= pow0 - pow331; + temp *= pow0 - pow332; + temp *= pow0 - pow333; + temp *= pow0 - pow334; + temp *= pow0 - pow335; + temp *= pow0 - pow336; + temp *= pow0 - pow337; + temp *= pow0 - pow338; + temp *= pow0 - pow339; + temp *= pow0 - pow342; + temp *= pow0 - pow343; + temp *= pow0 - pow344; + temp *= pow0 - pow345; + temp *= pow0 - pow346; + temp *= pow0 - pow347; + temp *= pow0 - pow348; + temp *= pow0 - pow349; + temp *= pow0 - pow350; + temp *= pow0 - pow351; + temp *= pow0 - pow352; + temp *= pow0 - pow353; + temp *= pow0 - pow354; + temp *= pow0 - pow355; + temp *= pow0 - pow356; + temp *= pow0 - pow357; + temp *= pow0 - pow358; + temp *= pow0 - pow359; + temp *= pow0 - pow360; + temp *= pow0 - pow361; + temp *= pow0 - pow362; + temp *= pow0 - pow363; + temp *= pow0 - pow364; + temp *= pow0 - pow365; + temp *= pow0 - pow366; + temp *= pow0 - pow367; + temp *= pow0 - pow368; + temp *= pow0 - pow369; + temp *= pow0 - pow372; + temp *= pow0 - pow373; + temp *= pow0 - pow374; + temp *= pow0 - pow375; + temp *= pow0 - pow376; + temp *= pow0 - pow377; + temp *= pow0 - pow378; + temp *= pow0 - pow379; + temp *= pow0 - pow380; + temp *= pow0 - pow381; + temp *= pow0 - pow382; + temp *= pow0 - pow383; + temp *= pow0 - pow384; + temp *= pow0 - pow385; + temp *= pow0 - pow386; + temp *= pow0 - pow387; + temp *= pow0 - pow388; + temp *= pow0 - pow389; + temp *= pow0 - pow390; + temp *= pow0 - pow391; + temp *= pow0 - pow392; + temp *= pow0 - pow393; + temp *= pow0 - pow394; + temp *= pow0 - pow395; + temp *= pow0 - pow396; + temp *= pow0 - pow397; + temp *= pow0 - pow398; + temp *= pow0 - pow399; + temp *= pow0 - pow402; + temp *= pow0 - pow403; + temp *= pow0 - pow404; + temp *= pow0 - pow405; + temp *= pow0 - pow406; + temp *= pow0 - pow407; + temp *= pow0 - pow408; + temp *= pow0 - pow409; + temp *= pow0 - pow410; + temp *= pow0 - pow411; + temp *= pow0 - pow412; + temp *= pow0 - pow413; + temp *= pow0 - pow414; + temp *= pow0 - pow415; + temp *= pow0 - pow416; + temp *= pow0 - pow417; + temp *= pow0 - pow418; + temp *= pow0 - pow419; + temp *= pow0 - pow420; + temp *= pow0 - pow421; + temp *= pow0 - pow422; + temp *= pow0 - pow423; + temp *= pow0 - pow424; + temp *= pow0 - pow425; + temp *= pow0 - pow426; + temp *= pow0 - pow427; + temp *= pow0 - pow428; + temp *= pow0 - pow429; + temp *= pow0 - pow432; + temp *= pow0 - pow433; + temp *= pow0 - pow434; + temp *= pow0 - pow435; + temp *= pow0 - pow436; + temp *= pow0 - pow437; + temp *= pow0 - pow438; + temp *= pow0 - pow439; + temp *= pow0 - pow440; + temp *= pow0 - pow441; + temp *= pow0 - pow442; + temp *= pow0 - pow443; + temp *= pow0 - pow444; + temp *= pow0 - pow445; + temp *= pow0 - pow446; + temp *= pow0 - pow447; + temp *= pow0 - pow448; + temp *= pow0 - pow449; + temp *= pow0 - pow450; + temp *= pow0 - pow451; + temp *= pow0 - pow452; + temp *= pow0 - pow453; + temp *= pow0 - pow454; + temp *= pow0 - pow455; + temp *= pow0 - pow456; + temp *= pow0 - pow457; + temp *= pow0 - pow458; + temp *= pow0 - pow459; + temp *= pow0 - pow462; + temp *= pow0 - pow463; + temp *= pow0 - pow464; + temp *= pow0 - pow465; + temp *= pow0 - pow466; + temp *= pow0 - pow467; + temp *= pow0 - pow468; + temp *= pow0 - pow469; + temp *= pow0 - pow470; + temp *= pow0 - pow471; + temp *= pow0 - pow472; + temp *= pow0 - pow473; + temp *= pow0 - pow474; + temp *= pow0 - pow475; + temp *= pow0 - pow476; + temp *= pow0 - pow477; + temp *= pow0 - pow478; + temp *= pow0 - pow479; + temp *= pow0 - pow480; + temp *= pow0 - pow481; + temp *= pow0 - pow482; + temp *= pow0 - pow483; + temp *= pow0 - pow484; + temp *= pow0 - pow485; + temp *= pow0 - pow486; + temp *= pow0 - pow487; + temp *= pow0 - pow488; + temp *= pow0 - pow489; + temp *= pow0 - pow492; + temp *= pow0 - pow493; + temp *= pow0 - pow494; + temp *= pow0 - pow495; + temp *= pow0 - pow496; + temp *= pow0 - pow497; + temp *= pow0 - pow498; + temp *= pow0 - pow499; + temp *= pow0 - pow500; + temp *= pow0 - pow501; + temp *= pow0 - pow502; + temp *= pow0 - pow503; + temp *= pow0 - pow504; + temp *= pow0 - pow505; + temp *= pow0 - pow506; + temp *= pow0 - pow507; + temp *= pow0 - pow508; + temp *= pow0 - pow509; + temp *= pow0 - pow510; + temp *= pow0 - pow511; + temp *= pow0 - pow512; + temp *= pow0 - pow513; + temp *= pow0 - pow514; + temp *= pow0 - pow515; + temp *= pow0 - pow516; + temp *= pow0 - pow517; + temp *= pow0 - pow518; + temp *= pow0 - pow519; + temp *= pow0 - pow522; + temp *= pow0 - pow523; + temp *= pow0 - pow524; + temp *= pow0 - pow525; + temp *= pow0 - pow526; + temp *= pow0 - pow527; + temp *= pow0 - pow528; + temp *= pow0 - pow529; + temp *= pow0 - pow530; + temp *= pow0 - pow531; + temp *= pow0 - pow532; + temp *= pow0 - pow533; + temp *= pow0 - pow534; + temp *= pow0 - pow535; + temp *= pow0 - pow536; + temp *= pow0 - pow537; + temp *= pow0 - pow538; + temp *= pow0 - pow539; + temp *= pow0 - pow540; + temp *= pow0 - pow541; + temp *= pow0 - pow542; + temp *= pow0 - pow543; + temp *= pow0 - pow544; + temp *= pow0 - pow545; + temp *= pow0 - pow546; + temp *= pow0 - pow547; + temp *= pow0 - pow548; + temp *= pow0 - pow549; + temp *= pow0 - pow552; + temp *= pow0 - pow553; + temp *= pow0 - pow554; + temp *= pow0 - pow555; + temp *= pow0 - pow556; + temp *= pow0 - pow557; + temp *= pow0 - pow558; + temp *= pow0 - pow559; + temp *= pow0 - pow560; + temp *= pow0 - pow561; + temp *= pow0 - pow562; + temp *= pow0 - pow563; + temp *= pow0 - pow564; + temp *= pow0 - pow565; + temp *= pow0 - pow566; + temp *= pow0 - pow567; + temp *= pow0 - pow568; + temp *= pow0 - pow569; + temp *= pow0 - pow570; + temp *= pow0 - pow571; + temp *= pow0 - pow572; + temp *= pow0 - pow573; + temp *= pow0 - pow574; + temp *= pow0 - pow575; + temp *= pow0 - pow576; + temp *= pow0 - pow577; + temp *= pow0 - pow578; + temp *= pow0 - pow579; + temp *= pow0 - pow582; + temp *= pow0 - pow583; + temp *= pow0 - pow584; + temp *= pow0 - pow585; + temp *= pow0 - pow586; + temp *= pow0 - pow587; + temp *= pow0 - pow588; + temp *= pow0 - pow589; + temp *= pow0 - pow590; + temp *= pow0 - pow591; + temp *= pow0 - pow592; + temp *= pow0 - pow593; + temp *= pow0 - pow594; + temp *= pow0 - pow595; + temp *= pow0 - pow596; + temp *= pow0 - pow597; + temp *= pow0 - pow598; + temp *= pow0 - pow599; + temp *= pow0 - pow600; + temp *= pow0 - pow601; + temp *= pow0 - pow602; + temp *= pow0 - pow603; + temp *= pow0 - pow604; + temp *= pow0 - pow605; + temp *= pow0 - pow606; + temp *= pow0 - pow607; + temp *= pow0 - pow608; + temp *= pow0 - pow609; + temp *= pow0 - pow612; + temp *= pow0 - pow613; + temp *= pow0 - pow614; + temp *= pow0 - pow615; + temp *= pow0 - pow616; + temp *= pow0 - pow617; + temp *= pow0 - pow618; + temp *= pow0 - pow619; + temp *= pow0 - pow620; + temp *= pow0 - pow621; + temp *= pow0 - pow622; + temp *= pow0 - pow623; + temp *= pow0 - pow624; + temp *= pow0 - pow625; + temp *= pow0 - pow626; + temp *= pow0 - pow627; + temp *= pow0 - pow628; + temp *= pow0 - pow629; + temp *= pow0 - pow630; + temp *= pow0 - pow631; + temp *= pow0 - pow632; + temp *= pow0 - pow633; + temp *= pow0 - pow634; + temp *= pow0 - pow635; + temp *= pow0 - pow636; + temp *= pow0 - pow637; + temp *= pow0 - pow638; + temp *= pow0 - pow639; + temp *= pow0 - pow642; + temp *= pow0 - pow643; + temp *= pow0 - pow644; + temp *= pow0 - pow645; + temp *= pow0 - pow646; + temp *= pow0 - pow647; + temp *= pow0 - pow648; + temp *= pow0 - pow649; + temp *= pow0 - pow650; + temp *= pow0 - pow651; + temp *= pow0 - pow652; + temp *= pow0 - pow653; + temp *= pow0 - pow654; + temp *= pow0 - pow655; + temp *= pow0 - pow656; + temp *= pow0 - pow657; + temp *= pow0 - pow658; + temp *= pow0 - pow659; + temp *= pow0 - pow660; + temp *= pow0 - pow661; + temp *= pow0 - pow662; + temp *= pow0 - pow663; + temp *= pow0 - pow664; + temp *= pow0 - pow665; + temp *= pow0 - pow666; + temp *= pow0 - pow667; + temp *= pow0 - pow668; + temp *= pow0 - pow669; + temp *= pow0 - pow672; + temp *= pow0 - pow673; + temp *= pow0 - pow674; + temp *= pow0 - pow675; + temp *= pow0 - pow676; + temp *= pow0 - pow677; + temp *= pow0 - pow678; + temp *= pow0 - pow679; + temp *= pow0 - pow680; + temp *= pow0 - pow681; + temp *= pow0 - pow682; + temp *= pow0 - pow683; + temp *= pow0 - pow684; + temp *= pow0 - pow685; + temp *= pow0 - pow686; + temp *= pow0 - pow687; + temp *= pow0 - pow688; + temp *= pow0 - pow689; + temp *= pow0 - pow690; + temp *= pow0 - pow691; + temp *= pow0 - pow692; + temp *= pow0 - pow693; + temp *= pow0 - pow694; + temp *= pow0 - pow695; + temp *= pow0 - pow696; + temp *= pow0 - pow697; + temp *= pow0 - pow698; + temp *= pow0 - pow699; + temp *= pow0 - pow702; + temp *= pow0 - pow703; + temp *= pow0 - pow704; + temp *= pow0 - pow705; + temp *= pow0 - pow706; + temp *= pow0 - pow707; + temp *= pow0 - pow708; + temp *= pow0 - pow709; + temp *= pow0 - pow710; + temp *= pow0 - pow711; + temp *= pow0 - pow712; + temp *= pow0 - pow713; + temp *= pow0 - pow714; + temp *= pow0 - pow715; + temp *= pow0 - pow716; + temp *= pow0 - pow717; + temp *= pow0 - pow718; + temp *= pow0 - pow719; + temp *= pow0 - pow720; + temp *= pow0 - pow721; + temp *= pow0 - pow722; + temp *= pow0 - pow723; + temp *= pow0 - pow724; + temp *= pow0 - pow725; + temp *= pow0 - pow726; + temp *= pow0 - pow727; + temp *= pow0 - pow728; + temp *= pow0 - pow729; + temp *= pow0 - pow732; + temp *= pow0 - pow733; + temp *= pow0 - pow734; + temp *= pow0 - pow735; + temp *= pow0 - pow736; + temp *= pow0 - pow737; + temp *= pow0 - pow738; + temp *= pow0 - pow739; + temp *= pow0 - pow740; + temp *= pow0 - pow741; + temp *= pow0 - pow742; + temp *= pow0 - pow743; + temp *= pow0 - pow744; + temp *= pow0 - pow745; + temp *= pow0 - pow746; + temp *= pow0 - pow747; + temp *= pow0 - pow748; + temp *= pow0 - pow749; + temp *= pow0 - pow750; + temp *= pow0 - pow751; + temp *= pow0 - pow752; + temp *= pow0 - pow753; + temp *= pow0 - pow754; + temp *= pow0 - pow755; + temp *= pow0 - pow756; + temp *= pow0 - pow757; + temp *= pow0 - pow758; + temp *= pow0 - pow759; + temp *= pow0 - pow762; + temp *= pow0 - pow763; + temp *= pow0 - pow764; + temp *= pow0 - pow765; + temp *= pow0 - pow766; + temp *= pow0 - pow767; + temp *= pow0 - pow768; + temp *= pow0 - pow769; + temp *= pow0 - pow770; + temp *= pow0 - pow771; + temp *= pow0 - pow772; + temp *= pow0 - pow773; + temp *= pow0 - pow774; + temp *= pow0 - pow775; + temp *= pow0 - pow776; + temp *= pow0 - pow777; + temp *= pow0 - pow778; + temp *= pow0 - pow779; + temp *= pow0 - pow780; + temp *= pow0 - pow781; + temp *= pow0 - pow782; + temp *= pow0 - pow783; + temp *= pow0 - pow784; + temp *= pow0 - pow785; + temp *= pow0 - pow786; + temp *= pow0 - pow787; + temp *= pow0 - pow788; + temp *= pow0 - pow789; + temp *= domain39; + let domain44 = temp * (domain42); + temp = domain34; + let domain45 = temp * (domain41); + let domain46 = pow0 - pow2588; + temp = pow3 - pow2169; + temp *= pow3 - pow2245; + temp *= pow3 - pow2321; + temp *= pow3 - pow2397; + temp *= pow3 - pow2473; + temp *= pow3 - pow2549; + temp *= pow0 - pow2618; + temp *= pow0 - pow2648; + temp *= pow0 - pow2678; + temp *= pow0 - pow2708; + temp *= pow0 - pow2738; + temp *= pow0 - pow2768; + temp *= pow0 - pow2798; + temp *= pow0 - pow2828; + temp *= pow0 - pow2858; + temp *= pow0 - pow2888; + temp *= pow0 - pow2918; + temp *= pow0 - pow2948; + temp *= pow0 - pow2978; + temp *= pow0 - pow3008; + temp *= pow0 - pow3038; + temp *= pow0 - pow3068; + temp *= pow0 - pow3098; + temp *= pow0 - pow3128; + temp *= pow0 - pow3158; + temp *= pow0 - pow3188; + temp *= pow0 - pow3218; + temp *= pow0 - pow3248; + temp *= pow0 - pow3278; + temp *= pow0 - pow3308; + let domain47 = temp * (domain46); + let domain48 = pow0 - pow2589; + temp = pow3 - pow2193; + temp *= pow3 - pow2269; + temp *= pow3 - pow2345; + temp *= pow3 - pow2421; + temp *= pow3 - pow2497; + temp *= pow3 - pow2573; + temp *= pow0 - pow2619; + temp *= pow0 - pow2649; + temp *= pow0 - pow2679; + temp *= pow0 - pow2709; + temp *= pow0 - pow2739; + temp *= pow0 - pow2769; + temp *= pow0 - pow2799; + temp *= pow0 - pow2829; + temp *= pow0 - pow2859; + temp *= pow0 - pow2889; + temp *= pow0 - pow2919; + temp *= pow0 - pow2949; + temp *= pow0 - pow2979; + temp *= pow0 - pow3009; + temp *= pow0 - pow3039; + temp *= pow0 - pow3069; + temp *= pow0 - pow3099; + temp *= pow0 - pow3129; + temp *= pow0 - pow3159; + temp *= pow0 - pow3189; + temp *= pow0 - pow3219; + temp *= pow0 - pow3249; + temp *= pow0 - pow3279; + temp *= pow0 - pow3309; + temp *= pow0 - pow3338; + temp *= pow0 - pow3339; + temp *= domain47; + let domain49 = temp * (domain48); + temp = pow0 - pow2590; + temp *= pow0 - pow2591; + temp *= pow0 - pow2592; + temp *= pow0 - pow2593; + temp *= pow0 - pow2594; + let domain50 = temp * (pow0 - pow2595); + temp = pow0 - pow2596; + temp *= pow0 - pow2597; + temp *= pow0 - pow2598; + temp *= pow0 - pow2599; + temp *= pow0 - pow2600; + temp *= pow0 - pow2601; + temp *= pow0 - pow2602; + temp *= pow0 - pow2603; + temp *= pow0 - pow2604; + temp *= pow0 - pow2605; + temp *= pow0 - pow2606; + temp *= pow0 - pow2607; + temp *= pow0 - pow2608; + temp *= pow0 - pow2609; + temp *= pow0 - pow2610; + temp *= pow0 - pow2611; + let domain51 = temp * (domain50); + temp = pow7 - pow2473; + temp *= pow7 - pow2549; + temp *= pow3 - pow2194; + temp *= pow3 - pow2195; + temp *= pow3 - pow2196; + temp *= pow3 - pow2197; + temp *= pow3 - pow2198; + temp *= pow3 - pow2199; + temp *= pow3 - pow2200; + temp *= pow3 - pow2201; + temp *= pow3 - pow2202; + temp *= pow3 - pow2203; + temp *= pow3 - pow2204; + temp *= pow3 - pow2205; + temp *= pow3 - pow2206; + temp *= pow3 - pow2207; + temp *= pow3 - pow2208; + temp *= pow3 - pow2232; + temp *= pow3 - pow2233; + temp *= pow3 - pow2234; + temp *= pow3 - pow2235; + temp *= pow3 - pow2236; + temp *= pow3 - pow2237; + temp *= pow3 - pow2238; + temp *= pow3 - pow2239; + temp *= pow3 - pow2240; + temp *= pow3 - pow2241; + temp *= pow3 - pow2242; + temp *= pow3 - pow2243; + temp *= pow3 - pow2244; + temp *= pow3 - pow2270; + temp *= pow3 - pow2271; + temp *= pow3 - pow2272; + temp *= pow3 - pow2273; + temp *= pow3 - pow2274; + temp *= pow3 - pow2275; + temp *= pow3 - pow2276; + temp *= pow3 - pow2277; + temp *= pow3 - pow2278; + temp *= pow3 - pow2279; + temp *= pow3 - pow2280; + temp *= pow3 - pow2281; + temp *= pow3 - pow2282; + temp *= pow3 - pow2283; + temp *= pow3 - pow2284; + temp *= pow3 - pow2308; + temp *= pow3 - pow2309; + temp *= pow3 - pow2310; + temp *= pow3 - pow2311; + temp *= pow3 - pow2312; + temp *= pow3 - pow2313; + temp *= pow3 - pow2314; + temp *= pow3 - pow2315; + temp *= pow3 - pow2316; + temp *= pow3 - pow2317; + temp *= pow3 - pow2318; + temp *= pow3 - pow2319; + temp *= pow3 - pow2320; + temp *= pow3 - pow2346; + temp *= pow3 - pow2347; + temp *= pow3 - pow2348; + temp *= pow3 - pow2349; + temp *= pow3 - pow2350; + temp *= pow3 - pow2351; + temp *= pow3 - pow2352; + temp *= pow3 - pow2353; + temp *= pow3 - pow2354; + temp *= pow3 - pow2355; + temp *= pow3 - pow2356; + temp *= pow3 - pow2357; + temp *= pow3 - pow2358; + temp *= pow3 - pow2359; + temp *= pow3 - pow2360; + temp *= pow3 - pow2384; + temp *= pow3 - pow2385; + temp *= pow3 - pow2386; + temp *= pow3 - pow2387; + temp *= pow3 - pow2388; + temp *= pow3 - pow2389; + temp *= pow3 - pow2390; + temp *= pow3 - pow2391; + temp *= pow3 - pow2392; + temp *= pow3 - pow2393; + temp *= pow3 - pow2394; + temp *= pow3 - pow2395; + temp *= pow3 - pow2396; + temp *= pow3 - pow2422; + temp *= pow3 - pow2423; + temp *= pow3 - pow2424; + temp *= pow3 - pow2425; + temp *= pow3 - pow2426; + temp *= pow3 - pow2427; + temp *= pow3 - pow2428; + temp *= pow3 - pow2429; + temp *= pow3 - pow2430; + temp *= pow3 - pow2431; + temp *= pow3 - pow2432; + temp *= pow3 - pow2433; + temp *= pow3 - pow2434; + temp *= pow3 - pow2435; + temp *= pow3 - pow2436; + temp *= pow3 - pow2460; + temp *= pow3 - pow2461; + temp *= pow3 - pow2462; + temp *= pow3 - pow2463; + temp *= pow3 - pow2464; + temp *= pow3 - pow2465; + temp *= pow3 - pow2466; + temp *= pow3 - pow2467; + temp *= pow3 - pow2468; + temp *= pow3 - pow2469; + temp *= pow3 - pow2470; + temp *= pow3 - pow2471; + temp *= pow3 - pow2472; + temp *= pow3 - pow2498; + temp *= pow3 - pow2499; + temp *= pow3 - pow2500; + temp *= pow3 - pow2501; + temp *= pow3 - pow2502; + temp *= pow3 - pow2503; + temp *= pow3 - pow2504; + temp *= pow3 - pow2505; + temp *= pow3 - pow2506; + temp *= pow3 - pow2507; + temp *= pow3 - pow2508; + temp *= pow3 - pow2509; + temp *= pow3 - pow2510; + temp *= pow3 - pow2511; + temp *= pow3 - pow2512; + temp *= pow3 - pow2536; + temp *= pow3 - pow2537; + temp *= pow3 - pow2538; + temp *= pow3 - pow2539; + temp *= pow3 - pow2540; + temp *= pow3 - pow2541; + temp *= pow3 - pow2542; + temp *= pow3 - pow2543; + temp *= pow3 - pow2544; + temp *= pow3 - pow2545; + temp *= pow3 - pow2546; + temp *= pow3 - pow2547; + temp *= pow3 - pow2548; + temp *= pow3 - pow2574; + temp *= pow3 - pow2575; + temp *= pow3 - pow2576; + temp *= pow3 - pow2577; + temp *= pow3 - pow2578; + temp *= pow3 - pow2579; + temp *= pow3 - pow2580; + temp *= pow3 - pow2581; + temp *= pow3 - pow2582; + temp *= pow3 - pow2583; + temp *= pow3 - pow2584; + temp *= pow3 - pow2585; + temp *= pow3 - pow2586; + temp *= pow3 - pow2587; + temp *= pow3 - pow2588; + temp *= pow3 - pow2648; + temp *= pow3 - pow2708; + temp *= pow3 - pow2768; + temp *= pow3 - pow2828; + temp *= pow3 - pow2888; + temp *= pow3 - pow2948; + temp *= pow3 - pow3008; + temp *= pow3 - pow3068; + temp *= pow3 - pow3128; + temp *= pow3 - pow3188; + temp *= pow3 - pow3248; + temp *= pow3 - pow3308; + temp *= pow3 - pow3368; + temp *= pow0 - pow2612; + temp *= pow0 - pow2613; + temp *= pow0 - pow2614; + temp *= pow0 - pow2615; + temp *= pow0 - pow2616; + temp *= pow0 - pow2617; + temp *= pow0 - pow2620; + temp *= pow0 - pow2621; + temp *= pow0 - pow2622; + temp *= pow0 - pow2623; + temp *= pow0 - pow2624; + temp *= pow0 - pow2625; + temp *= pow0 - pow2626; + temp *= pow0 - pow2627; + temp *= pow0 - pow2628; + temp *= pow0 - pow2629; + temp *= pow0 - pow2630; + temp *= pow0 - pow2631; + temp *= pow0 - pow2632; + temp *= pow0 - pow2633; + temp *= pow0 - pow2634; + temp *= pow0 - pow2635; + temp *= pow0 - pow2636; + temp *= pow0 - pow2637; + temp *= pow0 - pow2638; + temp *= pow0 - pow2639; + temp *= pow0 - pow2640; + temp *= pow0 - pow2641; + temp *= pow0 - pow2642; + temp *= pow0 - pow2643; + temp *= pow0 - pow2644; + temp *= pow0 - pow2645; + temp *= pow0 - pow2646; + temp *= pow0 - pow2647; + temp *= pow0 - pow2650; + temp *= pow0 - pow2651; + temp *= pow0 - pow2652; + temp *= pow0 - pow2653; + temp *= pow0 - pow2654; + temp *= pow0 - pow2655; + temp *= pow0 - pow2656; + temp *= pow0 - pow2657; + temp *= pow0 - pow2658; + temp *= pow0 - pow2659; + temp *= pow0 - pow2660; + temp *= pow0 - pow2661; + temp *= pow0 - pow2662; + temp *= pow0 - pow2663; + temp *= pow0 - pow2664; + temp *= pow0 - pow2665; + temp *= pow0 - pow2666; + temp *= pow0 - pow2667; + temp *= pow0 - pow2668; + temp *= pow0 - pow2669; + temp *= pow0 - pow2670; + temp *= pow0 - pow2671; + temp *= pow0 - pow2672; + temp *= pow0 - pow2673; + temp *= pow0 - pow2674; + temp *= pow0 - pow2675; + temp *= pow0 - pow2676; + temp *= pow0 - pow2677; + temp *= pow0 - pow2680; + temp *= pow0 - pow2681; + temp *= pow0 - pow2682; + temp *= pow0 - pow2683; + temp *= pow0 - pow2684; + temp *= pow0 - pow2685; + temp *= pow0 - pow2686; + temp *= pow0 - pow2687; + temp *= pow0 - pow2688; + temp *= pow0 - pow2689; + temp *= pow0 - pow2690; + temp *= pow0 - pow2691; + temp *= pow0 - pow2692; + temp *= pow0 - pow2693; + temp *= pow0 - pow2694; + temp *= pow0 - pow2695; + temp *= pow0 - pow2696; + temp *= pow0 - pow2697; + temp *= pow0 - pow2698; + temp *= pow0 - pow2699; + temp *= pow0 - pow2700; + temp *= pow0 - pow2701; + temp *= pow0 - pow2702; + temp *= pow0 - pow2703; + temp *= pow0 - pow2704; + temp *= pow0 - pow2705; + temp *= pow0 - pow2706; + temp *= pow0 - pow2707; + temp *= pow0 - pow2710; + temp *= pow0 - pow2711; + temp *= pow0 - pow2712; + temp *= pow0 - pow2713; + temp *= pow0 - pow2714; + temp *= pow0 - pow2715; + temp *= pow0 - pow2716; + temp *= pow0 - pow2717; + temp *= pow0 - pow2718; + temp *= pow0 - pow2719; + temp *= pow0 - pow2720; + temp *= pow0 - pow2721; + temp *= pow0 - pow2722; + temp *= pow0 - pow2723; + temp *= pow0 - pow2724; + temp *= pow0 - pow2725; + temp *= pow0 - pow2726; + temp *= pow0 - pow2727; + temp *= pow0 - pow2728; + temp *= pow0 - pow2729; + temp *= pow0 - pow2730; + temp *= pow0 - pow2731; + temp *= pow0 - pow2732; + temp *= pow0 - pow2733; + temp *= pow0 - pow2734; + temp *= pow0 - pow2735; + temp *= pow0 - pow2736; + temp *= pow0 - pow2737; + temp *= pow0 - pow2740; + temp *= pow0 - pow2741; + temp *= pow0 - pow2742; + temp *= pow0 - pow2743; + temp *= pow0 - pow2744; + temp *= pow0 - pow2745; + temp *= pow0 - pow2746; + temp *= pow0 - pow2747; + temp *= pow0 - pow2748; + temp *= pow0 - pow2749; + temp *= pow0 - pow2750; + temp *= pow0 - pow2751; + temp *= pow0 - pow2752; + temp *= pow0 - pow2753; + temp *= pow0 - pow2754; + temp *= pow0 - pow2755; + temp *= pow0 - pow2756; + temp *= pow0 - pow2757; + temp *= pow0 - pow2758; + temp *= pow0 - pow2759; + temp *= pow0 - pow2760; + temp *= pow0 - pow2761; + temp *= pow0 - pow2762; + temp *= pow0 - pow2763; + temp *= pow0 - pow2764; + temp *= pow0 - pow2765; + temp *= pow0 - pow2766; + temp *= pow0 - pow2767; + temp *= pow0 - pow2770; + temp *= pow0 - pow2771; + temp *= pow0 - pow2772; + temp *= pow0 - pow2773; + temp *= pow0 - pow2774; + temp *= pow0 - pow2775; + temp *= pow0 - pow2776; + temp *= pow0 - pow2777; + temp *= pow0 - pow2778; + temp *= pow0 - pow2779; + temp *= pow0 - pow2780; + temp *= pow0 - pow2781; + temp *= pow0 - pow2782; + temp *= pow0 - pow2783; + temp *= pow0 - pow2784; + temp *= pow0 - pow2785; + temp *= pow0 - pow2786; + temp *= pow0 - pow2787; + temp *= pow0 - pow2788; + temp *= pow0 - pow2789; + temp *= pow0 - pow2790; + temp *= pow0 - pow2791; + temp *= pow0 - pow2792; + temp *= pow0 - pow2793; + temp *= pow0 - pow2794; + temp *= pow0 - pow2795; + temp *= pow0 - pow2796; + temp *= pow0 - pow2797; + temp *= pow0 - pow2800; + temp *= pow0 - pow2801; + temp *= pow0 - pow2802; + temp *= pow0 - pow2803; + temp *= pow0 - pow2804; + temp *= pow0 - pow2805; + temp *= pow0 - pow2806; + temp *= pow0 - pow2807; + temp *= pow0 - pow2808; + temp *= pow0 - pow2809; + temp *= pow0 - pow2810; + temp *= pow0 - pow2811; + temp *= pow0 - pow2812; + temp *= pow0 - pow2813; + temp *= pow0 - pow2814; + temp *= pow0 - pow2815; + temp *= pow0 - pow2816; + temp *= pow0 - pow2817; + temp *= pow0 - pow2818; + temp *= pow0 - pow2819; + temp *= pow0 - pow2820; + temp *= pow0 - pow2821; + temp *= pow0 - pow2822; + temp *= pow0 - pow2823; + temp *= pow0 - pow2824; + temp *= pow0 - pow2825; + temp *= pow0 - pow2826; + temp *= pow0 - pow2827; + temp *= pow0 - pow2830; + temp *= pow0 - pow2831; + temp *= pow0 - pow2832; + temp *= pow0 - pow2833; + temp *= pow0 - pow2834; + temp *= pow0 - pow2835; + temp *= pow0 - pow2836; + temp *= pow0 - pow2837; + temp *= pow0 - pow2838; + temp *= pow0 - pow2839; + temp *= pow0 - pow2840; + temp *= pow0 - pow2841; + temp *= pow0 - pow2842; + temp *= pow0 - pow2843; + temp *= pow0 - pow2844; + temp *= pow0 - pow2845; + temp *= pow0 - pow2846; + temp *= pow0 - pow2847; + temp *= pow0 - pow2848; + temp *= pow0 - pow2849; + temp *= pow0 - pow2850; + temp *= pow0 - pow2851; + temp *= pow0 - pow2852; + temp *= pow0 - pow2853; + temp *= pow0 - pow2854; + temp *= pow0 - pow2855; + temp *= pow0 - pow2856; + temp *= pow0 - pow2857; + temp *= pow0 - pow2860; + temp *= pow0 - pow2861; + temp *= pow0 - pow2862; + temp *= pow0 - pow2863; + temp *= pow0 - pow2864; + temp *= pow0 - pow2865; + temp *= pow0 - pow2866; + temp *= pow0 - pow2867; + temp *= pow0 - pow2868; + temp *= pow0 - pow2869; + temp *= pow0 - pow2870; + temp *= pow0 - pow2871; + temp *= pow0 - pow2872; + temp *= pow0 - pow2873; + temp *= pow0 - pow2874; + temp *= pow0 - pow2875; + temp *= pow0 - pow2876; + temp *= pow0 - pow2877; + temp *= pow0 - pow2878; + temp *= pow0 - pow2879; + temp *= pow0 - pow2880; + temp *= pow0 - pow2881; + temp *= pow0 - pow2882; + temp *= pow0 - pow2883; + temp *= pow0 - pow2884; + temp *= pow0 - pow2885; + temp *= pow0 - pow2886; + temp *= pow0 - pow2887; + temp *= pow0 - pow2890; + temp *= pow0 - pow2891; + temp *= pow0 - pow2892; + temp *= pow0 - pow2893; + temp *= pow0 - pow2894; + temp *= pow0 - pow2895; + temp *= pow0 - pow2896; + temp *= pow0 - pow2897; + temp *= pow0 - pow2898; + temp *= pow0 - pow2899; + temp *= pow0 - pow2900; + temp *= pow0 - pow2901; + temp *= pow0 - pow2902; + temp *= pow0 - pow2903; + temp *= pow0 - pow2904; + temp *= pow0 - pow2905; + temp *= pow0 - pow2906; + temp *= pow0 - pow2907; + temp *= pow0 - pow2908; + temp *= pow0 - pow2909; + temp *= pow0 - pow2910; + temp *= pow0 - pow2911; + temp *= pow0 - pow2912; + temp *= pow0 - pow2913; + temp *= pow0 - pow2914; + temp *= pow0 - pow2915; + temp *= pow0 - pow2916; + temp *= pow0 - pow2917; + temp *= pow0 - pow2920; + temp *= pow0 - pow2921; + temp *= pow0 - pow2922; + temp *= pow0 - pow2923; + temp *= pow0 - pow2924; + temp *= pow0 - pow2925; + temp *= pow0 - pow2926; + temp *= pow0 - pow2927; + temp *= pow0 - pow2928; + temp *= pow0 - pow2929; + temp *= pow0 - pow2930; + temp *= pow0 - pow2931; + temp *= pow0 - pow2932; + temp *= pow0 - pow2933; + temp *= pow0 - pow2934; + temp *= pow0 - pow2935; + temp *= pow0 - pow2936; + temp *= pow0 - pow2937; + temp *= pow0 - pow2938; + temp *= pow0 - pow2939; + temp *= pow0 - pow2940; + temp *= pow0 - pow2941; + temp *= pow0 - pow2942; + temp *= pow0 - pow2943; + temp *= pow0 - pow2944; + temp *= pow0 - pow2945; + temp *= pow0 - pow2946; + temp *= pow0 - pow2947; + temp *= pow0 - pow2950; + temp *= pow0 - pow2951; + temp *= pow0 - pow2952; + temp *= pow0 - pow2953; + temp *= pow0 - pow2954; + temp *= pow0 - pow2955; + temp *= pow0 - pow2956; + temp *= pow0 - pow2957; + temp *= pow0 - pow2958; + temp *= pow0 - pow2959; + temp *= pow0 - pow2960; + temp *= pow0 - pow2961; + temp *= pow0 - pow2962; + temp *= pow0 - pow2963; + temp *= pow0 - pow2964; + temp *= pow0 - pow2965; + temp *= pow0 - pow2966; + temp *= pow0 - pow2967; + temp *= pow0 - pow2968; + temp *= pow0 - pow2969; + temp *= pow0 - pow2970; + temp *= pow0 - pow2971; + temp *= pow0 - pow2972; + temp *= pow0 - pow2973; + temp *= pow0 - pow2974; + temp *= pow0 - pow2975; + temp *= pow0 - pow2976; + temp *= pow0 - pow2977; + temp *= pow0 - pow2980; + temp *= pow0 - pow2981; + temp *= pow0 - pow2982; + temp *= pow0 - pow2983; + temp *= pow0 - pow2984; + temp *= pow0 - pow2985; + temp *= pow0 - pow2986; + temp *= pow0 - pow2987; + temp *= pow0 - pow2988; + temp *= pow0 - pow2989; + temp *= pow0 - pow2990; + temp *= pow0 - pow2991; + temp *= pow0 - pow2992; + temp *= pow0 - pow2993; + temp *= pow0 - pow2994; + temp *= pow0 - pow2995; + temp *= pow0 - pow2996; + temp *= pow0 - pow2997; + temp *= pow0 - pow2998; + temp *= pow0 - pow2999; + temp *= pow0 - pow3000; + temp *= pow0 - pow3001; + temp *= pow0 - pow3002; + temp *= pow0 - pow3003; + temp *= pow0 - pow3004; + temp *= pow0 - pow3005; + temp *= pow0 - pow3006; + temp *= pow0 - pow3007; + temp *= pow0 - pow3010; + temp *= pow0 - pow3011; + temp *= pow0 - pow3012; + temp *= pow0 - pow3013; + temp *= pow0 - pow3014; + temp *= pow0 - pow3015; + temp *= pow0 - pow3016; + temp *= pow0 - pow3017; + temp *= pow0 - pow3018; + temp *= pow0 - pow3019; + temp *= pow0 - pow3020; + temp *= pow0 - pow3021; + temp *= pow0 - pow3022; + temp *= pow0 - pow3023; + temp *= pow0 - pow3024; + temp *= pow0 - pow3025; + temp *= pow0 - pow3026; + temp *= pow0 - pow3027; + temp *= pow0 - pow3028; + temp *= pow0 - pow3029; + temp *= pow0 - pow3030; + temp *= pow0 - pow3031; + temp *= pow0 - pow3032; + temp *= pow0 - pow3033; + temp *= pow0 - pow3034; + temp *= pow0 - pow3035; + temp *= pow0 - pow3036; + temp *= pow0 - pow3037; + temp *= pow0 - pow3040; + temp *= pow0 - pow3041; + temp *= pow0 - pow3042; + temp *= pow0 - pow3043; + temp *= pow0 - pow3044; + temp *= pow0 - pow3045; + temp *= pow0 - pow3046; + temp *= pow0 - pow3047; + temp *= pow0 - pow3048; + temp *= pow0 - pow3049; + temp *= pow0 - pow3050; + temp *= pow0 - pow3051; + temp *= pow0 - pow3052; + temp *= pow0 - pow3053; + temp *= pow0 - pow3054; + temp *= pow0 - pow3055; + temp *= pow0 - pow3056; + temp *= pow0 - pow3057; + temp *= pow0 - pow3058; + temp *= pow0 - pow3059; + temp *= pow0 - pow3060; + temp *= pow0 - pow3061; + temp *= pow0 - pow3062; + temp *= pow0 - pow3063; + temp *= pow0 - pow3064; + temp *= pow0 - pow3065; + temp *= pow0 - pow3066; + temp *= pow0 - pow3067; + temp *= pow0 - pow3070; + temp *= pow0 - pow3071; + temp *= pow0 - pow3072; + temp *= pow0 - pow3073; + temp *= pow0 - pow3074; + temp *= pow0 - pow3075; + temp *= pow0 - pow3076; + temp *= pow0 - pow3077; + temp *= pow0 - pow3078; + temp *= pow0 - pow3079; + temp *= pow0 - pow3080; + temp *= pow0 - pow3081; + temp *= pow0 - pow3082; + temp *= pow0 - pow3083; + temp *= pow0 - pow3084; + temp *= pow0 - pow3085; + temp *= pow0 - pow3086; + temp *= pow0 - pow3087; + temp *= pow0 - pow3088; + temp *= pow0 - pow3089; + temp *= pow0 - pow3090; + temp *= pow0 - pow3091; + temp *= pow0 - pow3092; + temp *= pow0 - pow3093; + temp *= pow0 - pow3094; + temp *= pow0 - pow3095; + temp *= pow0 - pow3096; + temp *= pow0 - pow3097; + temp *= pow0 - pow3100; + temp *= pow0 - pow3101; + temp *= pow0 - pow3102; + temp *= pow0 - pow3103; + temp *= pow0 - pow3104; + temp *= pow0 - pow3105; + temp *= pow0 - pow3106; + temp *= pow0 - pow3107; + temp *= pow0 - pow3108; + temp *= pow0 - pow3109; + temp *= pow0 - pow3110; + temp *= pow0 - pow3111; + temp *= pow0 - pow3112; + temp *= pow0 - pow3113; + temp *= pow0 - pow3114; + temp *= pow0 - pow3115; + temp *= pow0 - pow3116; + temp *= pow0 - pow3117; + temp *= pow0 - pow3118; + temp *= pow0 - pow3119; + temp *= pow0 - pow3120; + temp *= pow0 - pow3121; + temp *= pow0 - pow3122; + temp *= pow0 - pow3123; + temp *= pow0 - pow3124; + temp *= pow0 - pow3125; + temp *= pow0 - pow3126; + temp *= pow0 - pow3127; + temp *= pow0 - pow3130; + temp *= pow0 - pow3131; + temp *= pow0 - pow3132; + temp *= pow0 - pow3133; + temp *= pow0 - pow3134; + temp *= pow0 - pow3135; + temp *= pow0 - pow3136; + temp *= pow0 - pow3137; + temp *= pow0 - pow3138; + temp *= pow0 - pow3139; + temp *= pow0 - pow3140; + temp *= pow0 - pow3141; + temp *= pow0 - pow3142; + temp *= pow0 - pow3143; + temp *= pow0 - pow3144; + temp *= pow0 - pow3145; + temp *= pow0 - pow3146; + temp *= pow0 - pow3147; + temp *= pow0 - pow3148; + temp *= pow0 - pow3149; + temp *= pow0 - pow3150; + temp *= pow0 - pow3151; + temp *= pow0 - pow3152; + temp *= pow0 - pow3153; + temp *= pow0 - pow3154; + temp *= pow0 - pow3155; + temp *= pow0 - pow3156; + temp *= pow0 - pow3157; + temp *= pow0 - pow3160; + temp *= pow0 - pow3161; + temp *= pow0 - pow3162; + temp *= pow0 - pow3163; + temp *= pow0 - pow3164; + temp *= pow0 - pow3165; + temp *= pow0 - pow3166; + temp *= pow0 - pow3167; + temp *= pow0 - pow3168; + temp *= pow0 - pow3169; + temp *= pow0 - pow3170; + temp *= pow0 - pow3171; + temp *= pow0 - pow3172; + temp *= pow0 - pow3173; + temp *= pow0 - pow3174; + temp *= pow0 - pow3175; + temp *= pow0 - pow3176; + temp *= pow0 - pow3177; + temp *= pow0 - pow3178; + temp *= pow0 - pow3179; + temp *= pow0 - pow3180; + temp *= pow0 - pow3181; + temp *= pow0 - pow3182; + temp *= pow0 - pow3183; + temp *= pow0 - pow3184; + temp *= pow0 - pow3185; + temp *= pow0 - pow3186; + temp *= pow0 - pow3187; + temp *= pow0 - pow3190; + temp *= pow0 - pow3191; + temp *= pow0 - pow3192; + temp *= pow0 - pow3193; + temp *= pow0 - pow3194; + temp *= pow0 - pow3195; + temp *= pow0 - pow3196; + temp *= pow0 - pow3197; + temp *= pow0 - pow3198; + temp *= pow0 - pow3199; + temp *= pow0 - pow3200; + temp *= pow0 - pow3201; + temp *= pow0 - pow3202; + temp *= pow0 - pow3203; + temp *= pow0 - pow3204; + temp *= pow0 - pow3205; + temp *= pow0 - pow3206; + temp *= pow0 - pow3207; + temp *= pow0 - pow3208; + temp *= pow0 - pow3209; + temp *= pow0 - pow3210; + temp *= pow0 - pow3211; + temp *= pow0 - pow3212; + temp *= pow0 - pow3213; + temp *= pow0 - pow3214; + temp *= pow0 - pow3215; + temp *= pow0 - pow3216; + temp *= pow0 - pow3217; + temp *= pow0 - pow3220; + temp *= pow0 - pow3221; + temp *= pow0 - pow3222; + temp *= pow0 - pow3223; + temp *= pow0 - pow3224; + temp *= pow0 - pow3225; + temp *= pow0 - pow3226; + temp *= pow0 - pow3227; + temp *= pow0 - pow3228; + temp *= pow0 - pow3229; + temp *= pow0 - pow3230; + temp *= pow0 - pow3231; + temp *= pow0 - pow3232; + temp *= pow0 - pow3233; + temp *= pow0 - pow3234; + temp *= pow0 - pow3235; + temp *= pow0 - pow3236; + temp *= pow0 - pow3237; + temp *= pow0 - pow3238; + temp *= pow0 - pow3239; + temp *= pow0 - pow3240; + temp *= pow0 - pow3241; + temp *= pow0 - pow3242; + temp *= pow0 - pow3243; + temp *= pow0 - pow3244; + temp *= pow0 - pow3245; + temp *= pow0 - pow3246; + temp *= pow0 - pow3247; + temp *= pow0 - pow3250; + temp *= pow0 - pow3251; + temp *= pow0 - pow3252; + temp *= pow0 - pow3253; + temp *= pow0 - pow3254; + temp *= pow0 - pow3255; + temp *= pow0 - pow3256; + temp *= pow0 - pow3257; + temp *= pow0 - pow3258; + temp *= pow0 - pow3259; + temp *= pow0 - pow3260; + temp *= pow0 - pow3261; + temp *= pow0 - pow3262; + temp *= pow0 - pow3263; + temp *= pow0 - pow3264; + temp *= pow0 - pow3265; + temp *= pow0 - pow3266; + temp *= pow0 - pow3267; + temp *= pow0 - pow3268; + temp *= pow0 - pow3269; + temp *= pow0 - pow3270; + temp *= pow0 - pow3271; + temp *= pow0 - pow3272; + temp *= pow0 - pow3273; + temp *= pow0 - pow3274; + temp *= pow0 - pow3275; + temp *= pow0 - pow3276; + temp *= pow0 - pow3277; + temp *= pow0 - pow3280; + temp *= pow0 - pow3281; + temp *= pow0 - pow3282; + temp *= pow0 - pow3283; + temp *= pow0 - pow3284; + temp *= pow0 - pow3285; + temp *= pow0 - pow3286; + temp *= pow0 - pow3287; + temp *= pow0 - pow3288; + temp *= pow0 - pow3289; + temp *= pow0 - pow3290; + temp *= pow0 - pow3291; + temp *= pow0 - pow3292; + temp *= pow0 - pow3293; + temp *= pow0 - pow3294; + temp *= pow0 - pow3295; + temp *= pow0 - pow3296; + temp *= pow0 - pow3297; + temp *= pow0 - pow3298; + temp *= pow0 - pow3299; + temp *= pow0 - pow3300; + temp *= pow0 - pow3301; + temp *= pow0 - pow3302; + temp *= pow0 - pow3303; + temp *= pow0 - pow3304; + temp *= pow0 - pow3305; + temp *= pow0 - pow3306; + temp *= pow0 - pow3307; + temp *= pow0 - pow3310; + temp *= pow0 - pow3311; + temp *= pow0 - pow3312; + temp *= pow0 - pow3313; + temp *= pow0 - pow3314; + temp *= pow0 - pow3315; + temp *= pow0 - pow3316; + temp *= pow0 - pow3317; + temp *= pow0 - pow3318; + temp *= pow0 - pow3319; + temp *= pow0 - pow3320; + temp *= pow0 - pow3321; + temp *= pow0 - pow3322; + temp *= pow0 - pow3323; + temp *= pow0 - pow3324; + temp *= pow0 - pow3325; + temp *= pow0 - pow3326; + temp *= pow0 - pow3327; + temp *= pow0 - pow3328; + temp *= pow0 - pow3329; + temp *= pow0 - pow3330; + temp *= pow0 - pow3331; + temp *= pow0 - pow3332; + temp *= pow0 - pow3333; + temp *= pow0 - pow3334; + temp *= pow0 - pow3335; + temp *= pow0 - pow3336; + temp *= pow0 - pow3337; + temp *= pow0 - pow3340; + temp *= pow0 - pow3341; + temp *= pow0 - pow3342; + temp *= pow0 - pow3343; + temp *= pow0 - pow3344; + temp *= pow0 - pow3345; + temp *= pow0 - pow3346; + temp *= pow0 - pow3347; + temp *= pow0 - pow3348; + temp *= pow0 - pow3349; + temp *= pow0 - pow3350; + temp *= pow0 - pow3351; + temp *= pow0 - pow3352; + temp *= pow0 - pow3353; + temp *= pow0 - pow3354; + temp *= pow0 - pow3355; + temp *= pow0 - pow3356; + temp *= pow0 - pow3357; + temp *= pow0 - pow3358; + temp *= pow0 - pow3359; + temp *= pow0 - pow3360; + temp *= pow0 - pow3361; + temp *= pow0 - pow3362; + temp *= pow0 - pow3363; + temp *= pow0 - pow3364; + temp *= pow0 - pow3365; + temp *= pow0 - pow3366; + temp *= pow0 - pow3367; + temp *= domain49; + let domain52 = temp * (domain51); + temp = pow3 - pow2121; + let domain53 = temp * (domain47); + temp = domain46; + let domain54 = temp * (domain48); + temp = domain51; + let domain55 = temp * (domain54); + temp = pow0 - pow793; + temp *= pow0 - pow794; + temp *= pow0 - pow795; + temp *= pow0 - pow796; + temp *= pow0 - pow797; + temp *= pow0 - pow798; + temp *= pow0 - pow799; + let domain56 = temp * (pow0 - pow800); + temp = pow0 - pow801; + temp *= pow0 - pow802; + temp *= pow0 - pow803; + temp *= pow0 - pow804; + temp *= pow0 - pow805; + temp *= pow0 - pow806; + temp *= pow0 - pow807; + temp *= pow0 - pow808; + temp *= pow0 - pow809; + temp *= pow0 - pow810; + temp *= pow0 - pow811; + temp *= pow0 - pow812; + temp *= pow0 - pow813; + temp *= pow0 - pow814; + temp *= pow0 - pow815; + temp *= pow0 - pow816; + temp *= domain38; + let domain57 = temp * (domain56); + temp = pow0 - pow2549; + temp *= pow0 - pow2550; + temp *= pow0 - pow2551; + temp *= pow0 - pow2552; + temp *= pow0 - pow2553; + temp *= pow0 - pow2554; + temp *= pow0 - pow2555; + let domain58 = temp * (pow0 - pow2556); + temp = pow0 - pow2557; + temp *= pow0 - pow2558; + temp *= pow0 - pow2559; + temp *= pow0 - pow2560; + temp *= pow0 - pow2561; + temp *= pow0 - pow2562; + temp *= pow0 - pow2563; + temp *= pow0 - pow2564; + temp *= pow0 - pow2565; + temp *= pow0 - pow2566; + temp *= pow0 - pow2567; + temp *= pow0 - pow2568; + temp *= pow0 - pow2569; + temp *= pow0 - pow2570; + temp *= pow0 - pow2571; + temp *= pow0 - pow2572; + temp *= domain55; + let domain59 = temp * (domain58); + temp = pow0 - pow2512; + temp *= pow0 - pow2513; + temp *= pow0 - pow2514; + temp *= pow0 - pow2515; + temp *= pow0 - pow2516; + temp *= pow0 - pow2517; + temp *= pow0 - pow2518; + let domain60 = temp * (pow0 - pow2519); + temp = pow0 - pow2397; + temp *= pow0 - pow2398; + temp *= pow0 - pow2399; + temp *= pow0 - pow2400; + temp *= pow0 - pow2401; + temp *= pow0 - pow2402; + temp *= pow0 - pow2403; + temp *= pow0 - pow2404; + temp *= pow0 - pow2436; + temp *= pow0 - pow2437; + temp *= pow0 - pow2438; + temp *= pow0 - pow2439; + temp *= pow0 - pow2440; + temp *= pow0 - pow2441; + temp *= pow0 - pow2442; + temp *= pow0 - pow2443; + temp *= pow0 - pow2473; + temp *= pow0 - pow2474; + temp *= pow0 - pow2475; + temp *= pow0 - pow2476; + temp *= pow0 - pow2477; + temp *= pow0 - pow2478; + temp *= pow0 - pow2479; + temp *= pow0 - pow2480; + let domain61 = temp * (domain60); + temp = pow0 - pow2520; + temp *= pow0 - pow2521; + temp *= pow0 - pow2522; + temp *= pow0 - pow2523; + temp *= pow0 - pow2524; + temp *= pow0 - pow2525; + temp *= pow0 - pow2526; + temp *= pow0 - pow2527; + temp *= pow0 - pow2528; + temp *= pow0 - pow2529; + temp *= pow0 - pow2530; + temp *= pow0 - pow2531; + temp *= pow0 - pow2532; + temp *= pow0 - pow2533; + temp *= pow0 - pow2534; + temp *= pow0 - pow2535; + let domain62 = temp * (domain59); + temp = pow0 - pow2405; + temp *= pow0 - pow2406; + temp *= pow0 - pow2407; + temp *= pow0 - pow2408; + temp *= pow0 - pow2409; + temp *= pow0 - pow2410; + temp *= pow0 - pow2411; + temp *= pow0 - pow2412; + temp *= pow0 - pow2413; + temp *= pow0 - pow2414; + temp *= pow0 - pow2415; + temp *= pow0 - pow2416; + temp *= pow0 - pow2417; + temp *= pow0 - pow2418; + temp *= pow0 - pow2419; + temp *= pow0 - pow2420; + temp *= pow0 - pow2444; + temp *= pow0 - pow2445; + temp *= pow0 - pow2446; + temp *= pow0 - pow2447; + temp *= pow0 - pow2448; + temp *= pow0 - pow2449; + temp *= pow0 - pow2450; + temp *= pow0 - pow2451; + temp *= pow0 - pow2452; + temp *= pow0 - pow2453; + temp *= pow0 - pow2454; + temp *= pow0 - pow2455; + temp *= pow0 - pow2456; + temp *= pow0 - pow2457; + temp *= pow0 - pow2458; + temp *= pow0 - pow2459; + temp *= pow0 - pow2481; + temp *= pow0 - pow2482; + temp *= pow0 - pow2483; + temp *= pow0 - pow2484; + temp *= pow0 - pow2485; + temp *= pow0 - pow2486; + temp *= pow0 - pow2487; + temp *= pow0 - pow2488; + temp *= pow0 - pow2489; + temp *= pow0 - pow2490; + temp *= pow0 - pow2491; + temp *= pow0 - pow2492; + temp *= pow0 - pow2493; + temp *= pow0 - pow2494; + temp *= pow0 - pow2495; + temp *= pow0 - pow2496; + temp *= domain61; + let domain63 = temp * (domain62); + temp = pow0 - pow2321; + temp *= pow0 - pow2322; + temp *= pow0 - pow2323; + temp *= pow0 - pow2324; + temp *= pow0 - pow2325; + temp *= pow0 - pow2326; + temp *= pow0 - pow2327; + temp *= pow0 - pow2328; + temp *= pow0 - pow2360; + temp *= pow0 - pow2361; + temp *= pow0 - pow2362; + temp *= pow0 - pow2363; + temp *= pow0 - pow2364; + temp *= pow0 - pow2365; + temp *= pow0 - pow2366; + let domain64 = temp * (pow0 - pow2367); + temp = pow0 - pow2284; + temp *= pow0 - pow2285; + temp *= pow0 - pow2286; + temp *= pow0 - pow2287; + temp *= pow0 - pow2288; + temp *= pow0 - pow2289; + temp *= pow0 - pow2290; + temp *= pow0 - pow2291; + let domain65 = temp * (domain64); + temp = pow0 - pow2245; + temp *= pow0 - pow2246; + temp *= pow0 - pow2247; + temp *= pow0 - pow2248; + temp *= pow0 - pow2249; + temp *= pow0 - pow2250; + temp *= pow0 - pow2251; + temp *= pow0 - pow2252; + let domain66 = temp * (domain65); + temp = pow0 - pow2329; + temp *= pow0 - pow2330; + temp *= pow0 - pow2331; + temp *= pow0 - pow2332; + temp *= pow0 - pow2333; + temp *= pow0 - pow2334; + temp *= pow0 - pow2335; + temp *= pow0 - pow2336; + temp *= pow0 - pow2337; + temp *= pow0 - pow2338; + temp *= pow0 - pow2339; + temp *= pow0 - pow2340; + temp *= pow0 - pow2341; + temp *= pow0 - pow2342; + temp *= pow0 - pow2343; + temp *= pow0 - pow2344; + temp *= pow0 - pow2368; + temp *= pow0 - pow2369; + temp *= pow0 - pow2370; + temp *= pow0 - pow2371; + temp *= pow0 - pow2372; + temp *= pow0 - pow2373; + temp *= pow0 - pow2374; + temp *= pow0 - pow2375; + temp *= pow0 - pow2376; + temp *= pow0 - pow2377; + temp *= pow0 - pow2378; + temp *= pow0 - pow2379; + temp *= pow0 - pow2380; + temp *= pow0 - pow2381; + temp *= pow0 - pow2382; + temp *= pow0 - pow2383; + let domain67 = temp * (domain63); + temp = pow0 - pow2253; + temp *= pow0 - pow2254; + temp *= pow0 - pow2255; + temp *= pow0 - pow2256; + temp *= pow0 - pow2257; + temp *= pow0 - pow2258; + temp *= pow0 - pow2259; + temp *= pow0 - pow2260; + temp *= pow0 - pow2261; + temp *= pow0 - pow2262; + temp *= pow0 - pow2263; + temp *= pow0 - pow2264; + temp *= pow0 - pow2265; + temp *= pow0 - pow2266; + temp *= pow0 - pow2267; + temp *= pow0 - pow2268; + temp *= pow0 - pow2292; + temp *= pow0 - pow2293; + temp *= pow0 - pow2294; + temp *= pow0 - pow2295; + temp *= pow0 - pow2296; + temp *= pow0 - pow2297; + temp *= pow0 - pow2298; + temp *= pow0 - pow2299; + temp *= pow0 - pow2300; + temp *= pow0 - pow2301; + temp *= pow0 - pow2302; + temp *= pow0 - pow2303; + temp *= pow0 - pow2304; + temp *= pow0 - pow2305; + temp *= pow0 - pow2306; + temp *= pow0 - pow2307; + temp *= domain66; + let domain68 = temp * (domain67); + temp = pow0 - pow2121; + temp *= pow0 - pow2123; + temp *= pow0 - pow2125; + temp *= pow0 - pow2127; + temp *= pow0 - pow2129; + temp *= pow0 - pow2131; + temp *= pow0 - pow2133; + temp *= pow0 - pow2135; + temp *= pow0 - pow2122; + temp *= pow0 - pow2124; + temp *= pow0 - pow2126; + temp *= pow0 - pow2128; + temp *= pow0 - pow2130; + temp *= pow0 - pow2132; + temp *= pow0 - pow2134; + temp *= pow0 - pow2152; + temp *= pow0 - pow2169; + temp *= pow0 - pow2170; + temp *= pow0 - pow2171; + temp *= pow0 - pow2172; + temp *= pow0 - pow2173; + temp *= pow0 - pow2174; + temp *= pow0 - pow2175; + temp *= pow0 - pow2176; + temp *= pow0 - pow2208; + temp *= pow0 - pow2209; + temp *= pow0 - pow2210; + temp *= pow0 - pow2211; + temp *= pow0 - pow2212; + temp *= pow0 - pow2213; + temp *= pow0 - pow2214; + let domain69 = temp * (pow0 - pow2215); + temp = pow0 - pow2097; + temp *= pow0 - pow2098; + temp *= pow0 - pow2099; + temp *= pow0 - pow2100; + temp *= pow0 - pow2101; + temp *= pow0 - pow2102; + temp *= pow0 - pow2103; + temp *= pow0 - pow2104; + let domain70 = temp * (domain69); + temp = pow0 - pow2025; + temp *= pow0 - pow2027; + temp *= pow0 - pow2029; + temp *= pow0 - pow2031; + temp *= pow0 - pow2033; + temp *= pow0 - pow2035; + temp *= pow0 - pow2037; + temp *= pow0 - pow2039; + temp *= pow0 - pow2026; + temp *= pow0 - pow2028; + temp *= pow0 - pow2030; + temp *= pow0 - pow2032; + temp *= pow0 - pow2034; + temp *= pow0 - pow2036; + temp *= pow0 - pow2038; + temp *= pow0 - pow2056; + temp *= pow0 - pow2073; + temp *= pow0 - pow2074; + temp *= pow0 - pow2075; + temp *= pow0 - pow2076; + temp *= pow0 - pow2077; + temp *= pow0 - pow2078; + temp *= pow0 - pow2079; + temp *= pow0 - pow2080; + let domain71 = temp * (domain70); + temp = pow0 - pow1994; + temp *= pow0 - pow1995; + temp *= pow0 - pow1996; + temp *= pow0 - pow1997; + temp *= pow0 - pow1998; + temp *= pow0 - pow1999; + temp *= pow0 - pow2000; + temp *= pow0 - pow2001; + let domain72 = temp * (domain71); + temp = pow0 - pow1955; + temp *= pow0 - pow1956; + temp *= pow0 - pow1957; + temp *= pow0 - pow1958; + temp *= pow0 - pow1959; + temp *= pow0 - pow1960; + temp *= pow0 - pow1961; + temp *= pow0 - pow1962; + let domain73 = temp * (domain72); + temp = pow0 - pow2136; + temp *= pow0 - pow2137; + temp *= pow0 - pow2138; + temp *= pow0 - pow2139; + temp *= pow0 - pow2140; + temp *= pow0 - pow2141; + temp *= pow0 - pow2142; + temp *= pow0 - pow2143; + temp *= pow0 - pow2144; + temp *= pow0 - pow2145; + temp *= pow0 - pow2146; + temp *= pow0 - pow2147; + temp *= pow0 - pow2148; + temp *= pow0 - pow2149; + temp *= pow0 - pow2150; + temp *= pow0 - pow2151; + temp *= pow0 - pow2153; + temp *= pow0 - pow2154; + temp *= pow0 - pow2155; + temp *= pow0 - pow2156; + temp *= pow0 - pow2157; + temp *= pow0 - pow2158; + temp *= pow0 - pow2159; + temp *= pow0 - pow2160; + temp *= pow0 - pow2161; + temp *= pow0 - pow2162; + temp *= pow0 - pow2163; + temp *= pow0 - pow2164; + temp *= pow0 - pow2165; + temp *= pow0 - pow2166; + temp *= pow0 - pow2167; + temp *= pow0 - pow2168; + temp *= pow0 - pow2177; + temp *= pow0 - pow2178; + temp *= pow0 - pow2179; + temp *= pow0 - pow2180; + temp *= pow0 - pow2181; + temp *= pow0 - pow2182; + temp *= pow0 - pow2183; + temp *= pow0 - pow2184; + temp *= pow0 - pow2185; + temp *= pow0 - pow2186; + temp *= pow0 - pow2187; + temp *= pow0 - pow2188; + temp *= pow0 - pow2189; + temp *= pow0 - pow2190; + temp *= pow0 - pow2191; + temp *= pow0 - pow2192; + temp *= pow0 - pow2216; + temp *= pow0 - pow2217; + temp *= pow0 - pow2218; + temp *= pow0 - pow2219; + temp *= pow0 - pow2220; + temp *= pow0 - pow2221; + temp *= pow0 - pow2222; + temp *= pow0 - pow2223; + temp *= pow0 - pow2224; + temp *= pow0 - pow2225; + temp *= pow0 - pow2226; + temp *= pow0 - pow2227; + temp *= pow0 - pow2228; + temp *= pow0 - pow2229; + temp *= pow0 - pow2230; + temp *= pow0 - pow2231; + let domain74 = temp * (domain68); + temp = pow0 - pow2105; + temp *= pow0 - pow2106; + temp *= pow0 - pow2107; + temp *= pow0 - pow2108; + temp *= pow0 - pow2109; + temp *= pow0 - pow2110; + temp *= pow0 - pow2111; + temp *= pow0 - pow2112; + temp *= pow0 - pow2113; + temp *= pow0 - pow2114; + temp *= pow0 - pow2115; + temp *= pow0 - pow2116; + temp *= pow0 - pow2117; + temp *= pow0 - pow2118; + temp *= pow0 - pow2119; + temp *= pow0 - pow2120; + let domain75 = temp * (domain74); + temp = pow0 - pow2040; + temp *= pow0 - pow2041; + temp *= pow0 - pow2042; + temp *= pow0 - pow2043; + temp *= pow0 - pow2044; + temp *= pow0 - pow2045; + temp *= pow0 - pow2046; + temp *= pow0 - pow2047; + temp *= pow0 - pow2048; + temp *= pow0 - pow2049; + temp *= pow0 - pow2050; + temp *= pow0 - pow2051; + temp *= pow0 - pow2052; + temp *= pow0 - pow2053; + temp *= pow0 - pow2054; + temp *= pow0 - pow2055; + temp *= pow0 - pow2057; + temp *= pow0 - pow2058; + temp *= pow0 - pow2059; + temp *= pow0 - pow2060; + temp *= pow0 - pow2061; + temp *= pow0 - pow2062; + temp *= pow0 - pow2063; + temp *= pow0 - pow2064; + temp *= pow0 - pow2065; + temp *= pow0 - pow2066; + temp *= pow0 - pow2067; + temp *= pow0 - pow2068; + temp *= pow0 - pow2069; + temp *= pow0 - pow2070; + temp *= pow0 - pow2071; + temp *= pow0 - pow2072; + temp *= pow0 - pow2081; + temp *= pow0 - pow2082; + temp *= pow0 - pow2083; + temp *= pow0 - pow2084; + temp *= pow0 - pow2085; + temp *= pow0 - pow2086; + temp *= pow0 - pow2087; + temp *= pow0 - pow2088; + temp *= pow0 - pow2089; + temp *= pow0 - pow2090; + temp *= pow0 - pow2091; + temp *= pow0 - pow2092; + temp *= pow0 - pow2093; + temp *= pow0 - pow2094; + temp *= pow0 - pow2095; + temp *= pow0 - pow2096; + let domain76 = temp * (domain75); + temp = pow0 - pow2002; + temp *= pow0 - pow2003; + temp *= pow0 - pow2004; + temp *= pow0 - pow2005; + temp *= pow0 - pow2006; + temp *= pow0 - pow2007; + temp *= pow0 - pow2008; + temp *= pow0 - pow2009; + temp *= pow0 - pow2010; + temp *= pow0 - pow2011; + temp *= pow0 - pow2012; + temp *= pow0 - pow2013; + temp *= pow0 - pow2014; + temp *= pow0 - pow2015; + temp *= pow0 - pow2016; + temp *= pow0 - pow2017; + let domain77 = temp * (domain76); + temp = pow0 - pow1963; + temp *= pow0 - pow1964; + temp *= pow0 - pow1965; + temp *= pow0 - pow1966; + temp *= pow0 - pow1967; + temp *= pow0 - pow1968; + temp *= pow0 - pow1969; + temp *= pow0 - pow1970; + temp *= pow0 - pow1971; + temp *= pow0 - pow1972; + temp *= pow0 - pow1973; + temp *= pow0 - pow1974; + temp *= pow0 - pow1975; + temp *= pow0 - pow1976; + temp *= pow0 - pow1977; + temp *= pow0 - pow1978; + temp *= domain73; + let domain78 = temp * (domain77); + temp = pow0 - pow1924; + temp *= pow0 - pow1925; + temp *= pow0 - pow1926; + temp *= pow0 - pow1927; + temp *= pow0 - pow1928; + temp *= pow0 - pow1929; + temp *= pow0 - pow1930; + let domain79 = temp * (pow0 - pow1931); + temp = pow0 - pow1932; + temp *= pow0 - pow1933; + temp *= pow0 - pow1934; + temp *= pow0 - pow1935; + temp *= pow0 - pow1936; + temp *= pow0 - pow1937; + temp *= pow0 - pow1938; + temp *= pow0 - pow1939; + temp *= pow0 - pow1940; + temp *= pow0 - pow1941; + temp *= pow0 - pow1942; + temp *= pow0 - pow1943; + temp *= pow0 - pow1944; + temp *= pow0 - pow1945; + temp *= pow0 - pow1946; + temp *= pow0 - pow1947; + temp *= domain78; + let domain80 = temp * (domain79); + temp = pow0 - pow1854; + temp *= pow0 - pow1855; + temp *= pow0 - pow1856; + temp *= pow0 - pow1857; + temp *= pow0 - pow1858; + temp *= pow0 - pow1859; + temp *= pow0 - pow1860; + temp *= pow0 - pow1861; + temp *= pow0 - pow1885; + temp *= pow0 - pow1886; + temp *= pow0 - pow1887; + temp *= pow0 - pow1888; + temp *= pow0 - pow1889; + temp *= pow0 - pow1890; + temp *= pow0 - pow1891; + let domain81 = temp * (pow0 - pow1892); + temp = pow0 - pow1791; + temp *= pow0 - pow1792; + temp *= pow0 - pow1793; + temp *= pow0 - pow1794; + temp *= pow0 - pow1795; + temp *= pow0 - pow1796; + temp *= pow0 - pow1797; + temp *= pow0 - pow1798; + temp *= pow0 - pow1815; + temp *= pow0 - pow1816; + temp *= pow0 - pow1817; + temp *= pow0 - pow1818; + temp *= pow0 - pow1819; + temp *= pow0 - pow1820; + temp *= pow0 - pow1821; + temp *= pow0 - pow1822; + let domain82 = temp * (domain81); + temp = pow0 - pow1799; + temp *= pow0 - pow1800; + temp *= pow0 - pow1801; + temp *= pow0 - pow1802; + temp *= pow0 - pow1803; + temp *= pow0 - pow1804; + temp *= pow0 - pow1805; + temp *= pow0 - pow1806; + temp *= pow0 - pow1807; + temp *= pow0 - pow1808; + temp *= pow0 - pow1809; + temp *= pow0 - pow1810; + temp *= pow0 - pow1811; + temp *= pow0 - pow1812; + temp *= pow0 - pow1813; + temp *= pow0 - pow1814; + temp *= pow0 - pow1823; + temp *= pow0 - pow1824; + temp *= pow0 - pow1825; + temp *= pow0 - pow1826; + temp *= pow0 - pow1827; + temp *= pow0 - pow1828; + temp *= pow0 - pow1829; + temp *= pow0 - pow1830; + temp *= pow0 - pow1831; + temp *= pow0 - pow1832; + temp *= pow0 - pow1833; + temp *= pow0 - pow1834; + temp *= pow0 - pow1835; + temp *= pow0 - pow1836; + temp *= pow0 - pow1837; + temp *= pow0 - pow1838; + temp *= pow0 - pow1862; + temp *= pow0 - pow1863; + temp *= pow0 - pow1864; + temp *= pow0 - pow1865; + temp *= pow0 - pow1866; + temp *= pow0 - pow1867; + temp *= pow0 - pow1868; + temp *= pow0 - pow1869; + temp *= pow0 - pow1870; + temp *= pow0 - pow1871; + temp *= pow0 - pow1872; + temp *= pow0 - pow1873; + temp *= pow0 - pow1874; + temp *= pow0 - pow1875; + temp *= pow0 - pow1876; + temp *= pow0 - pow1877; + temp *= pow0 - pow1893; + temp *= pow0 - pow1894; + temp *= pow0 - pow1895; + temp *= pow0 - pow1896; + temp *= pow0 - pow1897; + temp *= pow0 - pow1898; + temp *= pow0 - pow1899; + temp *= pow0 - pow1900; + temp *= pow0 - pow1901; + temp *= pow0 - pow1902; + temp *= pow0 - pow1903; + temp *= pow0 - pow1904; + temp *= pow0 - pow1905; + temp *= pow0 - pow1906; + temp *= pow0 - pow1907; + temp *= pow0 - pow1908; + temp *= domain80; + let domain83 = temp * (domain82); + temp = pow0 - pow1743; + temp *= pow0 - pow1744; + temp *= pow0 - pow1745; + temp *= pow0 - pow1746; + temp *= pow0 - pow1747; + temp *= pow0 - pow1748; + temp *= pow0 - pow1749; + temp *= pow0 - pow1750; + temp *= pow0 - pow1751; + temp *= pow0 - pow1752; + temp *= pow0 - pow1753; + temp *= pow0 - pow1754; + temp *= pow0 - pow1755; + temp *= pow0 - pow1756; + temp *= pow0 - pow1757; + temp *= pow0 - pow1758; + temp *= pow0 - pow1759; + temp *= pow0 - pow1760; + temp *= pow0 - pow1761; + temp *= pow0 - pow1762; + temp *= pow0 - pow1763; + temp *= pow0 - pow1764; + temp *= pow0 - pow1765; + temp *= pow0 - pow1766; + temp *= pow0 - pow1767; + temp *= pow0 - pow1768; + temp *= pow0 - pow1769; + temp *= pow0 - pow1770; + temp *= pow0 - pow1771; + temp *= pow0 - pow1772; + temp *= pow0 - pow1773; + temp *= pow0 - pow1774; + temp *= pow0 - pow1775; + temp *= pow0 - pow1776; + temp *= pow0 - pow1777; + temp *= pow0 - pow1778; + temp *= pow0 - pow1779; + temp *= pow0 - pow1780; + temp *= pow0 - pow1781; + temp *= pow0 - pow1782; + temp *= pow0 - pow1783; + temp *= pow0 - pow1784; + temp *= pow0 - pow1785; + temp *= pow0 - pow1786; + temp *= pow0 - pow1787; + temp *= pow0 - pow1788; + temp *= pow0 - pow1789; + temp *= pow0 - pow1790; + let domain84 = temp * (domain83); + temp = pow0 - pow1719; + temp *= pow0 - pow1720; + temp *= pow0 - pow1721; + temp *= pow0 - pow1722; + temp *= pow0 - pow1723; + temp *= pow0 - pow1724; + temp *= pow0 - pow1725; + temp *= pow0 - pow1726; + temp *= pow0 - pow1727; + temp *= pow0 - pow1728; + temp *= pow0 - pow1729; + temp *= pow0 - pow1730; + temp *= pow0 - pow1731; + temp *= pow0 - pow1732; + temp *= pow0 - pow1733; + temp *= pow0 - pow1734; + temp *= pow0 - pow1735; + temp *= pow0 - pow1736; + temp *= pow0 - pow1737; + temp *= pow0 - pow1738; + temp *= pow0 - pow1739; + temp *= pow0 - pow1740; + temp *= pow0 - pow1741; + temp *= pow0 - pow1742; + let domain85 = temp * (domain84); + temp = pow0 - pow824; + temp *= pow0 - pow825; + temp *= pow0 - pow826; + temp *= pow0 - pow827; + temp *= pow0 - pow828; + temp *= pow0 - pow829; + temp *= pow0 - pow830; + let domain86 = temp * (pow0 - pow831); + temp = pow0 - pow863; + temp *= pow0 - pow864; + temp *= pow0 - pow865; + temp *= pow0 - pow866; + temp *= pow0 - pow867; + temp *= pow0 - pow868; + temp *= pow0 - pow869; + let domain87 = temp * (pow0 - pow870); + temp = pow0 - pow894; + temp *= pow0 - pow895; + temp *= pow0 - pow896; + temp *= pow0 - pow897; + temp *= pow0 - pow898; + temp *= pow0 - pow899; + temp *= pow0 - pow900; + temp *= pow0 - pow901; + temp *= pow0 - pow933; + temp *= pow0 - pow934; + temp *= pow0 - pow935; + temp *= pow0 - pow936; + temp *= pow0 - pow937; + temp *= pow0 - pow938; + temp *= pow0 - pow939; + temp *= pow0 - pow940; + temp *= domain86; + let domain88 = temp * (domain87); + temp = pow0 - pow832; + temp *= pow0 - pow833; + temp *= pow0 - pow834; + temp *= pow0 - pow835; + temp *= pow0 - pow836; + temp *= pow0 - pow837; + temp *= pow0 - pow838; + temp *= pow0 - pow839; + temp *= pow0 - pow840; + temp *= pow0 - pow841; + temp *= pow0 - pow842; + temp *= pow0 - pow843; + temp *= pow0 - pow844; + temp *= pow0 - pow845; + temp *= pow0 - pow846; + temp *= pow0 - pow847; + let domain89 = temp * (domain57); + temp = pow0 - pow871; + temp *= pow0 - pow872; + temp *= pow0 - pow873; + temp *= pow0 - pow874; + temp *= pow0 - pow875; + temp *= pow0 - pow876; + temp *= pow0 - pow877; + temp *= pow0 - pow878; + temp *= pow0 - pow879; + temp *= pow0 - pow880; + temp *= pow0 - pow881; + temp *= pow0 - pow882; + temp *= pow0 - pow883; + temp *= pow0 - pow884; + temp *= pow0 - pow885; + let domain90 = temp * (pow0 - pow886); + temp = pow0 - pow902; + temp *= pow0 - pow903; + temp *= pow0 - pow904; + temp *= pow0 - pow905; + temp *= pow0 - pow906; + temp *= pow0 - pow907; + temp *= pow0 - pow908; + temp *= pow0 - pow909; + temp *= pow0 - pow910; + temp *= pow0 - pow911; + temp *= pow0 - pow912; + temp *= pow0 - pow913; + temp *= pow0 - pow914; + temp *= pow0 - pow915; + temp *= pow0 - pow916; + temp *= pow0 - pow917; + temp *= pow0 - pow941; + temp *= pow0 - pow942; + temp *= pow0 - pow943; + temp *= pow0 - pow944; + temp *= pow0 - pow945; + temp *= pow0 - pow946; + temp *= pow0 - pow947; + temp *= pow0 - pow948; + temp *= pow0 - pow949; + temp *= pow0 - pow950; + temp *= pow0 - pow951; + temp *= pow0 - pow952; + temp *= pow0 - pow953; + temp *= pow0 - pow954; + temp *= pow0 - pow955; + temp *= pow0 - pow956; + temp *= domain88; + temp *= domain89; + let domain91 = temp * (domain90); + temp = pow0 - pow988; + temp *= pow0 - pow989; + temp *= pow0 - pow990; + temp *= pow0 - pow991; + temp *= pow0 - pow992; + temp *= pow0 - pow993; + temp *= pow0 - pow994; + let domain92 = temp * (pow0 - pow995); + temp = pow0 - pow964; + temp *= pow0 - pow965; + temp *= pow0 - pow966; + temp *= pow0 - pow967; + temp *= pow0 - pow968; + temp *= pow0 - pow969; + temp *= pow0 - pow970; + temp *= pow0 - pow971; + let domain93 = temp * (domain92); + temp = pow0 - pow1012; + temp *= pow0 - pow1013; + temp *= pow0 - pow1014; + temp *= pow0 - pow1015; + temp *= pow0 - pow1016; + temp *= pow0 - pow1017; + temp *= pow0 - pow1018; + temp *= pow0 - pow1019; + let domain94 = temp * (domain93); + temp = pow0 - pow1036; + temp *= pow0 - pow1037; + temp *= pow0 - pow1038; + temp *= pow0 - pow1039; + temp *= pow0 - pow1040; + temp *= pow0 - pow1041; + temp *= pow0 - pow1042; + temp *= pow0 - pow1043; + let domain95 = temp * (domain94); + temp = pow0 - pow996; + temp *= pow0 - pow997; + temp *= pow0 - pow998; + temp *= pow0 - pow999; + temp *= pow0 - pow1000; + temp *= pow0 - pow1001; + temp *= pow0 - pow1002; + temp *= pow0 - pow1003; + temp *= pow0 - pow1004; + temp *= pow0 - pow1005; + temp *= pow0 - pow1006; + temp *= pow0 - pow1007; + temp *= pow0 - pow1008; + temp *= pow0 - pow1009; + temp *= pow0 - pow1010; + let domain96 = temp * (pow0 - pow1011); + temp = pow0 - pow972; + temp *= pow0 - pow973; + temp *= pow0 - pow974; + temp *= pow0 - pow975; + temp *= pow0 - pow976; + temp *= pow0 - pow977; + temp *= pow0 - pow978; + temp *= pow0 - pow979; + temp *= pow0 - pow980; + temp *= pow0 - pow981; + temp *= pow0 - pow982; + temp *= pow0 - pow983; + temp *= pow0 - pow984; + temp *= pow0 - pow985; + temp *= pow0 - pow986; + temp *= pow0 - pow987; + temp *= domain91; + let domain97 = temp * (domain96); + temp = pow0 - pow1020; + temp *= pow0 - pow1021; + temp *= pow0 - pow1022; + temp *= pow0 - pow1023; + temp *= pow0 - pow1024; + temp *= pow0 - pow1025; + temp *= pow0 - pow1026; + temp *= pow0 - pow1027; + temp *= pow0 - pow1028; + temp *= pow0 - pow1029; + temp *= pow0 - pow1030; + temp *= pow0 - pow1031; + temp *= pow0 - pow1032; + temp *= pow0 - pow1033; + temp *= pow0 - pow1034; + temp *= pow0 - pow1035; + temp *= pow0 - pow1044; + temp *= pow0 - pow1045; + temp *= pow0 - pow1046; + temp *= pow0 - pow1047; + temp *= pow0 - pow1048; + temp *= pow0 - pow1049; + temp *= pow0 - pow1050; + temp *= pow0 - pow1051; + temp *= pow0 - pow1052; + temp *= pow0 - pow1053; + temp *= pow0 - pow1054; + temp *= pow0 - pow1055; + temp *= pow0 - pow1056; + temp *= pow0 - pow1057; + temp *= pow0 - pow1058; + temp *= pow0 - pow1059; + temp *= domain95; + let domain98 = temp * (domain97); + temp = pow0 - pow1060; + temp *= pow0 - pow1061; + temp *= pow0 - pow1062; + temp *= pow0 - pow1063; + temp *= pow0 - pow1064; + temp *= pow0 - pow1065; + temp *= pow0 - pow1066; + temp *= pow0 - pow1067; + temp *= pow0 - pow1099; + temp *= pow0 - pow1100; + temp *= pow0 - pow1101; + temp *= pow0 - pow1102; + temp *= pow0 - pow1103; + temp *= pow0 - pow1104; + temp *= pow0 - pow1105; + temp *= pow0 - pow1106; + temp *= pow0 - pow1130; + temp *= pow0 - pow1131; + temp *= pow0 - pow1132; + temp *= pow0 - pow1133; + temp *= pow0 - pow1134; + temp *= pow0 - pow1135; + temp *= pow0 - pow1136; + temp *= pow0 - pow1137; + temp *= pow0 - pow1169; + temp *= pow0 - pow1170; + temp *= pow0 - pow1171; + temp *= pow0 - pow1172; + temp *= pow0 - pow1173; + temp *= pow0 - pow1174; + temp *= pow0 - pow1175; + let domain99 = temp * (pow0 - pow1176); + temp = pow0 - pow1200; + temp *= pow0 - pow1201; + temp *= pow0 - pow1202; + temp *= pow0 - pow1203; + temp *= pow0 - pow1204; + temp *= pow0 - pow1205; + temp *= pow0 - pow1206; + temp *= pow0 - pow1207; + let domain100 = temp * (domain99); + temp = pow0 - pow1239; + temp *= pow0 - pow1240; + temp *= pow0 - pow1241; + temp *= pow0 - pow1242; + temp *= pow0 - pow1243; + temp *= pow0 - pow1244; + temp *= pow0 - pow1245; + let domain101 = temp * (pow0 - pow1246); + temp = pow0 - pow1270; + temp *= pow0 - pow1274; + temp *= pow0 - pow1278; + temp *= pow0 - pow1282; + temp *= pow0 - pow1286; + temp *= pow0 - pow1290; + temp *= pow0 - pow1294; + temp *= pow0 - pow1298; + temp *= pow0 - pow1271; + temp *= pow0 - pow1275; + temp *= pow0 - pow1279; + temp *= pow0 - pow1283; + temp *= pow0 - pow1287; + temp *= pow0 - pow1291; + temp *= pow0 - pow1295; + temp *= pow0 - pow1300; + temp *= domain100; + let domain102 = temp * (domain101); + temp = pow0 - pow1272; + temp *= pow0 - pow1276; + temp *= pow0 - pow1280; + temp *= pow0 - pow1284; + temp *= pow0 - pow1288; + temp *= pow0 - pow1292; + temp *= pow0 - pow1296; + temp *= pow0 - pow1302; + let domain103 = temp * (domain102); + temp = pow0 - pow1273; + temp *= pow0 - pow1277; + temp *= pow0 - pow1281; + temp *= pow0 - pow1285; + temp *= pow0 - pow1289; + temp *= pow0 - pow1293; + temp *= pow0 - pow1297; + temp *= pow0 - pow1304; + let domain104 = temp * (domain103); + temp = pow0 - pow1068; + temp *= pow0 - pow1069; + temp *= pow0 - pow1070; + temp *= pow0 - pow1071; + temp *= pow0 - pow1072; + temp *= pow0 - pow1073; + temp *= pow0 - pow1074; + temp *= pow0 - pow1075; + temp *= pow0 - pow1076; + temp *= pow0 - pow1077; + temp *= pow0 - pow1078; + temp *= pow0 - pow1079; + temp *= pow0 - pow1080; + temp *= pow0 - pow1081; + temp *= pow0 - pow1082; + temp *= pow0 - pow1083; + temp *= pow0 - pow1107; + temp *= pow0 - pow1108; + temp *= pow0 - pow1109; + temp *= pow0 - pow1110; + temp *= pow0 - pow1111; + temp *= pow0 - pow1112; + temp *= pow0 - pow1113; + temp *= pow0 - pow1114; + temp *= pow0 - pow1115; + temp *= pow0 - pow1116; + temp *= pow0 - pow1117; + temp *= pow0 - pow1118; + temp *= pow0 - pow1119; + temp *= pow0 - pow1120; + temp *= pow0 - pow1121; + temp *= pow0 - pow1122; + temp *= pow0 - pow1138; + temp *= pow0 - pow1139; + temp *= pow0 - pow1140; + temp *= pow0 - pow1141; + temp *= pow0 - pow1142; + temp *= pow0 - pow1143; + temp *= pow0 - pow1144; + temp *= pow0 - pow1145; + temp *= pow0 - pow1146; + temp *= pow0 - pow1147; + temp *= pow0 - pow1148; + temp *= pow0 - pow1149; + temp *= pow0 - pow1150; + temp *= pow0 - pow1151; + temp *= pow0 - pow1152; + temp *= pow0 - pow1153; + temp *= pow0 - pow1177; + temp *= pow0 - pow1178; + temp *= pow0 - pow1179; + temp *= pow0 - pow1180; + temp *= pow0 - pow1181; + temp *= pow0 - pow1182; + temp *= pow0 - pow1183; + temp *= pow0 - pow1184; + temp *= pow0 - pow1185; + temp *= pow0 - pow1186; + temp *= pow0 - pow1187; + temp *= pow0 - pow1188; + temp *= pow0 - pow1189; + temp *= pow0 - pow1190; + temp *= pow0 - pow1191; + temp *= pow0 - pow1192; + let domain105 = temp * (domain98); + temp = pow0 - pow1208; + temp *= pow0 - pow1209; + temp *= pow0 - pow1210; + temp *= pow0 - pow1211; + temp *= pow0 - pow1212; + temp *= pow0 - pow1213; + temp *= pow0 - pow1214; + temp *= pow0 - pow1215; + temp *= pow0 - pow1216; + temp *= pow0 - pow1217; + temp *= pow0 - pow1218; + temp *= pow0 - pow1219; + temp *= pow0 - pow1220; + temp *= pow0 - pow1221; + temp *= pow0 - pow1222; + temp *= pow0 - pow1223; + let domain106 = temp * (domain105); + temp = pow0 - pow1247; + temp *= pow0 - pow1248; + temp *= pow0 - pow1249; + temp *= pow0 - pow1250; + temp *= pow0 - pow1251; + temp *= pow0 - pow1252; + temp *= pow0 - pow1253; + temp *= pow0 - pow1254; + temp *= pow0 - pow1255; + temp *= pow0 - pow1256; + temp *= pow0 - pow1257; + temp *= pow0 - pow1258; + temp *= pow0 - pow1259; + temp *= pow0 - pow1260; + temp *= pow0 - pow1261; + let domain107 = temp * (pow0 - pow1262); + temp = pow0 - pow1299; + temp *= pow0 - pow1306; + temp *= pow0 - pow1310; + temp *= pow0 - pow1314; + temp *= pow0 - pow1318; + temp *= pow0 - pow1322; + temp *= pow0 - pow1326; + temp *= pow0 - pow1330; + temp *= pow0 - pow1334; + temp *= pow0 - pow1338; + temp *= pow0 - pow1342; + temp *= pow0 - pow1346; + temp *= pow0 - pow1350; + temp *= pow0 - pow1354; + temp *= pow0 - pow1358; + temp *= pow0 - pow1362; + temp *= pow0 - pow1301; + temp *= pow0 - pow1307; + temp *= pow0 - pow1311; + temp *= pow0 - pow1315; + temp *= pow0 - pow1319; + temp *= pow0 - pow1323; + temp *= pow0 - pow1327; + temp *= pow0 - pow1331; + temp *= pow0 - pow1335; + temp *= pow0 - pow1339; + temp *= pow0 - pow1343; + temp *= pow0 - pow1347; + temp *= pow0 - pow1351; + temp *= pow0 - pow1355; + temp *= pow0 - pow1359; + temp *= pow0 - pow1363; + temp *= domain106; + let domain108 = temp * (domain107); + temp = pow0 - pow1303; + temp *= pow0 - pow1308; + temp *= pow0 - pow1312; + temp *= pow0 - pow1316; + temp *= pow0 - pow1320; + temp *= pow0 - pow1324; + temp *= pow0 - pow1328; + temp *= pow0 - pow1332; + temp *= pow0 - pow1336; + temp *= pow0 - pow1340; + temp *= pow0 - pow1344; + temp *= pow0 - pow1348; + temp *= pow0 - pow1352; + temp *= pow0 - pow1356; + temp *= pow0 - pow1360; + temp *= pow0 - pow1364; + let domain109 = temp * (domain108); + temp = pow0 - pow1305; + temp *= pow0 - pow1309; + temp *= pow0 - pow1313; + temp *= pow0 - pow1317; + temp *= pow0 - pow1321; + temp *= pow0 - pow1325; + temp *= pow0 - pow1329; + temp *= pow0 - pow1333; + temp *= pow0 - pow1337; + temp *= pow0 - pow1341; + temp *= pow0 - pow1345; + temp *= pow0 - pow1349; + temp *= pow0 - pow1353; + temp *= pow0 - pow1357; + temp *= pow0 - pow1361; + temp *= pow0 - pow1365; + temp *= domain104; + let domain110 = temp * (domain109); + temp = pow0 - pow1366; + temp *= pow0 - pow1367; + temp *= pow0 - pow1368; + temp *= pow0 - pow1369; + temp *= pow0 - pow1370; + temp *= pow0 - pow1371; + temp *= pow0 - pow1372; + let domain111 = temp * (pow0 - pow1373); + temp = pow0 - pow1374; + temp *= pow0 - pow1375; + temp *= pow0 - pow1376; + temp *= pow0 - pow1377; + temp *= pow0 - pow1378; + temp *= pow0 - pow1379; + temp *= pow0 - pow1380; + temp *= pow0 - pow1381; + temp *= pow0 - pow1382; + temp *= pow0 - pow1383; + temp *= pow0 - pow1384; + temp *= pow0 - pow1385; + temp *= pow0 - pow1386; + temp *= pow0 - pow1387; + temp *= pow0 - pow1388; + temp *= pow0 - pow1389; + temp *= domain110; + let domain112 = temp * (domain111); + temp = pow0 - pow1405; + temp *= pow0 - pow1406; + temp *= pow0 - pow1407; + temp *= pow0 - pow1408; + temp *= pow0 - pow1409; + temp *= pow0 - pow1410; + temp *= pow0 - pow1411; + temp *= pow0 - pow1412; + temp *= pow0 - pow1436; + temp *= pow0 - pow1437; + temp *= pow0 - pow1438; + temp *= pow0 - pow1439; + temp *= pow0 - pow1440; + temp *= pow0 - pow1441; + temp *= pow0 - pow1442; + let domain113 = temp * (pow0 - pow1443); + temp = pow0 - pow1475; + temp *= pow0 - pow1476; + temp *= pow0 - pow1477; + temp *= pow0 - pow1478; + temp *= pow0 - pow1479; + temp *= pow0 - pow1480; + temp *= pow0 - pow1481; + temp *= pow0 - pow1482; + temp *= pow0 - pow1506; + temp *= pow0 - pow1507; + temp *= pow0 - pow1508; + temp *= pow0 - pow1509; + temp *= pow0 - pow1510; + temp *= pow0 - pow1511; + temp *= pow0 - pow1512; + temp *= pow0 - pow1513; + let domain114 = temp * (domain113); + temp = pow0 - pow1413; + temp *= pow0 - pow1414; + temp *= pow0 - pow1415; + temp *= pow0 - pow1416; + temp *= pow0 - pow1417; + temp *= pow0 - pow1418; + temp *= pow0 - pow1419; + temp *= pow0 - pow1420; + temp *= pow0 - pow1421; + temp *= pow0 - pow1422; + temp *= pow0 - pow1423; + temp *= pow0 - pow1424; + temp *= pow0 - pow1425; + temp *= pow0 - pow1426; + temp *= pow0 - pow1427; + temp *= pow0 - pow1428; + temp *= pow0 - pow1444; + temp *= pow0 - pow1445; + temp *= pow0 - pow1446; + temp *= pow0 - pow1447; + temp *= pow0 - pow1448; + temp *= pow0 - pow1449; + temp *= pow0 - pow1450; + temp *= pow0 - pow1451; + temp *= pow0 - pow1452; + temp *= pow0 - pow1453; + temp *= pow0 - pow1454; + temp *= pow0 - pow1455; + temp *= pow0 - pow1456; + temp *= pow0 - pow1457; + temp *= pow0 - pow1458; + temp *= pow0 - pow1459; + temp *= pow0 - pow1483; + temp *= pow0 - pow1484; + temp *= pow0 - pow1485; + temp *= pow0 - pow1486; + temp *= pow0 - pow1487; + temp *= pow0 - pow1488; + temp *= pow0 - pow1489; + temp *= pow0 - pow1490; + temp *= pow0 - pow1491; + temp *= pow0 - pow1492; + temp *= pow0 - pow1493; + temp *= pow0 - pow1494; + temp *= pow0 - pow1495; + temp *= pow0 - pow1496; + temp *= pow0 - pow1497; + temp *= pow0 - pow1498; + temp *= pow0 - pow1514; + temp *= pow0 - pow1515; + temp *= pow0 - pow1516; + temp *= pow0 - pow1517; + temp *= pow0 - pow1518; + temp *= pow0 - pow1519; + temp *= pow0 - pow1520; + temp *= pow0 - pow1521; + temp *= pow0 - pow1522; + temp *= pow0 - pow1523; + temp *= pow0 - pow1524; + temp *= pow0 - pow1525; + temp *= pow0 - pow1526; + temp *= pow0 - pow1527; + temp *= pow0 - pow1528; + temp *= pow0 - pow1529; + temp *= domain112; + let domain115 = temp * (domain114); + temp = pow0 - pow1545; + temp *= pow0 - pow1546; + temp *= pow0 - pow1547; + temp *= pow0 - pow1548; + temp *= pow0 - pow1549; + temp *= pow0 - pow1550; + temp *= pow0 - pow1551; + temp *= pow0 - pow1552; + temp *= pow0 - pow1553; + temp *= pow0 - pow1554; + temp *= pow0 - pow1555; + temp *= pow0 - pow1556; + temp *= pow0 - pow1557; + temp *= pow0 - pow1558; + temp *= pow0 - pow1559; + temp *= pow0 - pow1560; + temp *= pow0 - pow1561; + temp *= pow0 - pow1562; + temp *= pow0 - pow1563; + temp *= pow0 - pow1564; + temp *= pow0 - pow1565; + temp *= pow0 - pow1566; + temp *= pow0 - pow1567; + temp *= pow0 - pow1568; + temp *= pow0 - pow1576; + temp *= pow0 - pow1578; + temp *= pow0 - pow1580; + temp *= pow0 - pow1582; + temp *= pow0 - pow1584; + temp *= pow0 - pow1586; + temp *= pow0 - pow1588; + temp *= pow0 - pow1590; + temp *= pow0 - pow1592; + temp *= pow0 - pow1594; + temp *= pow0 - pow1596; + temp *= pow0 - pow1598; + temp *= pow0 - pow1600; + temp *= pow0 - pow1602; + temp *= pow0 - pow1604; + temp *= pow0 - pow1606; + temp *= pow0 - pow1607; + temp *= pow0 - pow1608; + temp *= pow0 - pow1609; + temp *= pow0 - pow1610; + temp *= pow0 - pow1611; + temp *= pow0 - pow1612; + temp *= pow0 - pow1613; + temp *= pow0 - pow1614; + let domain116 = temp * (domain115); + temp = pow0 - pow1577; + temp *= pow0 - pow1579; + temp *= pow0 - pow1581; + temp *= pow0 - pow1583; + temp *= pow0 - pow1585; + temp *= pow0 - pow1587; + temp *= pow0 - pow1589; + temp *= pow0 - pow1591; + temp *= pow0 - pow1593; + temp *= pow0 - pow1595; + temp *= pow0 - pow1597; + temp *= pow0 - pow1599; + temp *= pow0 - pow1601; + temp *= pow0 - pow1603; + temp *= pow0 - pow1605; + temp *= pow0 - pow1615; + temp *= pow0 - pow1616; + temp *= pow0 - pow1617; + temp *= pow0 - pow1618; + temp *= pow0 - pow1619; + temp *= pow0 - pow1620; + temp *= pow0 - pow1621; + temp *= pow0 - pow1622; + temp *= pow0 - pow1623; + let domain117 = temp * (domain116); + temp = domain37; + let domain118 = temp * (domain56); + temp = domain88; + let domain119 = temp * (domain118); + temp = domain94; + let domain120 = temp * (domain119); + temp = domain50; + temp *= domain54; + let domain121 = temp * (domain58); + temp = domain61; + let domain122 = temp * (domain121); + temp = domain65; + let domain123 = temp * (domain122); + temp = domain60; + let domain124 = temp * (domain62); + temp = domain86; + let domain125 = temp * (domain89); + temp = domain95; + temp *= domain104; + temp *= domain111; + let domain126 = temp * (domain119); + temp = domain114; + let domain127 = temp * (domain126); + temp = domain66; + temp *= domain73; + temp *= domain79; + let domain128 = temp * (domain122); + temp = domain82; + let domain129 = temp * (domain128); + temp = domain113; + let domain130 = temp * (domain126); + temp = domain81; + let domain131 = temp * (domain128); + temp = domain103; + let domain132 = temp * (domain109); + temp = domain72; + let domain133 = temp * (domain77); + temp = domain70; + let domain134 = temp * (domain75); + temp = domain100; + let domain135 = temp * (domain106); + temp = domain64; + let domain136 = temp * (domain67); + temp = domain93; + let domain137 = temp * (domain97); + temp = domain71; + let domain138 = temp * (domain76); + temp = domain102; + let domain139 = temp * (domain108); + temp = domain69; + let domain140 = temp * (domain74); + temp = domain99; + let domain141 = temp * (domain105); + temp = pow0 - pow1640; + temp *= pow0 - pow1641; + temp *= pow0 - pow1642; + temp *= pow0 - pow1643; + temp *= pow0 - pow1644; + temp *= pow0 - pow1645; + temp *= pow0 - pow1646; + temp *= pow0 - pow1647; + temp *= pow0 - pow1648; + temp *= pow0 - pow1649; + temp *= pow0 - pow1650; + temp *= pow0 - pow1651; + temp *= pow0 - pow1652; + temp *= pow0 - pow1653; + temp *= pow0 - pow1654; + temp *= pow0 - pow1655; + temp *= pow0 - pow1656; + temp *= pow0 - pow1657; + temp *= pow0 - pow1658; + temp *= pow0 - pow1659; + temp *= pow0 - pow1660; + temp *= pow0 - pow1661; + temp *= pow0 - pow1662; + temp *= pow0 - pow1663; + temp *= domain55; + temp *= domain57; + temp *= domain87; + temp *= domain90; + temp *= domain92; + temp *= domain96; + temp *= domain101; + let domain142 = temp * (domain107); + let domain143 = point - pow24; + let domain144 = point - 1; + let domain145 = point - pow23; + let domain146 = point - pow22; + let domain147 = point - pow21; + let domain148 = point - pow20; + let domain149 = point - pow19; + let domain150 = point - pow18; + let domain151 = point - pow17; + let domain152 = point - pow16; + let domain153 = point - pow15; + + // Fetch mask variables. + let column0_row0 = mask_values[0]; + let column0_row1 = mask_values[1]; + let column0_row2 = mask_values[2]; + let column0_row3 = mask_values[3]; + let column0_row4 = mask_values[4]; + let column0_row5 = mask_values[5]; + let column0_row6 = mask_values[6]; + let column0_row7 = mask_values[7]; + let column0_row8 = mask_values[8]; + let column0_row9 = mask_values[9]; + let column0_row10 = mask_values[10]; + let column0_row11 = mask_values[11]; + let column0_row12 = mask_values[12]; + let column0_row13 = mask_values[13]; + let column0_row14 = mask_values[14]; + let column0_row15 = mask_values[15]; + let column1_row0 = mask_values[16]; + let column1_row1 = mask_values[17]; + let column1_row2 = mask_values[18]; + let column1_row4 = mask_values[19]; + let column1_row6 = mask_values[20]; + let column1_row8 = mask_values[21]; + let column1_row12 = mask_values[22]; + let column1_row16 = mask_values[23]; + let column1_row32 = mask_values[24]; + let column1_row48 = mask_values[25]; + let column1_row64 = mask_values[26]; + let column1_row80 = mask_values[27]; + let column1_row96 = mask_values[28]; + let column1_row112 = mask_values[29]; + let column1_row128 = mask_values[30]; + let column1_row144 = mask_values[31]; + let column1_row160 = mask_values[32]; + let column1_row176 = mask_values[33]; + let column1_row192 = mask_values[34]; + let column1_row193 = mask_values[35]; + let column1_row196 = mask_values[36]; + let column1_row208 = mask_values[37]; + let column1_row224 = mask_values[38]; + let column1_row240 = mask_values[39]; + let column1_row256 = mask_values[40]; + let column1_row257 = mask_values[41]; + let column1_row260 = mask_values[42]; + let column1_row264 = mask_values[43]; + let column1_row449 = mask_values[44]; + let column1_row512 = mask_values[45]; + let column1_row513 = mask_values[46]; + let column1_row516 = mask_values[47]; + let column1_row520 = mask_values[48]; + let column1_row704 = mask_values[49]; + let column1_row705 = mask_values[50]; + let column1_row720 = mask_values[51]; + let column1_row736 = mask_values[52]; + let column1_row752 = mask_values[53]; + let column1_row768 = mask_values[54]; + let column1_row769 = mask_values[55]; + let column1_row770 = mask_values[56]; + let column1_row772 = mask_values[57]; + let column1_row774 = mask_values[58]; + let column1_row776 = mask_values[59]; + let column1_row780 = mask_values[60]; + let column1_row960 = mask_values[61]; + let column1_row961 = mask_values[62]; + let column1_row976 = mask_values[63]; + let column1_row992 = mask_values[64]; + let column1_row1008 = mask_values[65]; + let column1_row1025 = mask_values[66]; + let column1_row1026 = mask_values[67]; + let column1_row1028 = mask_values[68]; + let column1_row1030 = mask_values[69]; + let column1_row1036 = mask_values[70]; + let column1_row1217 = mask_values[71]; + let column1_row1281 = mask_values[72]; + let column1_row1284 = mask_values[73]; + let column1_row1473 = mask_values[74]; + let column1_row1537 = mask_values[75]; + let column1_row1540 = mask_values[76]; + let column1_row1729 = mask_values[77]; + let column1_row1793 = mask_values[78]; + let column1_row1796 = mask_values[79]; + let column1_row1985 = mask_values[80]; + let column1_row2049 = mask_values[81]; + let column1_row2052 = mask_values[82]; + let column1_row2116 = mask_values[83]; + let column1_row2180 = mask_values[84]; + let column1_row2241 = mask_values[85]; + let column1_row2305 = mask_values[86]; + let column1_row2308 = mask_values[87]; + let column1_row2497 = mask_values[88]; + let column1_row2561 = mask_values[89]; + let column1_row2564 = mask_values[90]; + let column1_row2753 = mask_values[91]; + let column1_row2817 = mask_values[92]; + let column1_row2820 = mask_values[93]; + let column1_row3009 = mask_values[94]; + let column1_row3073 = mask_values[95]; + let column1_row3076 = mask_values[96]; + let column1_row3329 = mask_values[97]; + let column1_row3332 = mask_values[98]; + let column1_row3585 = mask_values[99]; + let column1_row3588 = mask_values[100]; + let column1_row3652 = mask_values[101]; + let column1_row3716 = mask_values[102]; + let column1_row3841 = mask_values[103]; + let column1_row3844 = mask_values[104]; + let column1_row3908 = mask_values[105]; + let column1_row3972 = mask_values[106]; + let column1_row4097 = mask_values[107]; + let column1_row4100 = mask_values[108]; + let column1_row4353 = mask_values[109]; + let column1_row4356 = mask_values[110]; + let column1_row4609 = mask_values[111]; + let column1_row4612 = mask_values[112]; + let column1_row4865 = mask_values[113]; + let column1_row4868 = mask_values[114]; + let column1_row5121 = mask_values[115]; + let column1_row5124 = mask_values[116]; + let column1_row5377 = mask_values[117]; + let column1_row5380 = mask_values[118]; + let column1_row5441 = mask_values[119]; + let column1_row5444 = mask_values[120]; + let column1_row5505 = mask_values[121]; + let column1_row5508 = mask_values[122]; + let column1_row5633 = mask_values[123]; + let column1_row5636 = mask_values[124]; + let column1_row5697 = mask_values[125]; + let column1_row5761 = mask_values[126]; + let column1_row5889 = mask_values[127]; + let column1_row5892 = mask_values[128]; + let column1_row5953 = mask_values[129]; + let column1_row6017 = mask_values[130]; + let column1_row6145 = mask_values[131]; + let column1_row6148 = mask_values[132]; + let column1_row6209 = mask_values[133]; + let column1_row6273 = mask_values[134]; + let column1_row6401 = mask_values[135]; + let column1_row6402 = mask_values[136]; + let column1_row6404 = mask_values[137]; + let column1_row6406 = mask_values[138]; + let column1_row6468 = mask_values[139]; + let column1_row6470 = mask_values[140]; + let column1_row6532 = mask_values[141]; + let column1_row6534 = mask_values[142]; + let column1_row6593 = mask_values[143]; + let column1_row6594 = mask_values[144]; + let column1_row6596 = mask_values[145]; + let column1_row6598 = mask_values[146]; + let column1_row6658 = mask_values[147]; + let column1_row6660 = mask_values[148]; + let column1_row6722 = mask_values[149]; + let column1_row6724 = mask_values[150]; + let column1_row6785 = mask_values[151]; + let column1_row6786 = mask_values[152]; + let column1_row6788 = mask_values[153]; + let column1_row6790 = mask_values[154]; + let column1_row6977 = mask_values[155]; + let column1_row6978 = mask_values[156]; + let column1_row6980 = mask_values[157]; + let column1_row6982 = mask_values[158]; + let column1_row7169 = mask_values[159]; + let column1_row7170 = mask_values[160]; + let column1_row7172 = mask_values[161]; + let column1_row7174 = mask_values[162]; + let column1_row7361 = mask_values[163]; + let column1_row7362 = mask_values[164]; + let column1_row7364 = mask_values[165]; + let column1_row7366 = mask_values[166]; + let column1_row7553 = mask_values[167]; + let column1_row7554 = mask_values[168]; + let column1_row7556 = mask_values[169]; + let column1_row7558 = mask_values[170]; + let column1_row7745 = mask_values[171]; + let column1_row7746 = mask_values[172]; + let column1_row7748 = mask_values[173]; + let column1_row7750 = mask_values[174]; + let column1_row7937 = mask_values[175]; + let column1_row7938 = mask_values[176]; + let column1_row7940 = mask_values[177]; + let column1_row7942 = mask_values[178]; + let column1_row8193 = mask_values[179]; + let column1_row8194 = mask_values[180]; + let column1_row8198 = mask_values[181]; + let column1_row8204 = mask_values[182]; + let column1_row8449 = mask_values[183]; + let column1_row8705 = mask_values[184]; + let column1_row10753 = mask_values[185]; + let column1_row15942 = mask_values[186]; + let column1_row16900 = mask_values[187]; + let column1_row18881 = mask_values[188]; + let column1_row19137 = mask_values[189]; + let column1_row19393 = mask_values[190]; + let column1_row22529 = mask_values[191]; + let column1_row22593 = mask_values[192]; + let column1_row22657 = mask_values[193]; + let column1_row22786 = mask_values[194]; + let column1_row24577 = mask_values[195]; + let column1_row24578 = mask_values[196]; + let column1_row24582 = mask_values[197]; + let column1_row24588 = mask_values[198]; + let column1_row24833 = mask_values[199]; + let column1_row25089 = mask_values[200]; + let column1_row26369 = mask_values[201]; + let column1_row30212 = mask_values[202]; + let column1_row30978 = mask_values[203]; + let column1_row31169 = mask_values[204]; + let column1_row51969 = mask_values[205]; + let column1_row55937 = mask_values[206]; + let column1_row57345 = mask_values[207]; + let column1_row57346 = mask_values[208]; + let column1_row57350 = mask_values[209]; + let column1_row57356 = mask_values[210]; + let column1_row57601 = mask_values[211]; + let column1_row57857 = mask_values[212]; + let column1_row68865 = mask_values[213]; + let column1_row71428 = mask_values[214]; + let column1_row71942 = mask_values[215]; + let column1_row73474 = mask_values[216]; + let column1_row75780 = mask_values[217]; + let column1_row75844 = mask_values[218]; + let column1_row75908 = mask_values[219]; + let column1_row80134 = mask_values[220]; + let column1_row80198 = mask_values[221]; + let column1_row80262 = mask_values[222]; + let column1_row86273 = mask_values[223]; + let column1_row89281 = mask_values[224]; + let column1_row115713 = mask_values[225]; + let column1_row122244 = mask_values[226]; + let column1_row122881 = mask_values[227]; + let column1_row122882 = mask_values[228]; + let column1_row122886 = mask_values[229]; + let column1_row122892 = mask_values[230]; + let column1_row123137 = mask_values[231]; + let column1_row123393 = mask_values[232]; + let column1_row127489 = mask_values[233]; + let column1_row130433 = mask_values[234]; + let column1_row151041 = mask_values[235]; + let column1_row155398 = mask_values[236]; + let column1_row159748 = mask_values[237]; + let column1_row162052 = mask_values[238]; + let column1_row165377 = mask_values[239]; + let column1_row165380 = mask_values[240]; + let column1_row170244 = mask_values[241]; + let column1_row171398 = mask_values[242]; + let column1_row172801 = mask_values[243]; + let column1_row175108 = mask_values[244]; + let column1_row178433 = mask_values[245]; + let column1_row178434 = mask_values[246]; + let column1_row192260 = mask_values[247]; + let column1_row192324 = mask_values[248]; + let column1_row192388 = mask_values[249]; + let column1_row195010 = mask_values[250]; + let column1_row195074 = mask_values[251]; + let column1_row195138 = mask_values[252]; + let column1_row207873 = mask_values[253]; + let column1_row208388 = mask_values[254]; + let column1_row208452 = mask_values[255]; + let column1_row208516 = mask_values[256]; + let column1_row211396 = mask_values[257]; + let column1_row211460 = mask_values[258]; + let column1_row211524 = mask_values[259]; + let column1_row212740 = mask_values[260]; + let column1_row225025 = mask_values[261]; + let column1_row228161 = mask_values[262]; + let column1_row230657 = mask_values[263]; + let column1_row230660 = mask_values[264]; + let column1_row235970 = mask_values[265]; + let column1_row236930 = mask_values[266]; + let column1_row253953 = mask_values[267]; + let column1_row253954 = mask_values[268]; + let column1_row253958 = mask_values[269]; + let column1_row253964 = mask_values[270]; + let column1_row254209 = mask_values[271]; + let column1_row254465 = mask_values[272]; + let column1_row295684 = mask_values[273]; + let column1_row299009 = mask_values[274]; + let column1_row301318 = mask_values[275]; + let column1_row302081 = mask_values[276]; + let column1_row304132 = mask_values[277]; + let column1_row309700 = mask_values[278]; + let column1_row320449 = mask_values[279]; + let column1_row320705 = mask_values[280]; + let column1_row320961 = mask_values[281]; + let column1_row322820 = mask_values[282]; + let column1_row325121 = mask_values[283]; + let column1_row325185 = mask_values[284]; + let column1_row325249 = mask_values[285]; + let column1_row325894 = mask_values[286]; + let column1_row337601 = mask_values[287]; + let column1_row337857 = mask_values[288]; + let column1_row338113 = mask_values[289]; + let column1_row341761 = mask_values[290]; + let column1_row341825 = mask_values[291]; + let column1_row341889 = mask_values[292]; + let column1_row352769 = mask_values[293]; + let column1_row356868 = mask_values[294]; + let column1_row358662 = mask_values[295]; + let column1_row359622 = mask_values[296]; + let column1_row360705 = mask_values[297]; + let column1_row362756 = mask_values[298]; + let column1_row367044 = mask_values[299]; + let column1_row367810 = mask_values[300]; + let column1_row370689 = mask_values[301]; + let column1_row376388 = mask_values[302]; + let column1_row381956 = mask_values[303]; + let column1_row383426 = mask_values[304]; + let column1_row405764 = mask_values[305]; + let column1_row407810 = mask_values[306]; + let column1_row415748 = mask_values[307]; + let column1_row416196 = mask_values[308]; + let column1_row445188 = mask_values[309]; + let column1_row448772 = mask_values[310]; + let column1_row450753 = mask_values[311]; + let column1_row451009 = mask_values[312]; + let column1_row451265 = mask_values[313]; + let column1_row455937 = mask_values[314]; + let column1_row456001 = mask_values[315]; + let column1_row456065 = mask_values[316]; + let column1_row463617 = mask_values[317]; + let column1_row463620 = mask_values[318]; + let column1_row465348 = mask_values[319]; + let column1_row466497 = mask_values[320]; + let column1_row476932 = mask_values[321]; + let column1_row481538 = mask_values[322]; + let column1_row502017 = mask_values[323]; + let column1_row502276 = mask_values[324]; + let column1_row506306 = mask_values[325]; + let column1_row507458 = mask_values[326]; + let column1_row513025 = mask_values[327]; + let column1_row513284 = mask_values[328]; + let column1_row513348 = mask_values[329]; + let column1_row513412 = mask_values[330]; + let column1_row514308 = mask_values[331]; + let column1_row514372 = mask_values[332]; + let column1_row514436 = mask_values[333]; + let column1_row515841 = mask_values[334]; + let column1_row516097 = mask_values[335]; + let column1_row516098 = mask_values[336]; + let column1_row516100 = mask_values[337]; + let column1_row516102 = mask_values[338]; + let column1_row516108 = mask_values[339]; + let column1_row516292 = mask_values[340]; + let column1_row516353 = mask_values[341]; + let column1_row516356 = mask_values[342]; + let column1_row516609 = mask_values[343]; + let column1_row522498 = mask_values[344]; + let column1_row522500 = mask_values[345]; + let column1_row522502 = mask_values[346]; + let column1_row522690 = mask_values[347]; + let column1_row522692 = mask_values[348]; + let column2_row0 = mask_values[349]; + let column2_row1 = mask_values[350]; + let column3_row0 = mask_values[351]; + let column3_row1 = mask_values[352]; + let column3_row255 = mask_values[353]; + let column3_row256 = mask_values[354]; + let column3_row511 = mask_values[355]; + let column4_row0 = mask_values[356]; + let column4_row1 = mask_values[357]; + let column4_row255 = mask_values[358]; + let column4_row256 = mask_values[359]; + let column5_row0 = mask_values[360]; + let column5_row1 = mask_values[361]; + let column5_row192 = mask_values[362]; + let column5_row193 = mask_values[363]; + let column5_row196 = mask_values[364]; + let column5_row197 = mask_values[365]; + let column5_row251 = mask_values[366]; + let column5_row252 = mask_values[367]; + let column5_row256 = mask_values[368]; + let column6_row0 = mask_values[369]; + let column6_row255 = mask_values[370]; + let column7_row0 = mask_values[371]; + let column7_row1 = mask_values[372]; + let column7_row2 = mask_values[373]; + let column7_row3 = mask_values[374]; + let column7_row4 = mask_values[375]; + let column7_row5 = mask_values[376]; + let column7_row6 = mask_values[377]; + let column7_row7 = mask_values[378]; + let column7_row8 = mask_values[379]; + let column7_row9 = mask_values[380]; + let column7_row10 = mask_values[381]; + let column7_row11 = mask_values[382]; + let column7_row12 = mask_values[383]; + let column7_row13 = mask_values[384]; + let column7_row14 = mask_values[385]; + let column7_row15 = mask_values[386]; + let column7_row16144 = mask_values[387]; + let column7_row16145 = mask_values[388]; + let column7_row16146 = mask_values[389]; + let column7_row16147 = mask_values[390]; + let column7_row16148 = mask_values[391]; + let column7_row16149 = mask_values[392]; + let column7_row16150 = mask_values[393]; + let column7_row16151 = mask_values[394]; + let column7_row16160 = mask_values[395]; + let column7_row16161 = mask_values[396]; + let column7_row16162 = mask_values[397]; + let column7_row16163 = mask_values[398]; + let column7_row16164 = mask_values[399]; + let column7_row16165 = mask_values[400]; + let column7_row16166 = mask_values[401]; + let column7_row16167 = mask_values[402]; + let column7_row16176 = mask_values[403]; + let column7_row16192 = mask_values[404]; + let column7_row16208 = mask_values[405]; + let column7_row16224 = mask_values[406]; + let column7_row16240 = mask_values[407]; + let column7_row16256 = mask_values[408]; + let column7_row16272 = mask_values[409]; + let column7_row16288 = mask_values[410]; + let column7_row16304 = mask_values[411]; + let column7_row16320 = mask_values[412]; + let column7_row16336 = mask_values[413]; + let column7_row16352 = mask_values[414]; + let column7_row16368 = mask_values[415]; + let column7_row16384 = mask_values[416]; + let column7_row32768 = mask_values[417]; + let column7_row65536 = mask_values[418]; + let column7_row98304 = mask_values[419]; + let column7_row131072 = mask_values[420]; + let column7_row163840 = mask_values[421]; + let column7_row196608 = mask_values[422]; + let column7_row229376 = mask_values[423]; + let column7_row262144 = mask_values[424]; + let column7_row294912 = mask_values[425]; + let column7_row327680 = mask_values[426]; + let column7_row360448 = mask_values[427]; + let column7_row393216 = mask_values[428]; + let column7_row425984 = mask_values[429]; + let column7_row458752 = mask_values[430]; + let column7_row491520 = mask_values[431]; + let column8_row0 = mask_values[432]; + let column8_row1 = mask_values[433]; + let column8_row2 = mask_values[434]; + let column8_row3 = mask_values[435]; + let column8_row4 = mask_values[436]; + let column8_row5 = mask_values[437]; + let column8_row6 = mask_values[438]; + let column8_row7 = mask_values[439]; + let column8_row8 = mask_values[440]; + let column8_row9 = mask_values[441]; + let column8_row12 = mask_values[442]; + let column8_row13 = mask_values[443]; + let column8_row16 = mask_values[444]; + let column8_row38 = mask_values[445]; + let column8_row39 = mask_values[446]; + let column8_row70 = mask_values[447]; + let column8_row71 = mask_values[448]; + let column8_row102 = mask_values[449]; + let column8_row103 = mask_values[450]; + let column8_row134 = mask_values[451]; + let column8_row135 = mask_values[452]; + let column8_row166 = mask_values[453]; + let column8_row167 = mask_values[454]; + let column8_row198 = mask_values[455]; + let column8_row199 = mask_values[456]; + let column8_row262 = mask_values[457]; + let column8_row263 = mask_values[458]; + let column8_row294 = mask_values[459]; + let column8_row295 = mask_values[460]; + let column8_row326 = mask_values[461]; + let column8_row358 = mask_values[462]; + let column8_row359 = mask_values[463]; + let column8_row390 = mask_values[464]; + let column8_row391 = mask_values[465]; + let column8_row422 = mask_values[466]; + let column8_row423 = mask_values[467]; + let column8_row454 = mask_values[468]; + let column8_row518 = mask_values[469]; + let column8_row711 = mask_values[470]; + let column8_row902 = mask_values[471]; + let column8_row903 = mask_values[472]; + let column8_row966 = mask_values[473]; + let column8_row967 = mask_values[474]; + let column8_row1222 = mask_values[475]; + let column8_row1414 = mask_values[476]; + let column8_row1415 = mask_values[477]; + let column8_row2438 = mask_values[478]; + let column8_row2439 = mask_values[479]; + let column8_row3462 = mask_values[480]; + let column8_row3463 = mask_values[481]; + let column8_row4486 = mask_values[482]; + let column8_row4487 = mask_values[483]; + let column8_row5511 = mask_values[484]; + let column8_row6534 = mask_values[485]; + let column8_row6535 = mask_values[486]; + let column8_row7559 = mask_values[487]; + let column8_row8582 = mask_values[488]; + let column8_row8583 = mask_values[489]; + let column8_row9607 = mask_values[490]; + let column8_row10630 = mask_values[491]; + let column8_row10631 = mask_values[492]; + let column8_row11655 = mask_values[493]; + let column8_row12678 = mask_values[494]; + let column8_row12679 = mask_values[495]; + let column8_row13703 = mask_values[496]; + let column8_row14726 = mask_values[497]; + let column8_row14727 = mask_values[498]; + let column8_row15751 = mask_values[499]; + let column8_row16774 = mask_values[500]; + let column8_row16775 = mask_values[501]; + let column8_row17799 = mask_values[502]; + let column8_row19847 = mask_values[503]; + let column8_row21895 = mask_values[504]; + let column8_row23943 = mask_values[505]; + let column8_row24966 = mask_values[506]; + let column8_row25991 = mask_values[507]; + let column8_row28039 = mask_values[508]; + let column8_row30087 = mask_values[509]; + let column8_row32135 = mask_values[510]; + let column8_row33158 = mask_values[511]; + let column9_row0 = mask_values[512]; + let column9_row1 = mask_values[513]; + let column9_row2 = mask_values[514]; + let column9_row3 = mask_values[515]; + let column10_row0 = mask_values[516]; + let column10_row1 = mask_values[517]; + let column10_row2 = mask_values[518]; + let column10_row3 = mask_values[519]; + let column10_row4 = mask_values[520]; + let column10_row5 = mask_values[521]; + let column10_row6 = mask_values[522]; + let column10_row7 = mask_values[523]; + let column10_row8 = mask_values[524]; + let column10_row9 = mask_values[525]; + let column10_row12 = mask_values[526]; + let column10_row13 = mask_values[527]; + let column10_row17 = mask_values[528]; + let column10_row19 = mask_values[529]; + let column10_row21 = mask_values[530]; + let column10_row25 = mask_values[531]; + let column10_row44 = mask_values[532]; + let column10_row71 = mask_values[533]; + let column10_row76 = mask_values[534]; + let column10_row108 = mask_values[535]; + let column10_row135 = mask_values[536]; + let column10_row140 = mask_values[537]; + let column10_row172 = mask_values[538]; + let column10_row204 = mask_values[539]; + let column10_row236 = mask_values[540]; + let column10_row243 = mask_values[541]; + let column10_row251 = mask_values[542]; + let column10_row259 = mask_values[543]; + let column10_row275 = mask_values[544]; + let column10_row489 = mask_values[545]; + let column10_row497 = mask_values[546]; + let column10_row499 = mask_values[547]; + let column10_row505 = mask_values[548]; + let column10_row507 = mask_values[549]; + let column10_row2055 = mask_values[550]; + let column10_row2119 = mask_values[551]; + let column10_row2183 = mask_values[552]; + let column10_row4103 = mask_values[553]; + let column10_row4167 = mask_values[554]; + let column10_row4231 = mask_values[555]; + let column10_row6403 = mask_values[556]; + let column10_row6419 = mask_values[557]; + let column10_row7811 = mask_values[558]; + let column10_row8003 = mask_values[559]; + let column10_row8067 = mask_values[560]; + let column10_row8131 = mask_values[561]; + let column10_row8195 = mask_values[562]; + let column10_row8199 = mask_values[563]; + let column10_row8211 = mask_values[564]; + let column10_row8435 = mask_values[565]; + let column10_row8443 = mask_values[566]; + let column10_row10247 = mask_values[567]; + let column10_row12295 = mask_values[568]; + let column10_row16003 = mask_values[569]; + let column10_row16195 = mask_values[570]; + let column10_row24195 = mask_values[571]; + let column10_row32387 = mask_values[572]; + let column10_row66307 = mask_values[573]; + let column10_row66323 = mask_values[574]; + let column10_row67591 = mask_values[575]; + let column10_row75783 = mask_values[576]; + let column10_row75847 = mask_values[577]; + let column10_row75911 = mask_values[578]; + let column10_row132611 = mask_values[579]; + let column10_row132627 = mask_values[580]; + let column10_row159751 = mask_values[581]; + let column10_row167943 = mask_values[582]; + let column10_row179843 = mask_values[583]; + let column10_row196419 = mask_values[584]; + let column10_row196483 = mask_values[585]; + let column10_row196547 = mask_values[586]; + let column10_row198915 = mask_values[587]; + let column10_row198931 = mask_values[588]; + let column10_row204807 = mask_values[589]; + let column10_row204871 = mask_values[590]; + let column10_row204935 = mask_values[591]; + let column10_row237379 = mask_values[592]; + let column10_row265219 = mask_values[593]; + let column10_row265235 = mask_values[594]; + let column10_row296967 = mask_values[595]; + let column10_row303111 = mask_values[596]; + let column10_row321543 = mask_values[597]; + let column10_row331523 = mask_values[598]; + let column10_row331539 = mask_values[599]; + let column10_row354311 = mask_values[600]; + let column10_row360455 = mask_values[601]; + let column10_row384835 = mask_values[602]; + let column10_row397827 = mask_values[603]; + let column10_row397843 = mask_values[604]; + let column10_row409219 = mask_values[605]; + let column10_row409607 = mask_values[606]; + let column10_row446471 = mask_values[607]; + let column10_row458759 = mask_values[608]; + let column10_row464131 = mask_values[609]; + let column10_row464147 = mask_values[610]; + let column10_row482947 = mask_values[611]; + let column10_row507715 = mask_values[612]; + let column10_row512007 = mask_values[613]; + let column10_row512071 = mask_values[614]; + let column10_row512135 = mask_values[615]; + let column10_row516099 = mask_values[616]; + let column10_row516115 = mask_values[617]; + let column10_row516339 = mask_values[618]; + let column10_row516347 = mask_values[619]; + let column10_row520199 = mask_values[620]; + let column11_row0 = mask_values[621]; + let column11_row1 = mask_values[622]; + let column11_row2 = mask_values[623]; + let column11_row3 = mask_values[624]; + let column11_row4 = mask_values[625]; + let column11_row5 = mask_values[626]; + let column11_row6 = mask_values[627]; + let column11_row7 = mask_values[628]; + let column11_row8 = mask_values[629]; + let column11_row9 = mask_values[630]; + let column11_row10 = mask_values[631]; + let column11_row11 = mask_values[632]; + let column11_row12 = mask_values[633]; + let column11_row13 = mask_values[634]; + let column11_row14 = mask_values[635]; + let column11_row16 = mask_values[636]; + let column11_row17 = mask_values[637]; + let column11_row19 = mask_values[638]; + let column11_row21 = mask_values[639]; + let column11_row22 = mask_values[640]; + let column11_row24 = mask_values[641]; + let column11_row25 = mask_values[642]; + let column11_row27 = mask_values[643]; + let column11_row29 = mask_values[644]; + let column11_row30 = mask_values[645]; + let column11_row33 = mask_values[646]; + let column11_row35 = mask_values[647]; + let column11_row37 = mask_values[648]; + let column11_row38 = mask_values[649]; + let column11_row41 = mask_values[650]; + let column11_row43 = mask_values[651]; + let column11_row45 = mask_values[652]; + let column11_row46 = mask_values[653]; + let column11_row49 = mask_values[654]; + let column11_row51 = mask_values[655]; + let column11_row53 = mask_values[656]; + let column11_row54 = mask_values[657]; + let column11_row57 = mask_values[658]; + let column11_row59 = mask_values[659]; + let column11_row61 = mask_values[660]; + let column11_row65 = mask_values[661]; + let column11_row69 = mask_values[662]; + let column11_row71 = mask_values[663]; + let column11_row73 = mask_values[664]; + let column11_row77 = mask_values[665]; + let column11_row81 = mask_values[666]; + let column11_row85 = mask_values[667]; + let column11_row89 = mask_values[668]; + let column11_row91 = mask_values[669]; + let column11_row97 = mask_values[670]; + let column11_row101 = mask_values[671]; + let column11_row105 = mask_values[672]; + let column11_row109 = mask_values[673]; + let column11_row113 = mask_values[674]; + let column11_row117 = mask_values[675]; + let column11_row123 = mask_values[676]; + let column11_row155 = mask_values[677]; + let column11_row187 = mask_values[678]; + let column11_row195 = mask_values[679]; + let column11_row205 = mask_values[680]; + let column11_row219 = mask_values[681]; + let column11_row221 = mask_values[682]; + let column11_row237 = mask_values[683]; + let column11_row245 = mask_values[684]; + let column11_row253 = mask_values[685]; + let column11_row269 = mask_values[686]; + let column11_row301 = mask_values[687]; + let column11_row309 = mask_values[688]; + let column11_row310 = mask_values[689]; + let column11_row318 = mask_values[690]; + let column11_row326 = mask_values[691]; + let column11_row334 = mask_values[692]; + let column11_row342 = mask_values[693]; + let column11_row350 = mask_values[694]; + let column11_row451 = mask_values[695]; + let column11_row461 = mask_values[696]; + let column11_row477 = mask_values[697]; + let column11_row493 = mask_values[698]; + let column11_row501 = mask_values[699]; + let column11_row509 = mask_values[700]; + let column11_row12309 = mask_values[701]; + let column11_row12373 = mask_values[702]; + let column11_row12565 = mask_values[703]; + let column11_row12629 = mask_values[704]; + let column11_row16085 = mask_values[705]; + let column11_row16149 = mask_values[706]; + let column11_row16325 = mask_values[707]; + let column11_row16331 = mask_values[708]; + let column11_row16337 = mask_values[709]; + let column11_row16339 = mask_values[710]; + let column11_row16355 = mask_values[711]; + let column11_row16357 = mask_values[712]; + let column11_row16363 = mask_values[713]; + let column11_row16369 = mask_values[714]; + let column11_row16371 = mask_values[715]; + let column11_row16385 = mask_values[716]; + let column11_row16417 = mask_values[717]; + let column11_row32647 = mask_values[718]; + let column11_row32667 = mask_values[719]; + let column11_row32715 = mask_values[720]; + let column11_row32721 = mask_values[721]; + let column11_row32731 = mask_values[722]; + let column11_row32747 = mask_values[723]; + let column11_row32753 = mask_values[724]; + let column11_row32763 = mask_values[725]; + let column12_inter1_row0 = mask_values[726]; + let column12_inter1_row1 = mask_values[727]; + let column13_inter1_row0 = mask_values[728]; + let column13_inter1_row1 = mask_values[729]; + let column14_inter1_row0 = mask_values[730]; + let column14_inter1_row1 = mask_values[731]; + let column14_inter1_row2 = mask_values[732]; + let column14_inter1_row5 = mask_values[733]; + + // Compute intermediate values. + let cpu_decode_opcode_range_check_bit_0 = column0_row0 - (column0_row1 + column0_row1); + let cpu_decode_opcode_range_check_bit_2 = column0_row2 - (column0_row3 + column0_row3); + let cpu_decode_opcode_range_check_bit_4 = column0_row4 - (column0_row5 + column0_row5); + let cpu_decode_opcode_range_check_bit_3 = column0_row3 - (column0_row4 + column0_row4); + let cpu_decode_flag_op1_base_op0_0 = Felt::ONE + - (cpu_decode_opcode_range_check_bit_2 + + cpu_decode_opcode_range_check_bit_4 + + cpu_decode_opcode_range_check_bit_3); + let cpu_decode_opcode_range_check_bit_5 = column0_row5 - (column0_row6 + column0_row6); + let cpu_decode_opcode_range_check_bit_6 = column0_row6 - (column0_row7 + column0_row7); + let cpu_decode_opcode_range_check_bit_9 = column0_row9 - (column0_row10 + column0_row10); + let cpu_decode_flag_res_op1_0 = Felt::ONE + - (cpu_decode_opcode_range_check_bit_5 + + cpu_decode_opcode_range_check_bit_6 + + cpu_decode_opcode_range_check_bit_9); + let cpu_decode_opcode_range_check_bit_7 = column0_row7 - (column0_row8 + column0_row8); + let cpu_decode_opcode_range_check_bit_8 = column0_row8 - (column0_row9 + column0_row9); + let cpu_decode_flag_pc_update_regular_0 = Felt::ONE + - (cpu_decode_opcode_range_check_bit_7 + + cpu_decode_opcode_range_check_bit_8 + + cpu_decode_opcode_range_check_bit_9); + let cpu_decode_opcode_range_check_bit_12 = column0_row12 - (column0_row13 + column0_row13); + let cpu_decode_opcode_range_check_bit_13 = column0_row13 - (column0_row14 + column0_row14); + let cpu_decode_fp_update_regular_0 = + Felt::ONE - (cpu_decode_opcode_range_check_bit_12 + cpu_decode_opcode_range_check_bit_13); + let cpu_decode_opcode_range_check_bit_1 = column0_row1 - (column0_row2 + column0_row2); + let npc_reg_0 = column8_row0 + cpu_decode_opcode_range_check_bit_2 + 1; + let cpu_decode_opcode_range_check_bit_10 = column0_row10 - (column0_row11 + column0_row11); + let cpu_decode_opcode_range_check_bit_11 = column0_row11 - (column0_row12 + column0_row12); + let cpu_decode_opcode_range_check_bit_14 = column0_row14 - (column0_row15 + column0_row15); + let memory_address_diff_0 = column9_row2 - column9_row0; + let range_check16_diff_0 = column10_row6 - column10_row2; + let pedersen_hash0_ec_subset_sum_bit_0 = column5_row0 - (column5_row1 + column5_row1); + let pedersen_hash0_ec_subset_sum_bit_neg_0 = Felt::ONE - pedersen_hash0_ec_subset_sum_bit_0; + let range_check_builtin_value0_0 = column10_row12; + let range_check_builtin_value1_0 = + range_check_builtin_value0_0 * global_values.offset_size + column10_row44; + let range_check_builtin_value2_0 = + range_check_builtin_value1_0 * global_values.offset_size + column10_row76; + let range_check_builtin_value3_0 = + range_check_builtin_value2_0 * global_values.offset_size + column10_row108; + let range_check_builtin_value4_0 = + range_check_builtin_value3_0 * global_values.offset_size + column10_row140; + let range_check_builtin_value5_0 = + range_check_builtin_value4_0 * global_values.offset_size + column10_row172; + let range_check_builtin_value6_0 = + range_check_builtin_value5_0 * global_values.offset_size + column10_row204; + let range_check_builtin_value7_0 = + range_check_builtin_value6_0 * global_values.offset_size + column10_row236; + let ecdsa_signature0_doubling_key_x_squared = column11_row1 * column11_row1; + let ecdsa_signature0_exponentiate_generator_bit_0 = + column11_row59 - (column11_row187 + column11_row187); + let ecdsa_signature0_exponentiate_generator_bit_neg_0 = + Felt::ONE - ecdsa_signature0_exponentiate_generator_bit_0; + let ecdsa_signature0_exponentiate_key_bit_0 = column11_row9 - (column11_row73 + column11_row73); + let ecdsa_signature0_exponentiate_key_bit_neg_0 = + Felt::ONE - ecdsa_signature0_exponentiate_key_bit_0; + let bitwise_sum_var_0_0 = column1_row0 + + column1_row16 * Felt::from(2) + + column1_row32 * Felt::from(4) + + column1_row48 * Felt::from(8) + + column1_row64 * Felt::from_hex_unchecked("0x10000000000000000") + + column1_row80 * Felt::from_hex_unchecked("0x20000000000000000") + + column1_row96 * Felt::from_hex_unchecked("0x40000000000000000") + + column1_row112 * Felt::from_hex_unchecked("0x80000000000000000"); + let bitwise_sum_var_8_0 = column1_row128 + * Felt::from_hex_unchecked("0x100000000000000000000000000000000") + + column1_row144 * Felt::from_hex_unchecked("0x200000000000000000000000000000000") + + column1_row160 * Felt::from_hex_unchecked("0x400000000000000000000000000000000") + + column1_row176 * Felt::from_hex_unchecked("0x800000000000000000000000000000000") + + column1_row192 + * Felt::from_hex_unchecked("0x800000000000000000000000000000000000000000000000") + + column1_row208 + * Felt::from_hex_unchecked("0x1000000000000000000000000000000000000000000000000") + + column1_row224 + * Felt::from_hex_unchecked("0x2000000000000000000000000000000000000000000000000") + + column1_row240 + * Felt::from_hex_unchecked("0x4000000000000000000000000000000000000000000000000"); + let ec_op_doubling_q_x_squared_0 = column11_row41 * column11_row41; + let ec_op_ec_subset_sum_bit_0 = column11_row21 - (column11_row85 + column11_row85); + let ec_op_ec_subset_sum_bit_neg_0 = Felt::ONE - ec_op_ec_subset_sum_bit_0; + let keccak_keccak_parse_to_diluted_sum_words_over_instances0_0 = column10_row3 + - column10_row66307 + * Felt::from_hex_unchecked("0x100000000000000000000000000000000000000000000000000"); + let keccak_keccak_parse_to_diluted_sum_words_over_instances0_2 = column10_row19 + - column10_row66323 + * Felt::from_hex_unchecked("0x100000000000000000000000000000000000000000000000000"); + let keccak_keccak_parse_to_diluted_sum_words_over_instances1_0 = column10_row66307 + - column10_row132611 + * Felt::from_hex_unchecked("0x100000000000000000000000000000000000000000000000000"); + let keccak_keccak_parse_to_diluted_sum_words_over_instances1_2 = column10_row66323 + - column10_row132627 + * Felt::from_hex_unchecked("0x100000000000000000000000000000000000000000000000000"); + let keccak_keccak_parse_to_diluted_sum_words_over_instances2_0 = column10_row132611 + - column10_row198915 + * Felt::from_hex_unchecked("0x100000000000000000000000000000000000000000000000000"); + let keccak_keccak_parse_to_diluted_sum_words_over_instances2_2 = column10_row132627 + - column10_row198931 + * Felt::from_hex_unchecked("0x100000000000000000000000000000000000000000000000000"); + let keccak_keccak_parse_to_diluted_sum_words_over_instances3_0 = column10_row198915 + - column10_row265219 + * Felt::from_hex_unchecked("0x100000000000000000000000000000000000000000000000000"); + let keccak_keccak_parse_to_diluted_sum_words_over_instances3_2 = column10_row198931 + - column10_row265235 + * Felt::from_hex_unchecked("0x100000000000000000000000000000000000000000000000000"); + let keccak_keccak_parse_to_diluted_sum_words_over_instances4_0 = column10_row265219 + - column10_row331523 + * Felt::from_hex_unchecked("0x100000000000000000000000000000000000000000000000000"); + let keccak_keccak_parse_to_diluted_sum_words_over_instances4_2 = column10_row265235 + - column10_row331539 + * Felt::from_hex_unchecked("0x100000000000000000000000000000000000000000000000000"); + let keccak_keccak_parse_to_diluted_sum_words_over_instances5_0 = column10_row331523 + - column10_row397827 + * Felt::from_hex_unchecked("0x100000000000000000000000000000000000000000000000000"); + let keccak_keccak_parse_to_diluted_sum_words_over_instances5_2 = column10_row331539 + - column10_row397843 + * Felt::from_hex_unchecked("0x100000000000000000000000000000000000000000000000000"); + let keccak_keccak_parse_to_diluted_sum_words_over_instances6_0 = column10_row397827 + - column10_row464131 + * Felt::from_hex_unchecked("0x100000000000000000000000000000000000000000000000000"); + let keccak_keccak_parse_to_diluted_sum_words_over_instances6_2 = column10_row397843 + - column10_row464147 + * Felt::from_hex_unchecked("0x100000000000000000000000000000000000000000000000000"); + let keccak_keccak_parse_to_diluted_sum_words_over_instances7_0 = column10_row464131 + - column10_row6403 + * Felt::from_hex_unchecked("0x100000000000000000000000000000000000000000000000000"); + let keccak_keccak_parse_to_diluted_sum_words_over_instances7_2 = column10_row464147 + - column10_row6419 + * Felt::from_hex_unchecked("0x100000000000000000000000000000000000000000000000000"); + let keccak_keccak_parse_to_diluted_partial_diluted1_0 = + column10_row516099 - (column10_row259 + column10_row259); + let keccak_keccak_parse_to_diluted_partial_diluted1_2 = + column10_row516115 - (column10_row275 + column10_row275); + let keccak_keccak_parse_to_diluted_bit_other1_0 = + keccak_keccak_parse_to_diluted_partial_diluted1_2 + - Felt::from(16) * keccak_keccak_parse_to_diluted_partial_diluted1_0; + let keccak_keccak_parse_to_diluted_partial_diluted1_30 = + column10_row516339 - (column10_row499 + column10_row499); + let keccak_keccak_parse_to_diluted_partial_diluted1_31 = + column10_row516347 - (column10_row507 + column10_row507); + let keccak_keccak_parse_to_diluted_partial_diluted0_0 = + column10_row3 - (column10_row8195 + column10_row8195); + let keccak_keccak_parse_to_diluted_partial_diluted0_2 = + column10_row19 - (column10_row8211 + column10_row8211); + let keccak_keccak_parse_to_diluted_bit_other0_0 = + keccak_keccak_parse_to_diluted_partial_diluted0_2 + - Felt::from(16) * keccak_keccak_parse_to_diluted_partial_diluted0_0; + let keccak_keccak_parse_to_diluted_partial_diluted0_30 = + column10_row243 - (column10_row8435 + column10_row8435); + let keccak_keccak_parse_to_diluted_partial_diluted0_31 = + column10_row251 - (column10_row8443 + column10_row8443); + let keccak_keccak_sum_parities0_0 = column1_row6594 + column10_row8003; + let keccak_keccak_sum_parities1_0 = column1_row6404 + column10_row4103; + let keccak_keccak_sum_parities1_64512 = column1_row522500 + column10_row520199; + let keccak_keccak_sum_parities2_0 = column1_row6402 + column10_row7811; + let keccak_keccak_sum_parities2_2048 = column1_row22786 + column10_row24195; + let keccak_keccak_sum_parities3_0 = column1_row6406 + column10_row2055; + let keccak_keccak_sum_parities3_36864 = column1_row301318 + column10_row296967; + let keccak_keccak_sum_parities4_0 = column1_row6596 + column10_row7; + let keccak_keccak_sum_parities4_37888 = column1_row309700 + column10_row303111; + let keccak_keccak_sum_parities0_28672 = column1_row235970 + column10_row237379; + let keccak_keccak_sum_parities1_20480 = column1_row170244 + column10_row167943; + let keccak_keccak_sum_parities2_59392 = column1_row481538 + column10_row482947; + let keccak_keccak_sum_parities3_8 = column1_row6470 + column10_row2119; + let keccak_keccak_sum_parities3_16 = column1_row6534 + column10_row2183; + let keccak_keccak_sum_parities3_9216 = column1_row80134 + column10_row75783; + let keccak_keccak_sum_parities3_9224 = column1_row80198 + column10_row75847; + let keccak_keccak_sum_parities3_9232 = column1_row80262 + column10_row75911; + let keccak_keccak_sum_parities4_45056 = column1_row367044 + column10_row360455; + let keccak_keccak_sum_parities0_62464 = column1_row506306 + column10_row507715; + let keccak_keccak_sum_parities1_55296 = column1_row448772 + column10_row446471; + let keccak_keccak_sum_parities2_21504 = column1_row178434 + column10_row179843; + let keccak_keccak_sum_parities3_39936 = column1_row325894 + column10_row321543; + let keccak_keccak_sum_parities4_8 = column1_row6660 + column10_row71; + let keccak_keccak_sum_parities4_16 = column1_row6724 + column10_row135; + let keccak_keccak_sum_parities4_25600 = column1_row211396 + column10_row204807; + let keccak_keccak_sum_parities4_25608 = column1_row211460 + column10_row204871; + let keccak_keccak_sum_parities4_25616 = column1_row211524 + column10_row204935; + let keccak_keccak_sum_parities0_8 = column1_row6658 + column10_row8067; + let keccak_keccak_sum_parities0_16 = column1_row6722 + column10_row8131; + let keccak_keccak_sum_parities0_23552 = column1_row195010 + column10_row196419; + let keccak_keccak_sum_parities0_23560 = column1_row195074 + column10_row196483; + let keccak_keccak_sum_parities0_23568 = column1_row195138 + column10_row196547; + let keccak_keccak_sum_parities1_19456 = column1_row162052 + column10_row159751; + let keccak_keccak_sum_parities2_50176 = column1_row407810 + column10_row409219; + let keccak_keccak_sum_parities3_44032 = column1_row358662 + column10_row354311; + let keccak_keccak_sum_parities4_57344 = column1_row465348 + column10_row458759; + let keccak_keccak_sum_parities0_47104 = column1_row383426 + column10_row384835; + let keccak_keccak_sum_parities1_8 = column1_row6468 + column10_row4167; + let keccak_keccak_sum_parities1_16 = column1_row6532 + column10_row4231; + let keccak_keccak_sum_parities1_63488 = column1_row514308 + column10_row512007; + let keccak_keccak_sum_parities1_63496 = column1_row514372 + column10_row512071; + let keccak_keccak_sum_parities1_63504 = column1_row514436 + column10_row512135; + let keccak_keccak_sum_parities2_3072 = column1_row30978 + column10_row32387; + let keccak_keccak_sum_parities3_8192 = column1_row71942 + column10_row67591; + let keccak_keccak_sum_parities4_51200 = column1_row416196 + column10_row409607; + let keccak_keccak_after_theta_rho_pi_xor_one_32 = + Felt::from_hex_unchecked("0x1111111111111111") - column1_row257; + let keccak_keccak_after_theta_rho_pi_xor_one_1056 = + Felt::from_hex_unchecked("0x1111111111111111") - column1_row8449; + let keccak_keccak_after_theta_rho_pi_xor_one_3104 = + Felt::from_hex_unchecked("0x1111111111111111") - column1_row24833; + let keccak_keccak_after_theta_rho_pi_xor_one_7200 = + Felt::from_hex_unchecked("0x1111111111111111") - column1_row57601; + let keccak_keccak_after_theta_rho_pi_xor_one_15392 = + Felt::from_hex_unchecked("0x1111111111111111") - column1_row123137; + let keccak_keccak_after_theta_rho_pi_xor_one_31776 = + Felt::from_hex_unchecked("0x1111111111111111") - column1_row254209; + let keccak_keccak_after_theta_rho_pi_xor_one_64544 = + Felt::from_hex_unchecked("0x1111111111111111") - column1_row516353; + let keccak_keccak_after_theta_rho_pi_xor_one_0 = + Felt::from_hex_unchecked("0x1111111111111111") - column1_row1; + let keccak_keccak_after_theta_rho_pi_xor_one_128 = + Felt::from_hex_unchecked("0x1111111111111111") - column1_row1025; + let poseidon_poseidon_full_rounds_state0_cubed_0 = column11_row53 * column11_row29; + let poseidon_poseidon_full_rounds_state1_cubed_0 = column11_row13 * column11_row61; + let poseidon_poseidon_full_rounds_state2_cubed_0 = column11_row45 * column11_row3; + let poseidon_poseidon_full_rounds_state0_cubed_7 = column11_row501 * column11_row477; + let poseidon_poseidon_full_rounds_state1_cubed_7 = column11_row461 * column11_row509; + let poseidon_poseidon_full_rounds_state2_cubed_7 = column11_row493 * column11_row451; + let poseidon_poseidon_full_rounds_state0_cubed_3 = column11_row245 * column11_row221; + let poseidon_poseidon_full_rounds_state1_cubed_3 = column11_row205 * column11_row253; + let poseidon_poseidon_full_rounds_state2_cubed_3 = column11_row237 * column11_row195; + let poseidon_poseidon_partial_rounds_state0_cubed_0 = column10_row1 * column10_row5; + let poseidon_poseidon_partial_rounds_state0_cubed_1 = column10_row9 * column10_row13; + let poseidon_poseidon_partial_rounds_state0_cubed_2 = column10_row17 * column10_row21; + let poseidon_poseidon_partial_rounds_state1_cubed_0 = column11_row6 * column11_row14; + let poseidon_poseidon_partial_rounds_state1_cubed_1 = column11_row22 * column11_row30; + let poseidon_poseidon_partial_rounds_state1_cubed_2 = column11_row38 * column11_row46; + let poseidon_poseidon_partial_rounds_state1_cubed_19 = column11_row310 * column11_row318; + let poseidon_poseidon_partial_rounds_state1_cubed_20 = column11_row326 * column11_row334; + let poseidon_poseidon_partial_rounds_state1_cubed_21 = column11_row342 * column11_row350; + + // Sum constraints. + let mut total_sum = Felt::ZERO; + + // Constraint: cpu/decode/opcode_range_check/bit. + let mut value = (cpu_decode_opcode_range_check_bit_0 * cpu_decode_opcode_range_check_bit_0 + - cpu_decode_opcode_range_check_bit_0) + * domain4.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[0] * value; + + // Constraint: cpu/decode/opcode_range_check/zero. + value = (column0_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain4)); + total_sum += constraint_coefficients[1] * value; + + // Constraint: cpu/decode/opcode_range_check_input. + value = (column8_row1 + - (((column0_row0 * global_values.offset_size + column10_row4) + * global_values.offset_size + + column10_row8) + * global_values.offset_size + + column10_row0)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[2] * value; + + // Constraint: cpu/decode/flag_op1_base_op0_bit. + value = (cpu_decode_flag_op1_base_op0_0 * cpu_decode_flag_op1_base_op0_0 + - cpu_decode_flag_op1_base_op0_0) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[3] * value; + + // Constraint: cpu/decode/flag_res_op1_bit. + value = (cpu_decode_flag_res_op1_0 * cpu_decode_flag_res_op1_0 - cpu_decode_flag_res_op1_0) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[4] * value; + + // Constraint: cpu/decode/flag_pc_update_regular_bit. + value = (cpu_decode_flag_pc_update_regular_0 * cpu_decode_flag_pc_update_regular_0 + - cpu_decode_flag_pc_update_regular_0) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[5] * value; + + // Constraint: cpu/decode/fp_update_regular_bit. + value = (cpu_decode_fp_update_regular_0 * cpu_decode_fp_update_regular_0 + - cpu_decode_fp_update_regular_0) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[6] * value; + + // Constraint: cpu/operands/mem_dst_addr. + value = (column8_row8 + global_values.half_offset_size + - (cpu_decode_opcode_range_check_bit_0 * column11_row8 + + (Felt::ONE - cpu_decode_opcode_range_check_bit_0) * column11_row0 + + column10_row0)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[7] * value; + + // Constraint: cpu/operands/mem0_addr. + value = (column8_row4 + global_values.half_offset_size + - (cpu_decode_opcode_range_check_bit_1 * column11_row8 + + (Felt::ONE - cpu_decode_opcode_range_check_bit_1) * column11_row0 + + column10_row8)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[8] * value; + + // Constraint: cpu/operands/mem1_addr. + value = (column8_row12 + global_values.half_offset_size + - (cpu_decode_opcode_range_check_bit_2 * column8_row0 + + cpu_decode_opcode_range_check_bit_4 * column11_row0 + + cpu_decode_opcode_range_check_bit_3 * column11_row8 + + cpu_decode_flag_op1_base_op0_0 * column8_row5 + + column10_row4)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[9] * value; + + // Constraint: cpu/operands/ops_mul. + value = (column11_row4 - column8_row5 * column8_row13) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[10] * value; + + // Constraint: cpu/operands/res. + value = ((Felt::ONE - cpu_decode_opcode_range_check_bit_9) * column11_row12 + - (cpu_decode_opcode_range_check_bit_5 * (column8_row5 + column8_row13) + + cpu_decode_opcode_range_check_bit_6 * column11_row4 + + cpu_decode_flag_res_op1_0 * column8_row13)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[11] * value; + + // Constraint: cpu/update_registers/update_pc/tmp0. + value = (column11_row2 - cpu_decode_opcode_range_check_bit_9 * column8_row9) + * domain143.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[12] * value; + + // Constraint: cpu/update_registers/update_pc/tmp1. + value = (column11_row10 - column11_row2 * column11_row12) + * domain143.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[13] * value; + + // Constraint: cpu/update_registers/update_pc/pc_cond_negative. + value = ((Felt::ONE - cpu_decode_opcode_range_check_bit_9) * column8_row16 + + column11_row2 * (column8_row16 - (column8_row0 + column8_row13)) + - (cpu_decode_flag_pc_update_regular_0 * npc_reg_0 + + cpu_decode_opcode_range_check_bit_7 * column11_row12 + + cpu_decode_opcode_range_check_bit_8 * (column8_row0 + column11_row12))) + * domain143.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[14] * value; + + // Constraint: cpu/update_registers/update_pc/pc_cond_positive. + value = ((column11_row10 - cpu_decode_opcode_range_check_bit_9) * (column8_row16 - npc_reg_0)) + * domain143.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[15] * value; + + // Constraint: cpu/update_registers/update_ap/ap_update. + value = (column11_row16 + - (column11_row0 + + cpu_decode_opcode_range_check_bit_10 * column11_row12 + + cpu_decode_opcode_range_check_bit_11 + + cpu_decode_opcode_range_check_bit_12 * Felt::from(2))) + * domain143.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[16] * value; + + // Constraint: cpu/update_registers/update_fp/fp_update. + value = (column11_row24 + - (cpu_decode_fp_update_regular_0 * column11_row8 + + cpu_decode_opcode_range_check_bit_13 * column8_row9 + + cpu_decode_opcode_range_check_bit_12 * (column11_row0 + 2))) + * domain143.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[17] * value; + + // Constraint: cpu/opcodes/call/push_fp. + value = (cpu_decode_opcode_range_check_bit_12 * (column8_row9 - column11_row8)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[18] * value; + + // Constraint: cpu/opcodes/call/push_pc. + value = (cpu_decode_opcode_range_check_bit_12 + * (column8_row5 - (column8_row0 + cpu_decode_opcode_range_check_bit_2 + 1))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[19] * value; + + // Constraint: cpu/opcodes/call/off0. + value = (cpu_decode_opcode_range_check_bit_12 + * (column10_row0 - global_values.half_offset_size)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[20] * value; + + // Constraint: cpu/opcodes/call/off1. + value = (cpu_decode_opcode_range_check_bit_12 + * (column10_row8 - (global_values.half_offset_size + 1))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[21] * value; + + // Constraint: cpu/opcodes/call/flags. + value = (cpu_decode_opcode_range_check_bit_12 + * (cpu_decode_opcode_range_check_bit_12 + cpu_decode_opcode_range_check_bit_12 + 1 + 1 + - (cpu_decode_opcode_range_check_bit_0 + cpu_decode_opcode_range_check_bit_1 + 4))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[22] * value; + + // Constraint: cpu/opcodes/ret/off0. + value = (cpu_decode_opcode_range_check_bit_13 + * (column10_row0 + 2 - global_values.half_offset_size)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[23] * value; + + // Constraint: cpu/opcodes/ret/off2. + value = (cpu_decode_opcode_range_check_bit_13 + * (column10_row4 + 1 - global_values.half_offset_size)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[24] * value; + + // Constraint: cpu/opcodes/ret/flags. + value = (cpu_decode_opcode_range_check_bit_13 + * (cpu_decode_opcode_range_check_bit_7 + + cpu_decode_opcode_range_check_bit_0 + + cpu_decode_opcode_range_check_bit_3 + + cpu_decode_flag_res_op1_0 + - 4)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[25] * value; + + // Constraint: cpu/opcodes/assert_eq/assert_eq. + value = (cpu_decode_opcode_range_check_bit_14 * (column8_row9 - column11_row12)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[26] * value; + + // Constraint: initial_ap. + value = (column11_row0 - global_values.initial_ap) + .field_div(&NonZeroFelt::from_felt_unchecked(domain144)); + total_sum += constraint_coefficients[27] * value; + + // Constraint: initial_fp. + value = (column11_row8 - global_values.initial_ap) + .field_div(&NonZeroFelt::from_felt_unchecked(domain144)); + total_sum += constraint_coefficients[28] * value; + + // Constraint: initial_pc. + value = (column8_row0 - global_values.initial_pc) + .field_div(&NonZeroFelt::from_felt_unchecked(domain144)); + total_sum += constraint_coefficients[29] * value; + + // Constraint: final_ap. + value = (column11_row0 - global_values.final_ap) + .field_div(&NonZeroFelt::from_felt_unchecked(domain143)); + total_sum += constraint_coefficients[30] * value; + + // Constraint: final_fp. + value = (column11_row8 - global_values.initial_ap) + .field_div(&NonZeroFelt::from_felt_unchecked(domain143)); + total_sum += constraint_coefficients[31] * value; + + // Constraint: final_pc. + value = (column8_row0 - global_values.final_pc) + .field_div(&NonZeroFelt::from_felt_unchecked(domain143)); + total_sum += constraint_coefficients[32] * value; + + // Constraint: memory/multi_column_perm/perm/init0. + value = ((global_values.memory_multi_column_perm_perm_interaction_elm + - (column9_row0 + + global_values.memory_multi_column_perm_hash_interaction_elm0 * column9_row1)) + * column14_inter1_row0 + + column8_row0 + + global_values.memory_multi_column_perm_hash_interaction_elm0 * column8_row1 + - global_values.memory_multi_column_perm_perm_interaction_elm) + .field_div(&NonZeroFelt::from_felt_unchecked(domain144)); + total_sum += constraint_coefficients[33] * value; + + // Constraint: memory/multi_column_perm/perm/step0. + value = ((global_values.memory_multi_column_perm_perm_interaction_elm + - (column9_row2 + + global_values.memory_multi_column_perm_hash_interaction_elm0 * column9_row3)) + * column14_inter1_row2 + - (global_values.memory_multi_column_perm_perm_interaction_elm + - (column8_row2 + + global_values.memory_multi_column_perm_hash_interaction_elm0 * column8_row3)) + * column14_inter1_row0) + * domain145.field_div(&NonZeroFelt::from_felt_unchecked(domain1)); + total_sum += constraint_coefficients[34] * value; + + // Constraint: memory/multi_column_perm/perm/last. + value = (column14_inter1_row0 - global_values.memory_multi_column_perm_perm_public_memory_prod) + .field_div(&NonZeroFelt::from_felt_unchecked(domain145)); + total_sum += constraint_coefficients[35] * value; + + // Constraint: memory/diff_is_bit. + value = (memory_address_diff_0 * memory_address_diff_0 - memory_address_diff_0) + * domain145.field_div(&NonZeroFelt::from_felt_unchecked(domain1)); + total_sum += constraint_coefficients[36] * value; + + // Constraint: memory/is_func. + value = ((memory_address_diff_0 - 1) * (column9_row1 - column9_row3)) + * domain145.field_div(&NonZeroFelt::from_felt_unchecked(domain1)); + total_sum += constraint_coefficients[37] * value; + + // Constraint: memory/initial_addr. + value = (column9_row0 - 1).field_div(&NonZeroFelt::from_felt_unchecked(domain144)); + total_sum += constraint_coefficients[38] * value; + + // Constraint: public_memory_addr_zero. + value = (column8_row2).field_div(&NonZeroFelt::from_felt_unchecked(domain3)); + total_sum += constraint_coefficients[39] * value; + + // Constraint: public_memory_value_zero. + value = (column8_row3).field_div(&NonZeroFelt::from_felt_unchecked(domain3)); + total_sum += constraint_coefficients[40] * value; + + // Constraint: range_check16/perm/init0. + value = ((global_values.range_check16_perm_interaction_elm - column10_row2) + * column14_inter1_row1 + + column10_row0 + - global_values.range_check16_perm_interaction_elm) + .field_div(&NonZeroFelt::from_felt_unchecked(domain144)); + total_sum += constraint_coefficients[41] * value; + + // Constraint: range_check16/perm/step0. + value = ((global_values.range_check16_perm_interaction_elm - column10_row6) + * column14_inter1_row5 + - (global_values.range_check16_perm_interaction_elm - column10_row4) + * column14_inter1_row1) + * domain146.field_div(&NonZeroFelt::from_felt_unchecked(domain2)); + total_sum += constraint_coefficients[42] * value; + + // Constraint: range_check16/perm/last. + value = (column14_inter1_row1 - global_values.range_check16_perm_public_memory_prod) + .field_div(&NonZeroFelt::from_felt_unchecked(domain146)); + total_sum += constraint_coefficients[43] * value; + + // Constraint: range_check16/diff_is_bit. + value = (range_check16_diff_0 * range_check16_diff_0 - range_check16_diff_0) + * domain146.field_div(&NonZeroFelt::from_felt_unchecked(domain2)); + total_sum += constraint_coefficients[44] * value; + + // Constraint: range_check16/minimum. + value = (column10_row2 - global_values.range_check_min) + .field_div(&NonZeroFelt::from_felt_unchecked(domain144)); + total_sum += constraint_coefficients[45] * value; + + // Constraint: range_check16/maximum. + value = (column10_row2 - global_values.range_check_max) + .field_div(&NonZeroFelt::from_felt_unchecked(domain146)); + total_sum += constraint_coefficients[46] * value; + + // Constraint: diluted_check/permutation/init0. + value = ((global_values.diluted_check_permutation_interaction_elm - column2_row0) + * column13_inter1_row0 + + column1_row0 + - global_values.diluted_check_permutation_interaction_elm) + .field_div(&NonZeroFelt::from_felt_unchecked(domain144)); + total_sum += constraint_coefficients[47] * value; + + // Constraint: diluted_check/permutation/step0. + value = ((global_values.diluted_check_permutation_interaction_elm - column2_row1) + * column13_inter1_row1 + - (global_values.diluted_check_permutation_interaction_elm - column1_row1) + * column13_inter1_row0) + * domain147.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[48] * value; + + // Constraint: diluted_check/permutation/last. + value = (column13_inter1_row0 - global_values.diluted_check_permutation_public_memory_prod) + .field_div(&NonZeroFelt::from_felt_unchecked(domain147)); + total_sum += constraint_coefficients[49] * value; + + // Constraint: diluted_check/init. + value = (column12_inter1_row0 - 1).field_div(&NonZeroFelt::from_felt_unchecked(domain144)); + total_sum += constraint_coefficients[50] * value; + + // Constraint: diluted_check/first_element. + value = (column2_row0 - global_values.diluted_check_first_elm) + .field_div(&NonZeroFelt::from_felt_unchecked(domain144)); + total_sum += constraint_coefficients[51] * value; + + // Constraint: diluted_check/step. + value = (column12_inter1_row1 + - (column12_inter1_row0 + * (Felt::ONE + + global_values.diluted_check_interaction_z * (column2_row1 - column2_row0)) + + global_values.diluted_check_interaction_alpha + * (column2_row1 - column2_row0) + * (column2_row1 - column2_row0))) + * domain147.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[52] * value; + + // Constraint: diluted_check/last. + value = (column12_inter1_row0 - global_values.diluted_check_final_cum_val) + .field_div(&NonZeroFelt::from_felt_unchecked(domain147)); + total_sum += constraint_coefficients[53] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/last_one_is_zero. + value = (column11_row71 * (column5_row0 - (column5_row1 + column5_row1))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[54] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/zeroes_between_ones0. + value = (column11_row71 + * (column5_row1 + - Felt::from_hex_unchecked("0x800000000000000000000000000000000000000000000000") + * column5_row192)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[55] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/cumulative_bit192. + value = (column11_row71 + - column6_row255 * (column5_row192 - (column5_row193 + column5_row193))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[56] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/zeroes_between_ones192. + value = (column6_row255 * (column5_row193 - Felt::from(8) * column5_row196)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[57] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/cumulative_bit196. + value = (column6_row255 + - (column5_row251 - (column5_row252 + column5_row252)) + * (column5_row196 - (column5_row197 + column5_row197))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[58] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_unpacking/zeroes_between_ones196. + value = ((column5_row251 - (column5_row252 + column5_row252)) + * (column5_row197 - Felt::from_hex_unchecked("0x40000000000000") * column5_row251)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[59] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/booleanity_test. + value = (pedersen_hash0_ec_subset_sum_bit_0 * (pedersen_hash0_ec_subset_sum_bit_0 - 1)) + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[60] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/bit_extraction_end. + value = (column5_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain10)); + total_sum += constraint_coefficients[61] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/zeros_tail. + value = (column5_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain9)); + total_sum += constraint_coefficients[62] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/add_points/slope. + value = (pedersen_hash0_ec_subset_sum_bit_0 * (column4_row0 - global_values.pedersen_points_y) + - column6_row0 * (column3_row0 - global_values.pedersen_points_x)) + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[63] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/add_points/x. + value = (column6_row0 * column6_row0 + - pedersen_hash0_ec_subset_sum_bit_0 + * (column3_row0 + global_values.pedersen_points_x + column3_row1)) + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[64] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/add_points/y. + value = (pedersen_hash0_ec_subset_sum_bit_0 * (column4_row0 + column4_row1) + - column6_row0 * (column3_row0 - column3_row1)) + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[65] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/copy_point/x. + value = (pedersen_hash0_ec_subset_sum_bit_neg_0 * (column3_row1 - column3_row0)) + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[66] * value; + + // Constraint: pedersen/hash0/ec_subset_sum/copy_point/y. + value = (pedersen_hash0_ec_subset_sum_bit_neg_0 * (column4_row1 - column4_row0)) + * domain9.field_div(&NonZeroFelt::from_felt_unchecked(domain0)); + total_sum += constraint_coefficients[67] * value; + + // Constraint: pedersen/hash0/copy_point/x. + value = (column3_row256 - column3_row255) + * domain13.field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[68] * value; + + // Constraint: pedersen/hash0/copy_point/y. + value = (column4_row256 - column4_row255) + * domain13.field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[69] * value; + + // Constraint: pedersen/hash0/init/x. + value = (column3_row0 - global_values.pedersen_shift_point.x) + .field_div(&NonZeroFelt::from_felt_unchecked(domain14)); + total_sum += constraint_coefficients[70] * value; + + // Constraint: pedersen/hash0/init/y. + value = (column4_row0 - global_values.pedersen_shift_point.y) + .field_div(&NonZeroFelt::from_felt_unchecked(domain14)); + total_sum += constraint_coefficients[71] * value; + + // Constraint: pedersen/input0_value0. + value = (column8_row7 - column5_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain14)); + total_sum += constraint_coefficients[72] * value; + + // Constraint: pedersen/input0_addr. + value = (column8_row518 - (column8_row134 + 1)) + * domain148.field_div(&NonZeroFelt::from_felt_unchecked(domain14)); + total_sum += constraint_coefficients[73] * value; + + // Constraint: pedersen/init_addr. + value = (column8_row6 - global_values.initial_pedersen_addr) + .field_div(&NonZeroFelt::from_felt_unchecked(domain144)); + total_sum += constraint_coefficients[74] * value; + + // Constraint: pedersen/input1_value0. + value = + (column8_row263 - column5_row256).field_div(&NonZeroFelt::from_felt_unchecked(domain14)); + total_sum += constraint_coefficients[75] * value; + + // Constraint: pedersen/input1_addr. + value = (column8_row262 - (column8_row6 + 1)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain14)); + total_sum += constraint_coefficients[76] * value; + + // Constraint: pedersen/output_value0. + value = + (column8_row135 - column3_row511).field_div(&NonZeroFelt::from_felt_unchecked(domain14)); + total_sum += constraint_coefficients[77] * value; + + // Constraint: pedersen/output_addr. + value = (column8_row134 - (column8_row262 + 1)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain14)); + total_sum += constraint_coefficients[78] * value; + + // Constraint: range_check_builtin/value. + value = (range_check_builtin_value7_0 - column8_row71) + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[79] * value; + + // Constraint: range_check_builtin/addr_step. + value = (column8_row326 - (column8_row70 + 1)) + * domain149.field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[80] * value; + + // Constraint: range_check_builtin/init_addr. + value = (column8_row70 - global_values.initial_range_check_addr) + .field_div(&NonZeroFelt::from_felt_unchecked(domain144)); + total_sum += constraint_coefficients[81] * value; + + // Constraint: ecdsa/signature0/doubling_key/slope. + value = (ecdsa_signature0_doubling_key_x_squared + + ecdsa_signature0_doubling_key_x_squared + + ecdsa_signature0_doubling_key_x_squared + + global_values.ecdsa_sig_config.alpha + - (column11_row33 + column11_row33) * column11_row35) + * domain27.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[82] * value; + + // Constraint: ecdsa/signature0/doubling_key/x. + value = (column11_row35 * column11_row35 - (column11_row1 + column11_row1 + column11_row65)) + * domain27.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[83] * value; + + // Constraint: ecdsa/signature0/doubling_key/y. + value = (column11_row33 + column11_row97 - column11_row35 * (column11_row1 - column11_row65)) + * domain27.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[84] * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/booleanity_test. + value = (ecdsa_signature0_exponentiate_generator_bit_0 + * (ecdsa_signature0_exponentiate_generator_bit_0 - 1)) + * domain31.field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[85] * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/bit_extraction_end. + value = (column11_row59).field_div(&NonZeroFelt::from_felt_unchecked(domain32)); + total_sum += constraint_coefficients[86] * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/zeros_tail. + value = (column11_row59).field_div(&NonZeroFelt::from_felt_unchecked(domain31)); + total_sum += constraint_coefficients[87] * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/add_points/slope. + value = (ecdsa_signature0_exponentiate_generator_bit_0 + * (column11_row91 - global_values.ecdsa_generator_points_y) + - column11_row123 * (column11_row27 - global_values.ecdsa_generator_points_x)) + * domain31.field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[88] * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/add_points/x. + value = (column11_row123 * column11_row123 + - ecdsa_signature0_exponentiate_generator_bit_0 + * (column11_row27 + global_values.ecdsa_generator_points_x + column11_row155)) + * domain31.field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[89] * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/add_points/y. + value = (ecdsa_signature0_exponentiate_generator_bit_0 * (column11_row91 + column11_row219) + - column11_row123 * (column11_row27 - column11_row155)) + * domain31.field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[90] * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/add_points/x_diff_inv. + value = (column11_row7 * (column11_row27 - global_values.ecdsa_generator_points_x) - 1) + * domain31.field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[91] * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/copy_point/x. + value = (ecdsa_signature0_exponentiate_generator_bit_neg_0 + * (column11_row155 - column11_row27)) + * domain31.field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[92] * value; + + // Constraint: ecdsa/signature0/exponentiate_generator/copy_point/y. + value = (ecdsa_signature0_exponentiate_generator_bit_neg_0 + * (column11_row219 - column11_row91)) + * domain31.field_div(&NonZeroFelt::from_felt_unchecked(domain7)); + total_sum += constraint_coefficients[93] * value; + + // Constraint: ecdsa/signature0/exponentiate_key/booleanity_test. + value = (ecdsa_signature0_exponentiate_key_bit_0 + * (ecdsa_signature0_exponentiate_key_bit_0 - 1)) + * domain27.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[94] * value; + + // Constraint: ecdsa/signature0/exponentiate_key/bit_extraction_end. + value = (column11_row9).field_div(&NonZeroFelt::from_felt_unchecked(domain28)); + total_sum += constraint_coefficients[95] * value; + + // Constraint: ecdsa/signature0/exponentiate_key/zeros_tail. + value = (column11_row9).field_div(&NonZeroFelt::from_felt_unchecked(domain27)); + total_sum += constraint_coefficients[96] * value; + + // Constraint: ecdsa/signature0/exponentiate_key/add_points/slope. + value = (ecdsa_signature0_exponentiate_key_bit_0 * (column11_row49 - column11_row33) + - column11_row19 * (column11_row17 - column11_row1)) + * domain27.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[97] * value; + + // Constraint: ecdsa/signature0/exponentiate_key/add_points/x. + value = (column11_row19 * column11_row19 + - ecdsa_signature0_exponentiate_key_bit_0 + * (column11_row17 + column11_row1 + column11_row81)) + * domain27.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[98] * value; + + // Constraint: ecdsa/signature0/exponentiate_key/add_points/y. + value = (ecdsa_signature0_exponentiate_key_bit_0 * (column11_row49 + column11_row113) + - column11_row19 * (column11_row17 - column11_row81)) + * domain27.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[99] * value; + + // Constraint: ecdsa/signature0/exponentiate_key/add_points/x_diff_inv. + value = (column11_row51 * (column11_row17 - column11_row1) - 1) + * domain27.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[100] * value; + + // Constraint: ecdsa/signature0/exponentiate_key/copy_point/x. + value = (ecdsa_signature0_exponentiate_key_bit_neg_0 * (column11_row81 - column11_row17)) + * domain27.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[101] * value; + + // Constraint: ecdsa/signature0/exponentiate_key/copy_point/y. + value = (ecdsa_signature0_exponentiate_key_bit_neg_0 * (column11_row113 - column11_row49)) + * domain27.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[102] * value; + + // Constraint: ecdsa/signature0/init_gen/x. + value = (column11_row27 - global_values.ecdsa_sig_config.shift_point.x) + .field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[103] * value; + + // Constraint: ecdsa/signature0/init_gen/y. + value = (column11_row91 + global_values.ecdsa_sig_config.shift_point.y) + .field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[104] * value; + + // Constraint: ecdsa/signature0/init_key/x. + value = (column11_row17 - global_values.ecdsa_sig_config.shift_point.x) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[105] * value; + + // Constraint: ecdsa/signature0/init_key/y. + value = (column11_row49 - global_values.ecdsa_sig_config.shift_point.y) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[106] * value; + + // Constraint: ecdsa/signature0/add_results/slope. + value = (column11_row32731 + - (column11_row16369 + column11_row32763 * (column11_row32667 - column11_row16337))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[107] * value; + + // Constraint: ecdsa/signature0/add_results/x. + value = (column11_row32763 * column11_row32763 + - (column11_row32667 + column11_row16337 + column11_row16385)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[108] * value; + + // Constraint: ecdsa/signature0/add_results/y. + value = (column11_row32731 + column11_row16417 + - column11_row32763 * (column11_row32667 - column11_row16385)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[109] * value; + + // Constraint: ecdsa/signature0/add_results/x_diff_inv. + value = (column11_row32647 * (column11_row32667 - column11_row16337) - 1) + .field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[110] * value; + + // Constraint: ecdsa/signature0/extract_r/slope. + value = (column11_row32753 + global_values.ecdsa_sig_config.shift_point.y + - column11_row16331 * (column11_row32721 - global_values.ecdsa_sig_config.shift_point.x)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[111] * value; + + // Constraint: ecdsa/signature0/extract_r/x. + value = (column11_row16331 * column11_row16331 + - (column11_row32721 + global_values.ecdsa_sig_config.shift_point.x + column11_row9)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[112] * value; + + // Constraint: ecdsa/signature0/extract_r/x_diff_inv. + value = (column11_row32715 + * (column11_row32721 - global_values.ecdsa_sig_config.shift_point.x) + - 1) + .field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[113] * value; + + // Constraint: ecdsa/signature0/z_nonzero. + value = (column11_row59 * column11_row16363 - 1) + .field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[114] * value; + + // Constraint: ecdsa/signature0/r_and_w_nonzero. + value = (column11_row9 * column11_row16355 - 1) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[115] * value; + + // Constraint: ecdsa/signature0/q_on_curve/x_squared. + value = (column11_row32747 - column11_row1 * column11_row1) + .field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[116] * value; + + // Constraint: ecdsa/signature0/q_on_curve/on_curve. + value = (column11_row33 * column11_row33 + - (column11_row1 * column11_row32747 + + global_values.ecdsa_sig_config.alpha * column11_row1 + + global_values.ecdsa_sig_config.beta)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[117] * value; + + // Constraint: ecdsa/init_addr. + value = (column8_row390 - global_values.initial_ecdsa_addr) + .field_div(&NonZeroFelt::from_felt_unchecked(domain144)); + total_sum += constraint_coefficients[118] * value; + + // Constraint: ecdsa/message_addr. + value = (column8_row16774 - (column8_row390 + 1)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[119] * value; + + // Constraint: ecdsa/pubkey_addr. + value = (column8_row33158 - (column8_row16774 + 1)) + * domain150.field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[120] * value; + + // Constraint: ecdsa/message_value0. + value = + (column8_row16775 - column11_row59).field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[121] * value; + + // Constraint: ecdsa/pubkey_value0. + value = (column8_row391 - column11_row1).field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[122] * value; + + // Constraint: bitwise/init_var_pool_addr. + value = (column8_row198 - global_values.initial_bitwise_addr) + .field_div(&NonZeroFelt::from_felt_unchecked(domain144)); + total_sum += constraint_coefficients[123] * value; + + // Constraint: bitwise/step_var_pool_addr. + value = (column8_row454 - (column8_row198 + 1)) + * domain19.field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[124] * value; + + // Constraint: bitwise/x_or_y_addr. + value = (column8_row902 - (column8_row966 + 1)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain20)); + total_sum += constraint_coefficients[125] * value; + + // Constraint: bitwise/next_var_pool_addr. + value = (column8_row1222 - (column8_row902 + 1)) + * domain151.field_div(&NonZeroFelt::from_felt_unchecked(domain20)); + total_sum += constraint_coefficients[126] * value; + + // Constraint: bitwise/partition. + value = (bitwise_sum_var_0_0 + bitwise_sum_var_8_0 - column8_row199) + .field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[127] * value; + + // Constraint: bitwise/or_is_and_plus_xor. + value = (column8_row903 - (column8_row711 + column8_row967)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain20)); + total_sum += constraint_coefficients[128] * value; + + // Constraint: bitwise/addition_is_xor_with_and. + value = (column1_row0 + column1_row256 - (column1_row768 + column1_row512 + column1_row512)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain21)); + total_sum += constraint_coefficients[129] * value; + + // Constraint: bitwise/unique_unpacking192. + value = ((column1_row704 + column1_row960) * Felt::from(16) - column1_row8) + .field_div(&NonZeroFelt::from_felt_unchecked(domain20)); + total_sum += constraint_coefficients[130] * value; + + // Constraint: bitwise/unique_unpacking193. + value = ((column1_row720 + column1_row976) * Felt::from(16) - column1_row520) + .field_div(&NonZeroFelt::from_felt_unchecked(domain20)); + total_sum += constraint_coefficients[131] * value; + + // Constraint: bitwise/unique_unpacking194. + value = ((column1_row736 + column1_row992) * Felt::from(16) - column1_row264) + .field_div(&NonZeroFelt::from_felt_unchecked(domain20)); + total_sum += constraint_coefficients[132] * value; + + // Constraint: bitwise/unique_unpacking195. + value = ((column1_row752 + column1_row1008) * Felt::from(256) - column1_row776) + .field_div(&NonZeroFelt::from_felt_unchecked(domain20)); + total_sum += constraint_coefficients[133] * value; + + // Constraint: ec_op/init_addr. + value = (column8_row8582 - global_values.initial_ec_op_addr) + .field_div(&NonZeroFelt::from_felt_unchecked(domain144)); + total_sum += constraint_coefficients[134] * value; + + // Constraint: ec_op/p_x_addr. + value = (column8_row24966 - (column8_row8582 + 7)) + * domain152.field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[135] * value; + + // Constraint: ec_op/p_y_addr. + value = (column8_row4486 - (column8_row8582 + 1)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[136] * value; + + // Constraint: ec_op/q_x_addr. + value = (column8_row12678 - (column8_row4486 + 1)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[137] * value; + + // Constraint: ec_op/q_y_addr. + value = (column8_row2438 - (column8_row12678 + 1)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[138] * value; + + // Constraint: ec_op/m_addr. + value = (column8_row10630 - (column8_row2438 + 1)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[139] * value; + + // Constraint: ec_op/r_x_addr. + value = (column8_row6534 - (column8_row10630 + 1)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[140] * value; + + // Constraint: ec_op/r_y_addr. + value = (column8_row14726 - (column8_row6534 + 1)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[141] * value; + + // Constraint: ec_op/doubling_q/slope. + value = (ec_op_doubling_q_x_squared_0 + + ec_op_doubling_q_x_squared_0 + + ec_op_doubling_q_x_squared_0 + + global_values.ec_op_curve_config.alpha + - (column11_row25 + column11_row25) * column11_row57) + * domain27.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[142] * value; + + // Constraint: ec_op/doubling_q/x. + value = (column11_row57 * column11_row57 - (column11_row41 + column11_row41 + column11_row105)) + * domain27.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[143] * value; + + // Constraint: ec_op/doubling_q/y. + value = (column11_row25 + column11_row89 - column11_row57 * (column11_row41 - column11_row105)) + * domain27.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[144] * value; + + // Constraint: ec_op/get_q_x. + value = + (column8_row12679 - column11_row41).field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[145] * value; + + // Constraint: ec_op/get_q_y. + value = + (column8_row2439 - column11_row25).field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[146] * value; + + // Constraint: ec_op/ec_subset_sum/bit_unpacking/last_one_is_zero. + value = (column11_row16371 * (column11_row21 - (column11_row85 + column11_row85))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[147] * value; + + // Constraint: ec_op/ec_subset_sum/bit_unpacking/zeroes_between_ones0. + value = (column11_row16371 + * (column11_row85 + - Felt::from_hex_unchecked("0x800000000000000000000000000000000000000000000000") + * column11_row12309)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[148] * value; + + // Constraint: ec_op/ec_subset_sum/bit_unpacking/cumulative_bit192. + value = (column11_row16371 + - column11_row16339 * (column11_row12309 - (column11_row12373 + column11_row12373))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[149] * value; + + // Constraint: ec_op/ec_subset_sum/bit_unpacking/zeroes_between_ones192. + value = (column11_row16339 * (column11_row12373 - Felt::from(8) * column11_row12565)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[150] * value; + + // Constraint: ec_op/ec_subset_sum/bit_unpacking/cumulative_bit196. + value = (column11_row16339 + - (column11_row16085 - (column11_row16149 + column11_row16149)) + * (column11_row12565 - (column11_row12629 + column11_row12629))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[151] * value; + + // Constraint: ec_op/ec_subset_sum/bit_unpacking/zeroes_between_ones196. + value = ((column11_row16085 - (column11_row16149 + column11_row16149)) + * (column11_row12629 - Felt::from_hex_unchecked("0x40000000000000") * column11_row16085)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[152] * value; + + // Constraint: ec_op/ec_subset_sum/booleanity_test. + value = (ec_op_ec_subset_sum_bit_0 * (ec_op_ec_subset_sum_bit_0 - 1)) + * domain27.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[153] * value; + + // Constraint: ec_op/ec_subset_sum/bit_extraction_end. + value = (column11_row21).field_div(&NonZeroFelt::from_felt_unchecked(domain30)); + total_sum += constraint_coefficients[154] * value; + + // Constraint: ec_op/ec_subset_sum/zeros_tail. + value = (column11_row21).field_div(&NonZeroFelt::from_felt_unchecked(domain27)); + total_sum += constraint_coefficients[155] * value; + + // Constraint: ec_op/ec_subset_sum/add_points/slope. + value = (ec_op_ec_subset_sum_bit_0 * (column11_row37 - column11_row25) + - column11_row11 * (column11_row5 - column11_row41)) + * domain27.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[156] * value; + + // Constraint: ec_op/ec_subset_sum/add_points/x. + value = (column11_row11 * column11_row11 + - ec_op_ec_subset_sum_bit_0 * (column11_row5 + column11_row41 + column11_row69)) + * domain27.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[157] * value; + + // Constraint: ec_op/ec_subset_sum/add_points/y. + value = (ec_op_ec_subset_sum_bit_0 * (column11_row37 + column11_row101) + - column11_row11 * (column11_row5 - column11_row69)) + * domain27.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[158] * value; + + // Constraint: ec_op/ec_subset_sum/add_points/x_diff_inv. + value = (column11_row43 * (column11_row5 - column11_row41) - 1) + * domain27.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[159] * value; + + // Constraint: ec_op/ec_subset_sum/copy_point/x. + value = (ec_op_ec_subset_sum_bit_neg_0 * (column11_row69 - column11_row5)) + * domain27.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[160] * value; + + // Constraint: ec_op/ec_subset_sum/copy_point/y. + value = (ec_op_ec_subset_sum_bit_neg_0 * (column11_row101 - column11_row37)) + * domain27.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[161] * value; + + // Constraint: ec_op/get_m. + value = + (column11_row21 - column8_row10631).field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[162] * value; + + // Constraint: ec_op/get_p_x. + value = + (column8_row8583 - column11_row5).field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[163] * value; + + // Constraint: ec_op/get_p_y. + value = + (column8_row4487 - column11_row37).field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[164] * value; + + // Constraint: ec_op/set_r_x. + value = (column8_row6535 - column11_row16325) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[165] * value; + + // Constraint: ec_op/set_r_y. + value = (column8_row14727 - column11_row16357) + .field_div(&NonZeroFelt::from_felt_unchecked(domain29)); + total_sum += constraint_coefficients[166] * value; + + // Constraint: keccak/init_input_output_addr. + value = (column8_row1414 - global_values.initial_keccak_addr) + .field_div(&NonZeroFelt::from_felt_unchecked(domain144)); + total_sum += constraint_coefficients[167] * value; + + // Constraint: keccak/addr_input_output_step. + value = (column8_row3462 - (column8_row1414 + 1)) + * domain153.field_div(&NonZeroFelt::from_felt_unchecked(domain22)); + total_sum += constraint_coefficients[168] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate0_w0. + value = (column8_row1415 - column7_row0).field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[169] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate0_w1. + value = (column8_row3463 - column7_row1).field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[170] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate0_w2. + value = (column8_row5511 - column7_row2).field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[171] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate0_w3. + value = (column8_row7559 - column7_row3).field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[172] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate0_w4. + value = (column8_row9607 - column7_row4).field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[173] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate0_w5. + value = + (column8_row11655 - column7_row5).field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[174] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate0_w6. + value = + (column8_row13703 - column7_row6).field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[175] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate0_w7. + value = + (column8_row15751 - column7_row7).field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[176] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate1_w0. + value = + (column8_row17799 - column7_row8).field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[177] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate1_w1. + value = + (column8_row19847 - column7_row9).field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[178] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate1_w2. + value = + (column8_row21895 - column7_row10).field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[179] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate1_w3. + value = + (column8_row23943 - column7_row11).field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[180] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate1_w4. + value = + (column8_row25991 - column7_row12).field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[181] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate1_w5. + value = + (column8_row28039 - column7_row13).field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[182] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate1_w6. + value = + (column8_row30087 - column7_row14).field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[183] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_intermediate1_w7. + value = + (column8_row32135 - column7_row15).field_div(&NonZeroFelt::from_felt_unchecked(domain33)); + total_sum += constraint_coefficients[184] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final0. + value = + (column7_row0 - column7_row16144).field_div(&NonZeroFelt::from_felt_unchecked(domain36)); + total_sum += constraint_coefficients[185] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final1. + value = (column7_row32768 - column7_row16160) + .field_div(&NonZeroFelt::from_felt_unchecked(domain36)); + total_sum += constraint_coefficients[186] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final2. + value = (column7_row65536 - column7_row16176) + .field_div(&NonZeroFelt::from_felt_unchecked(domain36)); + total_sum += constraint_coefficients[187] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final3. + value = (column7_row98304 - column7_row16192) + .field_div(&NonZeroFelt::from_felt_unchecked(domain36)); + total_sum += constraint_coefficients[188] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final4. + value = (column7_row131072 - column7_row16208) + .field_div(&NonZeroFelt::from_felt_unchecked(domain36)); + total_sum += constraint_coefficients[189] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final5. + value = (column7_row163840 - column7_row16224) + .field_div(&NonZeroFelt::from_felt_unchecked(domain36)); + total_sum += constraint_coefficients[190] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final6. + value = (column7_row196608 - column7_row16240) + .field_div(&NonZeroFelt::from_felt_unchecked(domain36)); + total_sum += constraint_coefficients[191] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final7. + value = (column7_row229376 - column7_row16256) + .field_div(&NonZeroFelt::from_felt_unchecked(domain36)); + total_sum += constraint_coefficients[192] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final8. + value = (column7_row262144 - column7_row16272) + .field_div(&NonZeroFelt::from_felt_unchecked(domain36)); + total_sum += constraint_coefficients[193] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final9. + value = (column7_row294912 - column7_row16288) + .field_div(&NonZeroFelt::from_felt_unchecked(domain36)); + total_sum += constraint_coefficients[194] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final10. + value = (column7_row327680 - column7_row16304) + .field_div(&NonZeroFelt::from_felt_unchecked(domain36)); + total_sum += constraint_coefficients[195] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final11. + value = (column7_row360448 - column7_row16320) + .field_div(&NonZeroFelt::from_felt_unchecked(domain36)); + total_sum += constraint_coefficients[196] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final12. + value = (column7_row393216 - column7_row16336) + .field_div(&NonZeroFelt::from_felt_unchecked(domain36)); + total_sum += constraint_coefficients[197] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final13. + value = (column7_row425984 - column7_row16352) + .field_div(&NonZeroFelt::from_felt_unchecked(domain36)); + total_sum += constraint_coefficients[198] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final14. + value = (column7_row458752 - column7_row16368) + .field_div(&NonZeroFelt::from_felt_unchecked(domain36)); + total_sum += constraint_coefficients[199] * value; + + // Constraint: keccak/keccak/parse_to_diluted/reshape_final15. + value = (column7_row491520 - column7_row16384) + .field_div(&NonZeroFelt::from_felt_unchecked(domain36)); + total_sum += constraint_coefficients[200] * value; + + // Constraint: keccak/keccak/parse_to_diluted/start_accumulation. + value = (column10_row6403).field_div(&NonZeroFelt::from_felt_unchecked(domain40)); + total_sum += constraint_coefficients[201] * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_first_invocation0. + value = (column7_row16144 - keccak_keccak_parse_to_diluted_sum_words_over_instances0_0) + .field_div(&NonZeroFelt::from_felt_unchecked(domain35)); + total_sum += constraint_coefficients[202] * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations0. + value = (column7_row16160 + + keccak_keccak_parse_to_diluted_sum_words_over_instances0_0 * Felt::from(16) + - keccak_keccak_parse_to_diluted_sum_words_over_instances0_2) + .field_div(&NonZeroFelt::from_felt_unchecked(domain39)); + total_sum += constraint_coefficients[203] * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_first_invocation1. + value = (column7_row16145 - keccak_keccak_parse_to_diluted_sum_words_over_instances1_0) + .field_div(&NonZeroFelt::from_felt_unchecked(domain35)); + total_sum += constraint_coefficients[204] * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations1. + value = (column7_row16161 + + keccak_keccak_parse_to_diluted_sum_words_over_instances1_0 * Felt::from(16) + - keccak_keccak_parse_to_diluted_sum_words_over_instances1_2) + .field_div(&NonZeroFelt::from_felt_unchecked(domain39)); + total_sum += constraint_coefficients[205] * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_first_invocation2. + value = (column7_row16146 - keccak_keccak_parse_to_diluted_sum_words_over_instances2_0) + .field_div(&NonZeroFelt::from_felt_unchecked(domain35)); + total_sum += constraint_coefficients[206] * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations2. + value = (column7_row16162 + + keccak_keccak_parse_to_diluted_sum_words_over_instances2_0 * Felt::from(16) + - keccak_keccak_parse_to_diluted_sum_words_over_instances2_2) + .field_div(&NonZeroFelt::from_felt_unchecked(domain39)); + total_sum += constraint_coefficients[207] * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_first_invocation3. + value = (column7_row16147 - keccak_keccak_parse_to_diluted_sum_words_over_instances3_0) + .field_div(&NonZeroFelt::from_felt_unchecked(domain35)); + total_sum += constraint_coefficients[208] * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations3. + value = (column7_row16163 + + keccak_keccak_parse_to_diluted_sum_words_over_instances3_0 * Felt::from(16) + - keccak_keccak_parse_to_diluted_sum_words_over_instances3_2) + .field_div(&NonZeroFelt::from_felt_unchecked(domain39)); + total_sum += constraint_coefficients[209] * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_first_invocation4. + value = (column7_row16148 - keccak_keccak_parse_to_diluted_sum_words_over_instances4_0) + .field_div(&NonZeroFelt::from_felt_unchecked(domain35)); + total_sum += constraint_coefficients[210] * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations4. + value = (column7_row16164 + + keccak_keccak_parse_to_diluted_sum_words_over_instances4_0 * Felt::from(16) + - keccak_keccak_parse_to_diluted_sum_words_over_instances4_2) + .field_div(&NonZeroFelt::from_felt_unchecked(domain39)); + total_sum += constraint_coefficients[211] * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_first_invocation5. + value = (column7_row16149 - keccak_keccak_parse_to_diluted_sum_words_over_instances5_0) + .field_div(&NonZeroFelt::from_felt_unchecked(domain35)); + total_sum += constraint_coefficients[212] * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations5. + value = (column7_row16165 + + keccak_keccak_parse_to_diluted_sum_words_over_instances5_0 * Felt::from(16) + - keccak_keccak_parse_to_diluted_sum_words_over_instances5_2) + .field_div(&NonZeroFelt::from_felt_unchecked(domain39)); + total_sum += constraint_coefficients[213] * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_first_invocation6. + value = (column7_row16150 - keccak_keccak_parse_to_diluted_sum_words_over_instances6_0) + .field_div(&NonZeroFelt::from_felt_unchecked(domain35)); + total_sum += constraint_coefficients[214] * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations6. + value = (column7_row16166 + + keccak_keccak_parse_to_diluted_sum_words_over_instances6_0 * Felt::from(16) + - keccak_keccak_parse_to_diluted_sum_words_over_instances6_2) + .field_div(&NonZeroFelt::from_felt_unchecked(domain39)); + total_sum += constraint_coefficients[215] * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_first_invocation7. + value = (column7_row16151 - keccak_keccak_parse_to_diluted_sum_words_over_instances7_0) + .field_div(&NonZeroFelt::from_felt_unchecked(domain35)); + total_sum += constraint_coefficients[216] * value; + + // Constraint: keccak/keccak/parse_to_diluted/init_other_invocations7. + value = (column7_row16167 + + keccak_keccak_parse_to_diluted_sum_words_over_instances7_0 * Felt::from(16) + - keccak_keccak_parse_to_diluted_sum_words_over_instances7_2) + .field_div(&NonZeroFelt::from_felt_unchecked(domain39)); + total_sum += constraint_coefficients[217] * value; + + // Constraint: keccak/keccak/parse_to_diluted/extract_bit_first_invocation1. + value = (keccak_keccak_parse_to_diluted_partial_diluted1_0 + * keccak_keccak_parse_to_diluted_partial_diluted1_0 + - keccak_keccak_parse_to_diluted_partial_diluted1_0) + .field_div(&NonZeroFelt::from_felt_unchecked(domain43)); + total_sum += constraint_coefficients[218] * value; + + // Constraint: keccak/keccak/parse_to_diluted/extract_bit_other_invocations1. + value = (keccak_keccak_parse_to_diluted_bit_other1_0 + * keccak_keccak_parse_to_diluted_bit_other1_0 + - keccak_keccak_parse_to_diluted_bit_other1_0) + .field_div(&NonZeroFelt::from_felt_unchecked(domain44)); + total_sum += constraint_coefficients[219] * value; + + // Constraint: keccak/keccak/parse_to_diluted/to_diluted0_p1. + value = (keccak_keccak_parse_to_diluted_partial_diluted1_30 - column1_row516100) + .field_div(&NonZeroFelt::from_felt_unchecked(domain45)); + total_sum += constraint_coefficients[220] * value; + + // Constraint: keccak/keccak/parse_to_diluted/to_diluted1_p1. + value = (keccak_keccak_parse_to_diluted_partial_diluted1_31 - column1_row516292) + .field_div(&NonZeroFelt::from_felt_unchecked(domain45)); + total_sum += constraint_coefficients[221] * value; + + // Constraint: keccak/keccak/parse_to_diluted/extract_bit_first_invocation0. + value = (keccak_keccak_parse_to_diluted_partial_diluted0_0 + * keccak_keccak_parse_to_diluted_partial_diluted0_0 + - keccak_keccak_parse_to_diluted_partial_diluted0_0) + * domain49.field_div(&NonZeroFelt::from_felt_unchecked(domain11)); + total_sum += constraint_coefficients[222] * value; + + // Constraint: keccak/keccak/parse_to_diluted/extract_bit_other_invocations0. + value = (keccak_keccak_parse_to_diluted_bit_other0_0 + * keccak_keccak_parse_to_diluted_bit_other0_0 + - keccak_keccak_parse_to_diluted_bit_other0_0) + * domain52.field_div(&NonZeroFelt::from_felt_unchecked(domain3)); + total_sum += constraint_coefficients[223] * value; + + // Constraint: keccak/keccak/parse_to_diluted/to_diluted0_p0. + value = (keccak_keccak_parse_to_diluted_partial_diluted0_30 - column1_row4) + * domain53.field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[224] * value; + + // Constraint: keccak/keccak/parse_to_diluted/to_diluted1_p0. + value = (keccak_keccak_parse_to_diluted_partial_diluted0_31 - column1_row196) + * domain53.field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[225] * value; + + // Constraint: keccak/keccak/parity0. + value = (column1_row4 + column1_row1284 + column1_row2564 + column1_row3844 + column1_row5124 + - (column1_row6404 + column1_row6598 + column1_row6598 + column1_row6978 * Felt::from(4))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[226] * value; + + // Constraint: keccak/keccak/parity1. + value = (column1_row260 + + column1_row1540 + + column1_row2820 + + column1_row4100 + + column1_row5380 + - (column1_row6402 + column1_row6788 + column1_row6788 + column1_row6982 * Felt::from(4))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[227] * value; + + // Constraint: keccak/keccak/parity2. + value = (column1_row516 + + column1_row1796 + + column1_row3076 + + column1_row4356 + + column1_row5636 + - (column1_row6406 + column1_row6786 + column1_row6786 + column1_row7172 * Felt::from(4))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[228] * value; + + // Constraint: keccak/keccak/parity3. + value = (column1_row772 + + column1_row2052 + + column1_row3332 + + column1_row4612 + + column1_row5892 + - (column1_row6596 + column1_row6790 + column1_row6790 + column1_row7170 * Felt::from(4))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[229] * value; + + // Constraint: keccak/keccak/parity4. + value = (column1_row1028 + + column1_row2308 + + column1_row3588 + + column1_row4868 + + column1_row6148 + - (column1_row6594 + column1_row6980 + column1_row6980 + column1_row7174 * Felt::from(4))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[230] * value; + + // Constraint: keccak/keccak/rotate_parity0/n0. + value = + (column10_row7 - column1_row522500).field_div(&NonZeroFelt::from_felt_unchecked(domain38)); + total_sum += constraint_coefficients[231] * value; + + // Constraint: keccak/keccak/rotate_parity0/n1. + value = (column10_row8199 - column1_row6404) + * domain55.field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[232] * value; + + // Constraint: keccak/keccak/rotate_parity1/n0. + value = (column10_row8003 - column1_row522498) + .field_div(&NonZeroFelt::from_felt_unchecked(domain38)); + total_sum += constraint_coefficients[233] * value; + + // Constraint: keccak/keccak/rotate_parity1/n1. + value = (column10_row16195 - column1_row6402) + * domain55.field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[234] * value; + + // Constraint: keccak/keccak/rotate_parity2/n0. + value = (column10_row4103 - column1_row522502) + .field_div(&NonZeroFelt::from_felt_unchecked(domain38)); + total_sum += constraint_coefficients[235] * value; + + // Constraint: keccak/keccak/rotate_parity2/n1. + value = (column10_row12295 - column1_row6406) + * domain55.field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[236] * value; + + // Constraint: keccak/keccak/rotate_parity3/n0. + value = (column10_row7811 - column1_row522692) + .field_div(&NonZeroFelt::from_felt_unchecked(domain38)); + total_sum += constraint_coefficients[237] * value; + + // Constraint: keccak/keccak/rotate_parity3/n1. + value = (column10_row16003 - column1_row6596) + * domain55.field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[238] * value; + + // Constraint: keccak/keccak/rotate_parity4/n0. + value = (column10_row2055 - column1_row522690) + .field_div(&NonZeroFelt::from_felt_unchecked(domain38)); + total_sum += constraint_coefficients[239] * value; + + // Constraint: keccak/keccak/rotate_parity4/n1. + value = (column10_row10247 - column1_row6594) + * domain55.field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[240] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i0_j0. + value = (keccak_keccak_sum_parities0_0 + column1_row4 + - (column1_row1 + column1_row7364 + column1_row7364)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[241] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i0_j1/n0. + value = (keccak_keccak_sum_parities1_0 + column1_row260 + - (column1_row10753 + column1_row15942 + column1_row15942)) + * domain55.field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[242] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i0_j1/n1. + value = (keccak_keccak_sum_parities1_64512 + column1_row516356 + - (column1_row2561 + column1_row7750 + column1_row7750)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain38)); + total_sum += constraint_coefficients[243] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i0_j2/n0. + value = (keccak_keccak_sum_parities2_0 + column1_row516 + - (column1_row513025 + column1_row515841 + column1_row515841)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain57)); + total_sum += constraint_coefficients[244] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i0_j2/n1. + value = (keccak_keccak_sum_parities2_2048 + column1_row16900 + - (column1_row5121 + column1_row7937 + column1_row7937)) + * domain59.field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[245] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i0_j3/n0. + value = (keccak_keccak_sum_parities3_0 + column1_row772 + - (column1_row230657 + column1_row236930 + column1_row236930)) + * domain85.field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[246] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i0_j3/n1. + value = (keccak_keccak_sum_parities3_36864 + column1_row295684 + - (column1_row1281 + column1_row7554 + column1_row7554)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain117)); + total_sum += constraint_coefficients[247] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i0_j4/n0. + value = (keccak_keccak_sum_parities4_0 + column1_row1028 + - (column1_row225025 + column1_row228161 + column1_row228161)) + * domain84.field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[248] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i0_j4/n1. + value = (keccak_keccak_sum_parities4_37888 + column1_row304132 + - (column1_row3841 + column1_row6977 + column1_row6977)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain116)); + total_sum += constraint_coefficients[249] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i1_j0/n0. + value = (keccak_keccak_sum_parities0_0 + column1_row1284 + - (column1_row299009 + column1_row302081 + column1_row302081)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain117)); + total_sum += constraint_coefficients[250] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i1_j0/n1. + value = (keccak_keccak_sum_parities0_28672 + column1_row230660 + - (column1_row4097 + column1_row7169 + column1_row7169)) + * domain85.field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[251] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i1_j1/n0. + value = (keccak_keccak_sum_parities1_0 + column1_row1540 + - (column1_row360705 + column1_row367810 + column1_row367810)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain110)); + total_sum += constraint_coefficients[252] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i1_j1/n1. + value = (keccak_keccak_sum_parities1_20480 + column1_row165380 + - (column1_row257 + column1_row7362 + column1_row7362)) + * domain78.field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[253] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i1_j2/n0. + value = (keccak_keccak_sum_parities2_0 + column1_row1796 + - (column1_row51969 + column1_row55937 + column1_row55937)) + * domain63.field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[254] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i1_j2/n1. + value = (keccak_keccak_sum_parities2_59392 + column1_row476932 + - (column1_row2817 + column1_row6785 + column1_row6785)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain91)); + total_sum += constraint_coefficients[255] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i1_j3/n0. + value = (keccak_keccak_sum_parities3_0 + column1_row2052 + - (column1_row455937 + column1_row450753 + column1_row450753)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain120)); + total_sum += constraint_coefficients[256] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i1_j3/n1. + value = (keccak_keccak_sum_parities3_8 + column1_row2116 + - (column1_row456001 + column1_row451009 + column1_row451009)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain120)); + total_sum += constraint_coefficients[257] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i1_j3/n2. + value = (keccak_keccak_sum_parities3_16 + column1_row2180 + - (column1_row456065 + column1_row451265 + column1_row451265)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain120)); + total_sum += constraint_coefficients[258] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i1_j3/n3. + value = (keccak_keccak_sum_parities3_9216 + column1_row75780 + - (column1_row5377 + column1_row193 + column1_row193)) + * domain123.field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[259] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i1_j3/n4. + value = (keccak_keccak_sum_parities3_9224 + column1_row75844 + - (column1_row5441 + column1_row449 + column1_row449)) + * domain123.field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[260] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i1_j3/n5. + value = (keccak_keccak_sum_parities3_9232 + column1_row75908 + - (column1_row5505 + column1_row705 + column1_row705)) + * domain123.field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[261] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i1_j4/n0. + value = (keccak_keccak_sum_parities4_0 + column1_row2308 + - (column1_row165377 + column1_row171398 + column1_row171398)) + * domain78.field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[262] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i1_j4/n1. + value = (keccak_keccak_sum_parities4_45056 + column1_row362756 + - (column1_row1537 + column1_row7558 + column1_row7558)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain110)); + total_sum += constraint_coefficients[263] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i2_j0/n0. + value = (keccak_keccak_sum_parities0_0 + column1_row2564 + - (column1_row26369 + column1_row31169 + column1_row31169)) + * domain124.field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[264] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i2_j0/n1. + value = (keccak_keccak_sum_parities0_62464 + column1_row502276 + - (column1_row1793 + column1_row6593 + column1_row6593)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain125)); + total_sum += constraint_coefficients[265] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i2_j1/n0. + value = (keccak_keccak_sum_parities1_0 + column1_row2820 + - (column1_row86273 + column1_row89281 + column1_row89281)) + * domain68.field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[266] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i2_j1/n1. + value = (keccak_keccak_sum_parities1_55296 + column1_row445188 + - (column1_row4353 + column1_row7361 + column1_row7361)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain98)); + total_sum += constraint_coefficients[267] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i2_j2/n0. + value = (keccak_keccak_sum_parities2_0 + column1_row3076 + - (column1_row352769 + column1_row359622 + column1_row359622)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain112)); + total_sum += constraint_coefficients[268] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i2_j2/n1. + value = (keccak_keccak_sum_parities2_21504 + column1_row175108 + - (column1_row513 + column1_row7366 + column1_row7366)) + * domain80.field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[269] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i2_j3/n0. + value = (keccak_keccak_sum_parities3_0 + column1_row3332 + - (column1_row207873 + column1_row212740 + column1_row212740)) + * domain83.field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[270] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i2_j3/n1. + value = (keccak_keccak_sum_parities3_39936 + column1_row322820 + - (column1_row3073 + column1_row7940 + column1_row7940)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain115)); + total_sum += constraint_coefficients[271] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i2_j4/n0. + value = (keccak_keccak_sum_parities4_0 + column1_row3588 + - (column1_row325121 + column1_row320449 + column1_row320449)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain127)); + total_sum += constraint_coefficients[272] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i2_j4/n1. + value = (keccak_keccak_sum_parities4_8 + column1_row3652 + - (column1_row325185 + column1_row320705 + column1_row320705)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain127)); + total_sum += constraint_coefficients[273] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i2_j4/n2. + value = (keccak_keccak_sum_parities4_16 + column1_row3716 + - (column1_row325249 + column1_row320961 + column1_row320961)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain127)); + total_sum += constraint_coefficients[274] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i2_j4/n3. + value = (keccak_keccak_sum_parities4_25600 + column1_row208388 + - (column1_row5633 + column1_row961 + column1_row961)) + * domain129.field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[275] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i2_j4/n4. + value = (keccak_keccak_sum_parities4_25608 + column1_row208452 + - (column1_row5697 + column1_row1217 + column1_row1217)) + * domain129.field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[276] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i2_j4/n5. + value = (keccak_keccak_sum_parities4_25616 + column1_row208516 + - (column1_row5761 + column1_row1473 + column1_row1473)) + * domain129.field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[277] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i3_j0/n0. + value = (keccak_keccak_sum_parities0_0 + column1_row3844 + - (column1_row341761 + column1_row337601 + column1_row337601)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain130)); + total_sum += constraint_coefficients[278] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i3_j0/n1. + value = (keccak_keccak_sum_parities0_8 + column1_row3908 + - (column1_row341825 + column1_row337857 + column1_row337857)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain130)); + total_sum += constraint_coefficients[279] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i3_j0/n2. + value = (keccak_keccak_sum_parities0_16 + column1_row3972 + - (column1_row341889 + column1_row338113 + column1_row338113)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain130)); + total_sum += constraint_coefficients[280] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i3_j0/n3. + value = (keccak_keccak_sum_parities0_23552 + column1_row192260 + - (column1_row5889 + column1_row1729 + column1_row1729)) + * domain131.field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[281] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i3_j0/n4. + value = (keccak_keccak_sum_parities0_23560 + column1_row192324 + - (column1_row5953 + column1_row1985 + column1_row1985)) + * domain131.field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[282] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i3_j0/n5. + value = (keccak_keccak_sum_parities0_23568 + column1_row192388 + - (column1_row6017 + column1_row2241 + column1_row2241)) + * domain131.field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[283] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i3_j1/n0. + value = (keccak_keccak_sum_parities1_0 + column1_row4100 + - (column1_row370689 + column1_row376388 + column1_row376388)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain132)); + total_sum += constraint_coefficients[284] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i3_j1/n1. + value = (keccak_keccak_sum_parities1_19456 + column1_row159748 + - (column1_row2049 + column1_row7748 + column1_row7748)) + * domain133.field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[285] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i3_j2/n0. + value = (keccak_keccak_sum_parities2_0 + column1_row4356 + - (column1_row127489 + column1_row130433 + column1_row130433)) + * domain134.field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[286] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i3_j2/n1. + value = (keccak_keccak_sum_parities2_50176 + column1_row405764 + - (column1_row4609 + column1_row7553 + column1_row7553)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain135)); + total_sum += constraint_coefficients[287] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i3_j3/n0. + value = (keccak_keccak_sum_parities3_0 + column1_row4612 + - (column1_row172801 + column1_row178433 + column1_row178433)) + * domain80.field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[288] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i3_j3/n1. + value = (keccak_keccak_sum_parities3_44032 + column1_row356868 + - (column1_row769 + column1_row6401 + column1_row6401)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain112)); + total_sum += constraint_coefficients[289] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i3_j4/n0. + value = (keccak_keccak_sum_parities4_0 + column1_row4868 + - (column1_row68865 + column1_row73474 + column1_row73474)) + * domain136.field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[290] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i3_j4/n1. + value = (keccak_keccak_sum_parities4_57344 + column1_row463620 + - (column1_row3329 + column1_row7938 + column1_row7938)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain137)); + total_sum += constraint_coefficients[291] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i4_j0/n0. + value = (keccak_keccak_sum_parities0_0 + column1_row5124 + - (column1_row151041 + column1_row155398 + column1_row155398)) + * domain138.field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[292] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i4_j0/n1. + value = (keccak_keccak_sum_parities0_47104 + column1_row381956 + - (column1_row3585 + column1_row7942 + column1_row7942)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain139)); + total_sum += constraint_coefficients[293] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i4_j1/n0. + value = (keccak_keccak_sum_parities1_0 + column1_row5380 + - (column1_row22529 + column1_row18881 + column1_row18881)) + * domain121.field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[294] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i4_j1/n1. + value = (keccak_keccak_sum_parities1_8 + column1_row5444 + - (column1_row22593 + column1_row19137 + column1_row19137)) + * domain121.field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[295] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i4_j1/n2. + value = (keccak_keccak_sum_parities1_16 + column1_row5508 + - (column1_row22657 + column1_row19393 + column1_row19393)) + * domain121.field_div(&NonZeroFelt::from_felt_unchecked(domain23)); + total_sum += constraint_coefficients[296] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i4_j1/n3. + value = (keccak_keccak_sum_parities1_63488 + column1_row513284 + - (column1_row6145 + column1_row2497 + column1_row2497)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain118)); + total_sum += constraint_coefficients[297] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i4_j1/n4. + value = (keccak_keccak_sum_parities1_63496 + column1_row513348 + - (column1_row6209 + column1_row2753 + column1_row2753)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain118)); + total_sum += constraint_coefficients[298] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i4_j1/n5. + value = (keccak_keccak_sum_parities1_63504 + column1_row513412 + - (column1_row6273 + column1_row3009 + column1_row3009)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain118)); + total_sum += constraint_coefficients[299] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i4_j2/n0. + value = (keccak_keccak_sum_parities2_0 + column1_row5636 + - (column1_row502017 + column1_row507458 + column1_row507458)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain125)); + total_sum += constraint_coefficients[300] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i4_j2/n1. + value = (keccak_keccak_sum_parities2_3072 + column1_row30212 + - (column1_row2305 + column1_row7746 + column1_row7746)) + * domain124.field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[301] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i4_j3/n0. + value = (keccak_keccak_sum_parities3_0 + column1_row5892 + - (column1_row463617 + column1_row466497 + column1_row466497)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain137)); + total_sum += constraint_coefficients[302] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i4_j3/n1. + value = (keccak_keccak_sum_parities3_8192 + column1_row71428 + - (column1_row4865 + column1_row7745 + column1_row7745)) + * domain136.field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[303] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i4_j4/n0. + value = (keccak_keccak_sum_parities4_0 + column1_row6148 + - (column1_row115713 + column1_row122244 + column1_row122244)) + * domain140.field_div(&NonZeroFelt::from_felt_unchecked(domain24)); + total_sum += constraint_coefficients[304] * value; + + // Constraint: keccak/keccak/theta_rho_pi_i4_j4/n1. + value = (keccak_keccak_sum_parities4_51200 + column1_row415748 + - (column1_row1025 + column1_row7556 + column1_row7556)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain141)); + total_sum += constraint_coefficients[305] * value; + + // Constraint: keccak/keccak/chi_iota0. + value = (global_values.keccak_keccak_keccak_round_key0 + + column1_row1 + + column1_row1 + + keccak_keccak_after_theta_rho_pi_xor_one_32 + + column1_row513 + - (column1_row2 + column1_row12 + column1_row12 + column1_row6 * Felt::from(4))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain38)); + total_sum += constraint_coefficients[306] * value; + + // Constraint: keccak/keccak/chi_iota1. + value = (global_values.keccak_keccak_keccak_round_key1 + + column1_row8193 + + column1_row8193 + + keccak_keccak_after_theta_rho_pi_xor_one_1056 + + column1_row8705 + - (column1_row8194 + column1_row8204 + column1_row8204 + column1_row8198 * Felt::from(4))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain38)); + total_sum += constraint_coefficients[307] * value; + + // Constraint: keccak/keccak/chi_iota3. + value = (global_values.keccak_keccak_keccak_round_key3 + + column1_row24577 + + column1_row24577 + + keccak_keccak_after_theta_rho_pi_xor_one_3104 + + column1_row25089 + - (column1_row24578 + + column1_row24588 + + column1_row24588 + + column1_row24582 * Felt::from(4))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain38)); + total_sum += constraint_coefficients[308] * value; + + // Constraint: keccak/keccak/chi_iota7. + value = (global_values.keccak_keccak_keccak_round_key7 + + column1_row57345 + + column1_row57345 + + keccak_keccak_after_theta_rho_pi_xor_one_7200 + + column1_row57857 + - (column1_row57346 + + column1_row57356 + + column1_row57356 + + column1_row57350 * Felt::from(4))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain38)); + total_sum += constraint_coefficients[309] * value; + + // Constraint: keccak/keccak/chi_iota15. + value = (global_values.keccak_keccak_keccak_round_key15 + + column1_row122881 + + column1_row122881 + + keccak_keccak_after_theta_rho_pi_xor_one_15392 + + column1_row123393 + - (column1_row122882 + + column1_row122892 + + column1_row122892 + + column1_row122886 * Felt::from(4))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain38)); + total_sum += constraint_coefficients[310] * value; + + // Constraint: keccak/keccak/chi_iota31. + value = (global_values.keccak_keccak_keccak_round_key31 + + column1_row253953 + + column1_row253953 + + keccak_keccak_after_theta_rho_pi_xor_one_31776 + + column1_row254465 + - (column1_row253954 + + column1_row253964 + + column1_row253964 + + column1_row253958 * Felt::from(4))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain38)); + total_sum += constraint_coefficients[311] * value; + + // Constraint: keccak/keccak/chi_iota63. + value = (global_values.keccak_keccak_keccak_round_key63 + + column1_row516097 + + column1_row516097 + + keccak_keccak_after_theta_rho_pi_xor_one_64544 + + column1_row516609 + - (column1_row516098 + + column1_row516108 + + column1_row516108 + + column1_row516102 * Felt::from(4))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain38)); + total_sum += constraint_coefficients[312] * value; + + // Constraint: keccak/keccak/chi0. + value = (column1_row1 + + column1_row1 + + keccak_keccak_after_theta_rho_pi_xor_one_32 + + column1_row513 + - (column1_row2 + column1_row12 + column1_row12 + column1_row6 * Felt::from(4))) + * domain142.field_div(&NonZeroFelt::from_felt_unchecked(domain26)); + total_sum += constraint_coefficients[313] * value; + + // Constraint: keccak/keccak/chi1. + value = (column1_row1025 + + column1_row1025 + + keccak_keccak_after_theta_rho_pi_xor_one_0 + + column1_row257 + - (column1_row1026 + column1_row1036 + column1_row1036 + column1_row1030 * Felt::from(4))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain25)); + total_sum += constraint_coefficients[314] * value; + + // Constraint: keccak/keccak/chi2. + value = (column1_row769 + + column1_row769 + + keccak_keccak_after_theta_rho_pi_xor_one_128 + + column1_row1 + - (column1_row770 + column1_row780 + column1_row780 + column1_row774 * Felt::from(4))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain25)); + total_sum += constraint_coefficients[315] * value; + + // Constraint: poseidon/param_0/init_input_output_addr. + value = (column8_row38 - global_values.initial_poseidon_addr) + .field_div(&NonZeroFelt::from_felt_unchecked(domain144)); + total_sum += constraint_coefficients[316] * value; + + // Constraint: poseidon/param_0/addr_input_output_step. + value = (column8_row294 - (column8_row38 + 3)) + * domain149.field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[317] * value; + + // Constraint: poseidon/param_1/init_input_output_addr. + value = (column8_row166 - (global_values.initial_poseidon_addr + 1)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain144)); + total_sum += constraint_coefficients[318] * value; + + // Constraint: poseidon/param_1/addr_input_output_step. + value = (column8_row422 - (column8_row166 + 3)) + * domain149.field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[319] * value; + + // Constraint: poseidon/param_2/init_input_output_addr. + value = (column8_row102 - (global_values.initial_poseidon_addr + 2)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain144)); + total_sum += constraint_coefficients[320] * value; + + // Constraint: poseidon/param_2/addr_input_output_step. + value = (column8_row358 - (column8_row102 + 3)) + * domain149.field_div(&NonZeroFelt::from_felt_unchecked(domain8)); + total_sum += constraint_coefficients[321] * value; + + // Constraint: poseidon/poseidon/full_rounds_state0_squaring. + value = (column11_row53 * column11_row53 - column11_row29) + .field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[322] * value; + + // Constraint: poseidon/poseidon/full_rounds_state1_squaring. + value = (column11_row13 * column11_row13 - column11_row61) + .field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[323] * value; + + // Constraint: poseidon/poseidon/full_rounds_state2_squaring. + value = (column11_row45 * column11_row45 - column11_row3) + .field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[324] * value; + + // Constraint: poseidon/poseidon/partial_rounds_state0_squaring. + value = (column10_row1 * column10_row1 - column10_row5) + .field_div(&NonZeroFelt::from_felt_unchecked(domain3)); + total_sum += constraint_coefficients[325] * value; + + // Constraint: poseidon/poseidon/partial_rounds_state1_squaring. + value = (column11_row6 * column11_row6 - column11_row14) + * domain16.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[326] * value; + + // Constraint: poseidon/poseidon/add_first_round_key0. + value = (column8_row39 + + Felt::from_hex_unchecked( + "0x6861759EA556A2339DD92F9562A30B9E58E2AD98109AE4780B7FD8EAC77FE6F", + ) + - column11_row53) + .field_div(&NonZeroFelt::from_felt_unchecked(domain14)); + total_sum += constraint_coefficients[327] * value; + + // Constraint: poseidon/poseidon/add_first_round_key1. + value = (column8_row167 + + Felt::from_hex_unchecked( + "0x3827681995D5AF9FFC8397A3D00425A3DA43F76ABF28A64E4AB1A22F27508C4", + ) + - column11_row13) + .field_div(&NonZeroFelt::from_felt_unchecked(domain14)); + total_sum += constraint_coefficients[328] * value; + + // Constraint: poseidon/poseidon/add_first_round_key2. + value = (column8_row103 + + Felt::from_hex_unchecked( + "0x3A3956D2FAD44D0E7F760A2277DC7CB2CAC75DC279B2D687A0DBE17704A8309", + ) + - column11_row45) + .field_div(&NonZeroFelt::from_felt_unchecked(domain14)); + total_sum += constraint_coefficients[329] * value; + + // Constraint: poseidon/poseidon/full_round0. + value = (column11_row117 + - (poseidon_poseidon_full_rounds_state0_cubed_0 + + poseidon_poseidon_full_rounds_state0_cubed_0 + + poseidon_poseidon_full_rounds_state0_cubed_0 + + poseidon_poseidon_full_rounds_state1_cubed_0 + + poseidon_poseidon_full_rounds_state2_cubed_0 + + global_values.poseidon_poseidon_full_round_key0)) + * domain12.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[330] * value; + + // Constraint: poseidon/poseidon/full_round1. + value = (column11_row77 + poseidon_poseidon_full_rounds_state1_cubed_0 + - (poseidon_poseidon_full_rounds_state0_cubed_0 + + poseidon_poseidon_full_rounds_state2_cubed_0 + + global_values.poseidon_poseidon_full_round_key1)) + * domain12.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[331] * value; + + // Constraint: poseidon/poseidon/full_round2. + value = (column11_row109 + + poseidon_poseidon_full_rounds_state2_cubed_0 + + poseidon_poseidon_full_rounds_state2_cubed_0 + - (poseidon_poseidon_full_rounds_state0_cubed_0 + + poseidon_poseidon_full_rounds_state1_cubed_0 + + global_values.poseidon_poseidon_full_round_key2)) + * domain12.field_div(&NonZeroFelt::from_felt_unchecked(domain6)); + total_sum += constraint_coefficients[332] * value; + + // Constraint: poseidon/poseidon/last_full_round0. + value = (column8_row295 + - (poseidon_poseidon_full_rounds_state0_cubed_7 + + poseidon_poseidon_full_rounds_state0_cubed_7 + + poseidon_poseidon_full_rounds_state0_cubed_7 + + poseidon_poseidon_full_rounds_state1_cubed_7 + + poseidon_poseidon_full_rounds_state2_cubed_7)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain14)); + total_sum += constraint_coefficients[333] * value; + + // Constraint: poseidon/poseidon/last_full_round1. + value = (column8_row423 + poseidon_poseidon_full_rounds_state1_cubed_7 + - (poseidon_poseidon_full_rounds_state0_cubed_7 + + poseidon_poseidon_full_rounds_state2_cubed_7)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain14)); + total_sum += constraint_coefficients[334] * value; + + // Constraint: poseidon/poseidon/last_full_round2. + value = (column8_row359 + + poseidon_poseidon_full_rounds_state2_cubed_7 + + poseidon_poseidon_full_rounds_state2_cubed_7 + - (poseidon_poseidon_full_rounds_state0_cubed_7 + + poseidon_poseidon_full_rounds_state1_cubed_7)) + .field_div(&NonZeroFelt::from_felt_unchecked(domain14)); + total_sum += constraint_coefficients[335] * value; + + // Constraint: poseidon/poseidon/copy_partial_rounds0_i0. + value = + (column10_row489 - column11_row6).field_div(&NonZeroFelt::from_felt_unchecked(domain14)); + total_sum += constraint_coefficients[336] * value; + + // Constraint: poseidon/poseidon/copy_partial_rounds0_i1. + value = + (column10_row497 - column11_row22).field_div(&NonZeroFelt::from_felt_unchecked(domain14)); + total_sum += constraint_coefficients[337] * value; + + // Constraint: poseidon/poseidon/copy_partial_rounds0_i2. + value = + (column10_row505 - column11_row38).field_div(&NonZeroFelt::from_felt_unchecked(domain14)); + total_sum += constraint_coefficients[338] * value; + + // Constraint: poseidon/poseidon/margin_full_to_partial0. + value = (column10_row1 + + poseidon_poseidon_full_rounds_state2_cubed_3 + + poseidon_poseidon_full_rounds_state2_cubed_3 + - (poseidon_poseidon_full_rounds_state0_cubed_3 + + poseidon_poseidon_full_rounds_state1_cubed_3 + + Felt::from_hex_unchecked( + "0x4B085EB1DF4258C3453CC97445954BF3433B6AB9DD5A99592864C00F54A3F9A", + ))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain14)); + total_sum += constraint_coefficients[339] * value; + + // Constraint: poseidon/poseidon/margin_full_to_partial1. + value = (column10_row9 + - (Felt::from_hex_unchecked( + "0x800000000000010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD", + ) * poseidon_poseidon_full_rounds_state1_cubed_3 + + Felt::from(10) * poseidon_poseidon_full_rounds_state2_cubed_3 + + Felt::from(4) * column10_row1 + + Felt::from_hex_unchecked( + "0x800000000000010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", + ) * poseidon_poseidon_partial_rounds_state0_cubed_0 + + Felt::from_hex_unchecked( + "0x46FB825257FEC76C50FE043684D4E6D2D2F2FDFE9B7C8D7128CA7ACC0F66F30", + ))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain14)); + total_sum += constraint_coefficients[340] * value; + + // Constraint: poseidon/poseidon/margin_full_to_partial2. + value = (column10_row17 + - (Felt::from(8) * poseidon_poseidon_full_rounds_state2_cubed_3 + + Felt::from(4) * column10_row1 + + Felt::from(6) * poseidon_poseidon_partial_rounds_state0_cubed_0 + + column10_row9 + + column10_row9 + + Felt::from_hex_unchecked( + "0x800000000000010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", + ) * poseidon_poseidon_partial_rounds_state0_cubed_1 + + Felt::from_hex_unchecked( + "0xF2193BA0C7EA33CE6222D9446C1E166202AE5461005292F4A2BCB93420151A", + ))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain14)); + total_sum += constraint_coefficients[341] * value; + + // Constraint: poseidon/poseidon/partial_round0. + value = (column10_row25 + - (Felt::from(8) * poseidon_poseidon_partial_rounds_state0_cubed_0 + + Felt::from(4) * column10_row9 + + Felt::from(6) * poseidon_poseidon_partial_rounds_state0_cubed_1 + + column10_row17 + + column10_row17 + + Felt::from_hex_unchecked( + "0x800000000000010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", + ) * poseidon_poseidon_partial_rounds_state0_cubed_2 + + global_values.poseidon_poseidon_partial_round_key0)) + * domain17.field_div(&NonZeroFelt::from_felt_unchecked(domain3)); + total_sum += constraint_coefficients[342] * value; + + // Constraint: poseidon/poseidon/partial_round1. + value = (column11_row54 + - (Felt::from(8) * poseidon_poseidon_partial_rounds_state1_cubed_0 + + Felt::from(4) * column11_row22 + + Felt::from(6) * poseidon_poseidon_partial_rounds_state1_cubed_1 + + column11_row38 + + column11_row38 + + Felt::from_hex_unchecked( + "0x800000000000010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", + ) * poseidon_poseidon_partial_rounds_state1_cubed_2 + + global_values.poseidon_poseidon_partial_round_key1)) + * domain18.field_div(&NonZeroFelt::from_felt_unchecked(domain5)); + total_sum += constraint_coefficients[343] * value; + + // Constraint: poseidon/poseidon/margin_partial_to_full0. + value = (column11_row309 + - (Felt::from(16) * poseidon_poseidon_partial_rounds_state1_cubed_19 + + Felt::from(8) * column11_row326 + + Felt::from(16) * poseidon_poseidon_partial_rounds_state1_cubed_20 + + Felt::from(6) * column11_row342 + + poseidon_poseidon_partial_rounds_state1_cubed_21 + + Felt::from_hex_unchecked( + "0x13D1B5CFD87693224F0AC561AB2C15CA53365D768311AF59CEFAF701BC53B37", + ))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain14)); + total_sum += constraint_coefficients[344] * value; + + // Constraint: poseidon/poseidon/margin_partial_to_full1. + value = (column11_row269 + - (Felt::from(4) * poseidon_poseidon_partial_rounds_state1_cubed_20 + + column11_row342 + + column11_row342 + + poseidon_poseidon_partial_rounds_state1_cubed_21 + + Felt::from_hex_unchecked( + "0x3195D6B2D930E71CEDE286D5B8B41D49296DDF222BCD3BF3717A12A9A6947FF", + ))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain14)); + total_sum += constraint_coefficients[345] * value; + + // Constraint: poseidon/poseidon/margin_partial_to_full2. + value = (column11_row301 + - (Felt::from(8) * poseidon_poseidon_partial_rounds_state1_cubed_19 + + Felt::from(4) * column11_row326 + + Felt::from(6) * poseidon_poseidon_partial_rounds_state1_cubed_20 + + column11_row342 + + column11_row342 + + Felt::from_hex_unchecked( + "0x800000000000010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", + ) * poseidon_poseidon_partial_rounds_state1_cubed_21 + + Felt::from_hex_unchecked( + "0x2C14FCCABC26929170CC7AC9989C823608B9008BEF3B8E16B6089A5D33CD72E", + ))) + .field_div(&NonZeroFelt::from_felt_unchecked(domain14)); + total_sum += constraint_coefficients[346] * value; + + total_sum +} + +pub fn eval_oods_polynomial_inner( + column_values: &[Felt], + oods_values: &[Felt], + constraint_coefficients: &[Felt], + point: &Felt, + oods_point: &Felt, + trace_generator: &Felt, +) -> Felt { + // Compute powers. + let pow0 = trace_generator.pow(0_u128); + let pow1 = trace_generator.pow(446471_u128); + let pow2 = trace_generator.pow(397827_u128); + let pow3 = trace_generator.pow(384835_u128); + let pow4 = trace_generator.pow(321543_u128); + let pow5 = trace_generator.pow(132611_u128); + let pow6 = trace_generator.pow(66307_u128); + let pow7 = trace_generator.pow(3462_u128); + let pow8 = trace_generator.pow(515841_u128); + let pow9 = trace_generator.pow(513025_u128); + let pow10 = trace_generator.pow(506306_u128); + let pow11 = trace_generator.pow(502017_u128); + let pow12 = trace_generator.pow(476932_u128); + let pow13 = trace_generator.pow(455937_u128); + let pow14 = trace_generator.pow(450753_u128); + let pow15 = trace_generator.pow(448772_u128); + let pow16 = trace_generator.pow(445188_u128); + let pow17 = trace_generator.pow(383426_u128); + let pow18 = trace_generator.pow(381956_u128); + let pow19 = trace_generator.pow(376388_u128); + let pow20 = trace_generator.pow(370689_u128); + let pow21 = trace_generator.pow(341761_u128); + let pow22 = trace_generator.pow(337601_u128); + let pow23 = trace_generator.pow(325894_u128); + let pow24 = trace_generator.pow(325121_u128); + let pow25 = trace_generator.pow(320449_u128); + let pow26 = trace_generator.pow(304132_u128); + let pow27 = trace_generator.pow(228161_u128); + let pow28 = trace_generator.pow(225025_u128); + let pow29 = trace_generator.pow(212740_u128); + let pow30 = trace_generator.pow(211396_u128); + let pow31 = trace_generator.pow(208388_u128); + let pow32 = trace_generator.pow(207873_u128); + let pow33 = trace_generator.pow(195010_u128); + let pow34 = trace_generator.pow(192260_u128); + let pow35 = trace_generator.pow(178433_u128); + let pow36 = trace_generator.pow(175108_u128); + let pow37 = trace_generator.pow(172801_u128); + let pow38 = trace_generator.pow(162052_u128); + let pow39 = trace_generator.pow(159748_u128); + let pow40 = trace_generator.pow(155398_u128); + let pow41 = trace_generator.pow(151041_u128); + let pow42 = trace_generator.pow(130433_u128); + let pow43 = trace_generator.pow(127489_u128); + let pow44 = trace_generator.pow(115713_u128); + let pow45 = trace_generator.pow(89281_u128); + let pow46 = trace_generator.pow(86273_u128); + let pow47 = trace_generator.pow(75780_u128); + let pow48 = trace_generator.pow(55937_u128); + let pow49 = pow6 * pow48; // pow(trace_generator, 122244). + let pow50 = trace_generator.pow(51969_u128); + let pow51 = trace_generator.pow(31169_u128); + let pow52 = trace_generator.pow(26369_u128); + let pow53 = trace_generator.pow(1_u128); + let pow54 = pow53 * pow53; // pow(trace_generator, 2). + let pow55 = pow53 * pow54; // pow(trace_generator, 3). + let pow56 = pow53 * pow55; // pow(trace_generator, 4). + let pow57 = pow53 * pow56; // pow(trace_generator, 5). + let pow58 = pow53 * pow57; // pow(trace_generator, 6). + let pow59 = pow53 * pow58; // pow(trace_generator, 7). + let pow60 = pow53 * pow59; // pow(trace_generator, 8). + let pow61 = pow53 * pow60; // pow(trace_generator, 9). + let pow62 = pow53 * pow61; // pow(trace_generator, 10). + let pow63 = pow53 * pow62; // pow(trace_generator, 11). + let pow64 = pow53 * pow63; // pow(trace_generator, 12). + let pow65 = pow53 * pow64; // pow(trace_generator, 13). + let pow66 = pow53 * pow65; // pow(trace_generator, 14). + let pow67 = pow53 * pow66; // pow(trace_generator, 15). + let pow68 = pow53 * pow67; // pow(trace_generator, 16). + let pow69 = pow5 * pow68; // pow(trace_generator, 132627). + let pow70 = pow6 * pow68; // pow(trace_generator, 66323). + let pow71 = pow53 * pow68; // pow(trace_generator, 17). + let pow72 = pow54 * pow71; // pow(trace_generator, 19). + let pow73 = pow54 * pow72; // pow(trace_generator, 21). + let pow74 = pow53 * pow73; // pow(trace_generator, 22). + let pow75 = pow54 * pow74; // pow(trace_generator, 24). + let pow76 = pow53 * pow75; // pow(trace_generator, 25). + let pow77 = pow54 * pow76; // pow(trace_generator, 27). + let pow78 = pow54 * pow77; // pow(trace_generator, 29). + let pow79 = pow53 * pow78; // pow(trace_generator, 30). + let pow80 = pow2 * pow68; // pow(trace_generator, 397843). + let pow81 = pow54 * pow79; // pow(trace_generator, 32). + let pow82 = pow53 * pow81; // pow(trace_generator, 33). + let pow83 = pow54 * pow82; // pow(trace_generator, 35). + let pow84 = pow54 * pow83; // pow(trace_generator, 37). + let pow85 = pow53 * pow84; // pow(trace_generator, 38). + let pow86 = pow53 * pow85; // pow(trace_generator, 39). + let pow87 = pow54 * pow86; // pow(trace_generator, 41). + let pow88 = pow54 * pow87; // pow(trace_generator, 43). + let pow89 = pow53 * pow88; // pow(trace_generator, 44). + let pow90 = pow53 * pow89; // pow(trace_generator, 45). + let pow91 = pow53 * pow90; // pow(trace_generator, 46). + let pow92 = pow54 * pow91; // pow(trace_generator, 48). + let pow93 = pow53 * pow92; // pow(trace_generator, 49). + let pow94 = pow54 * pow93; // pow(trace_generator, 51). + let pow95 = pow54 * pow94; // pow(trace_generator, 53). + let pow96 = pow53 * pow95; // pow(trace_generator, 54). + let pow97 = pow55 * pow96; // pow(trace_generator, 57). + let pow98 = pow54 * pow97; // pow(trace_generator, 59). + let pow99 = pow54 * pow98; // pow(trace_generator, 61). + let pow100 = pow55 * pow99; // pow(trace_generator, 64). + let pow101 = pow13 * pow100; // pow(trace_generator, 456001). + let pow102 = pow21 * pow100; // pow(trace_generator, 341825). + let pow103 = pow24 * pow100; // pow(trace_generator, 325185). + let pow104 = pow30 * pow100; // pow(trace_generator, 211460). + let pow105 = pow33 * pow100; // pow(trace_generator, 195074). + let pow106 = pow34 * pow100; // pow(trace_generator, 192324). + let pow107 = pow53 * pow100; // pow(trace_generator, 65). + let pow108 = pow56 * pow107; // pow(trace_generator, 69). + let pow109 = pow53 * pow108; // pow(trace_generator, 70). + let pow110 = pow53 * pow109; // pow(trace_generator, 71). + let pow111 = pow54 * pow110; // pow(trace_generator, 73). + let pow112 = pow55 * pow111; // pow(trace_generator, 76). + let pow113 = pow53 * pow112; // pow(trace_generator, 77). + let pow114 = pow55 * pow113; // pow(trace_generator, 80). + let pow115 = pow53 * pow114; // pow(trace_generator, 81). + let pow116 = pow56 * pow115; // pow(trace_generator, 85). + let pow117 = pow56 * pow116; // pow(trace_generator, 89). + let pow118 = pow54 * pow117; // pow(trace_generator, 91). + let pow119 = pow57 * pow118; // pow(trace_generator, 96). + let pow120 = pow53 * pow119; // pow(trace_generator, 97). + let pow121 = pow56 * pow120; // pow(trace_generator, 101). + let pow122 = pow53 * pow121; // pow(trace_generator, 102). + let pow123 = pow53 * pow122; // pow(trace_generator, 103). + let pow124 = pow54 * pow123; // pow(trace_generator, 105). + let pow125 = pow55 * pow124; // pow(trace_generator, 108). + let pow126 = pow53 * pow125; // pow(trace_generator, 109). + let pow127 = pow55 * pow126; // pow(trace_generator, 112). + let pow128 = pow53 * pow127; // pow(trace_generator, 113). + let pow129 = pow56 * pow128; // pow(trace_generator, 117). + let pow130 = pow58 * pow129; // pow(trace_generator, 123). + let pow131 = pow57 * pow130; // pow(trace_generator, 128). + let pow132 = pow13 * pow131; // pow(trace_generator, 456065). + let pow133 = pow21 * pow131; // pow(trace_generator, 341889). + let pow134 = pow24 * pow131; // pow(trace_generator, 325249). + let pow135 = pow30 * pow131; // pow(trace_generator, 211524). + let pow136 = pow33 * pow131; // pow(trace_generator, 195138). + let pow137 = pow34 * pow131; // pow(trace_generator, 192388). + let pow138 = pow58 * pow131; // pow(trace_generator, 134). + let pow139 = pow53 * pow138; // pow(trace_generator, 135). + let pow140 = pow57 * pow139; // pow(trace_generator, 140). + let pow141 = pow56 * pow140; // pow(trace_generator, 144). + let pow142 = pow63 * pow141; // pow(trace_generator, 155). + let pow143 = pow57 * pow142; // pow(trace_generator, 160). + let pow144 = pow58 * pow143; // pow(trace_generator, 166). + let pow145 = pow53 * pow144; // pow(trace_generator, 167). + let pow146 = pow57 * pow145; // pow(trace_generator, 172). + let pow147 = pow56 * pow146; // pow(trace_generator, 176). + let pow148 = pow63 * pow147; // pow(trace_generator, 187). + let pow149 = pow57 * pow148; // pow(trace_generator, 192). + let pow150 = pow53 * pow149; // pow(trace_generator, 193). + let pow151 = pow54 * pow150; // pow(trace_generator, 195). + let pow152 = pow53 * pow151; // pow(trace_generator, 196). + let pow153 = pow53 * pow152; // pow(trace_generator, 197). + let pow154 = pow53 * pow153; // pow(trace_generator, 198). + let pow155 = pow53 * pow154; // pow(trace_generator, 199). + let pow156 = pow57 * pow155; // pow(trace_generator, 204). + let pow157 = pow53 * pow156; // pow(trace_generator, 205). + let pow158 = pow55 * pow157; // pow(trace_generator, 208). + let pow159 = pow63 * pow158; // pow(trace_generator, 219). + let pow160 = pow54 * pow159; // pow(trace_generator, 221). + let pow161 = pow55 * pow160; // pow(trace_generator, 224). + let pow162 = pow64 * pow161; // pow(trace_generator, 236). + let pow163 = pow53 * pow162; // pow(trace_generator, 237). + let pow164 = pow55 * pow163; // pow(trace_generator, 240). + let pow165 = pow55 * pow164; // pow(trace_generator, 243). + let pow166 = pow54 * pow165; // pow(trace_generator, 245). + let pow167 = pow58 * pow166; // pow(trace_generator, 251). + let pow168 = pow53 * pow167; // pow(trace_generator, 252). + let pow169 = pow53 * pow168; // pow(trace_generator, 253). + let pow170 = pow54 * pow169; // pow(trace_generator, 255). + let pow171 = pow53 * pow170; // pow(trace_generator, 256). + let pow172 = pow14 * pow171; // pow(trace_generator, 451009). + let pow173 = pow22 * pow171; // pow(trace_generator, 337857). + let pow174 = pow25 * pow171; // pow(trace_generator, 320705). + let pow175 = pow53 * pow171; // pow(trace_generator, 257). + let pow176 = pow54 * pow175; // pow(trace_generator, 259). + let pow177 = pow11 * pow176; // pow(trace_generator, 502276). + let pow178 = pow53 * pow176; // pow(trace_generator, 260). + let pow179 = pow54 * pow178; // pow(trace_generator, 262). + let pow180 = pow53 * pow179; // pow(trace_generator, 263). + let pow181 = pow53 * pow180; // pow(trace_generator, 264). + let pow182 = pow57 * pow181; // pow(trace_generator, 269). + let pow183 = pow58 * pow182; // pow(trace_generator, 275). + let pow184 = pow72 * pow183; // pow(trace_generator, 294). + let pow185 = pow53 * pow184; // pow(trace_generator, 295). + let pow186 = pow58 * pow185; // pow(trace_generator, 301). + let pow187 = pow60 * pow186; // pow(trace_generator, 309). + let pow188 = pow53 * pow187; // pow(trace_generator, 310). + let pow189 = pow60 * pow188; // pow(trace_generator, 318). + let pow190 = pow60 * pow189; // pow(trace_generator, 326). + let pow191 = pow60 * pow190; // pow(trace_generator, 334). + let pow192 = pow60 * pow191; // pow(trace_generator, 342). + let pow193 = pow60 * pow192; // pow(trace_generator, 350). + let pow194 = pow60 * pow193; // pow(trace_generator, 358). + let pow195 = pow81 * pow194; // pow(trace_generator, 390). + let pow196 = pow81 * pow195; // pow(trace_generator, 422). + let pow197 = pow53 * pow194; // pow(trace_generator, 359). + let pow198 = pow53 * pow195; // pow(trace_generator, 391). + let pow199 = pow53 * pow196; // pow(trace_generator, 423). + let pow200 = pow77 * pow196; // pow(trace_generator, 449). + let pow201 = pow54 * pow200; // pow(trace_generator, 451). + let pow202 = pow55 * pow201; // pow(trace_generator, 454). + let pow203 = pow59 * pow202; // pow(trace_generator, 461). + let pow204 = pow68 * pow203; // pow(trace_generator, 477). + let pow205 = pow64 * pow204; // pow(trace_generator, 489). + let pow206 = pow56 * pow205; // pow(trace_generator, 493). + let pow207 = pow56 * pow206; // pow(trace_generator, 497). + let pow208 = pow54 * pow207; // pow(trace_generator, 499). + let pow209 = pow54 * pow208; // pow(trace_generator, 501). + let pow210 = pow56 * pow209; // pow(trace_generator, 505). + let pow211 = pow54 * pow210; // pow(trace_generator, 507). + let pow212 = pow54 * pow211; // pow(trace_generator, 509). + let pow213 = pow54 * pow212; // pow(trace_generator, 511). + let pow214 = pow53 * pow213; // pow(trace_generator, 512). + let pow215 = pow14 * pow214; // pow(trace_generator, 451265). + let pow216 = pow22 * pow214; // pow(trace_generator, 338113). + let pow217 = pow25 * pow214; // pow(trace_generator, 320961). + let pow218 = pow149 * pow214; // pow(trace_generator, 704). + let pow219 = pow53 * pow214; // pow(trace_generator, 513). + let pow220 = pow55 * pow219; // pow(trace_generator, 516). + let pow221 = pow54 * pow220; // pow(trace_generator, 518). + let pow222 = pow53 * pow218; // pow(trace_generator, 705). + let pow223 = pow54 * pow221; // pow(trace_generator, 520). + let pow224 = pow58 * pow222; // pow(trace_generator, 711). + let pow225 = pow61 * pow224; // pow(trace_generator, 720). + let pow226 = pow68 * pow225; // pow(trace_generator, 736). + let pow227 = pow68 * pow226; // pow(trace_generator, 752). + let pow228 = pow68 * pow227; // pow(trace_generator, 768). + let pow229 = pow53 * pow228; // pow(trace_generator, 769). + let pow230 = pow53 * pow229; // pow(trace_generator, 770). + let pow231 = pow54 * pow230; // pow(trace_generator, 772). + let pow232 = pow54 * pow231; // pow(trace_generator, 774). + let pow233 = pow54 * pow232; // pow(trace_generator, 776). + let pow234 = pow56 * pow233; // pow(trace_generator, 780). + let pow235 = pow131 * pow232; // pow(trace_generator, 902). + let pow236 = pow53 * pow235; // pow(trace_generator, 903). + let pow237 = pow97 * pow236; // pow(trace_generator, 960). + let pow238 = pow53 * pow237; // pow(trace_generator, 961). + let pow239 = pow57 * pow238; // pow(trace_generator, 966). + let pow240 = pow53 * pow239; // pow(trace_generator, 967). + let pow241 = pow61 * pow240; // pow(trace_generator, 976). + let pow242 = pow68 * pow241; // pow(trace_generator, 992). + let pow243 = pow68 * pow242; // pow(trace_generator, 1008). + let pow244 = pow71 * pow243; // pow(trace_generator, 1025). + let pow245 = pow53 * pow244; // pow(trace_generator, 1026). + let pow246 = pow54 * pow245; // pow(trace_generator, 1028). + let pow247 = pow54 * pow246; // pow(trace_generator, 1030). + let pow248 = pow58 * pow247; // pow(trace_generator, 1036). + let pow249 = pow148 * pow247; // pow(trace_generator, 1217). + let pow250 = pow57 * pow249; // pow(trace_generator, 1222). + let pow251 = pow149 * pow250; // pow(trace_generator, 1414). + let pow252 = pow98 * pow250; // pow(trace_generator, 1281). + let pow253 = pow136 * pow252; // pow(trace_generator, 196419). + let pow254 = pow98 * pow251; // pow(trace_generator, 1473). + let pow255 = pow33 * pow254; // pow(trace_generator, 196483). + let pow256 = pow55 * pow252; // pow(trace_generator, 1284). + let pow257 = pow100 * pow254; // pow(trace_generator, 1537). + let pow258 = pow149 * pow257; // pow(trace_generator, 1729). + let pow259 = pow55 * pow257; // pow(trace_generator, 1540). + let pow260 = pow100 * pow258; // pow(trace_generator, 1793). + let pow261 = pow149 * pow260; // pow(trace_generator, 1985). + let pow262 = pow55 * pow260; // pow(trace_generator, 1796). + let pow263 = pow100 * pow261; // pow(trace_generator, 2049). + let pow264 = pow55 * pow263; // pow(trace_generator, 2052). + let pow265 = pow55 * pow264; // pow(trace_generator, 2055). + let pow266 = pow99 * pow265; // pow(trace_generator, 2116). + let pow267 = pow33 * pow257; // pow(trace_generator, 196547). + let pow268 = pow53 * pow251; // pow(trace_generator, 1415). + let pow269 = pow55 * pow266; // pow(trace_generator, 2119). + let pow270 = pow99 * pow269; // pow(trace_generator, 2180). + let pow271 = pow55 * pow270; // pow(trace_generator, 2183). + let pow272 = pow99 * pow270; // pow(trace_generator, 2241). + let pow273 = pow100 * pow272; // pow(trace_generator, 2305). + let pow274 = pow55 * pow273; // pow(trace_generator, 2308). + let pow275 = pow153 * pow272; // pow(trace_generator, 2438). + let pow276 = pow98 * pow275; // pow(trace_generator, 2497). + let pow277 = pow100 * pow276; // pow(trace_generator, 2561). + let pow278 = pow149 * pow277; // pow(trace_generator, 2753). + let pow279 = pow55 * pow277; // pow(trace_generator, 2564). + let pow280 = pow100 * pow278; // pow(trace_generator, 2817). + let pow281 = pow149 * pow280; // pow(trace_generator, 3009). + let pow282 = pow55 * pow280; // pow(trace_generator, 2820). + let pow283 = pow100 * pow281; // pow(trace_generator, 3073). + let pow284 = pow55 * pow283; // pow(trace_generator, 3076). + let pow285 = pow169 * pow284; // pow(trace_generator, 3329). + let pow286 = pow55 * pow285; // pow(trace_generator, 3332). + let pow287 = pow7 * pow130; // pow(trace_generator, 3585). + let pow288 = pow55 * pow287; // pow(trace_generator, 3588). + let pow289 = pow100 * pow288; // pow(trace_generator, 3652). + let pow290 = pow169 * pow288; // pow(trace_generator, 3841). + let pow291 = pow105 * pow290; // pow(trace_generator, 198915). + let pow292 = pow68 * pow291; // pow(trace_generator, 198931). + let pow293 = pow7 * pow53; // pow(trace_generator, 3463). + let pow294 = pow100 * pow289; // pow(trace_generator, 3716). + let pow295 = pow55 * pow290; // pow(trace_generator, 3844). + let pow296 = pow169 * pow295; // pow(trace_generator, 4097). + let pow297 = pow100 * pow295; // pow(trace_generator, 3908). + let pow298 = pow100 * pow297; // pow(trace_generator, 3972). + let pow299 = pow55 * pow296; // pow(trace_generator, 4100). + let pow300 = pow169 * pow299; // pow(trace_generator, 4353). + let pow301 = pow39 * pow55; // pow(trace_generator, 159751). + let pow302 = pow55 * pow299; // pow(trace_generator, 4103). + let pow303 = pow55 * pow300; // pow(trace_generator, 4356). + let pow304 = pow7 * pow222; // pow(trace_generator, 4167). + let pow305 = pow7 * pow229; // pow(trace_generator, 4231). + let pow306 = pow170 * pow305; // pow(trace_generator, 4486). + let pow307 = pow7 * pow244; // pow(trace_generator, 4487). + let pow308 = pow130 * pow306; // pow(trace_generator, 4609). + let pow309 = pow55 * pow308; // pow(trace_generator, 4612). + let pow310 = pow169 * pow309; // pow(trace_generator, 4865). + let pow311 = pow55 * pow310; // pow(trace_generator, 4868). + let pow312 = pow169 * pow311; // pow(trace_generator, 5121). + let pow313 = pow55 * pow312; // pow(trace_generator, 5124). + let pow314 = pow169 * pow313; // pow(trace_generator, 5377). + let pow315 = pow55 * pow314; // pow(trace_generator, 5380). + let pow316 = pow99 * pow315; // pow(trace_generator, 5441). + let pow317 = pow55 * pow316; // pow(trace_generator, 5444). + let pow318 = pow99 * pow317; // pow(trace_generator, 5505). + let pow319 = pow131 * pow318; // pow(trace_generator, 5633). + let pow320 = pow35 * pow53; // pow(trace_generator, 178434). + let pow321 = pow320 * pow320; // pow(trace_generator, 356868). + let pow322 = pow55 * pow318; // pow(trace_generator, 5508). + let pow323 = pow55 * pow319; // pow(trace_generator, 5636). + let pow324 = pow99 * pow323; // pow(trace_generator, 5697). + let pow325 = pow100 * pow324; // pow(trace_generator, 5761). + let pow326 = pow131 * pow325; // pow(trace_generator, 5889). + let pow327 = pow55 * pow326; // pow(trace_generator, 5892). + let pow328 = pow99 * pow327; // pow(trace_generator, 5953). + let pow329 = pow100 * pow328; // pow(trace_generator, 6017). + let pow330 = pow131 * pow329; // pow(trace_generator, 6145). + let pow331 = pow55 * pow330; // pow(trace_generator, 6148). + let pow332 = pow99 * pow331; // pow(trace_generator, 6209). + let pow333 = pow100 * pow332; // pow(trace_generator, 6273). + let pow334 = pow11 * pow316; // pow(trace_generator, 507458). + let pow335 = pow131 * pow333; // pow(trace_generator, 6401). + let pow336 = pow7 * pow263; // pow(trace_generator, 5511). + let pow337 = pow53 * pow275; // pow(trace_generator, 2439). + let pow338 = pow53 * pow335; // pow(trace_generator, 6402). + let pow339 = pow53 * pow338; // pow(trace_generator, 6403). + let pow340 = pow24 * pow338; // pow(trace_generator, 331523). + let pow341 = pow68 * pow340; // pow(trace_generator, 331539). + let pow342 = pow53 * pow339; // pow(trace_generator, 6404). + let pow343 = pow54 * pow342; // pow(trace_generator, 6406). + let pow344 = pow65 * pow343; // pow(trace_generator, 6419). + let pow345 = pow93 * pow344; // pow(trace_generator, 6468). + let pow346 = pow100 * pow345; // pow(trace_generator, 6532). + let pow347 = pow54 * pow345; // pow(trace_generator, 6470). + let pow348 = pow54 * pow346; // pow(trace_generator, 6534). + let pow349 = pow7 * pow283; // pow(trace_generator, 6535). + let pow350 = pow98 * pow348; // pow(trace_generator, 6593). + let pow351 = pow53 * pow350; // pow(trace_generator, 6594). + let pow352 = pow100 * pow351; // pow(trace_generator, 6658). + let pow353 = pow100 * pow352; // pow(trace_generator, 6722). + let pow354 = pow54 * pow351; // pow(trace_generator, 6596). + let pow355 = pow54 * pow352; // pow(trace_generator, 6660). + let pow356 = pow54 * pow353; // pow(trace_generator, 6724). + let pow357 = pow54 * pow354; // pow(trace_generator, 6598). + let pow358 = pow99 * pow356; // pow(trace_generator, 6785). + let pow359 = pow53 * pow358; // pow(trace_generator, 6786). + let pow360 = pow54 * pow359; // pow(trace_generator, 6788). + let pow361 = pow54 * pow360; // pow(trace_generator, 6790). + let pow362 = pow148 * pow361; // pow(trace_generator, 6977). + let pow363 = pow53 * pow362; // pow(trace_generator, 6978). + let pow364 = pow54 * pow363; // pow(trace_generator, 6980). + let pow365 = pow9 * pow176; // pow(trace_generator, 513284). + let pow366 = pow54 * pow364; // pow(trace_generator, 6982). + let pow367 = pow148 * pow366; // pow(trace_generator, 7169). + let pow368 = pow53 * pow367; // pow(trace_generator, 7170). + let pow369 = pow54 * pow368; // pow(trace_generator, 7172). + let pow370 = pow54 * pow369; // pow(trace_generator, 7174). + let pow371 = pow148 * pow370; // pow(trace_generator, 7361). + let pow372 = pow53 * pow371; // pow(trace_generator, 7362). + let pow373 = pow54 * pow372; // pow(trace_generator, 7364). + let pow374 = pow54 * pow373; // pow(trace_generator, 7366). + let pow375 = pow148 * pow374; // pow(trace_generator, 7553). + let pow376 = pow53 * pow375; // pow(trace_generator, 7554). + let pow377 = pow284 * pow376; // pow(trace_generator, 10630). + let pow378 = pow130 * pow377; // pow(trace_generator, 10753). + let pow379 = pow54 * pow376; // pow(trace_generator, 7556). + let pow380 = pow54 * pow379; // pow(trace_generator, 7558). + let pow381 = pow7 * pow296; // pow(trace_generator, 7559). + let pow382 = pow148 * pow380; // pow(trace_generator, 7745). + let pow383 = pow53 * pow382; // pow(trace_generator, 7746). + let pow384 = pow54 * pow383; // pow(trace_generator, 7748). + let pow385 = pow54 * pow384; // pow(trace_generator, 7750). + let pow386 = pow148 * pow385; // pow(trace_generator, 7937). + let pow387 = pow2 * pow386; // pow(trace_generator, 405764). + let pow388 = pow53 * pow386; // pow(trace_generator, 7938). + let pow389 = pow54 * pow388; // pow(trace_generator, 7940). + let pow390 = pow99 * pow385; // pow(trace_generator, 7811). + let pow391 = pow54 * pow389; // pow(trace_generator, 7942). + let pow392 = pow167 * pow391; // pow(trace_generator, 8193). + let pow393 = pow53 * pow392; // pow(trace_generator, 8194). + let pow394 = pow346 * pow393; // pow(trace_generator, 14726). + let pow395 = pow99 * pow391; // pow(trace_generator, 8003). + let pow396 = pow100 * pow395; // pow(trace_generator, 8067). + let pow397 = pow100 * pow396; // pow(trace_generator, 8131). + let pow398 = pow384 * pow393; // pow(trace_generator, 15942). + let pow399 = pow201 * pow397; // pow(trace_generator, 8582). + let pow400 = pow7 * pow392; // pow(trace_generator, 11655). + let pow401 = pow7 * pow367; // pow(trace_generator, 10631). + let pow402 = pow53 * pow393; // pow(trace_generator, 8195). + let pow403 = pow55 * pow402; // pow(trace_generator, 8198). + let pow404 = pow296 * pow403; // pow(trace_generator, 12295). + let pow405 = pow66 * pow404; // pow(trace_generator, 12309). + let pow406 = pow100 * pow405; // pow(trace_generator, 12373). + let pow407 = pow149 * pow406; // pow(trace_generator, 12565). + let pow408 = pow100 * pow407; // pow(trace_generator, 12629). + let pow409 = pow93 * pow408; // pow(trace_generator, 12678). + let pow410 = pow244 * pow394; // pow(trace_generator, 15751). + let pow411 = pow191 * pow410; // pow(trace_generator, 16085). + let pow412 = pow53 * pow394; // pow(trace_generator, 14727). + let pow413 = pow244 * pow409; // pow(trace_generator, 13703). + let pow414 = pow53 * pow409; // pow(trace_generator, 12679). + let pow415 = pow7 * pow358; // pow(trace_generator, 10247). + let pow416 = pow53 * pow403; // pow(trace_generator, 8199). + let pow417 = pow57 * pow416; // pow(trace_generator, 8204). + let pow418 = pow98 * pow411; // pow(trace_generator, 16144). + let pow419 = pow53 * pow418; // pow(trace_generator, 16145). + let pow420 = pow53 * pow419; // pow(trace_generator, 16146). + let pow421 = pow59 * pow417; // pow(trace_generator, 8211). + let pow422 = pow161 * pow421; // pow(trace_generator, 8435). + let pow423 = pow60 * pow422; // pow(trace_generator, 8443). + let pow424 = pow58 * pow423; // pow(trace_generator, 8449). + let pow425 = pow7 * pow312; // pow(trace_generator, 8583). + let pow426 = pow99 * pow398; // pow(trace_generator, 16003). + let pow427 = pow53 * pow420; // pow(trace_generator, 16147). + let pow428 = pow53 * pow427; // pow(trace_generator, 16148). + let pow429 = pow130 * pow399; // pow(trace_generator, 8705). + let pow430 = pow7 * pow330; // pow(trace_generator, 9607). + let pow431 = pow53 * pow428; // pow(trace_generator, 16149). + let pow432 = pow53 * pow431; // pow(trace_generator, 16150). + let pow433 = pow53 * pow432; // pow(trace_generator, 16151). + let pow434 = pow61 * pow433; // pow(trace_generator, 16160). + let pow435 = pow53 * pow434; // pow(trace_generator, 16161). + let pow436 = pow53 * pow435; // pow(trace_generator, 16162). + let pow437 = pow53 * pow436; // pow(trace_generator, 16163). + let pow438 = pow53 * pow437; // pow(trace_generator, 16164). + let pow439 = pow53 * pow438; // pow(trace_generator, 16165). + let pow440 = pow53 * pow439; // pow(trace_generator, 16166). + let pow441 = pow53 * pow440; // pow(trace_generator, 16167). + let pow442 = pow61 * pow441; // pow(trace_generator, 16176). + let pow443 = pow68 * pow442; // pow(trace_generator, 16192). + let pow444 = pow31 * pow100; // pow(trace_generator, 208452). + let pow445 = pow55 * pow443; // pow(trace_generator, 16195). + let pow446 = pow65 * pow445; // pow(trace_generator, 16208). + let pow447 = pow68 * pow446; // pow(trace_generator, 16224). + let pow448 = pow68 * pow447; // pow(trace_generator, 16240). + let pow449 = pow68 * pow448; // pow(trace_generator, 16256). + let pow450 = pow31 * pow131; // pow(trace_generator, 208516). + let pow451 = pow68 * pow449; // pow(trace_generator, 16272). + let pow452 = pow68 * pow451; // pow(trace_generator, 16288). + let pow453 = pow68 * pow452; // pow(trace_generator, 16304). + let pow454 = pow68 * pow453; // pow(trace_generator, 16320). + let pow455 = pow57 * pow454; // pow(trace_generator, 16325). + let pow456 = pow58 * pow455; // pow(trace_generator, 16331). + let pow457 = pow57 * pow456; // pow(trace_generator, 16336). + let pow458 = pow53 * pow457; // pow(trace_generator, 16337). + let pow459 = pow54 * pow458; // pow(trace_generator, 16339). + let pow460 = pow65 * pow459; // pow(trace_generator, 16352). + let pow461 = pow55 * pow460; // pow(trace_generator, 16355). + let pow462 = pow54 * pow461; // pow(trace_generator, 16357). + let pow463 = pow58 * pow462; // pow(trace_generator, 16363). + let pow464 = pow57 * pow463; // pow(trace_generator, 16368). + let pow465 = pow453 * pow463; // pow(trace_generator, 32667). + let pow466 = pow53 * pow464; // pow(trace_generator, 16369). + let pow467 = pow54 * pow466; // pow(trace_generator, 16371). + let pow468 = pow65 * pow467; // pow(trace_generator, 16384). + let pow469 = pow195 * pow468; // pow(trace_generator, 16774). + let pow470 = pow312 * pow469; // pow(trace_generator, 21895). + let pow471 = pow392 * pow468; // pow(trace_generator, 24577). + let pow472 = pow330 * pow468; // pow(trace_generator, 22529). + let pow473 = pow100 * pow472; // pow(trace_generator, 22593). + let pow474 = pow100 * pow473; // pow(trace_generator, 22657). + let pow475 = pow276 * pow468; // pow(trace_generator, 18881). + let pow476 = pow171 * pow475; // pow(trace_generator, 19137). + let pow477 = pow171 * pow476; // pow(trace_generator, 19393). + let pow478 = pow220 * pow468; // pow(trace_generator, 16900). + let pow479 = pow53 * pow468; // pow(trace_generator, 16385). + let pow480 = pow53 * pow471; // pow(trace_generator, 24578). + let pow481 = pow150 * pow473; // pow(trace_generator, 22786). + let pow482 = pow56 * pow480; // pow(trace_generator, 24582). + let pow483 = pow58 * pow482; // pow(trace_generator, 24588). + let pow484 = pow166 * pow483; // pow(trace_generator, 24833). + let pow485 = pow270 * pow481; // pow(trace_generator, 24966). + let pow486 = pow130 * pow485; // pow(trace_generator, 25089). + let pow487 = pow52 * pow308; // pow(trace_generator, 30978). + let pow488 = pow81 * pow479; // pow(trace_generator, 16417). + let pow489 = pow53 * pow469; // pow(trace_generator, 16775). + let pow490 = pow251 * pow472; // pow(trace_generator, 23943). + let pow491 = pow168 * pow490; // pow(trace_generator, 24195). + let pow492 = pow51 * pow239; // pow(trace_generator, 32135). + let pow493 = pow168 * pow492; // pow(trace_generator, 32387). + let pow494 = pow178 * pow493; // pow(trace_generator, 32647). + let pow495 = pow312 * pow485; // pow(trace_generator, 30087). + let pow496 = pow7 * pow471; // pow(trace_generator, 28039). + let pow497 = pow7 * pow472; // pow(trace_generator, 25991). + let pow498 = pow92 * pow465; // pow(trace_generator, 32715). + let pow499 = pow58 * pow498; // pow(trace_generator, 32721). + let pow500 = pow62 * pow499; // pow(trace_generator, 32731). + let pow501 = pow68 * pow500; // pow(trace_generator, 32747). + let pow502 = pow58 * pow501; // pow(trace_generator, 32753). + let pow503 = pow62 * pow502; // pow(trace_generator, 32763). + let pow504 = pow57 * pow503; // pow(trace_generator, 32768). + let pow505 = pow504 * pow504; // pow(trace_generator, 65536). + let pow506 = pow504 * pow505; // pow(trace_generator, 98304). + let pow507 = pow504 * pow506; // pow(trace_generator, 131072). + let pow508 = pow504 * pow507; // pow(trace_generator, 163840). + let pow509 = pow426 * pow508; // pow(trace_generator, 179843). + let pow510 = pow39 * pow402; // pow(trace_generator, 167943). + let pow511 = pow380 * pow508; // pow(trace_generator, 171398). + let pow512 = pow342 * pow508; // pow(trace_generator, 170244). + let pow513 = pow257 * pow508; // pow(trace_generator, 165377). + let pow514 = pow55 * pow513; // pow(trace_generator, 165380). + let pow515 = pow99 * pow267; // pow(trace_generator, 196608). + let pow516 = pow504 * pow515; // pow(trace_generator, 229376). + let pow517 = pow320 * pow516; // pow(trace_generator, 407810). + let pow518 = pow388 * pow517; // pow(trace_generator, 415748). + let pow519 = pow351 * pow516; // pow(trace_generator, 235970). + let pow520 = pow252 * pow516; // pow(trace_generator, 230657). + let pow521 = pow237 * pow519; // pow(trace_generator, 236930). + let pow522 = pow200 * pow521; // pow(trace_generator, 237379). + let pow523 = pow55 * pow520; // pow(trace_generator, 230660). + let pow524 = pow30 * pow506; // pow(trace_generator, 309700). + let pow525 = pow6 * pow256; // pow(trace_generator, 67591). + let pow526 = pow343 * pow505; // pow(trace_generator, 71942). + let pow527 = pow47 * pow55; // pow(trace_generator, 75783). + let pow528 = pow47 * pow100; // pow(trace_generator, 75844). + let pow529 = pow6 * pow312; // pow(trace_generator, 71428). + let pow530 = pow285 * pow505; // pow(trace_generator, 68865). + let pow531 = pow308 * pow530; // pow(trace_generator, 73474). + let pow532 = pow355 * pow531; // pow(trace_generator, 80134). + let pow533 = pow100 * pow532; // pow(trace_generator, 80198). + let pow534 = pow100 * pow533; // pow(trace_generator, 80262). + let pow535 = pow55 * pow528; // pow(trace_generator, 75847). + let pow536 = pow47 * pow131; // pow(trace_generator, 75908). + let pow537 = pow55 * pow536; // pow(trace_generator, 75911). + let pow538 = pow1 * pow505; // pow(trace_generator, 512007). + let pow539 = pow195 * pow504; // pow(trace_generator, 33158). + let pow540 = pow471 * pow504; // pow(trace_generator, 57345). + let pow541 = pow471 * pow506; // pow(trace_generator, 122881). + let pow542 = pow50 * pow314; // pow(trace_generator, 57346). + let pow543 = pow44 * pow367; // pow(trace_generator, 122882). + let pow544 = pow56 * pow542; // pow(trace_generator, 57350). + let pow545 = pow56 * pow543; // pow(trace_generator, 122886). + let pow546 = pow58 * pow544; // pow(trace_generator, 57356). + let pow547 = pow58 * pow545; // pow(trace_generator, 122892). + let pow548 = pow166 * pow546; // pow(trace_generator, 57601). + let pow549 = pow171 * pow548; // pow(trace_generator, 57857). + let pow550 = pow166 * pow547; // pow(trace_generator, 123137). + let pow551 = pow171 * pow550; // pow(trace_generator, 123393). + let pow552 = pow32 * pow542; // pow(trace_generator, 265219). + let pow553 = pow548 * pow552; // pow(trace_generator, 322820). + let pow554 = pow68 * pow552; // pow(trace_generator, 265235). + let pow555 = pow471 * pow516; // pow(trace_generator, 253953). + let pow556 = pow53 * pow555; // pow(trace_generator, 253954). + let pow557 = pow56 * pow556; // pow(trace_generator, 253958). + let pow558 = pow58 * pow557; // pow(trace_generator, 253964). + let pow559 = pow166 * pow558; // pow(trace_generator, 254209). + let pow560 = pow40 * pow559; // pow(trace_generator, 409607). + let pow561 = pow171 * pow559; // pow(trace_generator, 254465). + let pow562 = pow23 * pow504; // pow(trace_generator, 358662). + let pow563 = pow237 * pow562; // pow(trace_generator, 359622). + let pow564 = pow4 * pow504; // pow(trace_generator, 354311). + let pow565 = pow504 * pow516; // pow(trace_generator, 262144). + let pow566 = pow504 * pow565; // pow(trace_generator, 294912). + let pow567 = pow6 * pow523; // pow(trace_generator, 296967). + let pow568 = pow367 * pow566; // pow(trace_generator, 302081). + let pow569 = pow343 * pow566; // pow(trace_generator, 301318). + let pow570 = pow296 * pow566; // pow(trace_generator, 299009). + let pow571 = pow231 * pow566; // pow(trace_generator, 295684). + let pow572 = pow504 * pow566; // pow(trace_generator, 327680). + let pow573 = pow486 * pow572; // pow(trace_generator, 352769). + let pow574 = pow504 * pow572; // pow(trace_generator, 360448). + let pow575 = pow59 * pow574; // pow(trace_generator, 360455). + let pow576 = pow504 * pow574; // pow(trace_generator, 393216). + let pow577 = pow426 * pow576; // pow(trace_generator, 409219). + let pow578 = pow362 * pow577; // pow(trace_generator, 416196). + let pow579 = pow504 * pow576; // pow(trace_generator, 425984). + let pow580 = pow504 * pow579; // pow(trace_generator, 458752). + let pow581 = pow481 * pow580; // pow(trace_generator, 481538). + let pow582 = pow491 * pow580; // pow(trace_generator, 482947). + let pow583 = pow382 * pow580; // pow(trace_generator, 466497). + let pow584 = pow310 * pow580; // pow(trace_generator, 463617). + let pow585 = pow55 * pow584; // pow(trace_generator, 463620). + let pow586 = pow13 * pow393; // pow(trace_generator, 464131). + let pow587 = pow68 * pow586; // pow(trace_generator, 464147). + let pow588 = pow504 * pow580; // pow(trace_generator, 491520). + let pow589 = pow175 * pow334; // pow(trace_generator, 507715). + let pow590 = pow100 * pow538; // pow(trace_generator, 512071). + let pow591 = pow100 * pow590; // pow(trace_generator, 512135). + let pow592 = pow100 * pow365; // pow(trace_generator, 513348). + let pow593 = pow15 * pow505; // pow(trace_generator, 514308). + let pow594 = pow100 * pow592; // pow(trace_generator, 513412). + let pow595 = pow100 * pow593; // pow(trace_generator, 514372). + let pow596 = pow100 * pow595; // pow(trace_generator, 514436). + let pow597 = pow8 * pow171; // pow(trace_generator, 516097). + let pow598 = pow8 * pow175; // pow(trace_generator, 516098). + let pow599 = pow53 * pow598; // pow(trace_generator, 516099). + let pow600 = pow8 * pow176; // pow(trace_generator, 516100). + let pow601 = pow8 * pow201; // pow(trace_generator, 516292). + let pow602 = pow54 * pow600; // pow(trace_generator, 516102). + let pow603 = pow58 * pow602; // pow(trace_generator, 516108). + let pow604 = pow59 * pow580; // pow(trace_generator, 458759). + let pow605 = pow59 * pow603; // pow(trace_generator, 516115). + let pow606 = pow161 * pow605; // pow(trace_generator, 516339). + let pow607 = pow60 * pow606; // pow(trace_generator, 516347). + let pow608 = pow8 * pow214; // pow(trace_generator, 516353). + let pow609 = pow55 * pow608; // pow(trace_generator, 516356). + let pow610 = pow8 * pow228; // pow(trace_generator, 516609). + let pow611 = pow10 * pow443; // pow(trace_generator, 522498). + let pow612 = pow10 * pow468; // pow(trace_generator, 522690). + let pow613 = pow38 * pow574; // pow(trace_generator, 522500). + let pow614 = pow54 * pow612; // pow(trace_generator, 522692). + let pow615 = pow23 * pow515; // pow(trace_generator, 522502). + let pow616 = pow372 * pow574; // pow(trace_generator, 367810). + let pow617 = pow354 * pow574; // pow(trace_generator, 367044). + let pow618 = pow249 * pow586; // pow(trace_generator, 465348). + let pow619 = pow274 * pow574; // pow(trace_generator, 362756). + let pow620 = pow175 * pow574; // pow(trace_generator, 360705). + let pow621 = pow329 * pow491; // pow(trace_generator, 30212). + let pow622 = pow7 * pow479; // pow(trace_generator, 19847). + let pow623 = pow244 * pow469; // pow(trace_generator, 17799). + let pow624 = pow291 * pow327; // pow(trace_generator, 204807). + let pow625 = pow100 * pow624; // pow(trace_generator, 204871). + let pow626 = pow100 * pow625; // pow(trace_generator, 204935). + let pow627 = pow247 * pow568; // pow(trace_generator, 303111). + let pow628 = pow9 * pow370; // pow(trace_generator, 520199). + + // Fetch columns. + let column0 = column_values[0]; + let column1 = column_values[1]; + let column2 = column_values[2]; + let column3 = column_values[3]; + let column4 = column_values[4]; + let column5 = column_values[5]; + let column6 = column_values[6]; + let column7 = column_values[7]; + let column8 = column_values[8]; + let column9 = column_values[9]; + let column10 = column_values[10]; + let column11 = column_values[11]; + let column12 = column_values[12]; + let column13 = column_values[13]; + let column14 = column_values[14]; + + // Sum the OODS constraints on the trace polynomials. + let mut total_sum = Felt::ZERO; + + let mut value = (column0 - oods_values[0]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[0] * value; + + value = (column0 - oods_values[1]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow53 * oods_point)); + total_sum += constraint_coefficients[1] * value; + + value = (column0 - oods_values[2]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow54 * oods_point)); + total_sum += constraint_coefficients[2] * value; + + value = (column0 - oods_values[3]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow55 * oods_point)); + total_sum += constraint_coefficients[3] * value; + + value = (column0 - oods_values[4]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow56 * oods_point)); + total_sum += constraint_coefficients[4] * value; + + value = (column0 - oods_values[5]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow57 * oods_point)); + total_sum += constraint_coefficients[5] * value; + + value = (column0 - oods_values[6]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow58 * oods_point)); + total_sum += constraint_coefficients[6] * value; + + value = (column0 - oods_values[7]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow59 * oods_point)); + total_sum += constraint_coefficients[7] * value; + + value = (column0 - oods_values[8]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow60 * oods_point)); + total_sum += constraint_coefficients[8] * value; + + value = (column0 - oods_values[9]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow61 * oods_point)); + total_sum += constraint_coefficients[9] * value; + + value = (column0 - oods_values[10]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow62 * oods_point)); + total_sum += constraint_coefficients[10] * value; + + value = (column0 - oods_values[11]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow63 * oods_point)); + total_sum += constraint_coefficients[11] * value; + + value = (column0 - oods_values[12]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow64 * oods_point)); + total_sum += constraint_coefficients[12] * value; + + value = (column0 - oods_values[13]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow65 * oods_point)); + total_sum += constraint_coefficients[13] * value; + + value = (column0 - oods_values[14]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow66 * oods_point)); + total_sum += constraint_coefficients[14] * value; + + value = (column0 - oods_values[15]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow67 * oods_point)); + total_sum += constraint_coefficients[15] * value; + + value = (column1 - oods_values[16]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[16] * value; + + value = (column1 - oods_values[17]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow53 * oods_point)); + total_sum += constraint_coefficients[17] * value; + + value = (column1 - oods_values[18]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow54 * oods_point)); + total_sum += constraint_coefficients[18] * value; + + value = (column1 - oods_values[19]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow56 * oods_point)); + total_sum += constraint_coefficients[19] * value; + + value = (column1 - oods_values[20]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow58 * oods_point)); + total_sum += constraint_coefficients[20] * value; + + value = (column1 - oods_values[21]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow60 * oods_point)); + total_sum += constraint_coefficients[21] * value; + + value = (column1 - oods_values[22]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow64 * oods_point)); + total_sum += constraint_coefficients[22] * value; + + value = (column1 - oods_values[23]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow68 * oods_point)); + total_sum += constraint_coefficients[23] * value; + + value = (column1 - oods_values[24]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow81 * oods_point)); + total_sum += constraint_coefficients[24] * value; + + value = (column1 - oods_values[25]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow92 * oods_point)); + total_sum += constraint_coefficients[25] * value; + + value = (column1 - oods_values[26]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow100 * oods_point)); + total_sum += constraint_coefficients[26] * value; + + value = (column1 - oods_values[27]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow114 * oods_point)); + total_sum += constraint_coefficients[27] * value; + + value = (column1 - oods_values[28]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow119 * oods_point)); + total_sum += constraint_coefficients[28] * value; + + value = (column1 - oods_values[29]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow127 * oods_point)); + total_sum += constraint_coefficients[29] * value; + + value = (column1 - oods_values[30]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow131 * oods_point)); + total_sum += constraint_coefficients[30] * value; + + value = (column1 - oods_values[31]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow141 * oods_point)); + total_sum += constraint_coefficients[31] * value; + + value = (column1 - oods_values[32]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow143 * oods_point)); + total_sum += constraint_coefficients[32] * value; + + value = (column1 - oods_values[33]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow147 * oods_point)); + total_sum += constraint_coefficients[33] * value; + + value = (column1 - oods_values[34]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow149 * oods_point)); + total_sum += constraint_coefficients[34] * value; + + value = (column1 - oods_values[35]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow150 * oods_point)); + total_sum += constraint_coefficients[35] * value; + + value = (column1 - oods_values[36]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow152 * oods_point)); + total_sum += constraint_coefficients[36] * value; + + value = (column1 - oods_values[37]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow158 * oods_point)); + total_sum += constraint_coefficients[37] * value; + + value = (column1 - oods_values[38]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow161 * oods_point)); + total_sum += constraint_coefficients[38] * value; + + value = (column1 - oods_values[39]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow164 * oods_point)); + total_sum += constraint_coefficients[39] * value; + + value = (column1 - oods_values[40]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow171 * oods_point)); + total_sum += constraint_coefficients[40] * value; + + value = (column1 - oods_values[41]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow175 * oods_point)); + total_sum += constraint_coefficients[41] * value; + + value = (column1 - oods_values[42]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow178 * oods_point)); + total_sum += constraint_coefficients[42] * value; + + value = (column1 - oods_values[43]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow181 * oods_point)); + total_sum += constraint_coefficients[43] * value; + + value = (column1 - oods_values[44]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow200 * oods_point)); + total_sum += constraint_coefficients[44] * value; + + value = (column1 - oods_values[45]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow214 * oods_point)); + total_sum += constraint_coefficients[45] * value; + + value = (column1 - oods_values[46]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow219 * oods_point)); + total_sum += constraint_coefficients[46] * value; + + value = (column1 - oods_values[47]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow220 * oods_point)); + total_sum += constraint_coefficients[47] * value; + + value = (column1 - oods_values[48]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow223 * oods_point)); + total_sum += constraint_coefficients[48] * value; + + value = (column1 - oods_values[49]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow218 * oods_point)); + total_sum += constraint_coefficients[49] * value; + + value = (column1 - oods_values[50]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow222 * oods_point)); + total_sum += constraint_coefficients[50] * value; + + value = (column1 - oods_values[51]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow225 * oods_point)); + total_sum += constraint_coefficients[51] * value; + + value = (column1 - oods_values[52]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow226 * oods_point)); + total_sum += constraint_coefficients[52] * value; + + value = (column1 - oods_values[53]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow227 * oods_point)); + total_sum += constraint_coefficients[53] * value; + + value = (column1 - oods_values[54]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow228 * oods_point)); + total_sum += constraint_coefficients[54] * value; + + value = (column1 - oods_values[55]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow229 * oods_point)); + total_sum += constraint_coefficients[55] * value; + + value = (column1 - oods_values[56]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow230 * oods_point)); + total_sum += constraint_coefficients[56] * value; + + value = (column1 - oods_values[57]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow231 * oods_point)); + total_sum += constraint_coefficients[57] * value; + + value = (column1 - oods_values[58]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow232 * oods_point)); + total_sum += constraint_coefficients[58] * value; + + value = (column1 - oods_values[59]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow233 * oods_point)); + total_sum += constraint_coefficients[59] * value; + + value = (column1 - oods_values[60]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow234 * oods_point)); + total_sum += constraint_coefficients[60] * value; + + value = (column1 - oods_values[61]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow237 * oods_point)); + total_sum += constraint_coefficients[61] * value; + + value = (column1 - oods_values[62]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow238 * oods_point)); + total_sum += constraint_coefficients[62] * value; + + value = (column1 - oods_values[63]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow241 * oods_point)); + total_sum += constraint_coefficients[63] * value; + + value = (column1 - oods_values[64]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow242 * oods_point)); + total_sum += constraint_coefficients[64] * value; + + value = (column1 - oods_values[65]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow243 * oods_point)); + total_sum += constraint_coefficients[65] * value; + + value = (column1 - oods_values[66]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow244 * oods_point)); + total_sum += constraint_coefficients[66] * value; + + value = (column1 - oods_values[67]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow245 * oods_point)); + total_sum += constraint_coefficients[67] * value; + + value = (column1 - oods_values[68]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow246 * oods_point)); + total_sum += constraint_coefficients[68] * value; + + value = (column1 - oods_values[69]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow247 * oods_point)); + total_sum += constraint_coefficients[69] * value; + + value = (column1 - oods_values[70]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow248 * oods_point)); + total_sum += constraint_coefficients[70] * value; + + value = (column1 - oods_values[71]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow249 * oods_point)); + total_sum += constraint_coefficients[71] * value; + + value = (column1 - oods_values[72]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow252 * oods_point)); + total_sum += constraint_coefficients[72] * value; + + value = (column1 - oods_values[73]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow256 * oods_point)); + total_sum += constraint_coefficients[73] * value; + + value = (column1 - oods_values[74]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow254 * oods_point)); + total_sum += constraint_coefficients[74] * value; + + value = (column1 - oods_values[75]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow257 * oods_point)); + total_sum += constraint_coefficients[75] * value; + + value = (column1 - oods_values[76]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow259 * oods_point)); + total_sum += constraint_coefficients[76] * value; + + value = (column1 - oods_values[77]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow258 * oods_point)); + total_sum += constraint_coefficients[77] * value; + + value = (column1 - oods_values[78]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow260 * oods_point)); + total_sum += constraint_coefficients[78] * value; + + value = (column1 - oods_values[79]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow262 * oods_point)); + total_sum += constraint_coefficients[79] * value; + + value = (column1 - oods_values[80]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow261 * oods_point)); + total_sum += constraint_coefficients[80] * value; + + value = (column1 - oods_values[81]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow263 * oods_point)); + total_sum += constraint_coefficients[81] * value; + + value = (column1 - oods_values[82]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow264 * oods_point)); + total_sum += constraint_coefficients[82] * value; + + value = (column1 - oods_values[83]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow266 * oods_point)); + total_sum += constraint_coefficients[83] * value; + + value = (column1 - oods_values[84]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow270 * oods_point)); + total_sum += constraint_coefficients[84] * value; + + value = (column1 - oods_values[85]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow272 * oods_point)); + total_sum += constraint_coefficients[85] * value; + + value = (column1 - oods_values[86]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow273 * oods_point)); + total_sum += constraint_coefficients[86] * value; + + value = (column1 - oods_values[87]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow274 * oods_point)); + total_sum += constraint_coefficients[87] * value; + + value = (column1 - oods_values[88]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow276 * oods_point)); + total_sum += constraint_coefficients[88] * value; + + value = (column1 - oods_values[89]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow277 * oods_point)); + total_sum += constraint_coefficients[89] * value; + + value = (column1 - oods_values[90]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow279 * oods_point)); + total_sum += constraint_coefficients[90] * value; + + value = (column1 - oods_values[91]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow278 * oods_point)); + total_sum += constraint_coefficients[91] * value; + + value = (column1 - oods_values[92]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow280 * oods_point)); + total_sum += constraint_coefficients[92] * value; + + value = (column1 - oods_values[93]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow282 * oods_point)); + total_sum += constraint_coefficients[93] * value; + + value = (column1 - oods_values[94]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow281 * oods_point)); + total_sum += constraint_coefficients[94] * value; + + value = (column1 - oods_values[95]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow283 * oods_point)); + total_sum += constraint_coefficients[95] * value; + + value = (column1 - oods_values[96]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow284 * oods_point)); + total_sum += constraint_coefficients[96] * value; + + value = (column1 - oods_values[97]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow285 * oods_point)); + total_sum += constraint_coefficients[97] * value; + + value = (column1 - oods_values[98]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow286 * oods_point)); + total_sum += constraint_coefficients[98] * value; + + value = (column1 - oods_values[99]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow287 * oods_point)); + total_sum += constraint_coefficients[99] * value; + + value = (column1 - oods_values[100]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow288 * oods_point)); + total_sum += constraint_coefficients[100] * value; + + value = (column1 - oods_values[101]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow289 * oods_point)); + total_sum += constraint_coefficients[101] * value; + + value = (column1 - oods_values[102]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow294 * oods_point)); + total_sum += constraint_coefficients[102] * value; + + value = (column1 - oods_values[103]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow290 * oods_point)); + total_sum += constraint_coefficients[103] * value; + + value = (column1 - oods_values[104]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow295 * oods_point)); + total_sum += constraint_coefficients[104] * value; + + value = (column1 - oods_values[105]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow297 * oods_point)); + total_sum += constraint_coefficients[105] * value; + + value = (column1 - oods_values[106]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow298 * oods_point)); + total_sum += constraint_coefficients[106] * value; + + value = (column1 - oods_values[107]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow296 * oods_point)); + total_sum += constraint_coefficients[107] * value; + + value = (column1 - oods_values[108]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow299 * oods_point)); + total_sum += constraint_coefficients[108] * value; + + value = (column1 - oods_values[109]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow300 * oods_point)); + total_sum += constraint_coefficients[109] * value; + + value = (column1 - oods_values[110]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow303 * oods_point)); + total_sum += constraint_coefficients[110] * value; + + value = (column1 - oods_values[111]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow308 * oods_point)); + total_sum += constraint_coefficients[111] * value; + + value = (column1 - oods_values[112]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow309 * oods_point)); + total_sum += constraint_coefficients[112] * value; + + value = (column1 - oods_values[113]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow310 * oods_point)); + total_sum += constraint_coefficients[113] * value; + + value = (column1 - oods_values[114]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow311 * oods_point)); + total_sum += constraint_coefficients[114] * value; + + value = (column1 - oods_values[115]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow312 * oods_point)); + total_sum += constraint_coefficients[115] * value; + + value = (column1 - oods_values[116]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow313 * oods_point)); + total_sum += constraint_coefficients[116] * value; + + value = (column1 - oods_values[117]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow314 * oods_point)); + total_sum += constraint_coefficients[117] * value; + + value = (column1 - oods_values[118]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow315 * oods_point)); + total_sum += constraint_coefficients[118] * value; + + value = (column1 - oods_values[119]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow316 * oods_point)); + total_sum += constraint_coefficients[119] * value; + + value = (column1 - oods_values[120]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow317 * oods_point)); + total_sum += constraint_coefficients[120] * value; + + value = (column1 - oods_values[121]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow318 * oods_point)); + total_sum += constraint_coefficients[121] * value; + + value = (column1 - oods_values[122]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow322 * oods_point)); + total_sum += constraint_coefficients[122] * value; + + value = (column1 - oods_values[123]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow319 * oods_point)); + total_sum += constraint_coefficients[123] * value; + + value = (column1 - oods_values[124]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow323 * oods_point)); + total_sum += constraint_coefficients[124] * value; + + value = (column1 - oods_values[125]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow324 * oods_point)); + total_sum += constraint_coefficients[125] * value; + + value = (column1 - oods_values[126]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow325 * oods_point)); + total_sum += constraint_coefficients[126] * value; + + value = (column1 - oods_values[127]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow326 * oods_point)); + total_sum += constraint_coefficients[127] * value; + + value = (column1 - oods_values[128]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow327 * oods_point)); + total_sum += constraint_coefficients[128] * value; + + value = (column1 - oods_values[129]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow328 * oods_point)); + total_sum += constraint_coefficients[129] * value; + + value = (column1 - oods_values[130]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow329 * oods_point)); + total_sum += constraint_coefficients[130] * value; + + value = (column1 - oods_values[131]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow330 * oods_point)); + total_sum += constraint_coefficients[131] * value; + + value = (column1 - oods_values[132]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow331 * oods_point)); + total_sum += constraint_coefficients[132] * value; + + value = (column1 - oods_values[133]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow332 * oods_point)); + total_sum += constraint_coefficients[133] * value; + + value = (column1 - oods_values[134]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow333 * oods_point)); + total_sum += constraint_coefficients[134] * value; + + value = (column1 - oods_values[135]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow335 * oods_point)); + total_sum += constraint_coefficients[135] * value; + + value = (column1 - oods_values[136]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow338 * oods_point)); + total_sum += constraint_coefficients[136] * value; + + value = (column1 - oods_values[137]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow342 * oods_point)); + total_sum += constraint_coefficients[137] * value; + + value = (column1 - oods_values[138]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow343 * oods_point)); + total_sum += constraint_coefficients[138] * value; + + value = (column1 - oods_values[139]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow345 * oods_point)); + total_sum += constraint_coefficients[139] * value; + + value = (column1 - oods_values[140]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow347 * oods_point)); + total_sum += constraint_coefficients[140] * value; + + value = (column1 - oods_values[141]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow346 * oods_point)); + total_sum += constraint_coefficients[141] * value; + + value = (column1 - oods_values[142]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow348 * oods_point)); + total_sum += constraint_coefficients[142] * value; + + value = (column1 - oods_values[143]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow350 * oods_point)); + total_sum += constraint_coefficients[143] * value; + + value = (column1 - oods_values[144]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow351 * oods_point)); + total_sum += constraint_coefficients[144] * value; + + value = (column1 - oods_values[145]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow354 * oods_point)); + total_sum += constraint_coefficients[145] * value; + + value = (column1 - oods_values[146]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow357 * oods_point)); + total_sum += constraint_coefficients[146] * value; + + value = (column1 - oods_values[147]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow352 * oods_point)); + total_sum += constraint_coefficients[147] * value; + + value = (column1 - oods_values[148]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow355 * oods_point)); + total_sum += constraint_coefficients[148] * value; + + value = (column1 - oods_values[149]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow353 * oods_point)); + total_sum += constraint_coefficients[149] * value; + + value = (column1 - oods_values[150]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow356 * oods_point)); + total_sum += constraint_coefficients[150] * value; + + value = (column1 - oods_values[151]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow358 * oods_point)); + total_sum += constraint_coefficients[151] * value; + + value = (column1 - oods_values[152]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow359 * oods_point)); + total_sum += constraint_coefficients[152] * value; + + value = (column1 - oods_values[153]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow360 * oods_point)); + total_sum += constraint_coefficients[153] * value; + + value = (column1 - oods_values[154]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow361 * oods_point)); + total_sum += constraint_coefficients[154] * value; + + value = (column1 - oods_values[155]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow362 * oods_point)); + total_sum += constraint_coefficients[155] * value; + + value = (column1 - oods_values[156]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow363 * oods_point)); + total_sum += constraint_coefficients[156] * value; + + value = (column1 - oods_values[157]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow364 * oods_point)); + total_sum += constraint_coefficients[157] * value; + + value = (column1 - oods_values[158]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow366 * oods_point)); + total_sum += constraint_coefficients[158] * value; + + value = (column1 - oods_values[159]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow367 * oods_point)); + total_sum += constraint_coefficients[159] * value; + + value = (column1 - oods_values[160]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow368 * oods_point)); + total_sum += constraint_coefficients[160] * value; + + value = (column1 - oods_values[161]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow369 * oods_point)); + total_sum += constraint_coefficients[161] * value; + + value = (column1 - oods_values[162]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow370 * oods_point)); + total_sum += constraint_coefficients[162] * value; + + value = (column1 - oods_values[163]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow371 * oods_point)); + total_sum += constraint_coefficients[163] * value; + + value = (column1 - oods_values[164]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow372 * oods_point)); + total_sum += constraint_coefficients[164] * value; + + value = (column1 - oods_values[165]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow373 * oods_point)); + total_sum += constraint_coefficients[165] * value; + + value = (column1 - oods_values[166]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow374 * oods_point)); + total_sum += constraint_coefficients[166] * value; + + value = (column1 - oods_values[167]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow375 * oods_point)); + total_sum += constraint_coefficients[167] * value; + + value = (column1 - oods_values[168]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow376 * oods_point)); + total_sum += constraint_coefficients[168] * value; + + value = (column1 - oods_values[169]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow379 * oods_point)); + total_sum += constraint_coefficients[169] * value; + + value = (column1 - oods_values[170]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow380 * oods_point)); + total_sum += constraint_coefficients[170] * value; + + value = (column1 - oods_values[171]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow382 * oods_point)); + total_sum += constraint_coefficients[171] * value; + + value = (column1 - oods_values[172]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow383 * oods_point)); + total_sum += constraint_coefficients[172] * value; + + value = (column1 - oods_values[173]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow384 * oods_point)); + total_sum += constraint_coefficients[173] * value; + + value = (column1 - oods_values[174]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow385 * oods_point)); + total_sum += constraint_coefficients[174] * value; + + value = (column1 - oods_values[175]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow386 * oods_point)); + total_sum += constraint_coefficients[175] * value; + + value = (column1 - oods_values[176]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow388 * oods_point)); + total_sum += constraint_coefficients[176] * value; + + value = (column1 - oods_values[177]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow389 * oods_point)); + total_sum += constraint_coefficients[177] * value; + + value = (column1 - oods_values[178]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow391 * oods_point)); + total_sum += constraint_coefficients[178] * value; + + value = (column1 - oods_values[179]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow392 * oods_point)); + total_sum += constraint_coefficients[179] * value; + + value = (column1 - oods_values[180]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow393 * oods_point)); + total_sum += constraint_coefficients[180] * value; + + value = (column1 - oods_values[181]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow403 * oods_point)); + total_sum += constraint_coefficients[181] * value; + + value = (column1 - oods_values[182]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow417 * oods_point)); + total_sum += constraint_coefficients[182] * value; + + value = (column1 - oods_values[183]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow424 * oods_point)); + total_sum += constraint_coefficients[183] * value; + + value = (column1 - oods_values[184]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow429 * oods_point)); + total_sum += constraint_coefficients[184] * value; + + value = (column1 - oods_values[185]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow378 * oods_point)); + total_sum += constraint_coefficients[185] * value; + + value = (column1 - oods_values[186]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow398 * oods_point)); + total_sum += constraint_coefficients[186] * value; + + value = (column1 - oods_values[187]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow478 * oods_point)); + total_sum += constraint_coefficients[187] * value; + + value = (column1 - oods_values[188]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow475 * oods_point)); + total_sum += constraint_coefficients[188] * value; + + value = (column1 - oods_values[189]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow476 * oods_point)); + total_sum += constraint_coefficients[189] * value; + + value = (column1 - oods_values[190]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow477 * oods_point)); + total_sum += constraint_coefficients[190] * value; + + value = (column1 - oods_values[191]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow472 * oods_point)); + total_sum += constraint_coefficients[191] * value; + + value = (column1 - oods_values[192]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow473 * oods_point)); + total_sum += constraint_coefficients[192] * value; + + value = (column1 - oods_values[193]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow474 * oods_point)); + total_sum += constraint_coefficients[193] * value; + + value = (column1 - oods_values[194]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow481 * oods_point)); + total_sum += constraint_coefficients[194] * value; + + value = (column1 - oods_values[195]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow471 * oods_point)); + total_sum += constraint_coefficients[195] * value; + + value = (column1 - oods_values[196]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow480 * oods_point)); + total_sum += constraint_coefficients[196] * value; + + value = (column1 - oods_values[197]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow482 * oods_point)); + total_sum += constraint_coefficients[197] * value; + + value = (column1 - oods_values[198]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow483 * oods_point)); + total_sum += constraint_coefficients[198] * value; + + value = (column1 - oods_values[199]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow484 * oods_point)); + total_sum += constraint_coefficients[199] * value; + + value = (column1 - oods_values[200]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow486 * oods_point)); + total_sum += constraint_coefficients[200] * value; + + value = (column1 - oods_values[201]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow52 * oods_point)); + total_sum += constraint_coefficients[201] * value; + + value = (column1 - oods_values[202]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow621 * oods_point)); + total_sum += constraint_coefficients[202] * value; + + value = (column1 - oods_values[203]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow487 * oods_point)); + total_sum += constraint_coefficients[203] * value; + + value = (column1 - oods_values[204]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow51 * oods_point)); + total_sum += constraint_coefficients[204] * value; + + value = (column1 - oods_values[205]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow50 * oods_point)); + total_sum += constraint_coefficients[205] * value; + + value = (column1 - oods_values[206]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow48 * oods_point)); + total_sum += constraint_coefficients[206] * value; + + value = (column1 - oods_values[207]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow540 * oods_point)); + total_sum += constraint_coefficients[207] * value; + + value = (column1 - oods_values[208]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow542 * oods_point)); + total_sum += constraint_coefficients[208] * value; + + value = (column1 - oods_values[209]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow544 * oods_point)); + total_sum += constraint_coefficients[209] * value; + + value = (column1 - oods_values[210]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow546 * oods_point)); + total_sum += constraint_coefficients[210] * value; + + value = (column1 - oods_values[211]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow548 * oods_point)); + total_sum += constraint_coefficients[211] * value; + + value = (column1 - oods_values[212]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow549 * oods_point)); + total_sum += constraint_coefficients[212] * value; + + value = (column1 - oods_values[213]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow530 * oods_point)); + total_sum += constraint_coefficients[213] * value; + + value = (column1 - oods_values[214]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow529 * oods_point)); + total_sum += constraint_coefficients[214] * value; + + value = (column1 - oods_values[215]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow526 * oods_point)); + total_sum += constraint_coefficients[215] * value; + + value = (column1 - oods_values[216]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow531 * oods_point)); + total_sum += constraint_coefficients[216] * value; + + value = (column1 - oods_values[217]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow47 * oods_point)); + total_sum += constraint_coefficients[217] * value; + + value = (column1 - oods_values[218]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow528 * oods_point)); + total_sum += constraint_coefficients[218] * value; + + value = (column1 - oods_values[219]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow536 * oods_point)); + total_sum += constraint_coefficients[219] * value; + + value = (column1 - oods_values[220]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow532 * oods_point)); + total_sum += constraint_coefficients[220] * value; + + value = (column1 - oods_values[221]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow533 * oods_point)); + total_sum += constraint_coefficients[221] * value; + + value = (column1 - oods_values[222]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow534 * oods_point)); + total_sum += constraint_coefficients[222] * value; + + value = (column1 - oods_values[223]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow46 * oods_point)); + total_sum += constraint_coefficients[223] * value; + + value = (column1 - oods_values[224]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow45 * oods_point)); + total_sum += constraint_coefficients[224] * value; + + value = (column1 - oods_values[225]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow44 * oods_point)); + total_sum += constraint_coefficients[225] * value; + + value = (column1 - oods_values[226]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow49 * oods_point)); + total_sum += constraint_coefficients[226] * value; + + value = (column1 - oods_values[227]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow541 * oods_point)); + total_sum += constraint_coefficients[227] * value; + + value = (column1 - oods_values[228]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow543 * oods_point)); + total_sum += constraint_coefficients[228] * value; + + value = (column1 - oods_values[229]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow545 * oods_point)); + total_sum += constraint_coefficients[229] * value; + + value = (column1 - oods_values[230]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow547 * oods_point)); + total_sum += constraint_coefficients[230] * value; + + value = (column1 - oods_values[231]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow550 * oods_point)); + total_sum += constraint_coefficients[231] * value; + + value = (column1 - oods_values[232]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow551 * oods_point)); + total_sum += constraint_coefficients[232] * value; + + value = (column1 - oods_values[233]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow43 * oods_point)); + total_sum += constraint_coefficients[233] * value; + + value = (column1 - oods_values[234]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow42 * oods_point)); + total_sum += constraint_coefficients[234] * value; + + value = (column1 - oods_values[235]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow41 * oods_point)); + total_sum += constraint_coefficients[235] * value; + + value = (column1 - oods_values[236]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow40 * oods_point)); + total_sum += constraint_coefficients[236] * value; + + value = (column1 - oods_values[237]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow39 * oods_point)); + total_sum += constraint_coefficients[237] * value; + + value = (column1 - oods_values[238]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow38 * oods_point)); + total_sum += constraint_coefficients[238] * value; + + value = (column1 - oods_values[239]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow513 * oods_point)); + total_sum += constraint_coefficients[239] * value; + + value = (column1 - oods_values[240]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow514 * oods_point)); + total_sum += constraint_coefficients[240] * value; + + value = (column1 - oods_values[241]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow512 * oods_point)); + total_sum += constraint_coefficients[241] * value; + + value = (column1 - oods_values[242]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow511 * oods_point)); + total_sum += constraint_coefficients[242] * value; + + value = (column1 - oods_values[243]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow37 * oods_point)); + total_sum += constraint_coefficients[243] * value; + + value = (column1 - oods_values[244]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow36 * oods_point)); + total_sum += constraint_coefficients[244] * value; + + value = (column1 - oods_values[245]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow35 * oods_point)); + total_sum += constraint_coefficients[245] * value; + + value = (column1 - oods_values[246]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow320 * oods_point)); + total_sum += constraint_coefficients[246] * value; + + value = (column1 - oods_values[247]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow34 * oods_point)); + total_sum += constraint_coefficients[247] * value; + + value = (column1 - oods_values[248]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow106 * oods_point)); + total_sum += constraint_coefficients[248] * value; + + value = (column1 - oods_values[249]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow137 * oods_point)); + total_sum += constraint_coefficients[249] * value; + + value = (column1 - oods_values[250]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow33 * oods_point)); + total_sum += constraint_coefficients[250] * value; + + value = (column1 - oods_values[251]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow105 * oods_point)); + total_sum += constraint_coefficients[251] * value; + + value = (column1 - oods_values[252]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow136 * oods_point)); + total_sum += constraint_coefficients[252] * value; + + value = (column1 - oods_values[253]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow32 * oods_point)); + total_sum += constraint_coefficients[253] * value; + + value = (column1 - oods_values[254]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow31 * oods_point)); + total_sum += constraint_coefficients[254] * value; + + value = (column1 - oods_values[255]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow444 * oods_point)); + total_sum += constraint_coefficients[255] * value; + + value = (column1 - oods_values[256]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow450 * oods_point)); + total_sum += constraint_coefficients[256] * value; + + value = (column1 - oods_values[257]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow30 * oods_point)); + total_sum += constraint_coefficients[257] * value; + + value = (column1 - oods_values[258]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow104 * oods_point)); + total_sum += constraint_coefficients[258] * value; + + value = (column1 - oods_values[259]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow135 * oods_point)); + total_sum += constraint_coefficients[259] * value; + + value = (column1 - oods_values[260]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow29 * oods_point)); + total_sum += constraint_coefficients[260] * value; + + value = (column1 - oods_values[261]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow28 * oods_point)); + total_sum += constraint_coefficients[261] * value; + + value = (column1 - oods_values[262]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow27 * oods_point)); + total_sum += constraint_coefficients[262] * value; + + value = (column1 - oods_values[263]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow520 * oods_point)); + total_sum += constraint_coefficients[263] * value; + + value = (column1 - oods_values[264]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow523 * oods_point)); + total_sum += constraint_coefficients[264] * value; + + value = (column1 - oods_values[265]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow519 * oods_point)); + total_sum += constraint_coefficients[265] * value; + + value = (column1 - oods_values[266]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow521 * oods_point)); + total_sum += constraint_coefficients[266] * value; + + value = (column1 - oods_values[267]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow555 * oods_point)); + total_sum += constraint_coefficients[267] * value; + + value = (column1 - oods_values[268]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow556 * oods_point)); + total_sum += constraint_coefficients[268] * value; + + value = (column1 - oods_values[269]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow557 * oods_point)); + total_sum += constraint_coefficients[269] * value; + + value = (column1 - oods_values[270]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow558 * oods_point)); + total_sum += constraint_coefficients[270] * value; + + value = (column1 - oods_values[271]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow559 * oods_point)); + total_sum += constraint_coefficients[271] * value; + + value = (column1 - oods_values[272]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow561 * oods_point)); + total_sum += constraint_coefficients[272] * value; + + value = (column1 - oods_values[273]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow571 * oods_point)); + total_sum += constraint_coefficients[273] * value; + + value = (column1 - oods_values[274]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow570 * oods_point)); + total_sum += constraint_coefficients[274] * value; + + value = (column1 - oods_values[275]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow569 * oods_point)); + total_sum += constraint_coefficients[275] * value; + + value = (column1 - oods_values[276]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow568 * oods_point)); + total_sum += constraint_coefficients[276] * value; + + value = (column1 - oods_values[277]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow26 * oods_point)); + total_sum += constraint_coefficients[277] * value; + + value = (column1 - oods_values[278]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow524 * oods_point)); + total_sum += constraint_coefficients[278] * value; + + value = (column1 - oods_values[279]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow25 * oods_point)); + total_sum += constraint_coefficients[279] * value; + + value = (column1 - oods_values[280]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow174 * oods_point)); + total_sum += constraint_coefficients[280] * value; + + value = (column1 - oods_values[281]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow217 * oods_point)); + total_sum += constraint_coefficients[281] * value; + + value = (column1 - oods_values[282]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow553 * oods_point)); + total_sum += constraint_coefficients[282] * value; + + value = (column1 - oods_values[283]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow24 * oods_point)); + total_sum += constraint_coefficients[283] * value; + + value = (column1 - oods_values[284]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow103 * oods_point)); + total_sum += constraint_coefficients[284] * value; + + value = (column1 - oods_values[285]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow134 * oods_point)); + total_sum += constraint_coefficients[285] * value; + + value = (column1 - oods_values[286]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow23 * oods_point)); + total_sum += constraint_coefficients[286] * value; + + value = (column1 - oods_values[287]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow22 * oods_point)); + total_sum += constraint_coefficients[287] * value; + + value = (column1 - oods_values[288]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow173 * oods_point)); + total_sum += constraint_coefficients[288] * value; + + value = (column1 - oods_values[289]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow216 * oods_point)); + total_sum += constraint_coefficients[289] * value; + + value = (column1 - oods_values[290]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow21 * oods_point)); + total_sum += constraint_coefficients[290] * value; + + value = (column1 - oods_values[291]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow102 * oods_point)); + total_sum += constraint_coefficients[291] * value; + + value = (column1 - oods_values[292]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow133 * oods_point)); + total_sum += constraint_coefficients[292] * value; + + value = (column1 - oods_values[293]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow573 * oods_point)); + total_sum += constraint_coefficients[293] * value; + + value = (column1 - oods_values[294]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow321 * oods_point)); + total_sum += constraint_coefficients[294] * value; + + value = (column1 - oods_values[295]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow562 * oods_point)); + total_sum += constraint_coefficients[295] * value; + + value = (column1 - oods_values[296]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow563 * oods_point)); + total_sum += constraint_coefficients[296] * value; + + value = (column1 - oods_values[297]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow620 * oods_point)); + total_sum += constraint_coefficients[297] * value; + + value = (column1 - oods_values[298]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow619 * oods_point)); + total_sum += constraint_coefficients[298] * value; + + value = (column1 - oods_values[299]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow617 * oods_point)); + total_sum += constraint_coefficients[299] * value; + + value = (column1 - oods_values[300]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow616 * oods_point)); + total_sum += constraint_coefficients[300] * value; + + value = (column1 - oods_values[301]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow20 * oods_point)); + total_sum += constraint_coefficients[301] * value; + + value = (column1 - oods_values[302]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow19 * oods_point)); + total_sum += constraint_coefficients[302] * value; + + value = (column1 - oods_values[303]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow18 * oods_point)); + total_sum += constraint_coefficients[303] * value; + + value = (column1 - oods_values[304]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow17 * oods_point)); + total_sum += constraint_coefficients[304] * value; + + value = (column1 - oods_values[305]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow387 * oods_point)); + total_sum += constraint_coefficients[305] * value; + + value = (column1 - oods_values[306]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow517 * oods_point)); + total_sum += constraint_coefficients[306] * value; + + value = (column1 - oods_values[307]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow518 * oods_point)); + total_sum += constraint_coefficients[307] * value; + + value = (column1 - oods_values[308]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow578 * oods_point)); + total_sum += constraint_coefficients[308] * value; + + value = (column1 - oods_values[309]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow16 * oods_point)); + total_sum += constraint_coefficients[309] * value; + + value = (column1 - oods_values[310]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow15 * oods_point)); + total_sum += constraint_coefficients[310] * value; + + value = (column1 - oods_values[311]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow14 * oods_point)); + total_sum += constraint_coefficients[311] * value; + + value = (column1 - oods_values[312]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow172 * oods_point)); + total_sum += constraint_coefficients[312] * value; + + value = (column1 - oods_values[313]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow215 * oods_point)); + total_sum += constraint_coefficients[313] * value; + + value = (column1 - oods_values[314]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow13 * oods_point)); + total_sum += constraint_coefficients[314] * value; + + value = (column1 - oods_values[315]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow101 * oods_point)); + total_sum += constraint_coefficients[315] * value; + + value = (column1 - oods_values[316]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow132 * oods_point)); + total_sum += constraint_coefficients[316] * value; + + value = (column1 - oods_values[317]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow584 * oods_point)); + total_sum += constraint_coefficients[317] * value; + + value = (column1 - oods_values[318]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow585 * oods_point)); + total_sum += constraint_coefficients[318] * value; + + value = (column1 - oods_values[319]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow618 * oods_point)); + total_sum += constraint_coefficients[319] * value; + + value = (column1 - oods_values[320]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow583 * oods_point)); + total_sum += constraint_coefficients[320] * value; + + value = (column1 - oods_values[321]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow12 * oods_point)); + total_sum += constraint_coefficients[321] * value; + + value = (column1 - oods_values[322]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow581 * oods_point)); + total_sum += constraint_coefficients[322] * value; + + value = (column1 - oods_values[323]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow11 * oods_point)); + total_sum += constraint_coefficients[323] * value; + + value = (column1 - oods_values[324]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow177 * oods_point)); + total_sum += constraint_coefficients[324] * value; + + value = (column1 - oods_values[325]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow10 * oods_point)); + total_sum += constraint_coefficients[325] * value; + + value = (column1 - oods_values[326]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow334 * oods_point)); + total_sum += constraint_coefficients[326] * value; + + value = (column1 - oods_values[327]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow9 * oods_point)); + total_sum += constraint_coefficients[327] * value; + + value = (column1 - oods_values[328]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow365 * oods_point)); + total_sum += constraint_coefficients[328] * value; + + value = (column1 - oods_values[329]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow592 * oods_point)); + total_sum += constraint_coefficients[329] * value; + + value = (column1 - oods_values[330]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow594 * oods_point)); + total_sum += constraint_coefficients[330] * value; + + value = (column1 - oods_values[331]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow593 * oods_point)); + total_sum += constraint_coefficients[331] * value; + + value = (column1 - oods_values[332]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow595 * oods_point)); + total_sum += constraint_coefficients[332] * value; + + value = (column1 - oods_values[333]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow596 * oods_point)); + total_sum += constraint_coefficients[333] * value; + + value = (column1 - oods_values[334]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow8 * oods_point)); + total_sum += constraint_coefficients[334] * value; + + value = (column1 - oods_values[335]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow597 * oods_point)); + total_sum += constraint_coefficients[335] * value; + + value = (column1 - oods_values[336]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow598 * oods_point)); + total_sum += constraint_coefficients[336] * value; + + value = (column1 - oods_values[337]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow600 * oods_point)); + total_sum += constraint_coefficients[337] * value; + + value = (column1 - oods_values[338]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow602 * oods_point)); + total_sum += constraint_coefficients[338] * value; + + value = (column1 - oods_values[339]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow603 * oods_point)); + total_sum += constraint_coefficients[339] * value; + + value = (column1 - oods_values[340]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow601 * oods_point)); + total_sum += constraint_coefficients[340] * value; + + value = (column1 - oods_values[341]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow608 * oods_point)); + total_sum += constraint_coefficients[341] * value; + + value = (column1 - oods_values[342]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow609 * oods_point)); + total_sum += constraint_coefficients[342] * value; + + value = (column1 - oods_values[343]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow610 * oods_point)); + total_sum += constraint_coefficients[343] * value; + + value = (column1 - oods_values[344]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow611 * oods_point)); + total_sum += constraint_coefficients[344] * value; + + value = (column1 - oods_values[345]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow613 * oods_point)); + total_sum += constraint_coefficients[345] * value; + + value = (column1 - oods_values[346]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow615 * oods_point)); + total_sum += constraint_coefficients[346] * value; + + value = (column1 - oods_values[347]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow612 * oods_point)); + total_sum += constraint_coefficients[347] * value; + + value = (column1 - oods_values[348]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow614 * oods_point)); + total_sum += constraint_coefficients[348] * value; + + value = (column2 - oods_values[349]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[349] * value; + + value = (column2 - oods_values[350]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow53 * oods_point)); + total_sum += constraint_coefficients[350] * value; + + value = (column3 - oods_values[351]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[351] * value; + + value = (column3 - oods_values[352]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow53 * oods_point)); + total_sum += constraint_coefficients[352] * value; + + value = (column3 - oods_values[353]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow170 * oods_point)); + total_sum += constraint_coefficients[353] * value; + + value = (column3 - oods_values[354]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow171 * oods_point)); + total_sum += constraint_coefficients[354] * value; + + value = (column3 - oods_values[355]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow213 * oods_point)); + total_sum += constraint_coefficients[355] * value; + + value = (column4 - oods_values[356]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[356] * value; + + value = (column4 - oods_values[357]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow53 * oods_point)); + total_sum += constraint_coefficients[357] * value; + + value = (column4 - oods_values[358]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow170 * oods_point)); + total_sum += constraint_coefficients[358] * value; + + value = (column4 - oods_values[359]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow171 * oods_point)); + total_sum += constraint_coefficients[359] * value; + + value = (column5 - oods_values[360]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[360] * value; + + value = (column5 - oods_values[361]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow53 * oods_point)); + total_sum += constraint_coefficients[361] * value; + + value = (column5 - oods_values[362]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow149 * oods_point)); + total_sum += constraint_coefficients[362] * value; + + value = (column5 - oods_values[363]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow150 * oods_point)); + total_sum += constraint_coefficients[363] * value; + + value = (column5 - oods_values[364]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow152 * oods_point)); + total_sum += constraint_coefficients[364] * value; + + value = (column5 - oods_values[365]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow153 * oods_point)); + total_sum += constraint_coefficients[365] * value; + + value = (column5 - oods_values[366]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow167 * oods_point)); + total_sum += constraint_coefficients[366] * value; + + value = (column5 - oods_values[367]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow168 * oods_point)); + total_sum += constraint_coefficients[367] * value; + + value = (column5 - oods_values[368]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow171 * oods_point)); + total_sum += constraint_coefficients[368] * value; + + value = (column6 - oods_values[369]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[369] * value; + + value = (column6 - oods_values[370]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow170 * oods_point)); + total_sum += constraint_coefficients[370] * value; + + value = (column7 - oods_values[371]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[371] * value; + + value = (column7 - oods_values[372]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow53 * oods_point)); + total_sum += constraint_coefficients[372] * value; + + value = (column7 - oods_values[373]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow54 * oods_point)); + total_sum += constraint_coefficients[373] * value; + + value = (column7 - oods_values[374]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow55 * oods_point)); + total_sum += constraint_coefficients[374] * value; + + value = (column7 - oods_values[375]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow56 * oods_point)); + total_sum += constraint_coefficients[375] * value; + + value = (column7 - oods_values[376]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow57 * oods_point)); + total_sum += constraint_coefficients[376] * value; + + value = (column7 - oods_values[377]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow58 * oods_point)); + total_sum += constraint_coefficients[377] * value; + + value = (column7 - oods_values[378]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow59 * oods_point)); + total_sum += constraint_coefficients[378] * value; + + value = (column7 - oods_values[379]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow60 * oods_point)); + total_sum += constraint_coefficients[379] * value; + + value = (column7 - oods_values[380]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow61 * oods_point)); + total_sum += constraint_coefficients[380] * value; + + value = (column7 - oods_values[381]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow62 * oods_point)); + total_sum += constraint_coefficients[381] * value; + + value = (column7 - oods_values[382]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow63 * oods_point)); + total_sum += constraint_coefficients[382] * value; + + value = (column7 - oods_values[383]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow64 * oods_point)); + total_sum += constraint_coefficients[383] * value; + + value = (column7 - oods_values[384]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow65 * oods_point)); + total_sum += constraint_coefficients[384] * value; + + value = (column7 - oods_values[385]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow66 * oods_point)); + total_sum += constraint_coefficients[385] * value; + + value = (column7 - oods_values[386]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow67 * oods_point)); + total_sum += constraint_coefficients[386] * value; + + value = (column7 - oods_values[387]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow418 * oods_point)); + total_sum += constraint_coefficients[387] * value; + + value = (column7 - oods_values[388]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow419 * oods_point)); + total_sum += constraint_coefficients[388] * value; + + value = (column7 - oods_values[389]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow420 * oods_point)); + total_sum += constraint_coefficients[389] * value; + + value = (column7 - oods_values[390]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow427 * oods_point)); + total_sum += constraint_coefficients[390] * value; + + value = (column7 - oods_values[391]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow428 * oods_point)); + total_sum += constraint_coefficients[391] * value; + + value = (column7 - oods_values[392]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow431 * oods_point)); + total_sum += constraint_coefficients[392] * value; + + value = (column7 - oods_values[393]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow432 * oods_point)); + total_sum += constraint_coefficients[393] * value; + + value = (column7 - oods_values[394]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow433 * oods_point)); + total_sum += constraint_coefficients[394] * value; + + value = (column7 - oods_values[395]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow434 * oods_point)); + total_sum += constraint_coefficients[395] * value; + + value = (column7 - oods_values[396]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow435 * oods_point)); + total_sum += constraint_coefficients[396] * value; + + value = (column7 - oods_values[397]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow436 * oods_point)); + total_sum += constraint_coefficients[397] * value; + + value = (column7 - oods_values[398]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow437 * oods_point)); + total_sum += constraint_coefficients[398] * value; + + value = (column7 - oods_values[399]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow438 * oods_point)); + total_sum += constraint_coefficients[399] * value; + + value = (column7 - oods_values[400]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow439 * oods_point)); + total_sum += constraint_coefficients[400] * value; + + value = (column7 - oods_values[401]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow440 * oods_point)); + total_sum += constraint_coefficients[401] * value; + + value = (column7 - oods_values[402]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow441 * oods_point)); + total_sum += constraint_coefficients[402] * value; + + value = (column7 - oods_values[403]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow442 * oods_point)); + total_sum += constraint_coefficients[403] * value; + + value = (column7 - oods_values[404]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow443 * oods_point)); + total_sum += constraint_coefficients[404] * value; + + value = (column7 - oods_values[405]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow446 * oods_point)); + total_sum += constraint_coefficients[405] * value; + + value = (column7 - oods_values[406]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow447 * oods_point)); + total_sum += constraint_coefficients[406] * value; + + value = (column7 - oods_values[407]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow448 * oods_point)); + total_sum += constraint_coefficients[407] * value; + + value = (column7 - oods_values[408]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow449 * oods_point)); + total_sum += constraint_coefficients[408] * value; + + value = (column7 - oods_values[409]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow451 * oods_point)); + total_sum += constraint_coefficients[409] * value; + + value = (column7 - oods_values[410]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow452 * oods_point)); + total_sum += constraint_coefficients[410] * value; + + value = (column7 - oods_values[411]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow453 * oods_point)); + total_sum += constraint_coefficients[411] * value; + + value = (column7 - oods_values[412]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow454 * oods_point)); + total_sum += constraint_coefficients[412] * value; + + value = (column7 - oods_values[413]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow457 * oods_point)); + total_sum += constraint_coefficients[413] * value; + + value = (column7 - oods_values[414]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow460 * oods_point)); + total_sum += constraint_coefficients[414] * value; + + value = (column7 - oods_values[415]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow464 * oods_point)); + total_sum += constraint_coefficients[415] * value; + + value = (column7 - oods_values[416]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow468 * oods_point)); + total_sum += constraint_coefficients[416] * value; + + value = (column7 - oods_values[417]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow504 * oods_point)); + total_sum += constraint_coefficients[417] * value; + + value = (column7 - oods_values[418]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow505 * oods_point)); + total_sum += constraint_coefficients[418] * value; + + value = (column7 - oods_values[419]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow506 * oods_point)); + total_sum += constraint_coefficients[419] * value; + + value = (column7 - oods_values[420]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow507 * oods_point)); + total_sum += constraint_coefficients[420] * value; + + value = (column7 - oods_values[421]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow508 * oods_point)); + total_sum += constraint_coefficients[421] * value; + + value = (column7 - oods_values[422]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow515 * oods_point)); + total_sum += constraint_coefficients[422] * value; + + value = (column7 - oods_values[423]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow516 * oods_point)); + total_sum += constraint_coefficients[423] * value; + + value = (column7 - oods_values[424]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow565 * oods_point)); + total_sum += constraint_coefficients[424] * value; + + value = (column7 - oods_values[425]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow566 * oods_point)); + total_sum += constraint_coefficients[425] * value; + + value = (column7 - oods_values[426]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow572 * oods_point)); + total_sum += constraint_coefficients[426] * value; + + value = (column7 - oods_values[427]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow574 * oods_point)); + total_sum += constraint_coefficients[427] * value; + + value = (column7 - oods_values[428]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow576 * oods_point)); + total_sum += constraint_coefficients[428] * value; + + value = (column7 - oods_values[429]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow579 * oods_point)); + total_sum += constraint_coefficients[429] * value; + + value = (column7 - oods_values[430]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow580 * oods_point)); + total_sum += constraint_coefficients[430] * value; + + value = (column7 - oods_values[431]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow588 * oods_point)); + total_sum += constraint_coefficients[431] * value; + + value = (column8 - oods_values[432]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[432] * value; + + value = (column8 - oods_values[433]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow53 * oods_point)); + total_sum += constraint_coefficients[433] * value; + + value = (column8 - oods_values[434]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow54 * oods_point)); + total_sum += constraint_coefficients[434] * value; + + value = (column8 - oods_values[435]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow55 * oods_point)); + total_sum += constraint_coefficients[435] * value; + + value = (column8 - oods_values[436]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow56 * oods_point)); + total_sum += constraint_coefficients[436] * value; + + value = (column8 - oods_values[437]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow57 * oods_point)); + total_sum += constraint_coefficients[437] * value; + + value = (column8 - oods_values[438]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow58 * oods_point)); + total_sum += constraint_coefficients[438] * value; + + value = (column8 - oods_values[439]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow59 * oods_point)); + total_sum += constraint_coefficients[439] * value; + + value = (column8 - oods_values[440]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow60 * oods_point)); + total_sum += constraint_coefficients[440] * value; + + value = (column8 - oods_values[441]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow61 * oods_point)); + total_sum += constraint_coefficients[441] * value; + + value = (column8 - oods_values[442]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow64 * oods_point)); + total_sum += constraint_coefficients[442] * value; + + value = (column8 - oods_values[443]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow65 * oods_point)); + total_sum += constraint_coefficients[443] * value; + + value = (column8 - oods_values[444]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow68 * oods_point)); + total_sum += constraint_coefficients[444] * value; + + value = (column8 - oods_values[445]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow85 * oods_point)); + total_sum += constraint_coefficients[445] * value; + + value = (column8 - oods_values[446]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow86 * oods_point)); + total_sum += constraint_coefficients[446] * value; + + value = (column8 - oods_values[447]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow109 * oods_point)); + total_sum += constraint_coefficients[447] * value; + + value = (column8 - oods_values[448]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow110 * oods_point)); + total_sum += constraint_coefficients[448] * value; + + value = (column8 - oods_values[449]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow122 * oods_point)); + total_sum += constraint_coefficients[449] * value; + + value = (column8 - oods_values[450]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow123 * oods_point)); + total_sum += constraint_coefficients[450] * value; + + value = (column8 - oods_values[451]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow138 * oods_point)); + total_sum += constraint_coefficients[451] * value; + + value = (column8 - oods_values[452]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow139 * oods_point)); + total_sum += constraint_coefficients[452] * value; + + value = (column8 - oods_values[453]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow144 * oods_point)); + total_sum += constraint_coefficients[453] * value; + + value = (column8 - oods_values[454]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow145 * oods_point)); + total_sum += constraint_coefficients[454] * value; + + value = (column8 - oods_values[455]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow154 * oods_point)); + total_sum += constraint_coefficients[455] * value; + + value = (column8 - oods_values[456]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow155 * oods_point)); + total_sum += constraint_coefficients[456] * value; + + value = (column8 - oods_values[457]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow179 * oods_point)); + total_sum += constraint_coefficients[457] * value; + + value = (column8 - oods_values[458]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow180 * oods_point)); + total_sum += constraint_coefficients[458] * value; + + value = (column8 - oods_values[459]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow184 * oods_point)); + total_sum += constraint_coefficients[459] * value; + + value = (column8 - oods_values[460]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow185 * oods_point)); + total_sum += constraint_coefficients[460] * value; + + value = (column8 - oods_values[461]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow190 * oods_point)); + total_sum += constraint_coefficients[461] * value; + + value = (column8 - oods_values[462]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow194 * oods_point)); + total_sum += constraint_coefficients[462] * value; + + value = (column8 - oods_values[463]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow197 * oods_point)); + total_sum += constraint_coefficients[463] * value; + + value = (column8 - oods_values[464]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow195 * oods_point)); + total_sum += constraint_coefficients[464] * value; + + value = (column8 - oods_values[465]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow198 * oods_point)); + total_sum += constraint_coefficients[465] * value; + + value = (column8 - oods_values[466]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow196 * oods_point)); + total_sum += constraint_coefficients[466] * value; + + value = (column8 - oods_values[467]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow199 * oods_point)); + total_sum += constraint_coefficients[467] * value; + + value = (column8 - oods_values[468]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow202 * oods_point)); + total_sum += constraint_coefficients[468] * value; + + value = (column8 - oods_values[469]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow221 * oods_point)); + total_sum += constraint_coefficients[469] * value; + + value = (column8 - oods_values[470]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow224 * oods_point)); + total_sum += constraint_coefficients[470] * value; + + value = (column8 - oods_values[471]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow235 * oods_point)); + total_sum += constraint_coefficients[471] * value; + + value = (column8 - oods_values[472]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow236 * oods_point)); + total_sum += constraint_coefficients[472] * value; + + value = (column8 - oods_values[473]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow239 * oods_point)); + total_sum += constraint_coefficients[473] * value; + + value = (column8 - oods_values[474]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow240 * oods_point)); + total_sum += constraint_coefficients[474] * value; + + value = (column8 - oods_values[475]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow250 * oods_point)); + total_sum += constraint_coefficients[475] * value; + + value = (column8 - oods_values[476]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow251 * oods_point)); + total_sum += constraint_coefficients[476] * value; + + value = (column8 - oods_values[477]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow268 * oods_point)); + total_sum += constraint_coefficients[477] * value; + + value = (column8 - oods_values[478]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow275 * oods_point)); + total_sum += constraint_coefficients[478] * value; + + value = (column8 - oods_values[479]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow337 * oods_point)); + total_sum += constraint_coefficients[479] * value; + + value = (column8 - oods_values[480]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow7 * oods_point)); + total_sum += constraint_coefficients[480] * value; + + value = (column8 - oods_values[481]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow293 * oods_point)); + total_sum += constraint_coefficients[481] * value; + + value = (column8 - oods_values[482]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow306 * oods_point)); + total_sum += constraint_coefficients[482] * value; + + value = (column8 - oods_values[483]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow307 * oods_point)); + total_sum += constraint_coefficients[483] * value; + + value = (column8 - oods_values[484]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow336 * oods_point)); + total_sum += constraint_coefficients[484] * value; + + value = (column8 - oods_values[485]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow348 * oods_point)); + total_sum += constraint_coefficients[485] * value; + + value = (column8 - oods_values[486]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow349 * oods_point)); + total_sum += constraint_coefficients[486] * value; + + value = (column8 - oods_values[487]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow381 * oods_point)); + total_sum += constraint_coefficients[487] * value; + + value = (column8 - oods_values[488]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow399 * oods_point)); + total_sum += constraint_coefficients[488] * value; + + value = (column8 - oods_values[489]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow425 * oods_point)); + total_sum += constraint_coefficients[489] * value; + + value = (column8 - oods_values[490]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow430 * oods_point)); + total_sum += constraint_coefficients[490] * value; + + value = (column8 - oods_values[491]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow377 * oods_point)); + total_sum += constraint_coefficients[491] * value; + + value = (column8 - oods_values[492]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow401 * oods_point)); + total_sum += constraint_coefficients[492] * value; + + value = (column8 - oods_values[493]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow400 * oods_point)); + total_sum += constraint_coefficients[493] * value; + + value = (column8 - oods_values[494]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow409 * oods_point)); + total_sum += constraint_coefficients[494] * value; + + value = (column8 - oods_values[495]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow414 * oods_point)); + total_sum += constraint_coefficients[495] * value; + + value = (column8 - oods_values[496]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow413 * oods_point)); + total_sum += constraint_coefficients[496] * value; + + value = (column8 - oods_values[497]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow394 * oods_point)); + total_sum += constraint_coefficients[497] * value; + + value = (column8 - oods_values[498]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow412 * oods_point)); + total_sum += constraint_coefficients[498] * value; + + value = (column8 - oods_values[499]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow410 * oods_point)); + total_sum += constraint_coefficients[499] * value; + + value = (column8 - oods_values[500]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow469 * oods_point)); + total_sum += constraint_coefficients[500] * value; + + value = (column8 - oods_values[501]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow489 * oods_point)); + total_sum += constraint_coefficients[501] * value; + + value = (column8 - oods_values[502]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow623 * oods_point)); + total_sum += constraint_coefficients[502] * value; + + value = (column8 - oods_values[503]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow622 * oods_point)); + total_sum += constraint_coefficients[503] * value; + + value = (column8 - oods_values[504]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow470 * oods_point)); + total_sum += constraint_coefficients[504] * value; + + value = (column8 - oods_values[505]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow490 * oods_point)); + total_sum += constraint_coefficients[505] * value; + + value = (column8 - oods_values[506]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow485 * oods_point)); + total_sum += constraint_coefficients[506] * value; + + value = (column8 - oods_values[507]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow497 * oods_point)); + total_sum += constraint_coefficients[507] * value; + + value = (column8 - oods_values[508]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow496 * oods_point)); + total_sum += constraint_coefficients[508] * value; + + value = (column8 - oods_values[509]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow495 * oods_point)); + total_sum += constraint_coefficients[509] * value; + + value = (column8 - oods_values[510]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow492 * oods_point)); + total_sum += constraint_coefficients[510] * value; + + value = (column8 - oods_values[511]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow539 * oods_point)); + total_sum += constraint_coefficients[511] * value; + + value = (column9 - oods_values[512]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[512] * value; + + value = (column9 - oods_values[513]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow53 * oods_point)); + total_sum += constraint_coefficients[513] * value; + + value = (column9 - oods_values[514]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow54 * oods_point)); + total_sum += constraint_coefficients[514] * value; + + value = (column9 - oods_values[515]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow55 * oods_point)); + total_sum += constraint_coefficients[515] * value; + + value = (column10 - oods_values[516]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[516] * value; + + value = (column10 - oods_values[517]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow53 * oods_point)); + total_sum += constraint_coefficients[517] * value; + + value = (column10 - oods_values[518]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow54 * oods_point)); + total_sum += constraint_coefficients[518] * value; + + value = (column10 - oods_values[519]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow55 * oods_point)); + total_sum += constraint_coefficients[519] * value; + + value = (column10 - oods_values[520]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow56 * oods_point)); + total_sum += constraint_coefficients[520] * value; + + value = (column10 - oods_values[521]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow57 * oods_point)); + total_sum += constraint_coefficients[521] * value; + + value = (column10 - oods_values[522]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow58 * oods_point)); + total_sum += constraint_coefficients[522] * value; + + value = (column10 - oods_values[523]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow59 * oods_point)); + total_sum += constraint_coefficients[523] * value; + + value = (column10 - oods_values[524]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow60 * oods_point)); + total_sum += constraint_coefficients[524] * value; + + value = (column10 - oods_values[525]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow61 * oods_point)); + total_sum += constraint_coefficients[525] * value; + + value = (column10 - oods_values[526]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow64 * oods_point)); + total_sum += constraint_coefficients[526] * value; + + value = (column10 - oods_values[527]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow65 * oods_point)); + total_sum += constraint_coefficients[527] * value; + + value = (column10 - oods_values[528]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow71 * oods_point)); + total_sum += constraint_coefficients[528] * value; + + value = (column10 - oods_values[529]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow72 * oods_point)); + total_sum += constraint_coefficients[529] * value; + + value = (column10 - oods_values[530]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow73 * oods_point)); + total_sum += constraint_coefficients[530] * value; + + value = (column10 - oods_values[531]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow76 * oods_point)); + total_sum += constraint_coefficients[531] * value; + + value = (column10 - oods_values[532]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow89 * oods_point)); + total_sum += constraint_coefficients[532] * value; + + value = (column10 - oods_values[533]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow110 * oods_point)); + total_sum += constraint_coefficients[533] * value; + + value = (column10 - oods_values[534]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow112 * oods_point)); + total_sum += constraint_coefficients[534] * value; + + value = (column10 - oods_values[535]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow125 * oods_point)); + total_sum += constraint_coefficients[535] * value; + + value = (column10 - oods_values[536]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow139 * oods_point)); + total_sum += constraint_coefficients[536] * value; + + value = (column10 - oods_values[537]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow140 * oods_point)); + total_sum += constraint_coefficients[537] * value; + + value = (column10 - oods_values[538]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow146 * oods_point)); + total_sum += constraint_coefficients[538] * value; + + value = (column10 - oods_values[539]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow156 * oods_point)); + total_sum += constraint_coefficients[539] * value; + + value = (column10 - oods_values[540]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow162 * oods_point)); + total_sum += constraint_coefficients[540] * value; + + value = (column10 - oods_values[541]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow165 * oods_point)); + total_sum += constraint_coefficients[541] * value; + + value = (column10 - oods_values[542]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow167 * oods_point)); + total_sum += constraint_coefficients[542] * value; + + value = (column10 - oods_values[543]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow176 * oods_point)); + total_sum += constraint_coefficients[543] * value; + + value = (column10 - oods_values[544]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow183 * oods_point)); + total_sum += constraint_coefficients[544] * value; + + value = (column10 - oods_values[545]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow205 * oods_point)); + total_sum += constraint_coefficients[545] * value; + + value = (column10 - oods_values[546]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow207 * oods_point)); + total_sum += constraint_coefficients[546] * value; + + value = (column10 - oods_values[547]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow208 * oods_point)); + total_sum += constraint_coefficients[547] * value; + + value = (column10 - oods_values[548]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow210 * oods_point)); + total_sum += constraint_coefficients[548] * value; + + value = (column10 - oods_values[549]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow211 * oods_point)); + total_sum += constraint_coefficients[549] * value; + + value = (column10 - oods_values[550]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow265 * oods_point)); + total_sum += constraint_coefficients[550] * value; + + value = (column10 - oods_values[551]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow269 * oods_point)); + total_sum += constraint_coefficients[551] * value; + + value = (column10 - oods_values[552]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow271 * oods_point)); + total_sum += constraint_coefficients[552] * value; + + value = (column10 - oods_values[553]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow302 * oods_point)); + total_sum += constraint_coefficients[553] * value; + + value = (column10 - oods_values[554]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow304 * oods_point)); + total_sum += constraint_coefficients[554] * value; + + value = (column10 - oods_values[555]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow305 * oods_point)); + total_sum += constraint_coefficients[555] * value; + + value = (column10 - oods_values[556]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow339 * oods_point)); + total_sum += constraint_coefficients[556] * value; + + value = (column10 - oods_values[557]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow344 * oods_point)); + total_sum += constraint_coefficients[557] * value; + + value = (column10 - oods_values[558]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow390 * oods_point)); + total_sum += constraint_coefficients[558] * value; + + value = (column10 - oods_values[559]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow395 * oods_point)); + total_sum += constraint_coefficients[559] * value; + + value = (column10 - oods_values[560]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow396 * oods_point)); + total_sum += constraint_coefficients[560] * value; + + value = (column10 - oods_values[561]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow397 * oods_point)); + total_sum += constraint_coefficients[561] * value; + + value = (column10 - oods_values[562]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow402 * oods_point)); + total_sum += constraint_coefficients[562] * value; + + value = (column10 - oods_values[563]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow416 * oods_point)); + total_sum += constraint_coefficients[563] * value; + + value = (column10 - oods_values[564]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow421 * oods_point)); + total_sum += constraint_coefficients[564] * value; + + value = (column10 - oods_values[565]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow422 * oods_point)); + total_sum += constraint_coefficients[565] * value; + + value = (column10 - oods_values[566]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow423 * oods_point)); + total_sum += constraint_coefficients[566] * value; + + value = (column10 - oods_values[567]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow415 * oods_point)); + total_sum += constraint_coefficients[567] * value; + + value = (column10 - oods_values[568]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow404 * oods_point)); + total_sum += constraint_coefficients[568] * value; + + value = (column10 - oods_values[569]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow426 * oods_point)); + total_sum += constraint_coefficients[569] * value; + + value = (column10 - oods_values[570]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow445 * oods_point)); + total_sum += constraint_coefficients[570] * value; + + value = (column10 - oods_values[571]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow491 * oods_point)); + total_sum += constraint_coefficients[571] * value; + + value = (column10 - oods_values[572]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow493 * oods_point)); + total_sum += constraint_coefficients[572] * value; + + value = (column10 - oods_values[573]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow6 * oods_point)); + total_sum += constraint_coefficients[573] * value; + + value = (column10 - oods_values[574]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow70 * oods_point)); + total_sum += constraint_coefficients[574] * value; + + value = (column10 - oods_values[575]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow525 * oods_point)); + total_sum += constraint_coefficients[575] * value; + + value = (column10 - oods_values[576]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow527 * oods_point)); + total_sum += constraint_coefficients[576] * value; + + value = (column10 - oods_values[577]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow535 * oods_point)); + total_sum += constraint_coefficients[577] * value; + + value = (column10 - oods_values[578]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow537 * oods_point)); + total_sum += constraint_coefficients[578] * value; + + value = (column10 - oods_values[579]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow5 * oods_point)); + total_sum += constraint_coefficients[579] * value; + + value = (column10 - oods_values[580]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow69 * oods_point)); + total_sum += constraint_coefficients[580] * value; + + value = (column10 - oods_values[581]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow301 * oods_point)); + total_sum += constraint_coefficients[581] * value; + + value = (column10 - oods_values[582]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow510 * oods_point)); + total_sum += constraint_coefficients[582] * value; + + value = (column10 - oods_values[583]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow509 * oods_point)); + total_sum += constraint_coefficients[583] * value; + + value = (column10 - oods_values[584]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow253 * oods_point)); + total_sum += constraint_coefficients[584] * value; + + value = (column10 - oods_values[585]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow255 * oods_point)); + total_sum += constraint_coefficients[585] * value; + + value = (column10 - oods_values[586]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow267 * oods_point)); + total_sum += constraint_coefficients[586] * value; + + value = (column10 - oods_values[587]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow291 * oods_point)); + total_sum += constraint_coefficients[587] * value; + + value = (column10 - oods_values[588]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow292 * oods_point)); + total_sum += constraint_coefficients[588] * value; + + value = (column10 - oods_values[589]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow624 * oods_point)); + total_sum += constraint_coefficients[589] * value; + + value = (column10 - oods_values[590]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow625 * oods_point)); + total_sum += constraint_coefficients[590] * value; + + value = (column10 - oods_values[591]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow626 * oods_point)); + total_sum += constraint_coefficients[591] * value; + + value = (column10 - oods_values[592]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow522 * oods_point)); + total_sum += constraint_coefficients[592] * value; + + value = (column10 - oods_values[593]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow552 * oods_point)); + total_sum += constraint_coefficients[593] * value; + + value = (column10 - oods_values[594]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow554 * oods_point)); + total_sum += constraint_coefficients[594] * value; + + value = (column10 - oods_values[595]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow567 * oods_point)); + total_sum += constraint_coefficients[595] * value; + + value = (column10 - oods_values[596]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow627 * oods_point)); + total_sum += constraint_coefficients[596] * value; + + value = (column10 - oods_values[597]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow4 * oods_point)); + total_sum += constraint_coefficients[597] * value; + + value = (column10 - oods_values[598]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow340 * oods_point)); + total_sum += constraint_coefficients[598] * value; + + value = (column10 - oods_values[599]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow341 * oods_point)); + total_sum += constraint_coefficients[599] * value; + + value = (column10 - oods_values[600]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow564 * oods_point)); + total_sum += constraint_coefficients[600] * value; + + value = (column10 - oods_values[601]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow575 * oods_point)); + total_sum += constraint_coefficients[601] * value; + + value = (column10 - oods_values[602]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow3 * oods_point)); + total_sum += constraint_coefficients[602] * value; + + value = (column10 - oods_values[603]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow2 * oods_point)); + total_sum += constraint_coefficients[603] * value; + + value = (column10 - oods_values[604]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow80 * oods_point)); + total_sum += constraint_coefficients[604] * value; + + value = (column10 - oods_values[605]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow577 * oods_point)); + total_sum += constraint_coefficients[605] * value; + + value = (column10 - oods_values[606]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow560 * oods_point)); + total_sum += constraint_coefficients[606] * value; + + value = (column10 - oods_values[607]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow1 * oods_point)); + total_sum += constraint_coefficients[607] * value; + + value = (column10 - oods_values[608]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow604 * oods_point)); + total_sum += constraint_coefficients[608] * value; + + value = (column10 - oods_values[609]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow586 * oods_point)); + total_sum += constraint_coefficients[609] * value; + + value = (column10 - oods_values[610]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow587 * oods_point)); + total_sum += constraint_coefficients[610] * value; + + value = (column10 - oods_values[611]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow582 * oods_point)); + total_sum += constraint_coefficients[611] * value; + + value = (column10 - oods_values[612]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow589 * oods_point)); + total_sum += constraint_coefficients[612] * value; + + value = (column10 - oods_values[613]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow538 * oods_point)); + total_sum += constraint_coefficients[613] * value; + + value = (column10 - oods_values[614]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow590 * oods_point)); + total_sum += constraint_coefficients[614] * value; + + value = (column10 - oods_values[615]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow591 * oods_point)); + total_sum += constraint_coefficients[615] * value; + + value = (column10 - oods_values[616]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow599 * oods_point)); + total_sum += constraint_coefficients[616] * value; + + value = (column10 - oods_values[617]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow605 * oods_point)); + total_sum += constraint_coefficients[617] * value; + + value = (column10 - oods_values[618]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow606 * oods_point)); + total_sum += constraint_coefficients[618] * value; + + value = (column10 - oods_values[619]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow607 * oods_point)); + total_sum += constraint_coefficients[619] * value; + + value = (column10 - oods_values[620]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow628 * oods_point)); + total_sum += constraint_coefficients[620] * value; + + value = (column11 - oods_values[621]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[621] * value; + + value = (column11 - oods_values[622]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow53 * oods_point)); + total_sum += constraint_coefficients[622] * value; + + value = (column11 - oods_values[623]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow54 * oods_point)); + total_sum += constraint_coefficients[623] * value; + + value = (column11 - oods_values[624]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow55 * oods_point)); + total_sum += constraint_coefficients[624] * value; + + value = (column11 - oods_values[625]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow56 * oods_point)); + total_sum += constraint_coefficients[625] * value; + + value = (column11 - oods_values[626]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow57 * oods_point)); + total_sum += constraint_coefficients[626] * value; + + value = (column11 - oods_values[627]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow58 * oods_point)); + total_sum += constraint_coefficients[627] * value; + + value = (column11 - oods_values[628]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow59 * oods_point)); + total_sum += constraint_coefficients[628] * value; + + value = (column11 - oods_values[629]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow60 * oods_point)); + total_sum += constraint_coefficients[629] * value; + + value = (column11 - oods_values[630]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow61 * oods_point)); + total_sum += constraint_coefficients[630] * value; + + value = (column11 - oods_values[631]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow62 * oods_point)); + total_sum += constraint_coefficients[631] * value; + + value = (column11 - oods_values[632]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow63 * oods_point)); + total_sum += constraint_coefficients[632] * value; + + value = (column11 - oods_values[633]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow64 * oods_point)); + total_sum += constraint_coefficients[633] * value; + + value = (column11 - oods_values[634]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow65 * oods_point)); + total_sum += constraint_coefficients[634] * value; + + value = (column11 - oods_values[635]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow66 * oods_point)); + total_sum += constraint_coefficients[635] * value; + + value = (column11 - oods_values[636]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow68 * oods_point)); + total_sum += constraint_coefficients[636] * value; + + value = (column11 - oods_values[637]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow71 * oods_point)); + total_sum += constraint_coefficients[637] * value; + + value = (column11 - oods_values[638]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow72 * oods_point)); + total_sum += constraint_coefficients[638] * value; + + value = (column11 - oods_values[639]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow73 * oods_point)); + total_sum += constraint_coefficients[639] * value; + + value = (column11 - oods_values[640]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow74 * oods_point)); + total_sum += constraint_coefficients[640] * value; + + value = (column11 - oods_values[641]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow75 * oods_point)); + total_sum += constraint_coefficients[641] * value; + + value = (column11 - oods_values[642]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow76 * oods_point)); + total_sum += constraint_coefficients[642] * value; + + value = (column11 - oods_values[643]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow77 * oods_point)); + total_sum += constraint_coefficients[643] * value; + + value = (column11 - oods_values[644]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow78 * oods_point)); + total_sum += constraint_coefficients[644] * value; + + value = (column11 - oods_values[645]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow79 * oods_point)); + total_sum += constraint_coefficients[645] * value; + + value = (column11 - oods_values[646]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow82 * oods_point)); + total_sum += constraint_coefficients[646] * value; + + value = (column11 - oods_values[647]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow83 * oods_point)); + total_sum += constraint_coefficients[647] * value; + + value = (column11 - oods_values[648]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow84 * oods_point)); + total_sum += constraint_coefficients[648] * value; + + value = (column11 - oods_values[649]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow85 * oods_point)); + total_sum += constraint_coefficients[649] * value; + + value = (column11 - oods_values[650]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow87 * oods_point)); + total_sum += constraint_coefficients[650] * value; + + value = (column11 - oods_values[651]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow88 * oods_point)); + total_sum += constraint_coefficients[651] * value; + + value = (column11 - oods_values[652]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow90 * oods_point)); + total_sum += constraint_coefficients[652] * value; + + value = (column11 - oods_values[653]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow91 * oods_point)); + total_sum += constraint_coefficients[653] * value; + + value = (column11 - oods_values[654]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow93 * oods_point)); + total_sum += constraint_coefficients[654] * value; + + value = (column11 - oods_values[655]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow94 * oods_point)); + total_sum += constraint_coefficients[655] * value; + + value = (column11 - oods_values[656]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow95 * oods_point)); + total_sum += constraint_coefficients[656] * value; + + value = (column11 - oods_values[657]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow96 * oods_point)); + total_sum += constraint_coefficients[657] * value; + + value = (column11 - oods_values[658]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow97 * oods_point)); + total_sum += constraint_coefficients[658] * value; + + value = (column11 - oods_values[659]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow98 * oods_point)); + total_sum += constraint_coefficients[659] * value; + + value = (column11 - oods_values[660]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow99 * oods_point)); + total_sum += constraint_coefficients[660] * value; + + value = (column11 - oods_values[661]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow107 * oods_point)); + total_sum += constraint_coefficients[661] * value; + + value = (column11 - oods_values[662]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow108 * oods_point)); + total_sum += constraint_coefficients[662] * value; + + value = (column11 - oods_values[663]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow110 * oods_point)); + total_sum += constraint_coefficients[663] * value; + + value = (column11 - oods_values[664]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow111 * oods_point)); + total_sum += constraint_coefficients[664] * value; + + value = (column11 - oods_values[665]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow113 * oods_point)); + total_sum += constraint_coefficients[665] * value; + + value = (column11 - oods_values[666]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow115 * oods_point)); + total_sum += constraint_coefficients[666] * value; + + value = (column11 - oods_values[667]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow116 * oods_point)); + total_sum += constraint_coefficients[667] * value; + + value = (column11 - oods_values[668]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow117 * oods_point)); + total_sum += constraint_coefficients[668] * value; + + value = (column11 - oods_values[669]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow118 * oods_point)); + total_sum += constraint_coefficients[669] * value; + + value = (column11 - oods_values[670]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow120 * oods_point)); + total_sum += constraint_coefficients[670] * value; + + value = (column11 - oods_values[671]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow121 * oods_point)); + total_sum += constraint_coefficients[671] * value; + + value = (column11 - oods_values[672]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow124 * oods_point)); + total_sum += constraint_coefficients[672] * value; + + value = (column11 - oods_values[673]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow126 * oods_point)); + total_sum += constraint_coefficients[673] * value; + + value = (column11 - oods_values[674]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow128 * oods_point)); + total_sum += constraint_coefficients[674] * value; + + value = (column11 - oods_values[675]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow129 * oods_point)); + total_sum += constraint_coefficients[675] * value; + + value = (column11 - oods_values[676]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow130 * oods_point)); + total_sum += constraint_coefficients[676] * value; + + value = (column11 - oods_values[677]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow142 * oods_point)); + total_sum += constraint_coefficients[677] * value; + + value = (column11 - oods_values[678]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow148 * oods_point)); + total_sum += constraint_coefficients[678] * value; + + value = (column11 - oods_values[679]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow151 * oods_point)); + total_sum += constraint_coefficients[679] * value; + + value = (column11 - oods_values[680]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow157 * oods_point)); + total_sum += constraint_coefficients[680] * value; + + value = (column11 - oods_values[681]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow159 * oods_point)); + total_sum += constraint_coefficients[681] * value; + + value = (column11 - oods_values[682]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow160 * oods_point)); + total_sum += constraint_coefficients[682] * value; + + value = (column11 - oods_values[683]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow163 * oods_point)); + total_sum += constraint_coefficients[683] * value; + + value = (column11 - oods_values[684]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow166 * oods_point)); + total_sum += constraint_coefficients[684] * value; + + value = (column11 - oods_values[685]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow169 * oods_point)); + total_sum += constraint_coefficients[685] * value; + + value = (column11 - oods_values[686]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow182 * oods_point)); + total_sum += constraint_coefficients[686] * value; + + value = (column11 - oods_values[687]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow186 * oods_point)); + total_sum += constraint_coefficients[687] * value; + + value = (column11 - oods_values[688]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow187 * oods_point)); + total_sum += constraint_coefficients[688] * value; + + value = (column11 - oods_values[689]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow188 * oods_point)); + total_sum += constraint_coefficients[689] * value; + + value = (column11 - oods_values[690]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow189 * oods_point)); + total_sum += constraint_coefficients[690] * value; + + value = (column11 - oods_values[691]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow190 * oods_point)); + total_sum += constraint_coefficients[691] * value; + + value = (column11 - oods_values[692]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow191 * oods_point)); + total_sum += constraint_coefficients[692] * value; + + value = (column11 - oods_values[693]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow192 * oods_point)); + total_sum += constraint_coefficients[693] * value; + + value = (column11 - oods_values[694]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow193 * oods_point)); + total_sum += constraint_coefficients[694] * value; + + value = (column11 - oods_values[695]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow201 * oods_point)); + total_sum += constraint_coefficients[695] * value; + + value = (column11 - oods_values[696]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow203 * oods_point)); + total_sum += constraint_coefficients[696] * value; + + value = (column11 - oods_values[697]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow204 * oods_point)); + total_sum += constraint_coefficients[697] * value; + + value = (column11 - oods_values[698]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow206 * oods_point)); + total_sum += constraint_coefficients[698] * value; + + value = (column11 - oods_values[699]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow209 * oods_point)); + total_sum += constraint_coefficients[699] * value; + + value = (column11 - oods_values[700]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow212 * oods_point)); + total_sum += constraint_coefficients[700] * value; + + value = (column11 - oods_values[701]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow405 * oods_point)); + total_sum += constraint_coefficients[701] * value; + + value = (column11 - oods_values[702]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow406 * oods_point)); + total_sum += constraint_coefficients[702] * value; + + value = (column11 - oods_values[703]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow407 * oods_point)); + total_sum += constraint_coefficients[703] * value; + + value = (column11 - oods_values[704]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow408 * oods_point)); + total_sum += constraint_coefficients[704] * value; + + value = (column11 - oods_values[705]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow411 * oods_point)); + total_sum += constraint_coefficients[705] * value; + + value = (column11 - oods_values[706]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow431 * oods_point)); + total_sum += constraint_coefficients[706] * value; + + value = (column11 - oods_values[707]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow455 * oods_point)); + total_sum += constraint_coefficients[707] * value; + + value = (column11 - oods_values[708]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow456 * oods_point)); + total_sum += constraint_coefficients[708] * value; + + value = (column11 - oods_values[709]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow458 * oods_point)); + total_sum += constraint_coefficients[709] * value; + + value = (column11 - oods_values[710]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow459 * oods_point)); + total_sum += constraint_coefficients[710] * value; + + value = (column11 - oods_values[711]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow461 * oods_point)); + total_sum += constraint_coefficients[711] * value; + + value = (column11 - oods_values[712]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow462 * oods_point)); + total_sum += constraint_coefficients[712] * value; + + value = (column11 - oods_values[713]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow463 * oods_point)); + total_sum += constraint_coefficients[713] * value; + + value = (column11 - oods_values[714]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow466 * oods_point)); + total_sum += constraint_coefficients[714] * value; + + value = (column11 - oods_values[715]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow467 * oods_point)); + total_sum += constraint_coefficients[715] * value; + + value = (column11 - oods_values[716]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow479 * oods_point)); + total_sum += constraint_coefficients[716] * value; + + value = (column11 - oods_values[717]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow488 * oods_point)); + total_sum += constraint_coefficients[717] * value; + + value = (column11 - oods_values[718]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow494 * oods_point)); + total_sum += constraint_coefficients[718] * value; + + value = (column11 - oods_values[719]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow465 * oods_point)); + total_sum += constraint_coefficients[719] * value; + + value = (column11 - oods_values[720]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow498 * oods_point)); + total_sum += constraint_coefficients[720] * value; + + value = (column11 - oods_values[721]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow499 * oods_point)); + total_sum += constraint_coefficients[721] * value; + + value = (column11 - oods_values[722]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow500 * oods_point)); + total_sum += constraint_coefficients[722] * value; + + value = (column11 - oods_values[723]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow501 * oods_point)); + total_sum += constraint_coefficients[723] * value; + + value = (column11 - oods_values[724]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow502 * oods_point)); + total_sum += constraint_coefficients[724] * value; + + value = (column11 - oods_values[725]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow503 * oods_point)); + total_sum += constraint_coefficients[725] * value; + + value = (column12 - oods_values[726]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[726] * value; + + value = (column12 - oods_values[727]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow53 * oods_point)); + total_sum += constraint_coefficients[727] * value; + + value = (column13 - oods_values[728]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[728] * value; + + value = (column13 - oods_values[729]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow53 * oods_point)); + total_sum += constraint_coefficients[729] * value; + + value = (column14 - oods_values[730]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow0 * oods_point)); + total_sum += constraint_coefficients[730] * value; + + value = (column14 - oods_values[731]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow53 * oods_point)); + total_sum += constraint_coefficients[731] * value; + + value = (column14 - oods_values[732]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow54 * oods_point)); + total_sum += constraint_coefficients[732] * value; + + value = (column14 - oods_values[733]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - pow57 * oods_point)); + total_sum += constraint_coefficients[733] * value; + + // Sum the OODS boundary constraints on the composition polynomials. + let oods_point_to_deg = oods_point.pow(CONSTRAINT_DEGREE); + + value = (column_values[(NUM_COLUMNS_FIRST + NUM_COLUMNS_SECOND) as usize] - oods_values[734]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - oods_point_to_deg)); + total_sum += constraint_coefficients[734] * value; + + value = (column_values[(NUM_COLUMNS_FIRST + NUM_COLUMNS_SECOND + 1) as usize] + - oods_values[735]) + .field_div(&NonZeroFelt::from_felt_unchecked(point - oods_point_to_deg)); + total_sum += constraint_coefficients[735] * value; + + total_sum +} diff --git a/crates/air/src/layout/starknet_with_keccak/global_values.rs b/crates/air/src/layout/starknet_with_keccak/global_values.rs new file mode 100644 index 0000000..1845e7c --- /dev/null +++ b/crates/air/src/layout/starknet_with_keccak/global_values.rs @@ -0,0 +1,165 @@ +use cairovm_verifier_transcript::transcript::Transcript; +use serde::{Deserialize, Serialize}; +use serde_with::serde_as; +use starknet_core::serde::unsigned_field_element::UfeHex; +use starknet_crypto::Felt; + +#[serde_as] +#[derive(Debug, PartialEq, Serialize, Deserialize)] +pub struct EcPoint { + #[serde_as(as = "UfeHex")] + pub x: Felt, + #[serde_as(as = "UfeHex")] + pub y: Felt, +} + +#[serde_as] +#[derive(Debug, PartialEq, Serialize, Deserialize)] +pub struct CurveConfig { + #[serde_as(as = "UfeHex")] + pub alpha: Felt, + #[serde_as(as = "UfeHex")] + pub beta: Felt, +} + +#[serde_as] +#[derive(Debug, PartialEq, Serialize, Deserialize)] +pub struct EcdsaSigConfig { + #[serde_as(as = "UfeHex")] + pub alpha: Felt, + #[serde_as(as = "UfeHex")] + pub beta: Felt, + pub shift_point: EcPoint, +} + +// Accumulation of member expressions for auto generated composition polynomial code. +#[serde_as] +#[derive(Debug, PartialEq, Serialize, Deserialize)] +pub struct GlobalValues { + // Public input. + #[serde_as(as = "UfeHex")] + pub trace_length: Felt, + #[serde_as(as = "UfeHex")] + pub initial_pc: Felt, + #[serde_as(as = "UfeHex")] + pub final_pc: Felt, + #[serde_as(as = "UfeHex")] + pub initial_ap: Felt, + #[serde_as(as = "UfeHex")] + pub final_ap: Felt, + #[serde_as(as = "UfeHex")] + pub initial_pedersen_addr: Felt, + #[serde_as(as = "UfeHex")] + pub initial_range_check_addr: Felt, + #[serde_as(as = "UfeHex")] + pub initial_ecdsa_addr: Felt, + #[serde_as(as = "UfeHex")] + pub initial_bitwise_addr: Felt, + #[serde_as(as = "UfeHex")] + pub initial_ec_op_addr: Felt, + #[serde_as(as = "UfeHex")] + pub initial_keccak_addr: Felt, + #[serde_as(as = "UfeHex")] + pub initial_poseidon_addr: Felt, + #[serde_as(as = "UfeHex")] + pub range_check_min: Felt, + #[serde_as(as = "UfeHex")] + pub range_check_max: Felt, + // Constants. + #[serde_as(as = "UfeHex")] + pub offset_size: Felt, + #[serde_as(as = "UfeHex")] + pub half_offset_size: Felt, + pub pedersen_shift_point: EcPoint, + pub ecdsa_sig_config: EcdsaSigConfig, + pub ec_op_curve_config: CurveConfig, + // Periodic columns. + #[serde_as(as = "UfeHex")] + pub pedersen_points_x: Felt, + #[serde_as(as = "UfeHex")] + pub pedersen_points_y: Felt, + #[serde_as(as = "UfeHex")] + pub ecdsa_generator_points_x: Felt, + #[serde_as(as = "UfeHex")] + pub ecdsa_generator_points_y: Felt, + #[serde_as(as = "UfeHex")] + pub keccak_keccak_keccak_round_key0: Felt, + #[serde_as(as = "UfeHex")] + pub keccak_keccak_keccak_round_key1: Felt, + #[serde_as(as = "UfeHex")] + pub keccak_keccak_keccak_round_key3: Felt, + #[serde_as(as = "UfeHex")] + pub keccak_keccak_keccak_round_key7: Felt, + #[serde_as(as = "UfeHex")] + pub keccak_keccak_keccak_round_key15: Felt, + #[serde_as(as = "UfeHex")] + pub keccak_keccak_keccak_round_key31: Felt, + #[serde_as(as = "UfeHex")] + pub keccak_keccak_keccak_round_key63: Felt, + #[serde_as(as = "UfeHex")] + pub poseidon_poseidon_full_round_key0: Felt, + #[serde_as(as = "UfeHex")] + pub poseidon_poseidon_full_round_key1: Felt, + #[serde_as(as = "UfeHex")] + pub poseidon_poseidon_full_round_key2: Felt, + #[serde_as(as = "UfeHex")] + pub poseidon_poseidon_partial_round_key0: Felt, + #[serde_as(as = "UfeHex")] + pub poseidon_poseidon_partial_round_key1: Felt, + // Interaction elements. + #[serde_as(as = "UfeHex")] + pub memory_multi_column_perm_perm_interaction_elm: Felt, + #[serde_as(as = "UfeHex")] + pub memory_multi_column_perm_hash_interaction_elm0: Felt, + #[serde_as(as = "UfeHex")] + pub range_check16_perm_interaction_elm: Felt, + #[serde_as(as = "UfeHex")] + pub diluted_check_permutation_interaction_elm: Felt, + #[serde_as(as = "UfeHex")] + pub diluted_check_interaction_z: Felt, + #[serde_as(as = "UfeHex")] + pub diluted_check_interaction_alpha: Felt, + // Permutation products. + #[serde_as(as = "UfeHex")] + pub memory_multi_column_perm_perm_public_memory_prod: Felt, + #[serde_as(as = "UfeHex")] + pub range_check16_perm_public_memory_prod: Felt, + #[serde_as(as = "UfeHex")] + pub diluted_check_first_elm: Felt, + #[serde_as(as = "UfeHex")] + pub diluted_check_permutation_public_memory_prod: Felt, + #[serde_as(as = "UfeHex")] + pub diluted_check_final_cum_val: Felt, +} + +// Elements that are sent from the prover after the commitment on the original trace. +// Used for components after the first interaction, e.g., memory and range check. +#[serde_as] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +pub struct InteractionElements { + #[serde_as(as = "UfeHex")] + pub memory_multi_column_perm_perm_interaction_elm: Felt, + #[serde_as(as = "UfeHex")] + pub memory_multi_column_perm_hash_interaction_elm0: Felt, + #[serde_as(as = "UfeHex")] + pub range_check16_perm_interaction_elm: Felt, + #[serde_as(as = "UfeHex")] + pub diluted_check_permutation_interaction_elm: Felt, + #[serde_as(as = "UfeHex")] + pub diluted_check_interaction_z: Felt, + #[serde_as(as = "UfeHex")] + pub diluted_check_interaction_alpha: Felt, +} + +impl InteractionElements { + pub fn new(transcript: &mut Transcript) -> Self { + Self { + memory_multi_column_perm_perm_interaction_elm: transcript.random_felt_to_prover(), + memory_multi_column_perm_hash_interaction_elm0: transcript.random_felt_to_prover(), + range_check16_perm_interaction_elm: transcript.random_felt_to_prover(), + diluted_check_permutation_interaction_elm: transcript.random_felt_to_prover(), + diluted_check_interaction_z: transcript.random_felt_to_prover(), + diluted_check_interaction_alpha: transcript.random_felt_to_prover(), + } + } +} diff --git a/crates/air/src/layout/starknet_with_keccak/mod.rs b/crates/air/src/layout/starknet_with_keccak/mod.rs new file mode 100644 index 0000000..227603c --- /dev/null +++ b/crates/air/src/layout/starknet_with_keccak/mod.rs @@ -0,0 +1,519 @@ +pub mod autogenerated; +pub mod global_values; + +use crate::{ + diluted::get_diluted_product, + layout::stark_curve, + periodic_columns::{ + eval_ecdsa_x, eval_ecdsa_y, eval_keccak_round_key0, eval_keccak_round_key1, + eval_keccak_round_key15, eval_keccak_round_key3, eval_keccak_round_key31, + eval_keccak_round_key63, eval_keccak_round_key7, eval_pedersen_x, eval_pedersen_y, + eval_poseidon_poseidon_full_round_key0, eval_poseidon_poseidon_full_round_key1, + eval_poseidon_poseidon_full_round_key2, eval_poseidon_poseidon_partial_round_key0, + eval_poseidon_poseidon_partial_round_key1, + }, + public_memory::{PublicInput, INITIAL_PC, MAX_ADDRESS, MAX_LOG_N_STEPS, MAX_RANGE_CHECK}, +}; +use bail_out::ensure; +use cairovm_verifier_commitment::table::{commit::table_commit, decommit::table_decommit}; +use global_values::{CurveConfig, EcPoint, EcdsaSigConfig, GlobalValues, InteractionElements}; +use starknet_core::types::NonZeroFelt; +use starknet_crypto::{poseidon_hash_many, Felt}; + +use super::{CompositionPolyEvalError, LayoutTrait, PublicInputError}; + +pub const BITWISE_RATIO: u32 = 64; +pub const BITWISE_ROW_RATIO: u32 = 1024; +pub const BITWISE_TOTAL_N_BITS: u32 = 251; +pub const CONSTRAINT_DEGREE: u32 = 2; +pub const CPU_COMPONENT_HEIGHT: u32 = 16; +pub const CPU_COMPONENT_STEP: u32 = 1; +pub const DILUTED_N_BITS: u32 = 16; +pub const DILUTED_SPACING: u32 = 4; +pub const EC_OP_BUILTIN_RATIO: u32 = 1024; +pub const EC_OP_BUILTIN_ROW_RATIO: u32 = 16384; +pub const EC_OP_N_BITS: u32 = 252; +pub const EC_OP_SCALAR_HEIGHT: u32 = 256; +pub const ECDSA_BUILTIN_RATIO: u32 = 2048; +pub const ECDSA_BUILTIN_REPETITIONS: u32 = 1; +pub const ECDSA_BUILTIN_ROW_RATIO: u32 = 32768; +pub const ECDSA_ELEMENT_BITS: u32 = 251; +pub const ECDSA_ELEMENT_HEIGHT: u32 = 256; +pub const HAS_BITWISE_BUILTIN: u32 = 1; +pub const HAS_DILUTED_POOL: u32 = 1; +pub const HAS_EC_OP_BUILTIN: u32 = 1; +pub const HAS_ECDSA_BUILTIN: u32 = 1; +pub const HAS_KECCAK_BUILTIN: u32 = 1; +pub const HAS_OUTPUT_BUILTIN: u32 = 1; +pub const HAS_PEDERSEN_BUILTIN: u32 = 1; +pub const HAS_POSEIDON_BUILTIN: u32 = 1; +pub const HAS_RANGE_CHECK_BUILTIN: u32 = 1; +pub const HAS_RANGE_CHECK96_BUILTIN: u32 = 0; +pub const IS_DYNAMIC_AIR: u32 = 0; +pub const KECCAK_RATIO: u32 = 2048; +pub const KECCAK_ROW_RATIO: u32 = 32768; +pub const LAYOUT_CODE: Felt = + Felt::from_hex_unchecked("0x737461726b6e65745f776974685f6b656363616b"); +pub const LOG_CPU_COMPONENT_HEIGHT: u32 = 4; +pub const MASK_SIZE: u32 = 734; +pub const N_CONSTRAINTS: u32 = 347; +pub const N_DYNAMIC_PARAMS: u32 = 0; +pub const NUM_COLUMNS_FIRST: u32 = 12; +pub const NUM_COLUMNS_SECOND: u32 = 3; +pub const PEDERSEN_BUILTIN_RATIO: u32 = 32; +pub const PEDERSEN_BUILTIN_REPETITIONS: u32 = 1; +pub const PEDERSEN_BUILTIN_ROW_RATIO: u32 = 512; +pub const POSEIDON_M: u32 = 3; +pub const POSEIDON_RATIO: u32 = 32; +pub const POSEIDON_ROUNDS_FULL: u32 = 8; +pub const POSEIDON_ROUNDS_PARTIAL: u32 = 83; +pub const POSEIDON_ROW_RATIO: u32 = 512; +pub const PUBLIC_MEMORY_STEP: u32 = 8; +pub const RANGE_CHECK_BUILTIN_RATIO: u32 = 16; +pub const RANGE_CHECK_BUILTIN_ROW_RATIO: u32 = 256; +pub const RANGE_CHECK_N_PARTS: u32 = 8; + +pub mod segments { + pub const BITWISE: usize = 6; + pub const EC_OP: usize = 7; + pub const ECDSA: usize = 5; + pub const N_SEGMENTS: usize = 10; + pub const PEDERSEN: usize = 3; + pub const POSEIDON: usize = 9; + pub const KECCAK: usize = 8; + pub const RANGE_CHECK: usize = 4; +} + +pub mod builtins { + use starknet_crypto::Felt; + + pub const OUTPUT: Felt = Felt::from_hex_unchecked("0x6F7574707574"); + pub const PEDERSEN: Felt = Felt::from_hex_unchecked("0x706564657273656E"); + pub const RANGE_CHECK: Felt = Felt::from_hex_unchecked("0x72616E67655F636865636B"); + pub const ECDSA: Felt = Felt::from_hex_unchecked("0x6563647361"); + pub const BITWISE: Felt = Felt::from_hex_unchecked("0x62697477697365"); + pub const EC_OP: Felt = Felt::from_hex_unchecked("0x65635F6F70"); + pub const KECCAK: Felt = Felt::from_hex_unchecked("0x6B656363616B"); + pub const POSEIDON: Felt = Felt::from_hex_unchecked("0x706F736569646F6E"); +} + +// Pedersen builtin +pub const SHIFT_POINT_X: Felt = + Felt::from_hex_unchecked("0x49ee3eba8c1600700ee1b87eb599f16716b0b1022947733551fde4050ca6804"); +pub const SHIFT_POINT_Y: Felt = + Felt::from_hex_unchecked("0x3ca0cfe4b3bc6ddf346d49d06ea0ed34e621062c0e056c1d0405d266e10268a"); + +pub const BUILTINS: [Felt; 8] = [ + builtins::OUTPUT, + builtins::PEDERSEN, + builtins::RANGE_CHECK, + builtins::ECDSA, + builtins::BITWISE, + builtins::EC_OP, + builtins::KECCAK, + builtins::POSEIDON, +]; + +pub struct RecursiveLayout {} + +impl LayoutTrait for RecursiveLayout { + type InteractionElements = InteractionElements; + fn eval_composition_polynomial( + interaction_elements: &Self::InteractionElements, + public_input: &PublicInput, + mask_values: &[Felt], + constraint_coefficients: &[Felt], + point: &Felt, + trace_domain_size: &Felt, + trace_generator: &Felt, + ) -> Result { + let memory_z = interaction_elements.memory_multi_column_perm_perm_interaction_elm; + let memory_alpha = interaction_elements.memory_multi_column_perm_hash_interaction_elm0; + + // Public memory + let public_memory_column_size = trace_domain_size + .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(PUBLIC_MEMORY_STEP))); + assert!(public_memory_column_size < u128::MAX.into()); + let public_memory_prod_ratio = public_input.get_public_memory_product_ratio( + memory_z, + memory_alpha, + public_memory_column_size, + ); + + // Diluted + let diluted_z = interaction_elements.diluted_check_interaction_z; + let diluted_alpha = interaction_elements.diluted_check_interaction_alpha; + let diluted_prod = get_diluted_product( + DILUTED_N_BITS.into(), + DILUTED_SPACING.into(), + diluted_z, + diluted_alpha, + ); + + // Periodic columns + let n_steps = Felt::TWO.pow_felt(&public_input.log_n_steps); + let n_pedersen_hash_copies = n_steps.field_div(&NonZeroFelt::from_felt_unchecked( + Felt::from(PEDERSEN_BUILTIN_RATIO * PEDERSEN_BUILTIN_REPETITIONS), + )); + assert!(n_pedersen_hash_copies < u128::MAX.into()); + let pedersen_point = point.pow_felt(&n_pedersen_hash_copies); + let pedersen_points_x = eval_pedersen_x(pedersen_point); + let pedersen_points_y = eval_pedersen_y(pedersen_point); + + let n_ecdsa_signature_copies = n_steps.field_div(&NonZeroFelt::from_felt_unchecked( + Felt::from(ECDSA_BUILTIN_RATIO * ECDSA_BUILTIN_REPETITIONS), + )); + assert!(n_ecdsa_signature_copies < u128::MAX.into()); + let ecdsa_point = point.pow_felt(&n_ecdsa_signature_copies); + let ecdsa_generator_points_x = eval_ecdsa_x(ecdsa_point); + let ecdsa_generator_points_y = eval_ecdsa_y(ecdsa_point); + + let n_keccak_component_copies = n_steps.field_div(&NonZeroFelt::from_felt_unchecked( + Felt::from(DILUTED_N_BITS * KECCAK_RATIO), + )); + assert!(n_keccak_component_copies < u128::MAX.into()); + let n_keccak_periodic_columns_copies = Felt::from(2048) * n_keccak_component_copies; + let keccak_point = point.pow_felt(&n_keccak_periodic_columns_copies); + let keccak_keccak_keccak_round_key0 = eval_keccak_round_key0(keccak_point); + let keccak_keccak_keccak_round_key1 = eval_keccak_round_key1(keccak_point); + let keccak_keccak_keccak_round_key3 = eval_keccak_round_key3(keccak_point); + let keccak_keccak_keccak_round_key7 = eval_keccak_round_key7(keccak_point); + let keccak_keccak_keccak_round_key15 = eval_keccak_round_key15(keccak_point); + let keccak_keccak_keccak_round_key31 = eval_keccak_round_key31(keccak_point); + let keccak_keccak_keccak_round_key63 = eval_keccak_round_key63(keccak_point); + + let n_poseidon_copies = + n_steps.field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(POSEIDON_RATIO))); + assert!(n_pedersen_hash_copies < u128::MAX.into()); + let poseidon_point = point.pow_felt(&n_poseidon_copies); + let poseidon_poseidon_full_round_key0 = + eval_poseidon_poseidon_full_round_key0(poseidon_point); + let poseidon_poseidon_full_round_key1 = + eval_poseidon_poseidon_full_round_key1(poseidon_point); + let poseidon_poseidon_full_round_key2 = + eval_poseidon_poseidon_full_round_key2(poseidon_point); + let poseidon_poseidon_partial_round_key0 = + eval_poseidon_poseidon_partial_round_key0(poseidon_point); + let poseidon_poseidon_partial_round_key1 = + eval_poseidon_poseidon_partial_round_key1(poseidon_point); + + let global_values = GlobalValues { + trace_length: *trace_domain_size, + initial_pc: public_input + .segments + .get(crate::layout::segments::PROGRAM) + .ok_or(CompositionPolyEvalError::SegmentMissing { + segment: crate::layout::segments::PROGRAM, + })? + .begin_addr, + final_pc: public_input + .segments + .get(crate::layout::segments::PROGRAM) + .ok_or(CompositionPolyEvalError::SegmentMissing { + segment: crate::layout::segments::PROGRAM, + })? + .stop_ptr, + initial_ap: public_input + .segments + .get(crate::layout::segments::EXECUTION) + .ok_or(CompositionPolyEvalError::SegmentMissing { + segment: crate::layout::segments::EXECUTION, + })? + .begin_addr, + final_ap: public_input + .segments + .get(crate::layout::segments::EXECUTION) + .ok_or(CompositionPolyEvalError::SegmentMissing { + segment: crate::layout::segments::EXECUTION, + })? + .stop_ptr, + initial_pedersen_addr: public_input + .segments + .get(segments::PEDERSEN) + .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::PEDERSEN })? + .begin_addr, + initial_range_check_addr: public_input + .segments + .get(segments::RANGE_CHECK) + .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::RANGE_CHECK })? + .begin_addr, + initial_ecdsa_addr: public_input + .segments + .get(segments::ECDSA) + .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::ECDSA })? + .begin_addr, + initial_bitwise_addr: public_input + .segments + .get(segments::BITWISE) + .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::BITWISE })? + .begin_addr, + initial_ec_op_addr: public_input + .segments + .get(segments::EC_OP) + .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::EC_OP })? + .begin_addr, + initial_keccak_addr: public_input + .segments + .get(segments::KECCAK) + .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::KECCAK })? + .begin_addr, + initial_poseidon_addr: public_input + .segments + .get(segments::POSEIDON) + .ok_or(CompositionPolyEvalError::SegmentMissing { segment: segments::POSEIDON })? + .begin_addr, + range_check_min: public_input.range_check_min, + range_check_max: public_input.range_check_max, + offset_size: Felt::from(0x10000), // 2**16 + half_offset_size: Felt::from(0x8000), // 2**15 + pedersen_shift_point: EcPoint { x: SHIFT_POINT_X, y: SHIFT_POINT_Y }, + ecdsa_sig_config: EcdsaSigConfig { + alpha: stark_curve::ALPHA, + beta: stark_curve::BETA, + shift_point: EcPoint { x: SHIFT_POINT_X, y: SHIFT_POINT_Y }, + }, + ec_op_curve_config: CurveConfig { alpha: stark_curve::ALPHA, beta: stark_curve::BETA }, + pedersen_points_x, + pedersen_points_y, + ecdsa_generator_points_x, + ecdsa_generator_points_y, + keccak_keccak_keccak_round_key0, + keccak_keccak_keccak_round_key1, + keccak_keccak_keccak_round_key3, + keccak_keccak_keccak_round_key7, + keccak_keccak_keccak_round_key15, + keccak_keccak_keccak_round_key31, + keccak_keccak_keccak_round_key63, + poseidon_poseidon_full_round_key0, + poseidon_poseidon_full_round_key1, + poseidon_poseidon_full_round_key2, + poseidon_poseidon_partial_round_key0, + poseidon_poseidon_partial_round_key1, + memory_multi_column_perm_perm_interaction_elm: memory_z, + memory_multi_column_perm_hash_interaction_elm0: memory_alpha, + range_check16_perm_interaction_elm: interaction_elements + .range_check16_perm_interaction_elm, + diluted_check_permutation_interaction_elm: interaction_elements + .diluted_check_permutation_interaction_elm, + diluted_check_interaction_z: diluted_z, + diluted_check_interaction_alpha: diluted_alpha, + memory_multi_column_perm_perm_public_memory_prod: public_memory_prod_ratio, + range_check16_perm_public_memory_prod: Felt::from(1), + diluted_check_first_elm: Felt::from(0), + diluted_check_permutation_public_memory_prod: Felt::from(1), + diluted_check_final_cum_val: diluted_prod, + }; + + Ok(autogenerated::eval_composition_polynomial_inner( + mask_values, + constraint_coefficients, + point, + trace_generator, + &global_values, + )) + } + fn eval_oods_polynomial( + column_values: &[Felt], + oods_values: &[Felt], + constraint_coefficients: &[Felt], + point: &Felt, + oods_point: &Felt, + trace_generator: &Felt, + ) -> Felt { + autogenerated::eval_oods_polynomial_inner( + column_values, + oods_values, + constraint_coefficients, + point, + oods_point, + trace_generator, + ) + } + fn traces_commit( + transcript: &mut cairovm_verifier_transcript::transcript::Transcript, + unsent_commitment: &crate::trace::UnsentCommitment, + config: crate::trace::config::Config, + ) -> crate::trace::Commitment { + // Read original commitment. + let original_commitment = + table_commit(transcript, unsent_commitment.original, config.original); + + // Generate interaction elements for the first interaction. + let interaction_elements = Self::InteractionElements::new(transcript); + + // Read interaction commitment. + let interaction_commitment = + table_commit(transcript, unsent_commitment.interaction, config.interaction); + + crate::trace::Commitment { + original: original_commitment, + interaction_elements, + interaction: interaction_commitment, + } + } + fn traces_decommit( + queries: &[Felt], + commitment: crate::trace::Commitment, + decommitment: crate::trace::Decommitment, + witness: crate::trace::Witness, + ) -> Result<(), crate::trace::decommit::Error> { + Ok(table_decommit(commitment.original, queries, decommitment.original, witness.original) + .and(table_decommit( + commitment.interaction, + queries, + decommitment.interaction, + witness.interaction, + ))?) + } + fn validate_public_input( + public_input: &PublicInput, + stark_domains: &crate::domains::StarkDomains, + ) -> Result<(), PublicInputError> { + ensure!(public_input.log_n_steps < MAX_LOG_N_STEPS, PublicInputError::MaxSteps); + + let n_steps = Felt::TWO.pow_felt(&public_input.log_n_steps); + let trace_length = stark_domains.trace_domain_size; + ensure!( + n_steps * Felt::from(CPU_COMPONENT_HEIGHT) * Felt::from(CPU_COMPONENT_STEP) + == trace_length, + PublicInputError::TraceLengthInvalid + ); + + ensure!(Felt::ZERO <= public_input.range_check_min, PublicInputError::RangeCheckInvalid); + ensure!( + public_input.range_check_min < public_input.range_check_max, + PublicInputError::RangeCheckInvalid + ); + ensure!( + public_input.range_check_max <= MAX_RANGE_CHECK, + PublicInputError::RangeCheckInvalid + ); + + ensure!(public_input.layout == LAYOUT_CODE, PublicInputError::LayoutCodeInvalid); + + let output_uses = public_input + .segments + .get(crate::layout::segments::OUTPUT) + .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::OUTPUT })? + .stop_ptr + - public_input + .segments + .get(crate::layout::segments::OUTPUT) + .ok_or(PublicInputError::SegmentMissing { + segment: crate::layout::segments::OUTPUT, + })? + .begin_addr; + ensure!(output_uses < u128::MAX.into(), PublicInputError::UsesInvalid); + + let pedersen_copies = trace_length + .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(PEDERSEN_BUILTIN_ROW_RATIO))); + let pedersen_uses = (public_input + .segments + .get(segments::PEDERSEN) + .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::OUTPUT })? + .stop_ptr + - public_input + .segments + .get(segments::PEDERSEN) + .ok_or(PublicInputError::SegmentMissing { + segment: crate::layout::segments::OUTPUT, + })? + .begin_addr) + .field_div(&NonZeroFelt::from_felt_unchecked(Felt::THREE)); + ensure!(pedersen_uses < pedersen_copies, PublicInputError::UsesInvalid); + + let range_check_copies = trace_length.field_div(&NonZeroFelt::from_felt_unchecked( + Felt::from(RANGE_CHECK_BUILTIN_ROW_RATIO), + )); + let range_check_uses = public_input + .segments + .get(segments::RANGE_CHECK) + .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::OUTPUT })? + .stop_ptr + - public_input + .segments + .get(segments::RANGE_CHECK) + .ok_or(PublicInputError::SegmentMissing { + segment: crate::layout::segments::OUTPUT, + })? + .begin_addr; + ensure!(range_check_uses < range_check_copies, PublicInputError::UsesInvalid); + + let bitwise_copies = trace_length + .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(BITWISE_ROW_RATIO))); + let bitwise_uses = (public_input + .segments + .get(segments::BITWISE) + .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::OUTPUT })? + .stop_ptr + - public_input + .segments + .get(segments::BITWISE) + .ok_or(PublicInputError::SegmentMissing { + segment: crate::layout::segments::OUTPUT, + })? + .begin_addr) + .field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(0x5))); + ensure!(bitwise_uses < bitwise_copies, PublicInputError::UsesInvalid); + Ok(()) + } + + fn verify_public_input(public_input: &PublicInput) -> Result<(Felt, Felt), PublicInputError> { + let public_segments = &public_input.segments; + + let initial_pc = public_segments + .get(crate::layout::segments::PROGRAM) + .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })? + .begin_addr; + let final_pc = public_segments + .get(crate::layout::segments::PROGRAM) + .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })? + .stop_ptr; + let initial_ap = public_segments + .get(crate::layout::segments::EXECUTION) + .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })? + .begin_addr; + let initial_fp = initial_ap; + let final_ap = public_segments + .get(crate::layout::segments::EXECUTION) + .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })? + .stop_ptr; + let output_start = public_segments + .get(crate::layout::segments::OUTPUT) + .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })? + .begin_addr; + let output_stop = public_segments + .get(crate::layout::segments::OUTPUT) + .ok_or(PublicInputError::SegmentMissing { segment: crate::layout::segments::PROGRAM })? + .stop_ptr; + + ensure!(initial_ap < MAX_ADDRESS, PublicInputError::MaxSteps); + ensure!(final_ap < MAX_ADDRESS, PublicInputError::MaxSteps); + + // TODO support more pages? + ensure!(public_input.continuous_page_headers.is_empty(), PublicInputError::MaxSteps); + + let memory = &public_input + .main_page + .iter() + .flat_map(|v| vec![v.address, v.value]) + .collect::>(); + + // 1. Program segment + ensure!(initial_pc == INITIAL_PC, PublicInputError::MaxSteps); + ensure!(final_pc == INITIAL_PC + 4, PublicInputError::MaxSteps); + + let program_end_pc = initial_fp - 2; + let program = &memory[initial_pc.to_bigint().try_into().unwrap() + ..program_end_pc.to_bigint().try_into().unwrap()]; + + let program_hash = poseidon_hash_many(program); + + let output_len: usize = (output_stop - output_start).to_bigint().try_into().unwrap(); + // 3. Output segment + let output = &memory[memory.len() - output_len..memory.len()]; + let output_hash = poseidon_hash_many(output); + + Ok((program_hash, output_hash)) + } +}