diff --git a/barretenberg/cpp/pil/vm2/bytecode/contract_instance_retrieval.pil b/barretenberg/cpp/pil/vm2/bytecode/contract_instance_retrieval.pil index 9b13fed54cd7..55b75d398fec 100644 --- a/barretenberg/cpp/pil/vm2/bytecode/contract_instance_retrieval.pil +++ b/barretenberg/cpp/pil/vm2/bytecode/contract_instance_retrieval.pil @@ -53,7 +53,8 @@ include "update_check.pil"; * caller.exists, * caller.deployer_addr, // situational - only if caller needs it * caller.current_class_id, - * caller.init_hash // situational - only if caller needs it + * caller.init_hash, // situational - only if caller needs it + * caller.immutables_hash // situational - only if caller needs it * } in contract_instance_retrieval.sel { * contract_instance_retrieval.address, * contract_instance_retrieval.nullifier_tree_root, @@ -61,10 +62,11 @@ include "update_check.pil"; * contract_instance_retrieval.exists, * contract_instance_retrieval.deployer_addr, * contract_instance_retrieval.current_class_id, - * contract_instance_retrieval.init_hash + * contract_instance_retrieval.init_hash, + * contract_instance_retrieval.immutables_hash * }; * - * Situational columns (deployer_addr, init_hash) can be omitted if the caller doesn't need + * Situational columns (deployer_addr, init_hash, immutables_hash) can be omitted if the caller doesn't need * them. When omitted, they are only hinted for address derivation. This is secure because * incorrect values would break derivation of the given address. * @@ -103,6 +105,7 @@ namespace contract_instance_retrieval; pol commit current_class_id; pol commit original_class_id; // HINTED! pol commit init_hash; + pol commit immutables_hash; // Current state — these should be looked up and constrained by the caller. pol commit nullifier_tree_root; @@ -242,6 +245,8 @@ namespace contract_instance_retrieval; sel * (1 - exists) * original_class_id = 0; // technically not needed since original_class_id is hinted, but good for consistency #[INSTANCE_MEMBER_INIT_HASH_IS_ZERO_IF_DNE] sel * (1 - exists) * init_hash = 0; + #[INSTANCE_MEMBER_IMMUTABLES_HASH_IS_ZERO_IF_DNE] + sel * (1 - exists) * immutables_hash = 0; // Address derivation lookup (only if the nullifier exists or for protocol contract instances). #[ADDRESS_DERIVATION] diff --git a/barretenberg/cpp/src/barretenberg/vm2/common/avm_io.hpp b/barretenberg/cpp/src/barretenberg/vm2/common/avm_io.hpp index b503c573f12c..b9fb05dbd15d 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/common/avm_io.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/common/avm_io.hpp @@ -135,6 +135,7 @@ struct ContractInstanceHint { ContractClassId current_contract_class_id; ContractClassId original_contract_class_id; FF initialization_hash; + FF immutables_hash; PublicKeysHint public_keys; bool operator==(const ContractInstanceHint& other) const = default; @@ -146,6 +147,7 @@ struct ContractInstanceHint { current_contract_class_id, original_contract_class_id, initialization_hash, + immutables_hash, public_keys); }; diff --git a/barretenberg/cpp/src/barretenberg/vm2/common/aztec_types.hpp b/barretenberg/cpp/src/barretenberg/vm2/common/aztec_types.hpp index 4f8ec3dc8a11..0a80cfce96d6 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/common/aztec_types.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/common/aztec_types.hpp @@ -119,7 +119,8 @@ struct ContractInstance { ContractClassId current_contract_class_id = 0; ContractClassId original_contract_class_id = 0; FF initialization_hash = 0; - PublicKeys public_keys; + FF immutables_hash = 0; + PublicKeys public_keys{}; bool operator==(const ContractInstance& other) const = default; @@ -136,6 +137,8 @@ struct ContractInstance { original_contract_class_id, "initializationHash", initialization_hash, + "immutablesHash", + immutables_hash, "publicKeys", public_keys); } diff --git a/barretenberg/cpp/src/barretenberg/vm2/constraining/relations/contract_instance_retrieval.test.cpp b/barretenberg/cpp/src/barretenberg/vm2/constraining/relations/contract_instance_retrieval.test.cpp index 793b2edc1488..419c9546e377 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/constraining/relations/contract_instance_retrieval.test.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/constraining/relations/contract_instance_retrieval.test.cpp @@ -45,6 +45,7 @@ ContractInstance create_test_contract_instance(uint32_t salt_value = 123) .current_contract_class_id = FF(0xdeadbeefULL), .original_contract_class_id = FF(0xcafebabeULL), .initialization_hash = FF(0x11111111ULL), + .immutables_hash = FF(0x22222222ULL), .public_keys = PublicKeys{ .nullifier_key = { FF(0x100), FF(0x101) }, @@ -72,6 +73,7 @@ TEST(ContractInstanceRetrievalConstrainingTest, CompleteValidTrace) const auto current_class_id = FF(0xdeadbeefULL); const auto original_class_id = FF(0xcafebabeULL); const auto init_hash = FF(0x11111111ULL); + const auto immutables_hash = FF(0x22222222ULL); const auto nullifier_key_x = FF(0x100); const auto nullifier_key_y = FF(0x101); const auto incoming_viewing_key_x = FF(0x200); @@ -92,6 +94,7 @@ TEST(ContractInstanceRetrievalConstrainingTest, CompleteValidTrace) { C::contract_instance_retrieval_current_class_id, current_class_id }, { C::contract_instance_retrieval_original_class_id, original_class_id }, { C::contract_instance_retrieval_init_hash, init_hash }, + { C::contract_instance_retrieval_immutables_hash, immutables_hash }, { C::contract_instance_retrieval_public_data_tree_root, public_data_tree_root }, { C::contract_instance_retrieval_nullifier_tree_root, nullifier_tree_root }, { C::contract_instance_retrieval_nullifier_tree_height, NULLIFIER_TREE_HEIGHT }, @@ -147,6 +150,7 @@ TEST(ContractInstanceRetrievalConstrainingTest, MultipleInstancesTrace) { C::contract_instance_retrieval_current_class_id, contract_instance.current_contract_class_id }, { C::contract_instance_retrieval_original_class_id, contract_instance.original_contract_class_id }, { C::contract_instance_retrieval_init_hash, contract_instance.initialization_hash }, + { C::contract_instance_retrieval_immutables_hash, contract_instance.immutables_hash }, { C::contract_instance_retrieval_public_data_tree_root, FF(base_public_data_tree_root + i) }, { C::contract_instance_retrieval_nullifier_tree_root, FF(base_nullifier_tree_root + i) }, { C::contract_instance_retrieval_nullifier_tree_height, NULLIFIER_TREE_HEIGHT }, @@ -199,6 +203,7 @@ TEST(ContractInstanceRetrievalConstrainingTest, NonExistentInstanceTrace) { C::contract_instance_retrieval_current_class_id, 0 }, { C::contract_instance_retrieval_original_class_id, 0 }, { C::contract_instance_retrieval_init_hash, 0 }, + { C::contract_instance_retrieval_immutables_hash, 0 }, { C::contract_instance_retrieval_public_data_tree_root, public_data_tree_root }, { C::contract_instance_retrieval_nullifier_tree_root, nullifier_tree_root }, { C::contract_instance_retrieval_nullifier_tree_height, NULLIFIER_TREE_HEIGHT }, @@ -242,6 +247,12 @@ TEST(ContractInstanceRetrievalConstrainingTest, NonExistentInstanceTrace) "INSTANCE_MEMBER_INIT_HASH_IS_ZERO_IF_DNE"); // reset trace.set(C::contract_instance_retrieval_init_hash, 1, 0); + // mutate immutables_hash + trace.set(C::contract_instance_retrieval_immutables_hash, 1, 1); + EXPECT_THROW_WITH_MESSAGE(check_relation(trace), + "INSTANCE_MEMBER_IMMUTABLES_HASH_IS_ZERO_IF_DNE"); + // reset + trace.set(C::contract_instance_retrieval_immutables_hash, 1, 0); } TEST(ContractInstanceRetrievalConstrainingTest, MaximumFieldValuesTrace) @@ -260,6 +271,7 @@ TEST(ContractInstanceRetrievalConstrainingTest, MaximumFieldValuesTrace) { C::contract_instance_retrieval_current_class_id, max_field }, { C::contract_instance_retrieval_original_class_id, max_field }, { C::contract_instance_retrieval_init_hash, max_field }, + { C::contract_instance_retrieval_immutables_hash, max_field }, { C::contract_instance_retrieval_public_data_tree_root, max_field }, { C::contract_instance_retrieval_nullifier_tree_root, max_field }, { C::contract_instance_retrieval_nullifier_tree_height, NULLIFIER_TREE_HEIGHT }, diff --git a/barretenberg/cpp/src/barretenberg/vm2/generated/columns.hpp b/barretenberg/cpp/src/barretenberg/vm2/generated/columns.hpp index 3d1bfac00e40..3027722b22d7 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/generated/columns.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/generated/columns.hpp @@ -8,7 +8,7 @@ namespace bb::avm2 { // clang-format off #define AVM2_PRECOMPUTED_ENTITIES_E(e) e precomputed_addressing_gas, e precomputed_bitwise_input_a, e precomputed_bitwise_input_b, e precomputed_bitwise_output_and, e precomputed_bitwise_output_or, e precomputed_bitwise_output_xor, e precomputed_dyn_gas_id, e precomputed_envvar_pi_row_idx, e precomputed_exec_opcode, e precomputed_exec_opcode_base_da_gas, e precomputed_exec_opcode_dynamic_da_gas, e precomputed_exec_opcode_dynamic_l2_gas, e precomputed_exec_opcode_opcode_gas, e precomputed_expected_tag_reg_0_, e precomputed_expected_tag_reg_1_, e precomputed_expected_tag_reg_2_, e precomputed_expected_tag_reg_3_, e precomputed_expected_tag_reg_4_, e precomputed_expected_tag_reg_5_, e precomputed_first_row, e precomputed_idx, e precomputed_instr_size, e precomputed_invalid_envvar_enum, e precomputed_is_address, e precomputed_is_class_id, e precomputed_is_cleanup, e precomputed_is_collect_fee, e precomputed_is_dagasleft, e precomputed_is_deployer, e precomputed_is_init_hash, e precomputed_is_isstaticcall, e precomputed_is_l2gasleft, e precomputed_is_public_call_request, e precomputed_is_revertible, e precomputed_is_sender, e precomputed_is_teardown, e precomputed_is_transactionfee, e precomputed_is_tree_padding, e precomputed_is_valid_member_enum, e precomputed_keccak_round_constant, e precomputed_next_phase_on_revert, e precomputed_opcode_out_of_range, e precomputed_out_tag, e precomputed_p_decomposition_limb, e precomputed_p_decomposition_limb_index, e precomputed_p_decomposition_radix, e precomputed_power_of_2, e precomputed_read_pi_length_offset, e precomputed_read_pi_start_offset, e precomputed_rw_reg_0_, e precomputed_rw_reg_1_, e precomputed_rw_reg_2_, e precomputed_rw_reg_3_, e precomputed_rw_reg_4_, e precomputed_rw_reg_5_, e precomputed_sel_addressing_gas, e precomputed_sel_append_l2_l1_msg, e precomputed_sel_append_note_hash, e precomputed_sel_append_nullifier, e precomputed_sel_envvar_pi_lookup_col0, e precomputed_sel_envvar_pi_lookup_col1, e precomputed_sel_exec_spec, e precomputed_sel_has_tag, e precomputed_sel_keccak, e precomputed_sel_mem_op_reg_0_, e precomputed_sel_mem_op_reg_1_, e precomputed_sel_mem_op_reg_2_, e precomputed_sel_mem_op_reg_3_, e precomputed_sel_mem_op_reg_4_, e precomputed_sel_mem_op_reg_5_, e precomputed_sel_mem_tag_out_of_range, e precomputed_sel_op_dc_0, e precomputed_sel_op_dc_1, e precomputed_sel_op_dc_10, e precomputed_sel_op_dc_11, e precomputed_sel_op_dc_12, e precomputed_sel_op_dc_13, e precomputed_sel_op_dc_14, e precomputed_sel_op_dc_15, e precomputed_sel_op_dc_16, e precomputed_sel_op_dc_2, e precomputed_sel_op_dc_3, e precomputed_sel_op_dc_4, e precomputed_sel_op_dc_5, e precomputed_sel_op_dc_6, e precomputed_sel_op_dc_7, e precomputed_sel_op_dc_8, e precomputed_sel_op_dc_9, e precomputed_sel_op_is_address_0_, e precomputed_sel_op_is_address_1_, e precomputed_sel_op_is_address_2_, e precomputed_sel_op_is_address_3_, e precomputed_sel_op_is_address_4_, e precomputed_sel_op_is_address_5_, e precomputed_sel_op_is_address_6_, e precomputed_sel_p_decomposition, e precomputed_sel_phase, e precomputed_sel_range_16, e precomputed_sel_range_8, e precomputed_sel_sha256_compression, e precomputed_sel_tag_check_reg_0_, e precomputed_sel_tag_check_reg_1_, e precomputed_sel_tag_check_reg_2_, e precomputed_sel_tag_check_reg_3_, e precomputed_sel_tag_check_reg_4_, e precomputed_sel_tag_check_reg_5_, e precomputed_sel_tag_is_op2, e precomputed_sel_tag_parameters, e precomputed_sel_to_radix_p_limb_counts, e precomputed_sha256_compression_round_constant, e precomputed_subtrace_id, e precomputed_subtrace_operation_id, e precomputed_tag_byte_length, e precomputed_tag_max_bits, e precomputed_tag_max_value, e precomputed_to_radix_num_limbs_for_p, e precomputed_to_radix_safe_limbs, e precomputed_zero, e public_inputs_sel -#define AVM2_WIRE_ENTITIES_E(e) e public_inputs_cols_0_, e public_inputs_cols_1_, e public_inputs_cols_2_, e public_inputs_cols_3_, e address_derivation_address, e address_derivation_address_y, e address_derivation_class_id, e address_derivation_const_four, e address_derivation_const_thirteen, e address_derivation_const_three, e address_derivation_const_two, e address_derivation_deployer_addr, e address_derivation_g1_x, e address_derivation_g1_y, e address_derivation_incoming_viewing_key_x, e address_derivation_incoming_viewing_key_y, e address_derivation_init_hash, e address_derivation_nullifier_key_x, e address_derivation_nullifier_key_y, e address_derivation_outgoing_viewing_key_x, e address_derivation_outgoing_viewing_key_y, e address_derivation_partial_address, e address_derivation_partial_address_domain_separator, e address_derivation_preaddress, e address_derivation_preaddress_domain_separator, e address_derivation_preaddress_public_key_x, e address_derivation_preaddress_public_key_y, e address_derivation_public_keys_hash, e address_derivation_public_keys_hash_domain_separator, e address_derivation_salt, e address_derivation_salted_init_hash, e address_derivation_salted_init_hash_domain_separator, e address_derivation_sel, e address_derivation_tagging_key_x, e address_derivation_tagging_key_y, e alu_a_hi, e alu_a_hi_bits, e alu_a_lo, e alu_a_lo_bits, e alu_ab_diff_inv, e alu_ab_tags_diff_inv, e alu_b_hi, e alu_b_inv, e alu_b_lo, e alu_c_hi, e alu_cf, e alu_constant_64, e alu_gt_input_a, e alu_gt_input_b, e alu_gt_result_c, e alu_helper1, e alu_ia, e alu_ia_tag, e alu_ib, e alu_ib_tag, e alu_ic, e alu_ic_tag, e alu_max_bits, e alu_max_value, e alu_mid, e alu_mid_bits, e alu_op_id, e alu_sel, e alu_sel_ab_tag_mismatch, e alu_sel_decompose_a, e alu_sel_div_0_err, e alu_sel_div_no_err, e alu_sel_err, e alu_sel_ff_gt, e alu_sel_int_gt, e alu_sel_is_ff, e alu_sel_is_u128, e alu_sel_mul_div_u128, e alu_sel_mul_no_err_non_ff, e alu_sel_op_add, e alu_sel_op_div, e alu_sel_op_eq, e alu_sel_op_fdiv, e alu_sel_op_lt, e alu_sel_op_lte, e alu_sel_op_mul, e alu_sel_op_not, e alu_sel_op_shl, e alu_sel_op_shr, e alu_sel_op_sub, e alu_sel_op_truncate, e alu_sel_shift_ops_no_overflow, e alu_sel_tag_err, e alu_sel_trunc_gte_128, e alu_sel_trunc_lt_128, e alu_sel_trunc_non_trivial, e alu_sel_trunc_trivial, e alu_shift_lo_bits, e alu_tag_ff_diff_inv, e alu_tag_u128_diff_inv, e alu_two_pow_shift_lo_bits, e bc_decomposition_bytes_pc_plus_36, e bc_decomposition_bytes_rem_inv, e bc_decomposition_bytes_rem_min_one_inv, e bc_decomposition_bytes_to_read, e bc_decomposition_last_of_contract, e bc_decomposition_next_packed_pc_min_pc_inv, e bc_decomposition_packed_field, e bc_decomposition_sel_packed, e bc_decomposition_sel_packed_read_0_, e bc_decomposition_sel_packed_read_1_, e bc_decomposition_sel_packed_read_2_, e bc_decomposition_sel_windows_eq_remaining, e bc_decomposition_windows_min_remaining_inv, e bc_hashing_end, e bc_hashing_input_len, e bc_hashing_packed_fields_0, e bc_hashing_packed_fields_1, e bc_hashing_packed_fields_2, e bc_hashing_pc_index, e bc_hashing_pc_index_2, e bc_hashing_sel_not_padding_1, e bc_hashing_sel_not_padding_2, e bc_hashing_size_in_bytes, e bc_retrieval_address, e bc_retrieval_artifact_hash, e bc_retrieval_bytecode_id, e bc_retrieval_current_class_id, e bc_retrieval_error, e bc_retrieval_instance_exists, e bc_retrieval_is_new_class, e bc_retrieval_next_retrieved_bytecodes_tree_root, e bc_retrieval_next_retrieved_bytecodes_tree_size, e bc_retrieval_no_remaining_bytecodes, e bc_retrieval_nullifier_tree_root, e bc_retrieval_prev_retrieved_bytecodes_tree_root, e bc_retrieval_prev_retrieved_bytecodes_tree_size, e bc_retrieval_private_functions_root, e bc_retrieval_public_data_tree_root, e bc_retrieval_remaining_bytecodes_inv, e bc_retrieval_retrieved_bytecodes_merkle_separator, e bc_retrieval_retrieved_bytecodes_tree_height, e bc_retrieval_sel, e bc_retrieval_should_retrieve, e bitwise_ctr_min_one_inv, e bitwise_end, e bitwise_err, e bitwise_ia_byte, e bitwise_ib_byte, e bitwise_ic_byte, e bitwise_output_and, e bitwise_output_or, e bitwise_output_xor, e bitwise_sel_and, e bitwise_sel_compute, e bitwise_sel_get_ctr, e bitwise_sel_or, e bitwise_sel_tag_ff_err, e bitwise_sel_tag_mismatch_err, e bitwise_sel_xor, e bitwise_start_keccak, e bitwise_start_sha256, e bitwise_tag_a, e bitwise_tag_a_inv, e bitwise_tag_ab_diff_inv, e bitwise_tag_b, e bitwise_tag_c, e calldata_end, e calldata_hashing_end, e calldata_hashing_index_1_, e calldata_hashing_index_2_, e calldata_hashing_input_0_, e calldata_hashing_input_1_, e calldata_hashing_input_2_, e calldata_hashing_input_len, e calldata_hashing_sel_end_not_empty, e calldata_hashing_sel_not_padding_1, e calldata_hashing_sel_not_padding_2, e calldata_hashing_sel_not_start, e calldata_value, e class_id_derivation_artifact_hash, e class_id_derivation_class_id, e class_id_derivation_const_four, e class_id_derivation_gen_index_contract_class_id, e class_id_derivation_private_functions_root, e class_id_derivation_public_bytecode_commitment, e class_id_derivation_sel, e context_stack_bytecode_id, e context_stack_context_id, e context_stack_contract_address, e context_stack_entered_context_id, e context_stack_internal_call_id, e context_stack_internal_call_return_id, e context_stack_is_static, e context_stack_msg_sender, e context_stack_next_internal_call_id, e context_stack_next_pc, e context_stack_note_hash_tree_root, e context_stack_note_hash_tree_size, e context_stack_nullifier_tree_root, e context_stack_nullifier_tree_size, e context_stack_num_l2_to_l1_messages, e context_stack_num_note_hashes_emitted, e context_stack_num_nullifiers_emitted, e context_stack_num_public_log_fields, e context_stack_parent_calldata_addr, e context_stack_parent_calldata_size, e context_stack_parent_da_gas_limit, e context_stack_parent_da_gas_used, e context_stack_parent_id, e context_stack_parent_l2_gas_limit, e context_stack_parent_l2_gas_used, e context_stack_public_data_tree_root, e context_stack_public_data_tree_size, e context_stack_sel, e context_stack_written_public_data_slots_tree_root, e context_stack_written_public_data_slots_tree_size, e contract_instance_retrieval_address, e contract_instance_retrieval_address_sub_one, e contract_instance_retrieval_current_class_id, e contract_instance_retrieval_deployer_addr, e contract_instance_retrieval_deployer_protocol_contract_address, e contract_instance_retrieval_derived_address, e contract_instance_retrieval_derived_address_pi_index, e contract_instance_retrieval_exists, e contract_instance_retrieval_incoming_viewing_key_x, e contract_instance_retrieval_incoming_viewing_key_y, e contract_instance_retrieval_init_hash, e contract_instance_retrieval_is_protocol_contract, e contract_instance_retrieval_max_protocol_contracts, e contract_instance_retrieval_nullifier_key_x, e contract_instance_retrieval_nullifier_key_y, e contract_instance_retrieval_nullifier_merkle_separator, e contract_instance_retrieval_nullifier_tree_height, e contract_instance_retrieval_nullifier_tree_root, e contract_instance_retrieval_original_class_id, e contract_instance_retrieval_outgoing_viewing_key_x, e contract_instance_retrieval_outgoing_viewing_key_y, e contract_instance_retrieval_protocol_contract_derived_address_inv, e contract_instance_retrieval_public_data_tree_root, e contract_instance_retrieval_salt, e contract_instance_retrieval_sel, e contract_instance_retrieval_should_check_for_update, e contract_instance_retrieval_should_check_nullifier, e contract_instance_retrieval_siloing_separator, e contract_instance_retrieval_tagging_key_x, e contract_instance_retrieval_tagging_key_y, e data_copy_cd_copy_col_read, e data_copy_clamped_read_index_upper_bound, e data_copy_dst_out_of_range_err, e data_copy_end, e data_copy_is_top_level, e data_copy_mem_size, e data_copy_offset, e data_copy_offset_plus_size, e data_copy_offset_plus_size_is_gt, e data_copy_parent_id_inv, e data_copy_read_addr_plus_one, e data_copy_read_addr_upper_bound, e data_copy_reads_left_inv, e data_copy_sel_cd_copy_start, e data_copy_sel_has_reads, e data_copy_sel_mem_read, e data_copy_sel_mem_write, e data_copy_sel_rd_copy_start, e data_copy_sel_write_count_is_zero, e data_copy_src_addr, e data_copy_src_data_size, e data_copy_src_reads_exceed_mem, e data_copy_start_no_err, e data_copy_tag, e data_copy_value, e data_copy_write_addr_upper_bound, e data_copy_write_count_minus_one_inv, e data_copy_write_count_zero_inv, e ecc_add_mem_dst_addr_0_, e ecc_add_mem_dst_addr_1_, e ecc_add_mem_dst_addr_2_, e ecc_add_mem_err, e ecc_add_mem_execution_clk, e ecc_add_mem_max_mem_addr, e ecc_add_mem_p_is_inf, e ecc_add_mem_p_is_on_curve_eqn, e ecc_add_mem_p_is_on_curve_eqn_inv, e ecc_add_mem_p_x, e ecc_add_mem_p_x_n, e ecc_add_mem_p_y, e ecc_add_mem_p_y_n, e ecc_add_mem_q_is_inf, e ecc_add_mem_q_is_on_curve_eqn, e ecc_add_mem_q_is_on_curve_eqn_inv, e ecc_add_mem_q_x, e ecc_add_mem_q_x_n, e ecc_add_mem_q_y, e ecc_add_mem_q_y_n, e ecc_add_mem_res_is_inf, e ecc_add_mem_res_x, e ecc_add_mem_res_y, e ecc_add_mem_sel, e ecc_add_mem_sel_dst_out_of_range_err, e ecc_add_mem_sel_p_not_on_curve_err, e ecc_add_mem_sel_q_not_on_curve_err, e ecc_add_mem_sel_should_exec, e ecc_add_mem_space_id, e ecc_add_op, e ecc_double_op, e ecc_inv_2_p_y, e ecc_inv_x_diff, e ecc_inv_y_diff, e ecc_lambda, e ecc_p_is_inf, e ecc_p_x, e ecc_p_y, e ecc_q_is_inf, e ecc_q_x, e ecc_q_y, e ecc_r_is_inf, e ecc_r_x, e ecc_r_y, e ecc_result_infinity, e ecc_sel, e ecc_use_computed_result, e ecc_x_match, e ecc_y_match, e emit_public_log_discard, e emit_public_log_end, e emit_public_log_end_log_address_upper_bound, e emit_public_log_error, e emit_public_log_error_too_many_log_fields, e emit_public_log_expected_next_log_fields, e emit_public_log_is_static, e emit_public_log_log_size, e emit_public_log_max_mem_size, e emit_public_log_max_public_logs_payload_length, e emit_public_log_next_num_public_log_fields, e emit_public_log_prev_num_public_log_fields, e emit_public_log_public_inputs_value, e emit_public_log_remaining_rows_inv, e emit_public_log_sel_read_memory, e emit_public_log_tag, e emit_public_log_tag_inv, e emit_public_log_value, e execution_addressing_error_collection_inv, e execution_addressing_gas, e execution_addressing_mode, e execution_base_address_tag, e execution_base_address_tag_diff_inv, e execution_base_address_val, e execution_base_da_gas, e execution_batched_tags_diff_inv, e execution_batched_tags_diff_inv_reg, e execution_da_gas_left, e execution_da_gas_used, e execution_dying_context_diff_inv, e execution_dying_context_id_inv, e execution_dyn_gas_id, e execution_dynamic_da_gas, e execution_dynamic_da_gas_factor, e execution_dynamic_l2_gas, e execution_dynamic_l2_gas_factor, e execution_enqueued_call_end, e execution_envvar_pi_row_idx, e execution_exec_opcode, e execution_expected_tag_reg_0_, e execution_expected_tag_reg_1_, e execution_expected_tag_reg_2_, e execution_expected_tag_reg_3_, e execution_expected_tag_reg_4_, e execution_expected_tag_reg_5_, e execution_has_parent_ctx, e execution_highest_address, e execution_instr_size, e execution_internal_call_return_id_inv, e execution_is_address, e execution_is_da_gas_left_gt_allocated, e execution_is_dagasleft, e execution_is_dying_context, e execution_is_isstaticcall, e execution_is_l2_gas_left_gt_allocated, e execution_is_l2gasleft, e execution_is_parent_id_inv, e execution_is_sender, e execution_is_transactionfee, e execution_l1_to_l2_msg_leaf_in_range, e execution_l1_to_l2_msg_tree_leaf_count, e execution_l2_gas_left, e execution_l2_gas_used, e execution_max_data_writes_reached, e execution_max_eth_address_value, e execution_mem_tag_reg_0_, e execution_mem_tag_reg_1_, e execution_mem_tag_reg_2_, e execution_mem_tag_reg_3_, e execution_mem_tag_reg_4_, e execution_mem_tag_reg_5_, e execution_nested_failure, e execution_nested_return, e execution_next_pc, e execution_note_hash_leaf_in_range, e execution_note_hash_tree_leaf_count, e execution_note_hash_tree_root, e execution_note_hash_tree_size, e execution_nullifier_merkle_separator, e execution_nullifier_pi_offset, e execution_nullifier_siloing_separator, e execution_nullifier_tree_height, e execution_nullifier_tree_root, e execution_nullifier_tree_size, e execution_num_l2_to_l1_messages, e execution_num_note_hashes_emitted, e execution_num_nullifiers_emitted, e execution_num_p_limbs, e execution_num_public_log_fields, e execution_num_relative_operands_inv, e execution_op_0_, e execution_op_1_, e execution_op_2_, e execution_op_3_, e execution_op_4_, e execution_op_5_, e execution_op_6_, e execution_op_after_relative_0_, e execution_op_after_relative_1_, e execution_op_after_relative_2_, e execution_op_after_relative_3_, e execution_op_after_relative_4_, e execution_op_after_relative_5_, e execution_op_after_relative_6_, e execution_opcode_gas, e execution_out_of_gas_da, e execution_out_of_gas_l2, e execution_public_data_tree_root, e execution_public_data_tree_size, e execution_public_inputs_index, e execution_register_0_, e execution_register_1_, e execution_register_2_, e execution_register_3_, e execution_register_4_, e execution_register_5_, e execution_remaining_data_writes_inv, e execution_remaining_l2_to_l1_msgs_inv, e execution_remaining_note_hashes_inv, e execution_remaining_nullifiers_inv, e execution_retrieved_bytecodes_tree_root, e execution_retrieved_bytecodes_tree_size, e execution_rop_0_, e execution_rop_1_, e execution_rop_2_, e execution_rop_3_, e execution_rop_4_, e execution_rop_5_, e execution_rop_6_, e execution_rop_tag_0_, e execution_rop_tag_1_, e execution_rop_tag_2_, e execution_rop_tag_3_, e execution_rop_tag_4_, e execution_rop_tag_5_, e execution_rop_tag_6_, e execution_rw_reg_0_, e execution_rw_reg_1_, e execution_rw_reg_2_, e execution_rw_reg_3_, e execution_rw_reg_4_, e execution_rw_reg_5_, e execution_sel_addressing_error, e execution_sel_apply_indirection_0_, e execution_sel_apply_indirection_1_, e execution_sel_apply_indirection_2_, e execution_sel_apply_indirection_3_, e execution_sel_apply_indirection_4_, e execution_sel_apply_indirection_5_, e execution_sel_apply_indirection_6_, e execution_sel_base_address_failure, e execution_sel_bytecode_retrieval_failure, e execution_sel_bytecode_retrieval_success, e execution_sel_check_gas, e execution_sel_do_base_check, e execution_sel_enter_call, e execution_sel_envvar_pi_lookup_col0, e execution_sel_envvar_pi_lookup_col1, e execution_sel_error, e execution_sel_exec_dispatch_alu, e execution_sel_exec_dispatch_bitwise, e execution_sel_exec_dispatch_calldata_copy, e execution_sel_exec_dispatch_cast, e execution_sel_exec_dispatch_ecc_add, e execution_sel_exec_dispatch_emit_public_log, e execution_sel_exec_dispatch_execution, e execution_sel_exec_dispatch_get_contract_instance, e execution_sel_exec_dispatch_keccakf1600, e execution_sel_exec_dispatch_poseidon2_perm, e execution_sel_exec_dispatch_returndata_copy, e execution_sel_exec_dispatch_set, e execution_sel_exec_dispatch_sha256_compression, e execution_sel_exec_dispatch_to_radix, e execution_sel_execute_call, e execution_sel_execute_debug_log, e execution_sel_execute_emit_notehash, e execution_sel_execute_emit_nullifier, e execution_sel_execute_get_env_var, e execution_sel_execute_internal_call, e execution_sel_execute_internal_return, e execution_sel_execute_jump, e execution_sel_execute_jumpi, e execution_sel_execute_l1_to_l2_message_exists, e execution_sel_execute_mov, e execution_sel_execute_notehash_exists, e execution_sel_execute_nullifier_exists, e execution_sel_execute_opcode, e execution_sel_execute_return, e execution_sel_execute_returndata_size, e execution_sel_execute_revert, e execution_sel_execute_send_l2_to_l1_msg, e execution_sel_execute_sload, e execution_sel_execute_sstore, e execution_sel_execute_static_call, e execution_sel_execute_success_copy, e execution_sel_exit_call, e execution_sel_failure, e execution_sel_gas_bitwise, e execution_sel_gas_calldata_copy, e execution_sel_gas_emit_public_log, e execution_sel_gas_returndata_copy, e execution_sel_gas_sstore, e execution_sel_gas_to_radix, e execution_sel_instruction_fetching_failure, e execution_sel_instruction_fetching_success, e execution_sel_l2_to_l1_msg_limit_error, e execution_sel_lookup_num_p_limbs, e execution_sel_mem_op_reg_0_, e execution_sel_mem_op_reg_1_, e execution_sel_mem_op_reg_2_, e execution_sel_mem_op_reg_3_, e execution_sel_mem_op_reg_4_, e execution_sel_mem_op_reg_5_, e execution_sel_op_do_overflow_check_0_, e execution_sel_op_do_overflow_check_1_, e execution_sel_op_do_overflow_check_2_, e execution_sel_op_do_overflow_check_3_, e execution_sel_op_do_overflow_check_4_, e execution_sel_op_do_overflow_check_5_, e execution_sel_op_do_overflow_check_6_, e execution_sel_op_is_address_0_, e execution_sel_op_is_address_1_, e execution_sel_op_is_address_2_, e execution_sel_op_is_address_3_, e execution_sel_op_is_address_4_, e execution_sel_op_is_address_5_, e execution_sel_op_is_address_6_, e execution_sel_op_is_indirect_wire_0_, e execution_sel_op_is_indirect_wire_1_, e execution_sel_op_is_indirect_wire_2_, e execution_sel_op_is_indirect_wire_3_, e execution_sel_op_is_indirect_wire_4_, e execution_sel_op_is_indirect_wire_5_, e execution_sel_op_is_indirect_wire_6_, e execution_sel_op_is_indirect_wire_7_, e execution_sel_op_is_relative_wire_0_, e execution_sel_op_is_relative_wire_1_, e execution_sel_op_is_relative_wire_2_, e execution_sel_op_is_relative_wire_3_, e execution_sel_op_is_relative_wire_4_, e execution_sel_op_is_relative_wire_5_, e execution_sel_op_is_relative_wire_6_, e execution_sel_op_is_relative_wire_7_, e execution_sel_op_reg_effective_0_, e execution_sel_op_reg_effective_1_, e execution_sel_op_reg_effective_2_, e execution_sel_op_reg_effective_3_, e execution_sel_op_reg_effective_4_, e execution_sel_op_reg_effective_5_, e execution_sel_opcode_error, e execution_sel_out_of_gas, e execution_sel_radix_gt_256, e execution_sel_reached_max_note_hashes, e execution_sel_reached_max_nullifiers, e execution_sel_read_registers, e execution_sel_read_unwind_call_stack, e execution_sel_register_read_error, e execution_sel_relative_overflow_0_, e execution_sel_relative_overflow_1_, e execution_sel_relative_overflow_2_, e execution_sel_relative_overflow_3_, e execution_sel_relative_overflow_4_, e execution_sel_relative_overflow_5_, e execution_sel_relative_overflow_6_, e execution_sel_some_final_check_failed, e execution_sel_tag_check_reg_0_, e execution_sel_tag_check_reg_1_, e execution_sel_tag_check_reg_2_, e execution_sel_tag_check_reg_3_, e execution_sel_tag_check_reg_4_, e execution_sel_tag_check_reg_5_, e execution_sel_too_large_recipient_error, e execution_sel_use_num_limbs, e execution_sel_write_l2_to_l1_msg, e execution_sel_write_note_hash, e execution_sel_write_nullifier, e execution_sel_write_public_data, e execution_sel_write_registers, e execution_subtrace_id, e execution_subtrace_operation_id, e execution_total_gas_da, e execution_total_gas_l2, e execution_two_five_six, e execution_value_from_pi, e execution_written_public_data_slots_tree_root, e execution_written_public_data_slots_tree_size, e execution_written_slots_merkle_separator, e execution_written_slots_tree_height, e execution_written_slots_tree_siloing_separator, e ff_gt_a, e ff_gt_b, e ff_gt_borrow, e ff_gt_constant_128, e ff_gt_end, e ff_gt_p_a_borrow, e ff_gt_p_b_borrow, e ff_gt_res_hi, e ff_gt_res_lo, e ff_gt_result, e get_contract_instance_clk, e get_contract_instance_contract_address, e get_contract_instance_dst_offset, e get_contract_instance_dst_offset_diff_max_inv, e get_contract_instance_exists_tag, e get_contract_instance_instance_exists, e get_contract_instance_is_class_id, e get_contract_instance_is_deployer, e get_contract_instance_is_init_hash, e get_contract_instance_is_valid_member_enum, e get_contract_instance_is_valid_writes_in_bounds, e get_contract_instance_member_enum, e get_contract_instance_member_tag, e get_contract_instance_member_write_offset, e get_contract_instance_nullifier_tree_root, e get_contract_instance_public_data_tree_root, e get_contract_instance_retrieved_class_id, e get_contract_instance_retrieved_deployer_addr, e get_contract_instance_retrieved_init_hash, e get_contract_instance_sel, e get_contract_instance_sel_error, e get_contract_instance_selected_member, e get_contract_instance_space_id, e gt_abs_diff, e gt_input_a, e gt_input_b, e gt_num_bits, e gt_res, e gt_sel, e gt_sel_addressing, e gt_sel_alu, e gt_sel_gas, e gt_sel_others, e gt_sel_sha256, e indexed_tree_check_address, e indexed_tree_check_const_three, e indexed_tree_check_discard, e indexed_tree_check_exists, e indexed_tree_check_intermediate_root, e indexed_tree_check_low_leaf_hash, e indexed_tree_check_low_leaf_index, e indexed_tree_check_low_leaf_next_index, e indexed_tree_check_low_leaf_next_value, e indexed_tree_check_low_leaf_value, e indexed_tree_check_merkle_hash_separator, e indexed_tree_check_new_leaf_hash, e indexed_tree_check_next_value_inv, e indexed_tree_check_next_value_is_nonzero, e indexed_tree_check_not_exists, e indexed_tree_check_public_inputs_index, e indexed_tree_check_root, e indexed_tree_check_sel, e indexed_tree_check_sel_insert, e indexed_tree_check_sel_silo, e indexed_tree_check_sel_write_to_public_inputs, e indexed_tree_check_siloed_value, e indexed_tree_check_siloing_separator, e indexed_tree_check_tree_height, e indexed_tree_check_tree_size_after_write, e indexed_tree_check_tree_size_before_write, e indexed_tree_check_updated_low_leaf_hash, e indexed_tree_check_updated_low_leaf_next_index, e indexed_tree_check_updated_low_leaf_next_value, e indexed_tree_check_value, e indexed_tree_check_value_low_leaf_value_diff_inv, e indexed_tree_check_write, e indexed_tree_check_write_root, e instr_fetching_addressing_mode, e instr_fetching_bd0, e instr_fetching_bd1, e instr_fetching_bd10, e instr_fetching_bd11, e instr_fetching_bd12, e instr_fetching_bd13, e instr_fetching_bd14, e instr_fetching_bd15, e instr_fetching_bd16, e instr_fetching_bd17, e instr_fetching_bd18, e instr_fetching_bd19, e instr_fetching_bd2, e instr_fetching_bd20, e instr_fetching_bd21, e instr_fetching_bd22, e instr_fetching_bd23, e instr_fetching_bd24, e instr_fetching_bd25, e instr_fetching_bd26, e instr_fetching_bd27, e instr_fetching_bd28, e instr_fetching_bd29, e instr_fetching_bd3, e instr_fetching_bd30, e instr_fetching_bd31, e instr_fetching_bd32, e instr_fetching_bd33, e instr_fetching_bd34, e instr_fetching_bd35, e instr_fetching_bd36, e instr_fetching_bd4, e instr_fetching_bd5, e instr_fetching_bd6, e instr_fetching_bd7, e instr_fetching_bd8, e instr_fetching_bd9, e instr_fetching_bytecode_id, e instr_fetching_bytecode_size, e instr_fetching_bytes_to_read, e instr_fetching_exec_opcode, e instr_fetching_instr_abs_diff, e instr_fetching_instr_out_of_range, e instr_fetching_instr_size, e instr_fetching_op1, e instr_fetching_op2, e instr_fetching_op3, e instr_fetching_op4, e instr_fetching_op5, e instr_fetching_op6, e instr_fetching_op7, e instr_fetching_opcode_out_of_range, e instr_fetching_pc, e instr_fetching_pc_abs_diff, e instr_fetching_pc_out_of_range, e instr_fetching_pc_size_in_bits, e instr_fetching_sel, e instr_fetching_sel_has_tag, e instr_fetching_sel_op_dc_0, e instr_fetching_sel_op_dc_1, e instr_fetching_sel_op_dc_10, e instr_fetching_sel_op_dc_11, e instr_fetching_sel_op_dc_12, e instr_fetching_sel_op_dc_13, e instr_fetching_sel_op_dc_14, e instr_fetching_sel_op_dc_15, e instr_fetching_sel_op_dc_16, e instr_fetching_sel_op_dc_2, e instr_fetching_sel_op_dc_3, e instr_fetching_sel_op_dc_4, e instr_fetching_sel_op_dc_5, e instr_fetching_sel_op_dc_6, e instr_fetching_sel_op_dc_7, e instr_fetching_sel_op_dc_8, e instr_fetching_sel_op_dc_9, e instr_fetching_sel_parsing_err, e instr_fetching_sel_pc_in_range, e instr_fetching_sel_tag_is_op2, e instr_fetching_tag_out_of_range, e instr_fetching_tag_value, e internal_call_stack_call_id, e internal_call_stack_context_id, e internal_call_stack_entered_call_id, e internal_call_stack_return_call_id, e internal_call_stack_return_pc, e internal_call_stack_sel, e keccak_memory_ctr_end, e keccak_memory_end, e keccak_memory_single_tag_error, e keccak_memory_state_size_min_ctr_inv, e keccak_memory_tag, e keccak_memory_tag_min_u64_inv, e keccak_memory_val_24_, e keccakf1600_bitwise_and_op_id, e keccakf1600_bitwise_xor_op_id, e keccakf1600_dst_out_of_range_error, e keccakf1600_end, e keccakf1600_error, e keccakf1600_highest_slice_address, e keccakf1600_rot_64_min_len_01, e keccakf1600_rot_64_min_len_03, e keccakf1600_rot_64_min_len_11, e keccakf1600_rot_64_min_len_13, e keccakf1600_rot_64_min_len_20, e keccakf1600_rot_64_min_len_22, e keccakf1600_rot_64_min_len_24, e keccakf1600_rot_64_min_len_31, e keccakf1600_rot_64_min_len_34, e keccakf1600_rot_64_min_len_42, e keccakf1600_rot_len_02, e keccakf1600_rot_len_04, e keccakf1600_rot_len_10, e keccakf1600_rot_len_12, e keccakf1600_rot_len_14, e keccakf1600_rot_len_21, e keccakf1600_rot_len_23, e keccakf1600_rot_len_30, e keccakf1600_rot_len_32, e keccakf1600_rot_len_33, e keccakf1600_rot_len_40, e keccakf1600_rot_len_41, e keccakf1600_rot_len_43, e keccakf1600_rot_len_44, e keccakf1600_round_cst, e keccakf1600_sel_slice_read, e keccakf1600_sel_slice_write, e keccakf1600_src_addr, e keccakf1600_src_out_of_range_error, e keccakf1600_state_chi_00, e keccakf1600_state_chi_01, e keccakf1600_state_chi_02, e keccakf1600_state_chi_03, e keccakf1600_state_chi_04, e keccakf1600_state_chi_10, e keccakf1600_state_chi_11, e keccakf1600_state_chi_12, e keccakf1600_state_chi_13, e keccakf1600_state_chi_14, e keccakf1600_state_chi_20, e keccakf1600_state_chi_21, e keccakf1600_state_chi_22, e keccakf1600_state_chi_23, e keccakf1600_state_chi_24, e keccakf1600_state_chi_30, e keccakf1600_state_chi_31, e keccakf1600_state_chi_32, e keccakf1600_state_chi_33, e keccakf1600_state_chi_34, e keccakf1600_state_chi_40, e keccakf1600_state_chi_41, e keccakf1600_state_chi_42, e keccakf1600_state_chi_43, e keccakf1600_state_chi_44, e keccakf1600_state_iota_00, e keccakf1600_state_pi_and_00, e keccakf1600_state_pi_and_01, e keccakf1600_state_pi_and_02, e keccakf1600_state_pi_and_03, e keccakf1600_state_pi_and_04, e keccakf1600_state_pi_and_10, e keccakf1600_state_pi_and_11, e keccakf1600_state_pi_and_12, e keccakf1600_state_pi_and_13, e keccakf1600_state_pi_and_14, e keccakf1600_state_pi_and_20, e keccakf1600_state_pi_and_21, e keccakf1600_state_pi_and_22, e keccakf1600_state_pi_and_23, e keccakf1600_state_pi_and_24, e keccakf1600_state_pi_and_30, e keccakf1600_state_pi_and_31, e keccakf1600_state_pi_and_32, e keccakf1600_state_pi_and_33, e keccakf1600_state_pi_and_34, e keccakf1600_state_pi_and_40, e keccakf1600_state_pi_and_41, e keccakf1600_state_pi_and_42, e keccakf1600_state_pi_and_43, e keccakf1600_state_pi_and_44, e keccakf1600_state_pi_not_00, e keccakf1600_state_pi_not_01, e keccakf1600_state_pi_not_02, e keccakf1600_state_pi_not_03, e keccakf1600_state_pi_not_04, e keccakf1600_state_pi_not_10, e keccakf1600_state_pi_not_11, e keccakf1600_state_pi_not_12, e keccakf1600_state_pi_not_13, e keccakf1600_state_pi_not_14, e keccakf1600_state_pi_not_20, e keccakf1600_state_pi_not_21, e keccakf1600_state_pi_not_22, e keccakf1600_state_pi_not_23, e keccakf1600_state_pi_not_24, e keccakf1600_state_pi_not_30, e keccakf1600_state_pi_not_31, e keccakf1600_state_pi_not_32, e keccakf1600_state_pi_not_33, e keccakf1600_state_pi_not_34, e keccakf1600_state_pi_not_40, e keccakf1600_state_pi_not_41, e keccakf1600_state_pi_not_42, e keccakf1600_state_pi_not_43, e keccakf1600_state_pi_not_44, e keccakf1600_state_rho_01, e keccakf1600_state_rho_02, e keccakf1600_state_rho_03, e keccakf1600_state_rho_04, e keccakf1600_state_rho_10, e keccakf1600_state_rho_11, e keccakf1600_state_rho_12, e keccakf1600_state_rho_13, e keccakf1600_state_rho_14, e keccakf1600_state_rho_20, e keccakf1600_state_rho_21, e keccakf1600_state_rho_22, e keccakf1600_state_rho_23, e keccakf1600_state_rho_24, e keccakf1600_state_rho_30, e keccakf1600_state_rho_31, e keccakf1600_state_rho_32, e keccakf1600_state_rho_33, e keccakf1600_state_rho_34, e keccakf1600_state_rho_40, e keccakf1600_state_rho_41, e keccakf1600_state_rho_42, e keccakf1600_state_rho_43, e keccakf1600_state_rho_44, e keccakf1600_state_theta_00, e keccakf1600_state_theta_01, e keccakf1600_state_theta_02, e keccakf1600_state_theta_03, e keccakf1600_state_theta_04, e keccakf1600_state_theta_10, e keccakf1600_state_theta_11, e keccakf1600_state_theta_12, e keccakf1600_state_theta_13, e keccakf1600_state_theta_14, e keccakf1600_state_theta_20, e keccakf1600_state_theta_21, e keccakf1600_state_theta_22, e keccakf1600_state_theta_23, e keccakf1600_state_theta_24, e keccakf1600_state_theta_30, e keccakf1600_state_theta_31, e keccakf1600_state_theta_32, e keccakf1600_state_theta_33, e keccakf1600_state_theta_34, e keccakf1600_state_theta_40, e keccakf1600_state_theta_41, e keccakf1600_state_theta_42, e keccakf1600_state_theta_43, e keccakf1600_state_theta_44, e keccakf1600_state_theta_hi_02, e keccakf1600_state_theta_hi_04, e keccakf1600_state_theta_hi_10, e keccakf1600_state_theta_hi_12, e keccakf1600_state_theta_hi_14, e keccakf1600_state_theta_hi_21, e keccakf1600_state_theta_hi_23, e keccakf1600_state_theta_hi_30, e keccakf1600_state_theta_hi_32, e keccakf1600_state_theta_hi_33, e keccakf1600_state_theta_hi_40, e keccakf1600_state_theta_hi_41, e keccakf1600_state_theta_hi_43, e keccakf1600_state_theta_hi_44, e keccakf1600_state_theta_low_01, e keccakf1600_state_theta_low_03, e keccakf1600_state_theta_low_11, e keccakf1600_state_theta_low_13, e keccakf1600_state_theta_low_20, e keccakf1600_state_theta_low_22, e keccakf1600_state_theta_low_24, e keccakf1600_state_theta_low_31, e keccakf1600_state_theta_low_34, e keccakf1600_state_theta_low_42, e keccakf1600_tag_error, e keccakf1600_tag_u64, e keccakf1600_theta_combined_xor_0, e keccakf1600_theta_combined_xor_1, e keccakf1600_theta_combined_xor_2, e keccakf1600_theta_combined_xor_3, e keccakf1600_theta_combined_xor_4, e keccakf1600_theta_xor_01, e keccakf1600_theta_xor_02, e keccakf1600_theta_xor_03, e keccakf1600_theta_xor_11, e keccakf1600_theta_xor_12, e keccakf1600_theta_xor_13, e keccakf1600_theta_xor_21, e keccakf1600_theta_xor_22, e keccakf1600_theta_xor_23, e keccakf1600_theta_xor_31, e keccakf1600_theta_xor_32, e keccakf1600_theta_xor_33, e keccakf1600_theta_xor_41, e keccakf1600_theta_xor_42, e keccakf1600_theta_xor_43, e keccakf1600_theta_xor_row_0, e keccakf1600_theta_xor_row_1, e keccakf1600_theta_xor_row_2, e keccakf1600_theta_xor_row_3, e keccakf1600_theta_xor_row_4, e keccakf1600_theta_xor_row_msb_0, e keccakf1600_theta_xor_row_msb_1, e keccakf1600_theta_xor_row_msb_2, e keccakf1600_theta_xor_row_msb_3, e keccakf1600_theta_xor_row_msb_4, e keccakf1600_theta_xor_row_rotl1_0, e keccakf1600_theta_xor_row_rotl1_1, e keccakf1600_theta_xor_row_rotl1_2, e keccakf1600_theta_xor_row_rotl1_3, e keccakf1600_theta_xor_row_rotl1_4, e l1_to_l2_message_tree_check_exists, e l1_to_l2_message_tree_check_l1_to_l2_message_tree_height, e l1_to_l2_message_tree_check_leaf_index, e l1_to_l2_message_tree_check_leaf_value, e l1_to_l2_message_tree_check_leaf_value_msg_hash_diff_inv, e l1_to_l2_message_tree_check_merkle_hash_separator, e l1_to_l2_message_tree_check_msg_hash, e l1_to_l2_message_tree_check_root, e l1_to_l2_message_tree_check_sel, e memory_diff, e memory_glob_addr_diff_inv, e memory_last_access, e memory_limb_0_, e memory_limb_1_, e memory_limb_2_, e memory_max_bits, e memory_sel_addressing_base, e memory_sel_addressing_indirect_0_, e memory_sel_addressing_indirect_1_, e memory_sel_addressing_indirect_2_, e memory_sel_addressing_indirect_3_, e memory_sel_addressing_indirect_4_, e memory_sel_addressing_indirect_5_, e memory_sel_addressing_indirect_6_, e memory_sel_data_copy_read, e memory_sel_data_copy_write, e memory_sel_ecc_write_0_, e memory_sel_ecc_write_1_, e memory_sel_ecc_write_2_, e memory_sel_get_contract_instance_exists_write, e memory_sel_get_contract_instance_member_write, e memory_sel_keccak, e memory_sel_poseidon2_read_0_, e memory_sel_poseidon2_read_1_, e memory_sel_poseidon2_read_2_, e memory_sel_poseidon2_read_3_, e memory_sel_poseidon2_write_0_, e memory_sel_poseidon2_write_1_, e memory_sel_poseidon2_write_2_, e memory_sel_poseidon2_write_3_, e memory_sel_public_log_read, e memory_sel_register_op_0_, e memory_sel_register_op_1_, e memory_sel_register_op_2_, e memory_sel_register_op_3_, e memory_sel_register_op_4_, e memory_sel_register_op_5_, e memory_sel_rng_chk, e memory_sel_rng_write, e memory_sel_sha256_op_0_, e memory_sel_sha256_op_1_, e memory_sel_sha256_op_2_, e memory_sel_sha256_op_3_, e memory_sel_sha256_op_4_, e memory_sel_sha256_op_5_, e memory_sel_sha256_op_6_, e memory_sel_sha256_op_7_, e memory_sel_sha256_read, e memory_sel_tag_is_ff, e memory_sel_to_radix_write, e memory_tag_ff_diff_inv, e merkle_check_const_three, e merkle_check_end, e merkle_check_index_is_even, e merkle_check_path_len_min_one_inv, e merkle_check_read_left_node, e merkle_check_read_output_hash, e merkle_check_read_right_node, e merkle_check_sibling, e merkle_check_write_left_node, e merkle_check_write_output_hash, e merkle_check_write_right_node, e note_hash_tree_check_address, e note_hash_tree_check_const_three, e note_hash_tree_check_discard, e note_hash_tree_check_exists, e note_hash_tree_check_first_nullifier, e note_hash_tree_check_first_nullifier_pi_index, e note_hash_tree_check_leaf_index, e note_hash_tree_check_merkle_hash_separator, e note_hash_tree_check_next_leaf_value, e note_hash_tree_check_next_root, e note_hash_tree_check_nonce, e note_hash_tree_check_nonce_separator, e note_hash_tree_check_note_hash, e note_hash_tree_check_note_hash_index, e note_hash_tree_check_note_hash_tree_height, e note_hash_tree_check_prev_leaf_value, e note_hash_tree_check_prev_leaf_value_unique_note_hash_diff_inv, e note_hash_tree_check_prev_root, e note_hash_tree_check_public_inputs_index, e note_hash_tree_check_sel, e note_hash_tree_check_sel_silo, e note_hash_tree_check_sel_unique, e note_hash_tree_check_sel_write_to_public_inputs, e note_hash_tree_check_siloed_note_hash, e note_hash_tree_check_siloing_separator, e note_hash_tree_check_unique_note_hash, e note_hash_tree_check_unique_note_hash_separator, e note_hash_tree_check_write, e poseidon2_hash_b_0, e poseidon2_hash_b_1, e poseidon2_hash_b_2, e poseidon2_hash_b_3, e poseidon2_hash_end, e poseidon2_hash_input_len, e poseidon2_hash_num_perm_rounds_rem_min_one_inv, e poseidon2_hash_padding, e poseidon2_perm_B_10_0, e poseidon2_perm_B_10_1, e poseidon2_perm_B_10_2, e poseidon2_perm_B_10_3, e poseidon2_perm_B_11_0, e poseidon2_perm_B_11_1, e poseidon2_perm_B_11_2, e poseidon2_perm_B_11_3, e poseidon2_perm_B_12_0, e poseidon2_perm_B_12_1, e poseidon2_perm_B_12_2, e poseidon2_perm_B_12_3, e poseidon2_perm_B_13_0, e poseidon2_perm_B_13_1, e poseidon2_perm_B_13_2, e poseidon2_perm_B_13_3, e poseidon2_perm_B_14_0, e poseidon2_perm_B_14_1, e poseidon2_perm_B_14_2, e poseidon2_perm_B_14_3, e poseidon2_perm_B_15_0, e poseidon2_perm_B_15_1, e poseidon2_perm_B_15_2, e poseidon2_perm_B_15_3, e poseidon2_perm_B_16_0, e poseidon2_perm_B_16_1, e poseidon2_perm_B_16_2, e poseidon2_perm_B_16_3, e poseidon2_perm_B_17_0, e poseidon2_perm_B_17_1, e poseidon2_perm_B_17_2, e poseidon2_perm_B_17_3, e poseidon2_perm_B_18_0, e poseidon2_perm_B_18_1, e poseidon2_perm_B_18_2, e poseidon2_perm_B_18_3, e poseidon2_perm_B_19_0, e poseidon2_perm_B_19_1, e poseidon2_perm_B_19_2, e poseidon2_perm_B_19_3, e poseidon2_perm_B_20_0, e poseidon2_perm_B_20_1, e poseidon2_perm_B_20_2, e poseidon2_perm_B_20_3, e poseidon2_perm_B_21_0, e poseidon2_perm_B_21_1, e poseidon2_perm_B_21_2, e poseidon2_perm_B_21_3, e poseidon2_perm_B_22_0, e poseidon2_perm_B_22_1, e poseidon2_perm_B_22_2, e poseidon2_perm_B_22_3, e poseidon2_perm_B_23_0, e poseidon2_perm_B_23_1, e poseidon2_perm_B_23_2, e poseidon2_perm_B_23_3, e poseidon2_perm_B_24_0, e poseidon2_perm_B_24_1, e poseidon2_perm_B_24_2, e poseidon2_perm_B_24_3, e poseidon2_perm_B_25_0, e poseidon2_perm_B_25_1, e poseidon2_perm_B_25_2, e poseidon2_perm_B_25_3, e poseidon2_perm_B_26_0, e poseidon2_perm_B_26_1, e poseidon2_perm_B_26_2, e poseidon2_perm_B_26_3, e poseidon2_perm_B_27_0, e poseidon2_perm_B_27_1, e poseidon2_perm_B_27_2, e poseidon2_perm_B_27_3, e poseidon2_perm_B_28_0, e poseidon2_perm_B_28_1, e poseidon2_perm_B_28_2, e poseidon2_perm_B_28_3, e poseidon2_perm_B_29_0, e poseidon2_perm_B_29_1, e poseidon2_perm_B_29_2, e poseidon2_perm_B_29_3, e poseidon2_perm_B_30_0, e poseidon2_perm_B_30_1, e poseidon2_perm_B_30_2, e poseidon2_perm_B_30_3, e poseidon2_perm_B_31_0, e poseidon2_perm_B_31_1, e poseidon2_perm_B_31_2, e poseidon2_perm_B_31_3, e poseidon2_perm_B_32_0, e poseidon2_perm_B_32_1, e poseidon2_perm_B_32_2, e poseidon2_perm_B_32_3, e poseidon2_perm_B_33_0, e poseidon2_perm_B_33_1, e poseidon2_perm_B_33_2, e poseidon2_perm_B_33_3, e poseidon2_perm_B_34_0, e poseidon2_perm_B_34_1, e poseidon2_perm_B_34_2, e poseidon2_perm_B_34_3, e poseidon2_perm_B_35_0, e poseidon2_perm_B_35_1, e poseidon2_perm_B_35_2, e poseidon2_perm_B_35_3, e poseidon2_perm_B_36_0, e poseidon2_perm_B_36_1, e poseidon2_perm_B_36_2, e poseidon2_perm_B_36_3, e poseidon2_perm_B_37_0, e poseidon2_perm_B_37_1, e poseidon2_perm_B_37_2, e poseidon2_perm_B_37_3, e poseidon2_perm_B_38_0, e poseidon2_perm_B_38_1, e poseidon2_perm_B_38_2, e poseidon2_perm_B_38_3, e poseidon2_perm_B_39_0, e poseidon2_perm_B_39_1, e poseidon2_perm_B_39_2, e poseidon2_perm_B_39_3, e poseidon2_perm_B_40_0, e poseidon2_perm_B_40_1, e poseidon2_perm_B_40_2, e poseidon2_perm_B_40_3, e poseidon2_perm_B_41_0, e poseidon2_perm_B_41_1, e poseidon2_perm_B_41_2, e poseidon2_perm_B_41_3, e poseidon2_perm_B_42_0, e poseidon2_perm_B_42_1, e poseidon2_perm_B_42_2, e poseidon2_perm_B_42_3, e poseidon2_perm_B_43_0, e poseidon2_perm_B_43_1, e poseidon2_perm_B_43_2, e poseidon2_perm_B_43_3, e poseidon2_perm_B_44_0, e poseidon2_perm_B_44_1, e poseidon2_perm_B_44_2, e poseidon2_perm_B_44_3, e poseidon2_perm_B_45_0, e poseidon2_perm_B_45_1, e poseidon2_perm_B_45_2, e poseidon2_perm_B_45_3, e poseidon2_perm_B_46_0, e poseidon2_perm_B_46_1, e poseidon2_perm_B_46_2, e poseidon2_perm_B_46_3, e poseidon2_perm_B_47_0, e poseidon2_perm_B_47_1, e poseidon2_perm_B_47_2, e poseidon2_perm_B_47_3, e poseidon2_perm_B_48_0, e poseidon2_perm_B_48_1, e poseidon2_perm_B_48_2, e poseidon2_perm_B_48_3, e poseidon2_perm_B_49_0, e poseidon2_perm_B_49_1, e poseidon2_perm_B_49_2, e poseidon2_perm_B_49_3, e poseidon2_perm_B_4_0, e poseidon2_perm_B_4_1, e poseidon2_perm_B_4_2, e poseidon2_perm_B_4_3, e poseidon2_perm_B_50_0, e poseidon2_perm_B_50_1, e poseidon2_perm_B_50_2, e poseidon2_perm_B_50_3, e poseidon2_perm_B_51_0, e poseidon2_perm_B_51_1, e poseidon2_perm_B_51_2, e poseidon2_perm_B_51_3, e poseidon2_perm_B_52_0, e poseidon2_perm_B_52_1, e poseidon2_perm_B_52_2, e poseidon2_perm_B_52_3, e poseidon2_perm_B_53_0, e poseidon2_perm_B_53_1, e poseidon2_perm_B_53_2, e poseidon2_perm_B_53_3, e poseidon2_perm_B_54_0, e poseidon2_perm_B_54_1, e poseidon2_perm_B_54_2, e poseidon2_perm_B_54_3, e poseidon2_perm_B_55_0, e poseidon2_perm_B_55_1, e poseidon2_perm_B_55_2, e poseidon2_perm_B_55_3, e poseidon2_perm_B_56_0, e poseidon2_perm_B_56_1, e poseidon2_perm_B_56_2, e poseidon2_perm_B_56_3, e poseidon2_perm_B_57_0, e poseidon2_perm_B_57_1, e poseidon2_perm_B_57_2, e poseidon2_perm_B_57_3, e poseidon2_perm_B_58_0, e poseidon2_perm_B_58_1, e poseidon2_perm_B_58_2, e poseidon2_perm_B_58_3, e poseidon2_perm_B_59_0, e poseidon2_perm_B_59_1, e poseidon2_perm_B_59_2, e poseidon2_perm_B_59_3, e poseidon2_perm_B_5_0, e poseidon2_perm_B_5_1, e poseidon2_perm_B_5_2, e poseidon2_perm_B_5_3, e poseidon2_perm_B_6_0, e poseidon2_perm_B_6_1, e poseidon2_perm_B_6_2, e poseidon2_perm_B_6_3, e poseidon2_perm_B_7_0, e poseidon2_perm_B_7_1, e poseidon2_perm_B_7_2, e poseidon2_perm_B_7_3, e poseidon2_perm_B_8_0, e poseidon2_perm_B_8_1, e poseidon2_perm_B_8_2, e poseidon2_perm_B_8_3, e poseidon2_perm_B_9_0, e poseidon2_perm_B_9_1, e poseidon2_perm_B_9_2, e poseidon2_perm_B_9_3, e poseidon2_perm_EXT_LAYER_4, e poseidon2_perm_EXT_LAYER_5, e poseidon2_perm_EXT_LAYER_6, e poseidon2_perm_EXT_LAYER_7, e poseidon2_perm_T_0_4, e poseidon2_perm_T_0_5, e poseidon2_perm_T_0_6, e poseidon2_perm_T_0_7, e poseidon2_perm_T_1_4, e poseidon2_perm_T_1_5, e poseidon2_perm_T_1_6, e poseidon2_perm_T_1_7, e poseidon2_perm_T_2_4, e poseidon2_perm_T_2_5, e poseidon2_perm_T_2_6, e poseidon2_perm_T_2_7, e poseidon2_perm_T_3_4, e poseidon2_perm_T_3_5, e poseidon2_perm_T_3_6, e poseidon2_perm_T_3_7, e poseidon2_perm_T_60_4, e poseidon2_perm_T_60_5, e poseidon2_perm_T_60_6, e poseidon2_perm_T_60_7, e poseidon2_perm_T_61_4, e poseidon2_perm_T_61_5, e poseidon2_perm_T_61_6, e poseidon2_perm_T_61_7, e poseidon2_perm_T_62_4, e poseidon2_perm_T_62_5, e poseidon2_perm_T_62_6, e poseidon2_perm_T_62_7, e poseidon2_perm_T_63_4, e poseidon2_perm_T_63_5, e poseidon2_perm_T_63_6, e poseidon2_perm_T_63_7, e poseidon2_perm_a_0, e poseidon2_perm_a_1, e poseidon2_perm_a_2, e poseidon2_perm_a_3, e poseidon2_perm_b_0, e poseidon2_perm_b_1, e poseidon2_perm_b_2, e poseidon2_perm_b_3, e poseidon2_perm_mem_batch_tag_inv, e poseidon2_perm_mem_err, e poseidon2_perm_mem_execution_clk, e poseidon2_perm_mem_input_0_, e poseidon2_perm_mem_input_1_, e poseidon2_perm_mem_input_2_, e poseidon2_perm_mem_input_3_, e poseidon2_perm_mem_input_tag_0_, e poseidon2_perm_mem_input_tag_1_, e poseidon2_perm_mem_input_tag_2_, e poseidon2_perm_mem_input_tag_3_, e poseidon2_perm_mem_max_mem_addr, e poseidon2_perm_mem_output_0_, e poseidon2_perm_mem_output_1_, e poseidon2_perm_mem_output_2_, e poseidon2_perm_mem_output_3_, e poseidon2_perm_mem_read_address_0_, e poseidon2_perm_mem_read_address_1_, e poseidon2_perm_mem_read_address_2_, e poseidon2_perm_mem_read_address_3_, e poseidon2_perm_mem_sel, e poseidon2_perm_mem_sel_dst_out_of_range_err, e poseidon2_perm_mem_sel_invalid_tag_err, e poseidon2_perm_mem_sel_should_exec, e poseidon2_perm_mem_sel_should_read_mem, e poseidon2_perm_mem_sel_src_out_of_range_err, e poseidon2_perm_mem_space_id, e poseidon2_perm_mem_write_address_0_, e poseidon2_perm_mem_write_address_1_, e poseidon2_perm_mem_write_address_2_, e poseidon2_perm_mem_write_address_3_, e poseidon2_perm_sel, e public_data_check_address, e public_data_check_clk_diff_hi, e public_data_check_clk_diff_lo, e public_data_check_const_four, e public_data_check_const_three, e public_data_check_discard, e public_data_check_end, e public_data_check_final_value, e public_data_check_intermediate_root, e public_data_check_leaf_not_exists, e public_data_check_leaf_slot, e public_data_check_leaf_slot_low_leaf_slot_diff_inv, e public_data_check_length_pi_idx, e public_data_check_low_leaf_hash, e public_data_check_low_leaf_index, e public_data_check_low_leaf_next_index, e public_data_check_low_leaf_next_slot, e public_data_check_low_leaf_slot, e public_data_check_low_leaf_value, e public_data_check_merkle_hash_separator, e public_data_check_new_leaf_hash, e public_data_check_next_slot_inv, e public_data_check_next_slot_is_nonzero, e public_data_check_non_discarded_write, e public_data_check_non_protocol_write, e public_data_check_not_end, e public_data_check_protocol_write, e public_data_check_public_data_writes_length, e public_data_check_root, e public_data_check_sel_write_to_public_inputs, e public_data_check_should_insert, e public_data_check_siloing_separator, e public_data_check_slot, e public_data_check_tree_height, e public_data_check_tree_size_after_write, e public_data_check_tree_size_before_write, e public_data_check_updated_low_leaf_hash, e public_data_check_updated_low_leaf_next_index, e public_data_check_updated_low_leaf_next_slot, e public_data_check_updated_low_leaf_value, e public_data_check_value, e public_data_check_write, e public_data_check_write_root, e public_data_squash_check_clock, e public_data_squash_clk_diff_hi, e public_data_squash_clk_diff_lo, e public_data_squash_leaf_slot_increase, e public_data_squash_value, e range_check_dyn_diff, e range_check_dyn_rng_chk_bits, e range_check_dyn_rng_chk_pow_2, e range_check_is_lte_u112, e range_check_is_lte_u128, e range_check_is_lte_u16, e range_check_is_lte_u32, e range_check_is_lte_u48, e range_check_is_lte_u64, e range_check_is_lte_u80, e range_check_is_lte_u96, e range_check_rng_chk_bits, e range_check_sel, e range_check_sel_alu, e range_check_sel_gt, e range_check_sel_keccak, e range_check_sel_memory, e range_check_sel_r0_16_bit_rng_lookup, e range_check_sel_r1_16_bit_rng_lookup, e range_check_sel_r2_16_bit_rng_lookup, e range_check_sel_r3_16_bit_rng_lookup, e range_check_sel_r4_16_bit_rng_lookup, e range_check_sel_r5_16_bit_rng_lookup, e range_check_sel_r6_16_bit_rng_lookup, e range_check_u16_r0, e range_check_u16_r1, e range_check_u16_r2, e range_check_u16_r3, e range_check_u16_r4, e range_check_u16_r5, e range_check_u16_r6, e range_check_u16_r7, e range_check_value, e scalar_mul_bit, e scalar_mul_const_two, e scalar_mul_end, e scalar_mul_sel_not_end, e scalar_mul_should_add, e sha256_a_and_b, e sha256_a_and_b_xor_a_and_c, e sha256_a_and_c, e sha256_a_rotr_13, e sha256_a_rotr_2, e sha256_a_rotr_22, e sha256_a_rotr_2_xor_a_rotr_13, e sha256_and_op_id, e sha256_b_and_c, e sha256_batch_tag_inv, e sha256_ch, e sha256_computed_w_lhs, e sha256_computed_w_rhs, e sha256_e_and_f, e sha256_e_rotr_11, e sha256_e_rotr_25, e sha256_e_rotr_6, e sha256_e_rotr_6_xor_e_rotr_11, e sha256_end, e sha256_err, e sha256_input, e sha256_input_rounds_rem_inv, e sha256_input_tag, e sha256_input_tag_diff_inv, e sha256_last, e sha256_lhs_w_10, e sha256_lhs_w_3, e sha256_maj, e sha256_max_input_addr, e sha256_max_mem_addr, e sha256_max_output_addr, e sha256_max_state_addr, e sha256_mem_out_of_range_err, e sha256_memory_address_0_, e sha256_memory_address_1_, e sha256_memory_address_2_, e sha256_memory_address_3_, e sha256_memory_address_4_, e sha256_memory_address_5_, e sha256_memory_address_6_, e sha256_memory_address_7_, e sha256_memory_register_0_, e sha256_memory_register_1_, e sha256_memory_register_2_, e sha256_memory_register_3_, e sha256_memory_register_4_, e sha256_memory_register_5_, e sha256_memory_register_6_, e sha256_memory_register_7_, e sha256_memory_tag_0_, e sha256_memory_tag_1_, e sha256_memory_tag_2_, e sha256_memory_tag_3_, e sha256_memory_tag_4_, e sha256_memory_tag_5_, e sha256_memory_tag_6_, e sha256_memory_tag_7_, e sha256_next_a_lhs, e sha256_next_a_rhs, e sha256_next_e_lhs, e sha256_next_e_rhs, e sha256_not_e, e sha256_not_e_and_g, e sha256_output_a_lhs, e sha256_output_a_rhs, e sha256_output_b_lhs, e sha256_output_b_rhs, e sha256_output_c_lhs, e sha256_output_c_rhs, e sha256_output_d_lhs, e sha256_output_d_rhs, e sha256_output_e_lhs, e sha256_output_e_rhs, e sha256_output_f_lhs, e sha256_output_f_rhs, e sha256_output_g_lhs, e sha256_output_g_rhs, e sha256_output_h_lhs, e sha256_output_h_rhs, e sha256_perform_round, e sha256_rhs_a_13, e sha256_rhs_a_2, e sha256_rhs_a_22, e sha256_rhs_e_11, e sha256_rhs_e_25, e sha256_rhs_e_6, e sha256_rhs_w_10, e sha256_rhs_w_17, e sha256_rhs_w_18, e sha256_rhs_w_19, e sha256_rhs_w_3, e sha256_rhs_w_7, e sha256_round_constant, e sha256_round_count, e sha256_rounds_remaining_inv, e sha256_rw, e sha256_s_0, e sha256_s_1, e sha256_sel_compute_w, e sha256_sel_input_out_of_range_err, e sha256_sel_invalid_input_row_tag_err, e sha256_sel_invalid_state_tag_err, e sha256_sel_is_input_round, e sha256_sel_mem_state_or_output, e sha256_sel_output_out_of_range_err, e sha256_sel_read_input_from_memory, e sha256_sel_state_out_of_range_err, e sha256_state_addr, e sha256_two_pow_10, e sha256_two_pow_11, e sha256_two_pow_13, e sha256_two_pow_17, e sha256_two_pow_18, e sha256_two_pow_19, e sha256_two_pow_2, e sha256_two_pow_22, e sha256_two_pow_25, e sha256_two_pow_3, e sha256_two_pow_32, e sha256_two_pow_6, e sha256_two_pow_7, e sha256_u32_tag, e sha256_w, e sha256_w_15_rotr_18, e sha256_w_15_rotr_7, e sha256_w_15_rotr_7_xor_w_15_rotr_18, e sha256_w_2_rotr_17, e sha256_w_2_rotr_17_xor_w_2_rotr_19, e sha256_w_2_rotr_19, e sha256_w_s_0, e sha256_w_s_1, e sha256_xor_op_id, e to_radix_end, e to_radix_found, e to_radix_is_unsafe_limb, e to_radix_limb_p_diff, e to_radix_limb_radix_diff, e to_radix_mem_err, e to_radix_mem_input_validation_error, e to_radix_mem_last, e to_radix_mem_limb_index_to_lookup, e to_radix_mem_limb_value, e to_radix_mem_max_mem_size, e to_radix_mem_num_limbs_inv, e to_radix_mem_num_limbs_minus_one_inv, e to_radix_mem_output_tag, e to_radix_mem_radix_min_two_inv, e to_radix_mem_sel_dst_out_of_range_err, e to_radix_mem_sel_invalid_bitwise_radix, e to_radix_mem_sel_num_limbs_is_zero, e to_radix_mem_sel_radix_eq_2, e to_radix_mem_sel_radix_gt_256_err, e to_radix_mem_sel_radix_lt_2_err, e to_radix_mem_sel_value_is_zero, e to_radix_mem_two, e to_radix_mem_two_five_six, e to_radix_mem_value_found, e to_radix_mem_value_inv, e to_radix_mem_write_addr_upper_bound, e to_radix_p_limb, e to_radix_rem_inverse, e to_radix_safety_diff_inverse, e tx_array_length_l2_to_l1_messages_pi_offset, e tx_array_length_note_hashes_pi_offset, e tx_array_length_nullifiers_pi_offset, e tx_calldata_hash, e tx_calldata_size, e tx_const_three, e tx_contract_addr, e tx_dom_sep_public_storage_map_slot, e tx_effective_fee_per_da_gas, e tx_effective_fee_per_l2_gas, e tx_end_phase, e tx_fee_juice_balance_slot, e tx_fee_juice_balances_slot_constant, e tx_fee_juice_contract_address, e tx_fee_payer, e tx_fee_payer_balance, e tx_fee_payer_new_balance, e tx_fee_payer_pi_offset, e tx_fields_length_public_logs_pi_offset, e tx_gas_limit_pi_offset, e tx_gas_used_pi_offset, e tx_is_cleanup, e tx_is_collect_fee, e tx_is_padded, e tx_is_public_call_request, e tx_is_static, e tx_is_tree_insert_phase, e tx_is_tree_padding, e tx_l1_l2_pi_offset, e tx_l2_l1_msg_content, e tx_l2_l1_msg_contract_address, e tx_l2_l1_msg_recipient, e tx_leaf_value, e tx_msg_sender, e tx_next_da_gas_used, e tx_next_da_gas_used_sent_to_enqueued_call, e tx_next_l2_gas_used, e tx_next_l2_gas_used_sent_to_enqueued_call, e tx_next_note_hash_tree_root, e tx_next_note_hash_tree_size, e tx_next_nullifier_tree_root, e tx_next_nullifier_tree_size, e tx_next_num_l2_to_l1_messages, e tx_next_num_note_hashes_emitted, e tx_next_num_nullifiers_emitted, e tx_next_num_public_log_fields, e tx_next_phase_on_revert, e tx_next_public_data_tree_root, e tx_next_public_data_tree_size, e tx_next_retrieved_bytecodes_tree_root, e tx_next_retrieved_bytecodes_tree_size, e tx_next_written_public_data_slots_tree_root, e tx_next_written_public_data_slots_tree_size, e tx_note_hash_pi_offset, e tx_nullifier_limit_error, e tx_nullifier_merkle_separator, e tx_nullifier_pi_offset, e tx_nullifier_tree_height, e tx_prev_da_gas_used_sent_to_enqueued_call, e tx_prev_l2_gas_used_sent_to_enqueued_call, e tx_public_data_pi_offset, e tx_read_pi_length_offset, e tx_read_pi_start_offset, e tx_remaining_phase_inv, e tx_remaining_phase_minus_one_inv, e tx_remaining_side_effects_inv, e tx_reverted_pi_offset, e tx_sel_append_l2_l1_msg, e tx_sel_append_note_hash, e tx_sel_append_nullifier, e tx_sel_l2_l1_msg_append, e tx_sel_note_hash_append, e tx_sel_nullifier_append, e tx_sel_process_call_request, e tx_sel_read_phase_length, e tx_sel_read_trees_and_gas_used, e tx_sel_try_l2_l1_msg_append, e tx_sel_try_note_hash_append, e tx_sel_try_nullifier_append, e tx_setup_phase_value, e tx_should_read_gas_limit, e tx_uint32_max, e tx_write_nullifier_pi_offset, e tx_write_pi_offset, e update_check_address, e update_check_const_three, e update_check_contract_instance_registry_address, e update_check_current_class_id, e update_check_delayed_public_mutable_hash_slot, e update_check_delayed_public_mutable_slot, e update_check_dom_sep_public_storage_map_slot, e update_check_hash_not_zero, e update_check_original_class_id, e update_check_public_data_tree_root, e update_check_sel, e update_check_timestamp, e update_check_timestamp_is_lt_timestamp_of_change, e update_check_timestamp_of_change, e update_check_timestamp_of_change_bit_size, e update_check_timestamp_pi_offset, e update_check_update_hash, e update_check_update_hash_inv, e update_check_update_hi_metadata, e update_check_update_hi_metadata_bit_size, e update_check_update_post_class_id_is_zero, e update_check_update_post_class_inv, e update_check_update_pre_class_id_is_zero, e update_check_update_pre_class_inv, e update_check_update_preimage_metadata, e update_check_update_preimage_post_class_id, e update_check_update_preimage_pre_class_id, e update_check_updated_class_ids_slot, e lookup_range_check_dyn_rng_chk_pow_2_counts, e lookup_range_check_dyn_diff_is_u16_counts, e lookup_range_check_r0_is_u16_counts, e lookup_range_check_r1_is_u16_counts, e lookup_range_check_r2_is_u16_counts, e lookup_range_check_r3_is_u16_counts, e lookup_range_check_r4_is_u16_counts, e lookup_range_check_r5_is_u16_counts, e lookup_range_check_r6_is_u16_counts, e lookup_range_check_r7_is_u16_counts, e lookup_ff_gt_a_lo_range_counts, e lookup_ff_gt_a_hi_range_counts, e lookup_gt_gt_range_counts, e lookup_alu_tag_max_bits_value_counts, e lookup_alu_range_check_decomposition_a_lo_counts, e lookup_alu_range_check_decomposition_a_hi_counts, e lookup_alu_range_check_decomposition_b_lo_counts, e lookup_alu_range_check_decomposition_b_hi_counts, e lookup_alu_range_check_mul_c_hi_counts, e lookup_alu_range_check_div_remainder_counts, e lookup_alu_ff_gt_counts, e lookup_alu_int_gt_counts, e lookup_alu_shifts_two_pow_counts, e lookup_alu_large_trunc_canonical_dec_counts, e lookup_alu_range_check_trunc_mid_counts, e lookup_bitwise_integral_tag_length_counts, e lookup_bitwise_byte_operations_counts, e lookup_memory_range_check_limb_0_counts, e lookup_memory_range_check_limb_1_counts, e lookup_memory_range_check_limb_2_counts, e lookup_memory_tag_max_bits_counts, e lookup_memory_range_check_write_tagged_value_counts, e lookup_data_copy_offset_plus_size_is_gt_data_size_counts, e lookup_data_copy_check_src_addr_in_range_counts, e lookup_data_copy_check_dst_addr_in_range_counts, e lookup_data_copy_sel_has_reads_counts, e lookup_data_copy_col_read_counts, e lookup_ecc_mem_check_dst_addr_in_range_counts, e lookup_ecc_mem_input_output_ecc_add_counts, e lookup_keccakf1600_theta_xor_01_counts, e lookup_keccakf1600_theta_xor_02_counts, e lookup_keccakf1600_theta_xor_03_counts, e lookup_keccakf1600_theta_xor_row_0_counts, e lookup_keccakf1600_theta_xor_11_counts, e lookup_keccakf1600_theta_xor_12_counts, e lookup_keccakf1600_theta_xor_13_counts, e lookup_keccakf1600_theta_xor_row_1_counts, e lookup_keccakf1600_theta_xor_21_counts, e lookup_keccakf1600_theta_xor_22_counts, e lookup_keccakf1600_theta_xor_23_counts, e lookup_keccakf1600_theta_xor_row_2_counts, e lookup_keccakf1600_theta_xor_31_counts, e lookup_keccakf1600_theta_xor_32_counts, e lookup_keccakf1600_theta_xor_33_counts, e lookup_keccakf1600_theta_xor_row_3_counts, e lookup_keccakf1600_theta_xor_41_counts, e lookup_keccakf1600_theta_xor_42_counts, e lookup_keccakf1600_theta_xor_43_counts, e lookup_keccakf1600_theta_xor_row_4_counts, e lookup_keccakf1600_theta_combined_xor_0_counts, e lookup_keccakf1600_theta_combined_xor_1_counts, e lookup_keccakf1600_theta_combined_xor_2_counts, e lookup_keccakf1600_theta_combined_xor_3_counts, e lookup_keccakf1600_theta_combined_xor_4_counts, e lookup_keccakf1600_state_theta_00_counts, e lookup_keccakf1600_state_theta_01_counts, e lookup_keccakf1600_state_theta_02_counts, e lookup_keccakf1600_state_theta_03_counts, e lookup_keccakf1600_state_theta_04_counts, e lookup_keccakf1600_state_theta_10_counts, e lookup_keccakf1600_state_theta_11_counts, e lookup_keccakf1600_state_theta_12_counts, e lookup_keccakf1600_state_theta_13_counts, e lookup_keccakf1600_state_theta_14_counts, e lookup_keccakf1600_state_theta_20_counts, e lookup_keccakf1600_state_theta_21_counts, e lookup_keccakf1600_state_theta_22_counts, e lookup_keccakf1600_state_theta_23_counts, e lookup_keccakf1600_state_theta_24_counts, e lookup_keccakf1600_state_theta_30_counts, e lookup_keccakf1600_state_theta_31_counts, e lookup_keccakf1600_state_theta_32_counts, e lookup_keccakf1600_state_theta_33_counts, e lookup_keccakf1600_state_theta_34_counts, e lookup_keccakf1600_state_theta_40_counts, e lookup_keccakf1600_state_theta_41_counts, e lookup_keccakf1600_state_theta_42_counts, e lookup_keccakf1600_state_theta_43_counts, e lookup_keccakf1600_state_theta_44_counts, e lookup_keccakf1600_theta_limb_02_range_counts, e lookup_keccakf1600_theta_limb_04_range_counts, e lookup_keccakf1600_theta_limb_10_range_counts, e lookup_keccakf1600_theta_limb_12_range_counts, e lookup_keccakf1600_theta_limb_14_range_counts, e lookup_keccakf1600_theta_limb_21_range_counts, e lookup_keccakf1600_theta_limb_23_range_counts, e lookup_keccakf1600_theta_limb_30_range_counts, e lookup_keccakf1600_theta_limb_32_range_counts, e lookup_keccakf1600_theta_limb_33_range_counts, e lookup_keccakf1600_theta_limb_40_range_counts, e lookup_keccakf1600_theta_limb_41_range_counts, e lookup_keccakf1600_theta_limb_43_range_counts, e lookup_keccakf1600_theta_limb_44_range_counts, e lookup_keccakf1600_theta_limb_01_range_counts, e lookup_keccakf1600_theta_limb_03_range_counts, e lookup_keccakf1600_theta_limb_11_range_counts, e lookup_keccakf1600_theta_limb_13_range_counts, e lookup_keccakf1600_theta_limb_20_range_counts, e lookup_keccakf1600_theta_limb_22_range_counts, e lookup_keccakf1600_theta_limb_24_range_counts, e lookup_keccakf1600_theta_limb_31_range_counts, e lookup_keccakf1600_theta_limb_34_range_counts, e lookup_keccakf1600_theta_limb_42_range_counts, e lookup_keccakf1600_state_pi_and_00_counts, e lookup_keccakf1600_state_pi_and_01_counts, e lookup_keccakf1600_state_pi_and_02_counts, e lookup_keccakf1600_state_pi_and_03_counts, e lookup_keccakf1600_state_pi_and_04_counts, e lookup_keccakf1600_state_pi_and_10_counts, e lookup_keccakf1600_state_pi_and_11_counts, e lookup_keccakf1600_state_pi_and_12_counts, e lookup_keccakf1600_state_pi_and_13_counts, e lookup_keccakf1600_state_pi_and_14_counts, e lookup_keccakf1600_state_pi_and_20_counts, e lookup_keccakf1600_state_pi_and_21_counts, e lookup_keccakf1600_state_pi_and_22_counts, e lookup_keccakf1600_state_pi_and_23_counts, e lookup_keccakf1600_state_pi_and_24_counts, e lookup_keccakf1600_state_pi_and_30_counts, e lookup_keccakf1600_state_pi_and_31_counts, e lookup_keccakf1600_state_pi_and_32_counts, e lookup_keccakf1600_state_pi_and_33_counts, e lookup_keccakf1600_state_pi_and_34_counts, e lookup_keccakf1600_state_pi_and_40_counts, e lookup_keccakf1600_state_pi_and_41_counts, e lookup_keccakf1600_state_pi_and_42_counts, e lookup_keccakf1600_state_pi_and_43_counts, e lookup_keccakf1600_state_pi_and_44_counts, e lookup_keccakf1600_state_chi_00_counts, e lookup_keccakf1600_state_chi_01_counts, e lookup_keccakf1600_state_chi_02_counts, e lookup_keccakf1600_state_chi_03_counts, e lookup_keccakf1600_state_chi_04_counts, e lookup_keccakf1600_state_chi_10_counts, e lookup_keccakf1600_state_chi_11_counts, e lookup_keccakf1600_state_chi_12_counts, e lookup_keccakf1600_state_chi_13_counts, e lookup_keccakf1600_state_chi_14_counts, e lookup_keccakf1600_state_chi_20_counts, e lookup_keccakf1600_state_chi_21_counts, e lookup_keccakf1600_state_chi_22_counts, e lookup_keccakf1600_state_chi_23_counts, e lookup_keccakf1600_state_chi_24_counts, e lookup_keccakf1600_state_chi_30_counts, e lookup_keccakf1600_state_chi_31_counts, e lookup_keccakf1600_state_chi_32_counts, e lookup_keccakf1600_state_chi_33_counts, e lookup_keccakf1600_state_chi_34_counts, e lookup_keccakf1600_state_chi_40_counts, e lookup_keccakf1600_state_chi_41_counts, e lookup_keccakf1600_state_chi_42_counts, e lookup_keccakf1600_state_chi_43_counts, e lookup_keccakf1600_state_chi_44_counts, e lookup_keccakf1600_round_cst_counts, e lookup_keccakf1600_state_iota_00_counts, e lookup_keccakf1600_src_out_of_range_toggle_counts, e lookup_keccakf1600_dst_out_of_range_toggle_counts, e lookup_poseidon2_mem_check_src_addr_in_range_counts, e lookup_poseidon2_mem_check_dst_addr_in_range_counts, e lookup_poseidon2_mem_input_output_poseidon2_perm_counts, e lookup_to_radix_limb_range_counts, e lookup_to_radix_limb_less_than_radix_range_counts, e lookup_to_radix_fetch_safe_limbs_counts, e lookup_to_radix_fetch_p_limb_counts, e lookup_to_radix_limb_p_diff_range_counts, e lookup_scalar_mul_to_radix_counts, e lookup_scalar_mul_double_counts, e lookup_scalar_mul_add_counts, e lookup_sha256_range_comp_w_lhs_counts, e lookup_sha256_range_comp_w_rhs_counts, e lookup_sha256_range_rhs_w_7_counts, e lookup_sha256_range_rhs_w_18_counts, e lookup_sha256_range_rhs_w_3_counts, e lookup_sha256_w_s_0_xor_0_counts, e lookup_sha256_w_s_0_xor_1_counts, e lookup_sha256_range_rhs_w_17_counts, e lookup_sha256_range_rhs_w_19_counts, e lookup_sha256_range_rhs_w_10_counts, e lookup_sha256_w_s_1_xor_0_counts, e lookup_sha256_w_s_1_xor_1_counts, e lookup_sha256_range_rhs_e_6_counts, e lookup_sha256_range_rhs_e_11_counts, e lookup_sha256_range_rhs_e_25_counts, e lookup_sha256_s_1_xor_0_counts, e lookup_sha256_s_1_xor_1_counts, e lookup_sha256_ch_and_0_counts, e lookup_sha256_ch_and_1_counts, e lookup_sha256_ch_xor_counts, e lookup_sha256_round_constant_counts, e lookup_sha256_range_rhs_a_2_counts, e lookup_sha256_range_rhs_a_13_counts, e lookup_sha256_range_rhs_a_22_counts, e lookup_sha256_s_0_xor_0_counts, e lookup_sha256_s_0_xor_1_counts, e lookup_sha256_maj_and_0_counts, e lookup_sha256_maj_and_1_counts, e lookup_sha256_maj_and_2_counts, e lookup_sha256_maj_xor_0_counts, e lookup_sha256_maj_xor_1_counts, e lookup_sha256_range_comp_next_a_lhs_counts, e lookup_sha256_range_comp_next_a_rhs_counts, e lookup_sha256_range_comp_next_e_lhs_counts, e lookup_sha256_range_comp_next_e_rhs_counts, e lookup_sha256_range_comp_a_rhs_counts, e lookup_sha256_range_comp_b_rhs_counts, e lookup_sha256_range_comp_c_rhs_counts, e lookup_sha256_range_comp_d_rhs_counts, e lookup_sha256_range_comp_e_rhs_counts, e lookup_sha256_range_comp_f_rhs_counts, e lookup_sha256_range_comp_g_rhs_counts, e lookup_sha256_range_comp_h_rhs_counts, e lookup_sha256_mem_check_state_addr_in_range_counts, e lookup_sha256_mem_check_input_addr_in_range_counts, e lookup_sha256_mem_check_output_addr_in_range_counts, e lookup_to_radix_mem_check_dst_addr_in_range_counts, e lookup_to_radix_mem_check_radix_lt_2_counts, e lookup_to_radix_mem_check_radix_gt_256_counts, e lookup_to_radix_mem_input_output_to_radix_counts, e lookup_poseidon2_hash_poseidon2_perm_counts, e lookup_address_derivation_salted_initialization_hash_poseidon2_0_counts, e lookup_address_derivation_salted_initialization_hash_poseidon2_1_counts, e lookup_address_derivation_partial_address_poseidon2_counts, e lookup_address_derivation_public_keys_hash_poseidon2_0_counts, e lookup_address_derivation_public_keys_hash_poseidon2_1_counts, e lookup_address_derivation_public_keys_hash_poseidon2_2_counts, e lookup_address_derivation_public_keys_hash_poseidon2_3_counts, e lookup_address_derivation_public_keys_hash_poseidon2_4_counts, e lookup_address_derivation_preaddress_poseidon2_counts, e lookup_address_derivation_preaddress_scalar_mul_counts, e lookup_address_derivation_address_ecadd_counts, e lookup_bc_decomposition_bytes_are_bytes_counts, e lookup_bc_hashing_poseidon2_hash_counts, e lookup_merkle_check_merkle_poseidon2_read_counts, e lookup_merkle_check_merkle_poseidon2_write_counts, e lookup_indexed_tree_check_silo_poseidon2_counts, e lookup_indexed_tree_check_low_leaf_value_validation_counts, e lookup_indexed_tree_check_low_leaf_next_value_validation_counts, e lookup_indexed_tree_check_low_leaf_poseidon2_counts, e lookup_indexed_tree_check_updated_low_leaf_poseidon2_counts, e lookup_indexed_tree_check_low_leaf_merkle_check_counts, e lookup_indexed_tree_check_new_leaf_poseidon2_counts, e lookup_indexed_tree_check_new_leaf_merkle_check_counts, e lookup_indexed_tree_check_write_value_to_public_inputs_counts, e lookup_public_data_squash_leaf_slot_increase_ff_gt_counts, e lookup_public_data_squash_clk_diff_range_lo_counts, e lookup_public_data_squash_clk_diff_range_hi_counts, e lookup_public_data_check_clk_diff_range_lo_counts, e lookup_public_data_check_clk_diff_range_hi_counts, e lookup_public_data_check_silo_poseidon2_counts, e lookup_public_data_check_low_leaf_slot_validation_counts, e lookup_public_data_check_low_leaf_next_slot_validation_counts, e lookup_public_data_check_low_leaf_poseidon2_0_counts, e lookup_public_data_check_low_leaf_poseidon2_1_counts, e lookup_public_data_check_updated_low_leaf_poseidon2_0_counts, e lookup_public_data_check_updated_low_leaf_poseidon2_1_counts, e lookup_public_data_check_low_leaf_merkle_check_counts, e lookup_public_data_check_new_leaf_poseidon2_0_counts, e lookup_public_data_check_new_leaf_poseidon2_1_counts, e lookup_public_data_check_new_leaf_merkle_check_counts, e lookup_public_data_check_write_public_data_to_public_inputs_counts, e lookup_public_data_check_write_writes_length_to_public_inputs_counts, e lookup_update_check_timestamp_from_public_inputs_counts, e lookup_update_check_delayed_public_mutable_slot_poseidon2_counts, e lookup_update_check_update_hash_public_data_read_counts, e lookup_update_check_update_hash_poseidon2_counts, e lookup_update_check_update_hi_metadata_range_counts, e lookup_update_check_update_lo_metadata_range_counts, e lookup_update_check_timestamp_is_lt_timestamp_of_change_counts, e lookup_contract_instance_retrieval_check_protocol_address_range_counts, e lookup_contract_instance_retrieval_read_derived_address_from_public_inputs_counts, e lookup_contract_instance_retrieval_deployment_nullifier_read_counts, e lookup_contract_instance_retrieval_address_derivation_counts, e lookup_contract_instance_retrieval_update_check_counts, e lookup_class_id_derivation_class_id_poseidon2_0_counts, e lookup_class_id_derivation_class_id_poseidon2_1_counts, e lookup_bc_retrieval_contract_instance_retrieval_counts, e lookup_bc_retrieval_class_id_derivation_counts, e lookup_bc_retrieval_is_new_class_check_counts, e lookup_bc_retrieval_retrieved_bytecodes_insertion_counts, e lookup_instr_fetching_pc_abs_diff_positive_counts, e lookup_instr_fetching_instr_abs_diff_positive_counts, e lookup_instr_fetching_tag_value_validation_counts, e lookup_instr_fetching_bytecode_size_from_bc_dec_counts, e lookup_instr_fetching_bytes_from_bc_dec_counts, e lookup_instr_fetching_wire_instruction_info_counts, e lookup_emit_public_log_check_memory_out_of_bounds_counts, e lookup_emit_public_log_check_log_fields_count_counts, e lookup_emit_public_log_write_data_to_public_inputs_counts, e lookup_get_contract_instance_precomputed_info_counts, e lookup_get_contract_instance_contract_instance_retrieval_counts, e lookup_l1_to_l2_message_tree_check_merkle_check_counts, e lookup_internal_call_unwind_call_stack_counts, e lookup_context_ctx_stack_rollback_counts, e lookup_context_ctx_stack_return_counts, e lookup_addressing_relative_overflow_result_0_counts, e lookup_addressing_relative_overflow_result_1_counts, e lookup_addressing_relative_overflow_result_2_counts, e lookup_addressing_relative_overflow_result_3_counts, e lookup_addressing_relative_overflow_result_4_counts, e lookup_addressing_relative_overflow_result_5_counts, e lookup_addressing_relative_overflow_result_6_counts, e lookup_gas_addressing_gas_read_counts, e lookup_gas_is_out_of_gas_l2_counts, e lookup_gas_is_out_of_gas_da_counts, e lookup_note_hash_tree_check_silo_poseidon2_counts, e lookup_note_hash_tree_check_read_first_nullifier_counts, e lookup_note_hash_tree_check_nonce_computation_poseidon2_counts, e lookup_note_hash_tree_check_unique_note_hash_poseidon2_counts, e lookup_note_hash_tree_check_merkle_check_counts, e lookup_note_hash_tree_check_write_note_hash_to_public_inputs_counts, e lookup_emit_notehash_notehash_tree_write_counts, e lookup_emit_nullifier_write_nullifier_counts, e lookup_external_call_is_l2_gas_left_gt_allocated_counts, e lookup_external_call_is_da_gas_left_gt_allocated_counts, e lookup_get_env_var_precomputed_info_counts, e lookup_get_env_var_read_from_public_inputs_col0_counts, e lookup_get_env_var_read_from_public_inputs_col1_counts, e lookup_l1_to_l2_message_exists_l1_to_l2_msg_leaf_index_in_range_counts, e lookup_l1_to_l2_message_exists_l1_to_l2_msg_read_counts, e lookup_notehash_exists_note_hash_leaf_index_in_range_counts, e lookup_notehash_exists_note_hash_read_counts, e lookup_nullifier_exists_nullifier_exists_check_counts, e lookup_send_l2_to_l1_msg_recipient_check_counts, e lookup_send_l2_to_l1_msg_write_l2_to_l1_msg_counts, e lookup_sload_storage_read_counts, e lookup_sstore_record_written_storage_slot_counts, e lookup_execution_bytecode_retrieval_result_counts, e lookup_execution_instruction_fetching_result_counts, e lookup_execution_instruction_fetching_body_counts, e lookup_execution_exec_spec_read_counts, e lookup_execution_dyn_l2_factor_bitwise_counts, e lookup_execution_check_radix_gt_256_counts, e lookup_execution_get_p_limbs_counts, e lookup_execution_get_max_limbs_counts, e lookup_execution_check_written_storage_slot_counts, e lookup_execution_dispatch_to_alu_counts, e lookup_execution_dispatch_to_bitwise_counts, e lookup_execution_dispatch_to_cast_counts, e lookup_execution_dispatch_to_set_counts, e lookup_calldata_hashing_get_calldata_field_0_counts, e lookup_calldata_hashing_get_calldata_field_1_counts, e lookup_calldata_hashing_get_calldata_field_2_counts, e lookup_calldata_hashing_poseidon2_hash_counts, e lookup_tx_context_public_inputs_note_hash_tree_counts, e lookup_tx_context_public_inputs_nullifier_tree_counts, e lookup_tx_context_public_inputs_public_data_tree_counts, e lookup_tx_context_public_inputs_l1_l2_tree_counts, e lookup_tx_context_public_inputs_gas_used_counts, e lookup_tx_context_public_inputs_read_gas_limit_counts, e lookup_tx_context_public_inputs_read_reverted_counts, e lookup_tx_context_restore_state_on_revert_counts, e lookup_tx_context_public_inputs_write_note_hash_count_counts, e lookup_tx_context_public_inputs_write_nullifier_count_counts, e lookup_tx_context_public_inputs_write_l2_to_l1_message_count_counts, e lookup_tx_context_public_inputs_write_public_log_count_counts, e lookup_tx_read_phase_spec_counts, e lookup_tx_read_phase_length_counts, e lookup_tx_read_public_call_request_phase_counts, e lookup_tx_read_tree_insert_value_counts, e lookup_tx_note_hash_append_counts, e lookup_tx_nullifier_append_counts, e lookup_tx_read_l2_l1_msg_counts, e lookup_tx_write_l2_l1_msg_counts, e lookup_tx_read_effective_fee_public_inputs_counts, e lookup_tx_read_fee_payer_public_inputs_counts, e lookup_tx_balance_slot_poseidon2_counts, e lookup_tx_balance_read_counts, e lookup_tx_balance_validation_counts, e lookup_tx_write_fee_public_inputs_counts, e bc_decomposition_bytes, e bc_decomposition_bytes_pc_plus_1, e bc_decomposition_bytes_pc_plus_10, e bc_decomposition_bytes_pc_plus_11, e bc_decomposition_bytes_pc_plus_12, e bc_decomposition_bytes_pc_plus_13, e bc_decomposition_bytes_pc_plus_14, e bc_decomposition_bytes_pc_plus_15, e bc_decomposition_bytes_pc_plus_16, e bc_decomposition_bytes_pc_plus_17, e bc_decomposition_bytes_pc_plus_18, e bc_decomposition_bytes_pc_plus_19, e bc_decomposition_bytes_pc_plus_2, e bc_decomposition_bytes_pc_plus_20, e bc_decomposition_bytes_pc_plus_21, e bc_decomposition_bytes_pc_plus_22, e bc_decomposition_bytes_pc_plus_23, e bc_decomposition_bytes_pc_plus_24, e bc_decomposition_bytes_pc_plus_25, e bc_decomposition_bytes_pc_plus_26, e bc_decomposition_bytes_pc_plus_27, e bc_decomposition_bytes_pc_plus_28, e bc_decomposition_bytes_pc_plus_29, e bc_decomposition_bytes_pc_plus_3, e bc_decomposition_bytes_pc_plus_30, e bc_decomposition_bytes_pc_plus_31, e bc_decomposition_bytes_pc_plus_32, e bc_decomposition_bytes_pc_plus_33, e bc_decomposition_bytes_pc_plus_34, e bc_decomposition_bytes_pc_plus_35, e bc_decomposition_bytes_pc_plus_4, e bc_decomposition_bytes_pc_plus_5, e bc_decomposition_bytes_pc_plus_6, e bc_decomposition_bytes_pc_plus_7, e bc_decomposition_bytes_pc_plus_8, e bc_decomposition_bytes_pc_plus_9, e bc_decomposition_bytes_remaining, e bc_decomposition_id, e bc_decomposition_next_packed_pc, e bc_decomposition_pc, e bc_decomposition_sel, e bc_decomposition_sel_windows_gt_remaining, e bc_decomposition_start, e bc_hashing_bytecode_id, e bc_hashing_padding, e bc_hashing_pc_index_1, e bc_hashing_rounds_rem, e bc_hashing_sel, e bc_hashing_sel_not_start, e bc_hashing_start, e bitwise_acc_ia, e bitwise_acc_ib, e bitwise_acc_ic, e bitwise_ctr, e bitwise_op_id, e bitwise_sel, e bitwise_start, e calldata_context_id, e calldata_hashing_calldata_size, e calldata_hashing_context_id, e calldata_hashing_index_0_, e calldata_hashing_output_hash, e calldata_hashing_rounds_rem, e calldata_hashing_sel, e calldata_hashing_start, e calldata_index, e calldata_sel, e data_copy_clk, e data_copy_copy_size, e data_copy_dst_addr, e data_copy_dst_context_id, e data_copy_padding, e data_copy_read_addr, e data_copy_reads_left, e data_copy_sel, e data_copy_sel_cd_copy, e data_copy_src_context_id, e data_copy_start, e emit_public_log_contract_address, e emit_public_log_correct_tag, e emit_public_log_error_out_of_bounds, e emit_public_log_error_tag_mismatch, e emit_public_log_execution_clk, e emit_public_log_is_write_contract_address, e emit_public_log_is_write_memory_value, e emit_public_log_log_address, e emit_public_log_public_inputs_index, e emit_public_log_remaining_rows, e emit_public_log_seen_wrong_tag, e emit_public_log_sel, e emit_public_log_sel_write_to_public_inputs, e emit_public_log_space_id, e emit_public_log_start, e execution_bytecode_id, e execution_clk, e execution_context_id, e execution_contract_address, e execution_da_gas_limit, e execution_discard, e execution_dying_context_id, e execution_enqueued_call_start, e execution_internal_call_id, e execution_internal_call_return_id, e execution_is_static, e execution_l1_l2_tree_root, e execution_l2_gas_limit, e execution_last_child_id, e execution_last_child_returndata_addr, e execution_last_child_returndata_size, e execution_last_child_success, e execution_msg_sender, e execution_next_context_id, e execution_next_internal_call_id, e execution_parent_calldata_addr, e execution_parent_calldata_size, e execution_parent_da_gas_limit, e execution_parent_da_gas_used, e execution_parent_id, e execution_parent_l2_gas_limit, e execution_parent_l2_gas_used, e execution_pc, e execution_prev_da_gas_used, e execution_prev_l2_gas_used, e execution_prev_note_hash_tree_root, e execution_prev_note_hash_tree_size, e execution_prev_nullifier_tree_root, e execution_prev_nullifier_tree_size, e execution_prev_num_l2_to_l1_messages, e execution_prev_num_note_hashes_emitted, e execution_prev_num_nullifiers_emitted, e execution_prev_num_public_log_fields, e execution_prev_public_data_tree_root, e execution_prev_public_data_tree_size, e execution_prev_retrieved_bytecodes_tree_root, e execution_prev_retrieved_bytecodes_tree_size, e execution_prev_written_public_data_slots_tree_root, e execution_prev_written_public_data_slots_tree_size, e execution_sel, e execution_sel_first_row_in_context, e execution_transaction_fee, e ff_gt_a_hi, e ff_gt_a_lo, e ff_gt_b_hi, e ff_gt_b_lo, e ff_gt_cmp_rng_ctr, e ff_gt_p_sub_a_hi, e ff_gt_p_sub_a_lo, e ff_gt_p_sub_b_hi, e ff_gt_p_sub_b_lo, e ff_gt_sel, e ff_gt_sel_dec, e ff_gt_sel_gt, e keccak_memory_addr, e keccak_memory_clk, e keccak_memory_ctr, e keccak_memory_rw, e keccak_memory_sel, e keccak_memory_space_id, e keccak_memory_start_read, e keccak_memory_start_write, e keccak_memory_tag_error, e keccak_memory_val_0_, e keccak_memory_val_10_, e keccak_memory_val_11_, e keccak_memory_val_12_, e keccak_memory_val_13_, e keccak_memory_val_14_, e keccak_memory_val_15_, e keccak_memory_val_16_, e keccak_memory_val_17_, e keccak_memory_val_18_, e keccak_memory_val_19_, e keccak_memory_val_1_, e keccak_memory_val_20_, e keccak_memory_val_21_, e keccak_memory_val_22_, e keccak_memory_val_23_, e keccak_memory_val_2_, e keccak_memory_val_3_, e keccak_memory_val_4_, e keccak_memory_val_5_, e keccak_memory_val_6_, e keccak_memory_val_7_, e keccak_memory_val_8_, e keccak_memory_val_9_, e keccakf1600_clk, e keccakf1600_dst_addr, e keccakf1600_round, e keccakf1600_sel, e keccakf1600_sel_no_error, e keccakf1600_space_id, e keccakf1600_start, e keccakf1600_state_in_00, e keccakf1600_state_in_01, e keccakf1600_state_in_02, e keccakf1600_state_in_03, e keccakf1600_state_in_04, e keccakf1600_state_in_10, e keccakf1600_state_in_11, e keccakf1600_state_in_12, e keccakf1600_state_in_13, e keccakf1600_state_in_14, e keccakf1600_state_in_20, e keccakf1600_state_in_21, e keccakf1600_state_in_22, e keccakf1600_state_in_23, e keccakf1600_state_in_24, e keccakf1600_state_in_30, e keccakf1600_state_in_31, e keccakf1600_state_in_32, e keccakf1600_state_in_33, e keccakf1600_state_in_34, e keccakf1600_state_in_40, e keccakf1600_state_in_41, e keccakf1600_state_in_42, e keccakf1600_state_in_43, e keccakf1600_state_in_44, e memory_address, e memory_clk, e memory_rw, e memory_sel, e memory_space_id, e memory_tag, e memory_value, e merkle_check_index, e merkle_check_merkle_hash_separator, e merkle_check_path_len, e merkle_check_read_node, e merkle_check_read_root, e merkle_check_sel, e merkle_check_start, e merkle_check_write, e merkle_check_write_node, e merkle_check_write_root, e poseidon2_hash_a_0, e poseidon2_hash_a_1, e poseidon2_hash_a_2, e poseidon2_hash_a_3, e poseidon2_hash_input_0, e poseidon2_hash_input_1, e poseidon2_hash_input_2, e poseidon2_hash_num_perm_rounds_rem, e poseidon2_hash_output, e poseidon2_hash_sel, e poseidon2_hash_start, e public_data_check_clk, e public_data_check_sel, e public_data_check_write_idx, e public_data_squash_clk, e public_data_squash_final_value, e public_data_squash_leaf_slot, e public_data_squash_sel, e public_data_squash_write_to_public_inputs, e scalar_mul_bit_idx, e scalar_mul_point_inf, e scalar_mul_point_x, e scalar_mul_point_y, e scalar_mul_res_inf, e scalar_mul_res_x, e scalar_mul_res_y, e scalar_mul_scalar, e scalar_mul_sel, e scalar_mul_start, e scalar_mul_temp_inf, e scalar_mul_temp_x, e scalar_mul_temp_y, e sha256_a, e sha256_b, e sha256_c, e sha256_d, e sha256_e, e sha256_execution_clk, e sha256_f, e sha256_g, e sha256_h, e sha256_helper_w0, e sha256_helper_w1, e sha256_helper_w10, e sha256_helper_w11, e sha256_helper_w12, e sha256_helper_w13, e sha256_helper_w14, e sha256_helper_w15, e sha256_helper_w2, e sha256_helper_w3, e sha256_helper_w4, e sha256_helper_w5, e sha256_helper_w6, e sha256_helper_w7, e sha256_helper_w8, e sha256_helper_w9, e sha256_init_a, e sha256_init_b, e sha256_init_c, e sha256_init_d, e sha256_init_e, e sha256_init_f, e sha256_init_g, e sha256_init_h, e sha256_input_addr, e sha256_input_rounds_rem, e sha256_output_addr, e sha256_rounds_remaining, e sha256_sel, e sha256_sel_invalid_input_tag_err, e sha256_space_id, e sha256_start, e to_radix_acc, e to_radix_acc_under_p, e to_radix_limb, e to_radix_limb_eq_p, e to_radix_limb_index, e to_radix_limb_lt_p, e to_radix_mem_dst_addr, e to_radix_mem_execution_clk, e to_radix_mem_is_output_bits, e to_radix_mem_num_limbs, e to_radix_mem_radix, e to_radix_mem_sel, e to_radix_mem_sel_should_decompose, e to_radix_mem_sel_should_write_mem, e to_radix_mem_space_id, e to_radix_mem_start, e to_radix_mem_value_to_decompose, e to_radix_not_padding_limb, e to_radix_power, e to_radix_radix, e to_radix_safe_limbs, e to_radix_sel, e to_radix_start, e to_radix_value, e tx_da_gas_limit, e tx_discard, e tx_fee, e tx_is_revertible, e tx_is_teardown, e tx_l1_l2_tree_root, e tx_l1_l2_tree_size, e tx_l2_gas_limit, e tx_next_context_id, e tx_phase_value, e tx_prev_da_gas_used, e tx_prev_l2_gas_used, e tx_prev_note_hash_tree_root, e tx_prev_note_hash_tree_size, e tx_prev_nullifier_tree_root, e tx_prev_nullifier_tree_size, e tx_prev_num_l2_to_l1_messages, e tx_prev_num_note_hashes_emitted, e tx_prev_num_nullifiers_emitted, e tx_prev_num_public_log_fields, e tx_prev_public_data_tree_root, e tx_prev_public_data_tree_size, e tx_prev_retrieved_bytecodes_tree_root, e tx_prev_retrieved_bytecodes_tree_size, e tx_prev_written_public_data_slots_tree_root, e tx_prev_written_public_data_slots_tree_size, e tx_read_pi_offset, e tx_remaining_phase_counter, e tx_reverted, e tx_sel, e tx_start_phase, e tx_start_tx, e tx_tx_reverted +#define AVM2_WIRE_ENTITIES_E(e) e public_inputs_cols_0_, e public_inputs_cols_1_, e public_inputs_cols_2_, e public_inputs_cols_3_, e address_derivation_address, e address_derivation_address_y, e address_derivation_class_id, e address_derivation_const_four, e address_derivation_const_thirteen, e address_derivation_const_three, e address_derivation_const_two, e address_derivation_deployer_addr, e address_derivation_g1_x, e address_derivation_g1_y, e address_derivation_incoming_viewing_key_x, e address_derivation_incoming_viewing_key_y, e address_derivation_init_hash, e address_derivation_nullifier_key_x, e address_derivation_nullifier_key_y, e address_derivation_outgoing_viewing_key_x, e address_derivation_outgoing_viewing_key_y, e address_derivation_partial_address, e address_derivation_partial_address_domain_separator, e address_derivation_preaddress, e address_derivation_preaddress_domain_separator, e address_derivation_preaddress_public_key_x, e address_derivation_preaddress_public_key_y, e address_derivation_public_keys_hash, e address_derivation_public_keys_hash_domain_separator, e address_derivation_salt, e address_derivation_salted_init_hash, e address_derivation_salted_init_hash_domain_separator, e address_derivation_sel, e address_derivation_tagging_key_x, e address_derivation_tagging_key_y, e alu_a_hi, e alu_a_hi_bits, e alu_a_lo, e alu_a_lo_bits, e alu_ab_diff_inv, e alu_ab_tags_diff_inv, e alu_b_hi, e alu_b_inv, e alu_b_lo, e alu_c_hi, e alu_cf, e alu_constant_64, e alu_gt_input_a, e alu_gt_input_b, e alu_gt_result_c, e alu_helper1, e alu_ia, e alu_ia_tag, e alu_ib, e alu_ib_tag, e alu_ic, e alu_ic_tag, e alu_max_bits, e alu_max_value, e alu_mid, e alu_mid_bits, e alu_op_id, e alu_sel, e alu_sel_ab_tag_mismatch, e alu_sel_decompose_a, e alu_sel_div_0_err, e alu_sel_div_no_err, e alu_sel_err, e alu_sel_ff_gt, e alu_sel_int_gt, e alu_sel_is_ff, e alu_sel_is_u128, e alu_sel_mul_div_u128, e alu_sel_mul_no_err_non_ff, e alu_sel_op_add, e alu_sel_op_div, e alu_sel_op_eq, e alu_sel_op_fdiv, e alu_sel_op_lt, e alu_sel_op_lte, e alu_sel_op_mul, e alu_sel_op_not, e alu_sel_op_shl, e alu_sel_op_shr, e alu_sel_op_sub, e alu_sel_op_truncate, e alu_sel_shift_ops_no_overflow, e alu_sel_tag_err, e alu_sel_trunc_gte_128, e alu_sel_trunc_lt_128, e alu_sel_trunc_non_trivial, e alu_sel_trunc_trivial, e alu_shift_lo_bits, e alu_tag_ff_diff_inv, e alu_tag_u128_diff_inv, e alu_two_pow_shift_lo_bits, e bc_decomposition_bytes_pc_plus_36, e bc_decomposition_bytes_rem_inv, e bc_decomposition_bytes_rem_min_one_inv, e bc_decomposition_bytes_to_read, e bc_decomposition_last_of_contract, e bc_decomposition_next_packed_pc_min_pc_inv, e bc_decomposition_packed_field, e bc_decomposition_sel_packed, e bc_decomposition_sel_packed_read_0_, e bc_decomposition_sel_packed_read_1_, e bc_decomposition_sel_packed_read_2_, e bc_decomposition_sel_windows_eq_remaining, e bc_decomposition_windows_min_remaining_inv, e bc_hashing_end, e bc_hashing_input_len, e bc_hashing_packed_fields_0, e bc_hashing_packed_fields_1, e bc_hashing_packed_fields_2, e bc_hashing_pc_index, e bc_hashing_pc_index_2, e bc_hashing_sel_not_padding_1, e bc_hashing_sel_not_padding_2, e bc_hashing_size_in_bytes, e bc_retrieval_address, e bc_retrieval_artifact_hash, e bc_retrieval_bytecode_id, e bc_retrieval_current_class_id, e bc_retrieval_error, e bc_retrieval_instance_exists, e bc_retrieval_is_new_class, e bc_retrieval_next_retrieved_bytecodes_tree_root, e bc_retrieval_next_retrieved_bytecodes_tree_size, e bc_retrieval_no_remaining_bytecodes, e bc_retrieval_nullifier_tree_root, e bc_retrieval_prev_retrieved_bytecodes_tree_root, e bc_retrieval_prev_retrieved_bytecodes_tree_size, e bc_retrieval_private_functions_root, e bc_retrieval_public_data_tree_root, e bc_retrieval_remaining_bytecodes_inv, e bc_retrieval_retrieved_bytecodes_merkle_separator, e bc_retrieval_retrieved_bytecodes_tree_height, e bc_retrieval_sel, e bc_retrieval_should_retrieve, e bitwise_ctr_min_one_inv, e bitwise_end, e bitwise_err, e bitwise_ia_byte, e bitwise_ib_byte, e bitwise_ic_byte, e bitwise_output_and, e bitwise_output_or, e bitwise_output_xor, e bitwise_sel_and, e bitwise_sel_compute, e bitwise_sel_get_ctr, e bitwise_sel_or, e bitwise_sel_tag_ff_err, e bitwise_sel_tag_mismatch_err, e bitwise_sel_xor, e bitwise_start_keccak, e bitwise_start_sha256, e bitwise_tag_a, e bitwise_tag_a_inv, e bitwise_tag_ab_diff_inv, e bitwise_tag_b, e bitwise_tag_c, e calldata_end, e calldata_hashing_end, e calldata_hashing_index_1_, e calldata_hashing_index_2_, e calldata_hashing_input_0_, e calldata_hashing_input_1_, e calldata_hashing_input_2_, e calldata_hashing_input_len, e calldata_hashing_sel_end_not_empty, e calldata_hashing_sel_not_padding_1, e calldata_hashing_sel_not_padding_2, e calldata_hashing_sel_not_start, e calldata_value, e class_id_derivation_artifact_hash, e class_id_derivation_class_id, e class_id_derivation_const_four, e class_id_derivation_gen_index_contract_class_id, e class_id_derivation_private_functions_root, e class_id_derivation_public_bytecode_commitment, e class_id_derivation_sel, e context_stack_bytecode_id, e context_stack_context_id, e context_stack_contract_address, e context_stack_entered_context_id, e context_stack_internal_call_id, e context_stack_internal_call_return_id, e context_stack_is_static, e context_stack_msg_sender, e context_stack_next_internal_call_id, e context_stack_next_pc, e context_stack_note_hash_tree_root, e context_stack_note_hash_tree_size, e context_stack_nullifier_tree_root, e context_stack_nullifier_tree_size, e context_stack_num_l2_to_l1_messages, e context_stack_num_note_hashes_emitted, e context_stack_num_nullifiers_emitted, e context_stack_num_public_log_fields, e context_stack_parent_calldata_addr, e context_stack_parent_calldata_size, e context_stack_parent_da_gas_limit, e context_stack_parent_da_gas_used, e context_stack_parent_id, e context_stack_parent_l2_gas_limit, e context_stack_parent_l2_gas_used, e context_stack_public_data_tree_root, e context_stack_public_data_tree_size, e context_stack_sel, e context_stack_written_public_data_slots_tree_root, e context_stack_written_public_data_slots_tree_size, e contract_instance_retrieval_address, e contract_instance_retrieval_address_sub_one, e contract_instance_retrieval_current_class_id, e contract_instance_retrieval_deployer_addr, e contract_instance_retrieval_deployer_protocol_contract_address, e contract_instance_retrieval_derived_address, e contract_instance_retrieval_derived_address_pi_index, e contract_instance_retrieval_exists, e contract_instance_retrieval_immutables_hash, e contract_instance_retrieval_incoming_viewing_key_x, e contract_instance_retrieval_incoming_viewing_key_y, e contract_instance_retrieval_init_hash, e contract_instance_retrieval_is_protocol_contract, e contract_instance_retrieval_max_protocol_contracts, e contract_instance_retrieval_nullifier_key_x, e contract_instance_retrieval_nullifier_key_y, e contract_instance_retrieval_nullifier_merkle_separator, e contract_instance_retrieval_nullifier_tree_height, e contract_instance_retrieval_nullifier_tree_root, e contract_instance_retrieval_original_class_id, e contract_instance_retrieval_outgoing_viewing_key_x, e contract_instance_retrieval_outgoing_viewing_key_y, e contract_instance_retrieval_protocol_contract_derived_address_inv, e contract_instance_retrieval_public_data_tree_root, e contract_instance_retrieval_salt, e contract_instance_retrieval_sel, e contract_instance_retrieval_should_check_for_update, e contract_instance_retrieval_should_check_nullifier, e contract_instance_retrieval_siloing_separator, e contract_instance_retrieval_tagging_key_x, e contract_instance_retrieval_tagging_key_y, e data_copy_cd_copy_col_read, e data_copy_clamped_read_index_upper_bound, e data_copy_dst_out_of_range_err, e data_copy_end, e data_copy_is_top_level, e data_copy_mem_size, e data_copy_offset, e data_copy_offset_plus_size, e data_copy_offset_plus_size_is_gt, e data_copy_parent_id_inv, e data_copy_read_addr_plus_one, e data_copy_read_addr_upper_bound, e data_copy_reads_left_inv, e data_copy_sel_cd_copy_start, e data_copy_sel_has_reads, e data_copy_sel_mem_read, e data_copy_sel_mem_write, e data_copy_sel_rd_copy_start, e data_copy_sel_write_count_is_zero, e data_copy_src_addr, e data_copy_src_data_size, e data_copy_src_reads_exceed_mem, e data_copy_start_no_err, e data_copy_tag, e data_copy_value, e data_copy_write_addr_upper_bound, e data_copy_write_count_minus_one_inv, e data_copy_write_count_zero_inv, e ecc_add_mem_dst_addr_0_, e ecc_add_mem_dst_addr_1_, e ecc_add_mem_dst_addr_2_, e ecc_add_mem_err, e ecc_add_mem_execution_clk, e ecc_add_mem_max_mem_addr, e ecc_add_mem_p_is_inf, e ecc_add_mem_p_is_on_curve_eqn, e ecc_add_mem_p_is_on_curve_eqn_inv, e ecc_add_mem_p_x, e ecc_add_mem_p_x_n, e ecc_add_mem_p_y, e ecc_add_mem_p_y_n, e ecc_add_mem_q_is_inf, e ecc_add_mem_q_is_on_curve_eqn, e ecc_add_mem_q_is_on_curve_eqn_inv, e ecc_add_mem_q_x, e ecc_add_mem_q_x_n, e ecc_add_mem_q_y, e ecc_add_mem_q_y_n, e ecc_add_mem_res_is_inf, e ecc_add_mem_res_x, e ecc_add_mem_res_y, e ecc_add_mem_sel, e ecc_add_mem_sel_dst_out_of_range_err, e ecc_add_mem_sel_p_not_on_curve_err, e ecc_add_mem_sel_q_not_on_curve_err, e ecc_add_mem_sel_should_exec, e ecc_add_mem_space_id, e ecc_add_op, e ecc_double_op, e ecc_inv_2_p_y, e ecc_inv_x_diff, e ecc_inv_y_diff, e ecc_lambda, e ecc_p_is_inf, e ecc_p_x, e ecc_p_y, e ecc_q_is_inf, e ecc_q_x, e ecc_q_y, e ecc_r_is_inf, e ecc_r_x, e ecc_r_y, e ecc_result_infinity, e ecc_sel, e ecc_use_computed_result, e ecc_x_match, e ecc_y_match, e emit_public_log_discard, e emit_public_log_end, e emit_public_log_end_log_address_upper_bound, e emit_public_log_error, e emit_public_log_error_too_many_log_fields, e emit_public_log_expected_next_log_fields, e emit_public_log_is_static, e emit_public_log_log_size, e emit_public_log_max_mem_size, e emit_public_log_max_public_logs_payload_length, e emit_public_log_next_num_public_log_fields, e emit_public_log_prev_num_public_log_fields, e emit_public_log_public_inputs_value, e emit_public_log_remaining_rows_inv, e emit_public_log_sel_read_memory, e emit_public_log_tag, e emit_public_log_tag_inv, e emit_public_log_value, e execution_addressing_error_collection_inv, e execution_addressing_gas, e execution_addressing_mode, e execution_base_address_tag, e execution_base_address_tag_diff_inv, e execution_base_address_val, e execution_base_da_gas, e execution_batched_tags_diff_inv, e execution_batched_tags_diff_inv_reg, e execution_da_gas_left, e execution_da_gas_used, e execution_dying_context_diff_inv, e execution_dying_context_id_inv, e execution_dyn_gas_id, e execution_dynamic_da_gas, e execution_dynamic_da_gas_factor, e execution_dynamic_l2_gas, e execution_dynamic_l2_gas_factor, e execution_enqueued_call_end, e execution_envvar_pi_row_idx, e execution_exec_opcode, e execution_expected_tag_reg_0_, e execution_expected_tag_reg_1_, e execution_expected_tag_reg_2_, e execution_expected_tag_reg_3_, e execution_expected_tag_reg_4_, e execution_expected_tag_reg_5_, e execution_has_parent_ctx, e execution_highest_address, e execution_instr_size, e execution_internal_call_return_id_inv, e execution_is_address, e execution_is_da_gas_left_gt_allocated, e execution_is_dagasleft, e execution_is_dying_context, e execution_is_isstaticcall, e execution_is_l2_gas_left_gt_allocated, e execution_is_l2gasleft, e execution_is_parent_id_inv, e execution_is_sender, e execution_is_transactionfee, e execution_l1_to_l2_msg_leaf_in_range, e execution_l1_to_l2_msg_tree_leaf_count, e execution_l2_gas_left, e execution_l2_gas_used, e execution_max_data_writes_reached, e execution_max_eth_address_value, e execution_mem_tag_reg_0_, e execution_mem_tag_reg_1_, e execution_mem_tag_reg_2_, e execution_mem_tag_reg_3_, e execution_mem_tag_reg_4_, e execution_mem_tag_reg_5_, e execution_nested_failure, e execution_nested_return, e execution_next_pc, e execution_note_hash_leaf_in_range, e execution_note_hash_tree_leaf_count, e execution_note_hash_tree_root, e execution_note_hash_tree_size, e execution_nullifier_merkle_separator, e execution_nullifier_pi_offset, e execution_nullifier_siloing_separator, e execution_nullifier_tree_height, e execution_nullifier_tree_root, e execution_nullifier_tree_size, e execution_num_l2_to_l1_messages, e execution_num_note_hashes_emitted, e execution_num_nullifiers_emitted, e execution_num_p_limbs, e execution_num_public_log_fields, e execution_num_relative_operands_inv, e execution_op_0_, e execution_op_1_, e execution_op_2_, e execution_op_3_, e execution_op_4_, e execution_op_5_, e execution_op_6_, e execution_op_after_relative_0_, e execution_op_after_relative_1_, e execution_op_after_relative_2_, e execution_op_after_relative_3_, e execution_op_after_relative_4_, e execution_op_after_relative_5_, e execution_op_after_relative_6_, e execution_opcode_gas, e execution_out_of_gas_da, e execution_out_of_gas_l2, e execution_public_data_tree_root, e execution_public_data_tree_size, e execution_public_inputs_index, e execution_register_0_, e execution_register_1_, e execution_register_2_, e execution_register_3_, e execution_register_4_, e execution_register_5_, e execution_remaining_data_writes_inv, e execution_remaining_l2_to_l1_msgs_inv, e execution_remaining_note_hashes_inv, e execution_remaining_nullifiers_inv, e execution_retrieved_bytecodes_tree_root, e execution_retrieved_bytecodes_tree_size, e execution_rop_0_, e execution_rop_1_, e execution_rop_2_, e execution_rop_3_, e execution_rop_4_, e execution_rop_5_, e execution_rop_6_, e execution_rop_tag_0_, e execution_rop_tag_1_, e execution_rop_tag_2_, e execution_rop_tag_3_, e execution_rop_tag_4_, e execution_rop_tag_5_, e execution_rop_tag_6_, e execution_rw_reg_0_, e execution_rw_reg_1_, e execution_rw_reg_2_, e execution_rw_reg_3_, e execution_rw_reg_4_, e execution_rw_reg_5_, e execution_sel_addressing_error, e execution_sel_apply_indirection_0_, e execution_sel_apply_indirection_1_, e execution_sel_apply_indirection_2_, e execution_sel_apply_indirection_3_, e execution_sel_apply_indirection_4_, e execution_sel_apply_indirection_5_, e execution_sel_apply_indirection_6_, e execution_sel_base_address_failure, e execution_sel_bytecode_retrieval_failure, e execution_sel_bytecode_retrieval_success, e execution_sel_check_gas, e execution_sel_do_base_check, e execution_sel_enter_call, e execution_sel_envvar_pi_lookup_col0, e execution_sel_envvar_pi_lookup_col1, e execution_sel_error, e execution_sel_exec_dispatch_alu, e execution_sel_exec_dispatch_bitwise, e execution_sel_exec_dispatch_calldata_copy, e execution_sel_exec_dispatch_cast, e execution_sel_exec_dispatch_ecc_add, e execution_sel_exec_dispatch_emit_public_log, e execution_sel_exec_dispatch_execution, e execution_sel_exec_dispatch_get_contract_instance, e execution_sel_exec_dispatch_keccakf1600, e execution_sel_exec_dispatch_poseidon2_perm, e execution_sel_exec_dispatch_returndata_copy, e execution_sel_exec_dispatch_set, e execution_sel_exec_dispatch_sha256_compression, e execution_sel_exec_dispatch_to_radix, e execution_sel_execute_call, e execution_sel_execute_debug_log, e execution_sel_execute_emit_notehash, e execution_sel_execute_emit_nullifier, e execution_sel_execute_get_env_var, e execution_sel_execute_internal_call, e execution_sel_execute_internal_return, e execution_sel_execute_jump, e execution_sel_execute_jumpi, e execution_sel_execute_l1_to_l2_message_exists, e execution_sel_execute_mov, e execution_sel_execute_notehash_exists, e execution_sel_execute_nullifier_exists, e execution_sel_execute_opcode, e execution_sel_execute_return, e execution_sel_execute_returndata_size, e execution_sel_execute_revert, e execution_sel_execute_send_l2_to_l1_msg, e execution_sel_execute_sload, e execution_sel_execute_sstore, e execution_sel_execute_static_call, e execution_sel_execute_success_copy, e execution_sel_exit_call, e execution_sel_failure, e execution_sel_gas_bitwise, e execution_sel_gas_calldata_copy, e execution_sel_gas_emit_public_log, e execution_sel_gas_returndata_copy, e execution_sel_gas_sstore, e execution_sel_gas_to_radix, e execution_sel_instruction_fetching_failure, e execution_sel_instruction_fetching_success, e execution_sel_l2_to_l1_msg_limit_error, e execution_sel_lookup_num_p_limbs, e execution_sel_mem_op_reg_0_, e execution_sel_mem_op_reg_1_, e execution_sel_mem_op_reg_2_, e execution_sel_mem_op_reg_3_, e execution_sel_mem_op_reg_4_, e execution_sel_mem_op_reg_5_, e execution_sel_op_do_overflow_check_0_, e execution_sel_op_do_overflow_check_1_, e execution_sel_op_do_overflow_check_2_, e execution_sel_op_do_overflow_check_3_, e execution_sel_op_do_overflow_check_4_, e execution_sel_op_do_overflow_check_5_, e execution_sel_op_do_overflow_check_6_, e execution_sel_op_is_address_0_, e execution_sel_op_is_address_1_, e execution_sel_op_is_address_2_, e execution_sel_op_is_address_3_, e execution_sel_op_is_address_4_, e execution_sel_op_is_address_5_, e execution_sel_op_is_address_6_, e execution_sel_op_is_indirect_wire_0_, e execution_sel_op_is_indirect_wire_1_, e execution_sel_op_is_indirect_wire_2_, e execution_sel_op_is_indirect_wire_3_, e execution_sel_op_is_indirect_wire_4_, e execution_sel_op_is_indirect_wire_5_, e execution_sel_op_is_indirect_wire_6_, e execution_sel_op_is_indirect_wire_7_, e execution_sel_op_is_relative_wire_0_, e execution_sel_op_is_relative_wire_1_, e execution_sel_op_is_relative_wire_2_, e execution_sel_op_is_relative_wire_3_, e execution_sel_op_is_relative_wire_4_, e execution_sel_op_is_relative_wire_5_, e execution_sel_op_is_relative_wire_6_, e execution_sel_op_is_relative_wire_7_, e execution_sel_op_reg_effective_0_, e execution_sel_op_reg_effective_1_, e execution_sel_op_reg_effective_2_, e execution_sel_op_reg_effective_3_, e execution_sel_op_reg_effective_4_, e execution_sel_op_reg_effective_5_, e execution_sel_opcode_error, e execution_sel_out_of_gas, e execution_sel_radix_gt_256, e execution_sel_reached_max_note_hashes, e execution_sel_reached_max_nullifiers, e execution_sel_read_registers, e execution_sel_read_unwind_call_stack, e execution_sel_register_read_error, e execution_sel_relative_overflow_0_, e execution_sel_relative_overflow_1_, e execution_sel_relative_overflow_2_, e execution_sel_relative_overflow_3_, e execution_sel_relative_overflow_4_, e execution_sel_relative_overflow_5_, e execution_sel_relative_overflow_6_, e execution_sel_some_final_check_failed, e execution_sel_tag_check_reg_0_, e execution_sel_tag_check_reg_1_, e execution_sel_tag_check_reg_2_, e execution_sel_tag_check_reg_3_, e execution_sel_tag_check_reg_4_, e execution_sel_tag_check_reg_5_, e execution_sel_too_large_recipient_error, e execution_sel_use_num_limbs, e execution_sel_write_l2_to_l1_msg, e execution_sel_write_note_hash, e execution_sel_write_nullifier, e execution_sel_write_public_data, e execution_sel_write_registers, e execution_subtrace_id, e execution_subtrace_operation_id, e execution_total_gas_da, e execution_total_gas_l2, e execution_two_five_six, e execution_value_from_pi, e execution_written_public_data_slots_tree_root, e execution_written_public_data_slots_tree_size, e execution_written_slots_merkle_separator, e execution_written_slots_tree_height, e execution_written_slots_tree_siloing_separator, e ff_gt_a, e ff_gt_b, e ff_gt_borrow, e ff_gt_constant_128, e ff_gt_end, e ff_gt_p_a_borrow, e ff_gt_p_b_borrow, e ff_gt_res_hi, e ff_gt_res_lo, e ff_gt_result, e get_contract_instance_clk, e get_contract_instance_contract_address, e get_contract_instance_dst_offset, e get_contract_instance_dst_offset_diff_max_inv, e get_contract_instance_exists_tag, e get_contract_instance_instance_exists, e get_contract_instance_is_class_id, e get_contract_instance_is_deployer, e get_contract_instance_is_init_hash, e get_contract_instance_is_valid_member_enum, e get_contract_instance_is_valid_writes_in_bounds, e get_contract_instance_member_enum, e get_contract_instance_member_tag, e get_contract_instance_member_write_offset, e get_contract_instance_nullifier_tree_root, e get_contract_instance_public_data_tree_root, e get_contract_instance_retrieved_class_id, e get_contract_instance_retrieved_deployer_addr, e get_contract_instance_retrieved_init_hash, e get_contract_instance_sel, e get_contract_instance_sel_error, e get_contract_instance_selected_member, e get_contract_instance_space_id, e gt_abs_diff, e gt_input_a, e gt_input_b, e gt_num_bits, e gt_res, e gt_sel, e gt_sel_addressing, e gt_sel_alu, e gt_sel_gas, e gt_sel_others, e gt_sel_sha256, e indexed_tree_check_address, e indexed_tree_check_const_three, e indexed_tree_check_discard, e indexed_tree_check_exists, e indexed_tree_check_intermediate_root, e indexed_tree_check_low_leaf_hash, e indexed_tree_check_low_leaf_index, e indexed_tree_check_low_leaf_next_index, e indexed_tree_check_low_leaf_next_value, e indexed_tree_check_low_leaf_value, e indexed_tree_check_merkle_hash_separator, e indexed_tree_check_new_leaf_hash, e indexed_tree_check_next_value_inv, e indexed_tree_check_next_value_is_nonzero, e indexed_tree_check_not_exists, e indexed_tree_check_public_inputs_index, e indexed_tree_check_root, e indexed_tree_check_sel, e indexed_tree_check_sel_insert, e indexed_tree_check_sel_silo, e indexed_tree_check_sel_write_to_public_inputs, e indexed_tree_check_siloed_value, e indexed_tree_check_siloing_separator, e indexed_tree_check_tree_height, e indexed_tree_check_tree_size_after_write, e indexed_tree_check_tree_size_before_write, e indexed_tree_check_updated_low_leaf_hash, e indexed_tree_check_updated_low_leaf_next_index, e indexed_tree_check_updated_low_leaf_next_value, e indexed_tree_check_value, e indexed_tree_check_value_low_leaf_value_diff_inv, e indexed_tree_check_write, e indexed_tree_check_write_root, e instr_fetching_addressing_mode, e instr_fetching_bd0, e instr_fetching_bd1, e instr_fetching_bd10, e instr_fetching_bd11, e instr_fetching_bd12, e instr_fetching_bd13, e instr_fetching_bd14, e instr_fetching_bd15, e instr_fetching_bd16, e instr_fetching_bd17, e instr_fetching_bd18, e instr_fetching_bd19, e instr_fetching_bd2, e instr_fetching_bd20, e instr_fetching_bd21, e instr_fetching_bd22, e instr_fetching_bd23, e instr_fetching_bd24, e instr_fetching_bd25, e instr_fetching_bd26, e instr_fetching_bd27, e instr_fetching_bd28, e instr_fetching_bd29, e instr_fetching_bd3, e instr_fetching_bd30, e instr_fetching_bd31, e instr_fetching_bd32, e instr_fetching_bd33, e instr_fetching_bd34, e instr_fetching_bd35, e instr_fetching_bd36, e instr_fetching_bd4, e instr_fetching_bd5, e instr_fetching_bd6, e instr_fetching_bd7, e instr_fetching_bd8, e instr_fetching_bd9, e instr_fetching_bytecode_id, e instr_fetching_bytecode_size, e instr_fetching_bytes_to_read, e instr_fetching_exec_opcode, e instr_fetching_instr_abs_diff, e instr_fetching_instr_out_of_range, e instr_fetching_instr_size, e instr_fetching_op1, e instr_fetching_op2, e instr_fetching_op3, e instr_fetching_op4, e instr_fetching_op5, e instr_fetching_op6, e instr_fetching_op7, e instr_fetching_opcode_out_of_range, e instr_fetching_pc, e instr_fetching_pc_abs_diff, e instr_fetching_pc_out_of_range, e instr_fetching_pc_size_in_bits, e instr_fetching_sel, e instr_fetching_sel_has_tag, e instr_fetching_sel_op_dc_0, e instr_fetching_sel_op_dc_1, e instr_fetching_sel_op_dc_10, e instr_fetching_sel_op_dc_11, e instr_fetching_sel_op_dc_12, e instr_fetching_sel_op_dc_13, e instr_fetching_sel_op_dc_14, e instr_fetching_sel_op_dc_15, e instr_fetching_sel_op_dc_16, e instr_fetching_sel_op_dc_2, e instr_fetching_sel_op_dc_3, e instr_fetching_sel_op_dc_4, e instr_fetching_sel_op_dc_5, e instr_fetching_sel_op_dc_6, e instr_fetching_sel_op_dc_7, e instr_fetching_sel_op_dc_8, e instr_fetching_sel_op_dc_9, e instr_fetching_sel_parsing_err, e instr_fetching_sel_pc_in_range, e instr_fetching_sel_tag_is_op2, e instr_fetching_tag_out_of_range, e instr_fetching_tag_value, e internal_call_stack_call_id, e internal_call_stack_context_id, e internal_call_stack_entered_call_id, e internal_call_stack_return_call_id, e internal_call_stack_return_pc, e internal_call_stack_sel, e keccak_memory_ctr_end, e keccak_memory_end, e keccak_memory_single_tag_error, e keccak_memory_state_size_min_ctr_inv, e keccak_memory_tag, e keccak_memory_tag_min_u64_inv, e keccak_memory_val_24_, e keccakf1600_bitwise_and_op_id, e keccakf1600_bitwise_xor_op_id, e keccakf1600_dst_out_of_range_error, e keccakf1600_end, e keccakf1600_error, e keccakf1600_highest_slice_address, e keccakf1600_rot_64_min_len_01, e keccakf1600_rot_64_min_len_03, e keccakf1600_rot_64_min_len_11, e keccakf1600_rot_64_min_len_13, e keccakf1600_rot_64_min_len_20, e keccakf1600_rot_64_min_len_22, e keccakf1600_rot_64_min_len_24, e keccakf1600_rot_64_min_len_31, e keccakf1600_rot_64_min_len_34, e keccakf1600_rot_64_min_len_42, e keccakf1600_rot_len_02, e keccakf1600_rot_len_04, e keccakf1600_rot_len_10, e keccakf1600_rot_len_12, e keccakf1600_rot_len_14, e keccakf1600_rot_len_21, e keccakf1600_rot_len_23, e keccakf1600_rot_len_30, e keccakf1600_rot_len_32, e keccakf1600_rot_len_33, e keccakf1600_rot_len_40, e keccakf1600_rot_len_41, e keccakf1600_rot_len_43, e keccakf1600_rot_len_44, e keccakf1600_round_cst, e keccakf1600_sel_slice_read, e keccakf1600_sel_slice_write, e keccakf1600_src_addr, e keccakf1600_src_out_of_range_error, e keccakf1600_state_chi_00, e keccakf1600_state_chi_01, e keccakf1600_state_chi_02, e keccakf1600_state_chi_03, e keccakf1600_state_chi_04, e keccakf1600_state_chi_10, e keccakf1600_state_chi_11, e keccakf1600_state_chi_12, e keccakf1600_state_chi_13, e keccakf1600_state_chi_14, e keccakf1600_state_chi_20, e keccakf1600_state_chi_21, e keccakf1600_state_chi_22, e keccakf1600_state_chi_23, e keccakf1600_state_chi_24, e keccakf1600_state_chi_30, e keccakf1600_state_chi_31, e keccakf1600_state_chi_32, e keccakf1600_state_chi_33, e keccakf1600_state_chi_34, e keccakf1600_state_chi_40, e keccakf1600_state_chi_41, e keccakf1600_state_chi_42, e keccakf1600_state_chi_43, e keccakf1600_state_chi_44, e keccakf1600_state_iota_00, e keccakf1600_state_pi_and_00, e keccakf1600_state_pi_and_01, e keccakf1600_state_pi_and_02, e keccakf1600_state_pi_and_03, e keccakf1600_state_pi_and_04, e keccakf1600_state_pi_and_10, e keccakf1600_state_pi_and_11, e keccakf1600_state_pi_and_12, e keccakf1600_state_pi_and_13, e keccakf1600_state_pi_and_14, e keccakf1600_state_pi_and_20, e keccakf1600_state_pi_and_21, e keccakf1600_state_pi_and_22, e keccakf1600_state_pi_and_23, e keccakf1600_state_pi_and_24, e keccakf1600_state_pi_and_30, e keccakf1600_state_pi_and_31, e keccakf1600_state_pi_and_32, e keccakf1600_state_pi_and_33, e keccakf1600_state_pi_and_34, e keccakf1600_state_pi_and_40, e keccakf1600_state_pi_and_41, e keccakf1600_state_pi_and_42, e keccakf1600_state_pi_and_43, e keccakf1600_state_pi_and_44, e keccakf1600_state_pi_not_00, e keccakf1600_state_pi_not_01, e keccakf1600_state_pi_not_02, e keccakf1600_state_pi_not_03, e keccakf1600_state_pi_not_04, e keccakf1600_state_pi_not_10, e keccakf1600_state_pi_not_11, e keccakf1600_state_pi_not_12, e keccakf1600_state_pi_not_13, e keccakf1600_state_pi_not_14, e keccakf1600_state_pi_not_20, e keccakf1600_state_pi_not_21, e keccakf1600_state_pi_not_22, e keccakf1600_state_pi_not_23, e keccakf1600_state_pi_not_24, e keccakf1600_state_pi_not_30, e keccakf1600_state_pi_not_31, e keccakf1600_state_pi_not_32, e keccakf1600_state_pi_not_33, e keccakf1600_state_pi_not_34, e keccakf1600_state_pi_not_40, e keccakf1600_state_pi_not_41, e keccakf1600_state_pi_not_42, e keccakf1600_state_pi_not_43, e keccakf1600_state_pi_not_44, e keccakf1600_state_rho_01, e keccakf1600_state_rho_02, e keccakf1600_state_rho_03, e keccakf1600_state_rho_04, e keccakf1600_state_rho_10, e keccakf1600_state_rho_11, e keccakf1600_state_rho_12, e keccakf1600_state_rho_13, e keccakf1600_state_rho_14, e keccakf1600_state_rho_20, e keccakf1600_state_rho_21, e keccakf1600_state_rho_22, e keccakf1600_state_rho_23, e keccakf1600_state_rho_24, e keccakf1600_state_rho_30, e keccakf1600_state_rho_31, e keccakf1600_state_rho_32, e keccakf1600_state_rho_33, e keccakf1600_state_rho_34, e keccakf1600_state_rho_40, e keccakf1600_state_rho_41, e keccakf1600_state_rho_42, e keccakf1600_state_rho_43, e keccakf1600_state_rho_44, e keccakf1600_state_theta_00, e keccakf1600_state_theta_01, e keccakf1600_state_theta_02, e keccakf1600_state_theta_03, e keccakf1600_state_theta_04, e keccakf1600_state_theta_10, e keccakf1600_state_theta_11, e keccakf1600_state_theta_12, e keccakf1600_state_theta_13, e keccakf1600_state_theta_14, e keccakf1600_state_theta_20, e keccakf1600_state_theta_21, e keccakf1600_state_theta_22, e keccakf1600_state_theta_23, e keccakf1600_state_theta_24, e keccakf1600_state_theta_30, e keccakf1600_state_theta_31, e keccakf1600_state_theta_32, e keccakf1600_state_theta_33, e keccakf1600_state_theta_34, e keccakf1600_state_theta_40, e keccakf1600_state_theta_41, e keccakf1600_state_theta_42, e keccakf1600_state_theta_43, e keccakf1600_state_theta_44, e keccakf1600_state_theta_hi_02, e keccakf1600_state_theta_hi_04, e keccakf1600_state_theta_hi_10, e keccakf1600_state_theta_hi_12, e keccakf1600_state_theta_hi_14, e keccakf1600_state_theta_hi_21, e keccakf1600_state_theta_hi_23, e keccakf1600_state_theta_hi_30, e keccakf1600_state_theta_hi_32, e keccakf1600_state_theta_hi_33, e keccakf1600_state_theta_hi_40, e keccakf1600_state_theta_hi_41, e keccakf1600_state_theta_hi_43, e keccakf1600_state_theta_hi_44, e keccakf1600_state_theta_low_01, e keccakf1600_state_theta_low_03, e keccakf1600_state_theta_low_11, e keccakf1600_state_theta_low_13, e keccakf1600_state_theta_low_20, e keccakf1600_state_theta_low_22, e keccakf1600_state_theta_low_24, e keccakf1600_state_theta_low_31, e keccakf1600_state_theta_low_34, e keccakf1600_state_theta_low_42, e keccakf1600_tag_error, e keccakf1600_tag_u64, e keccakf1600_theta_combined_xor_0, e keccakf1600_theta_combined_xor_1, e keccakf1600_theta_combined_xor_2, e keccakf1600_theta_combined_xor_3, e keccakf1600_theta_combined_xor_4, e keccakf1600_theta_xor_01, e keccakf1600_theta_xor_02, e keccakf1600_theta_xor_03, e keccakf1600_theta_xor_11, e keccakf1600_theta_xor_12, e keccakf1600_theta_xor_13, e keccakf1600_theta_xor_21, e keccakf1600_theta_xor_22, e keccakf1600_theta_xor_23, e keccakf1600_theta_xor_31, e keccakf1600_theta_xor_32, e keccakf1600_theta_xor_33, e keccakf1600_theta_xor_41, e keccakf1600_theta_xor_42, e keccakf1600_theta_xor_43, e keccakf1600_theta_xor_row_0, e keccakf1600_theta_xor_row_1, e keccakf1600_theta_xor_row_2, e keccakf1600_theta_xor_row_3, e keccakf1600_theta_xor_row_4, e keccakf1600_theta_xor_row_msb_0, e keccakf1600_theta_xor_row_msb_1, e keccakf1600_theta_xor_row_msb_2, e keccakf1600_theta_xor_row_msb_3, e keccakf1600_theta_xor_row_msb_4, e keccakf1600_theta_xor_row_rotl1_0, e keccakf1600_theta_xor_row_rotl1_1, e keccakf1600_theta_xor_row_rotl1_2, e keccakf1600_theta_xor_row_rotl1_3, e keccakf1600_theta_xor_row_rotl1_4, e l1_to_l2_message_tree_check_exists, e l1_to_l2_message_tree_check_l1_to_l2_message_tree_height, e l1_to_l2_message_tree_check_leaf_index, e l1_to_l2_message_tree_check_leaf_value, e l1_to_l2_message_tree_check_leaf_value_msg_hash_diff_inv, e l1_to_l2_message_tree_check_merkle_hash_separator, e l1_to_l2_message_tree_check_msg_hash, e l1_to_l2_message_tree_check_root, e l1_to_l2_message_tree_check_sel, e memory_diff, e memory_glob_addr_diff_inv, e memory_last_access, e memory_limb_0_, e memory_limb_1_, e memory_limb_2_, e memory_max_bits, e memory_sel_addressing_base, e memory_sel_addressing_indirect_0_, e memory_sel_addressing_indirect_1_, e memory_sel_addressing_indirect_2_, e memory_sel_addressing_indirect_3_, e memory_sel_addressing_indirect_4_, e memory_sel_addressing_indirect_5_, e memory_sel_addressing_indirect_6_, e memory_sel_data_copy_read, e memory_sel_data_copy_write, e memory_sel_ecc_write_0_, e memory_sel_ecc_write_1_, e memory_sel_ecc_write_2_, e memory_sel_get_contract_instance_exists_write, e memory_sel_get_contract_instance_member_write, e memory_sel_keccak, e memory_sel_poseidon2_read_0_, e memory_sel_poseidon2_read_1_, e memory_sel_poseidon2_read_2_, e memory_sel_poseidon2_read_3_, e memory_sel_poseidon2_write_0_, e memory_sel_poseidon2_write_1_, e memory_sel_poseidon2_write_2_, e memory_sel_poseidon2_write_3_, e memory_sel_public_log_read, e memory_sel_register_op_0_, e memory_sel_register_op_1_, e memory_sel_register_op_2_, e memory_sel_register_op_3_, e memory_sel_register_op_4_, e memory_sel_register_op_5_, e memory_sel_rng_chk, e memory_sel_rng_write, e memory_sel_sha256_op_0_, e memory_sel_sha256_op_1_, e memory_sel_sha256_op_2_, e memory_sel_sha256_op_3_, e memory_sel_sha256_op_4_, e memory_sel_sha256_op_5_, e memory_sel_sha256_op_6_, e memory_sel_sha256_op_7_, e memory_sel_sha256_read, e memory_sel_tag_is_ff, e memory_sel_to_radix_write, e memory_tag_ff_diff_inv, e merkle_check_const_three, e merkle_check_end, e merkle_check_index_is_even, e merkle_check_path_len_min_one_inv, e merkle_check_read_left_node, e merkle_check_read_output_hash, e merkle_check_read_right_node, e merkle_check_sibling, e merkle_check_write_left_node, e merkle_check_write_output_hash, e merkle_check_write_right_node, e note_hash_tree_check_address, e note_hash_tree_check_const_three, e note_hash_tree_check_discard, e note_hash_tree_check_exists, e note_hash_tree_check_first_nullifier, e note_hash_tree_check_first_nullifier_pi_index, e note_hash_tree_check_leaf_index, e note_hash_tree_check_merkle_hash_separator, e note_hash_tree_check_next_leaf_value, e note_hash_tree_check_next_root, e note_hash_tree_check_nonce, e note_hash_tree_check_nonce_separator, e note_hash_tree_check_note_hash, e note_hash_tree_check_note_hash_index, e note_hash_tree_check_note_hash_tree_height, e note_hash_tree_check_prev_leaf_value, e note_hash_tree_check_prev_leaf_value_unique_note_hash_diff_inv, e note_hash_tree_check_prev_root, e note_hash_tree_check_public_inputs_index, e note_hash_tree_check_sel, e note_hash_tree_check_sel_silo, e note_hash_tree_check_sel_unique, e note_hash_tree_check_sel_write_to_public_inputs, e note_hash_tree_check_siloed_note_hash, e note_hash_tree_check_siloing_separator, e note_hash_tree_check_unique_note_hash, e note_hash_tree_check_unique_note_hash_separator, e note_hash_tree_check_write, e poseidon2_hash_b_0, e poseidon2_hash_b_1, e poseidon2_hash_b_2, e poseidon2_hash_b_3, e poseidon2_hash_end, e poseidon2_hash_input_len, e poseidon2_hash_num_perm_rounds_rem_min_one_inv, e poseidon2_hash_padding, e poseidon2_perm_B_10_0, e poseidon2_perm_B_10_1, e poseidon2_perm_B_10_2, e poseidon2_perm_B_10_3, e poseidon2_perm_B_11_0, e poseidon2_perm_B_11_1, e poseidon2_perm_B_11_2, e poseidon2_perm_B_11_3, e poseidon2_perm_B_12_0, e poseidon2_perm_B_12_1, e poseidon2_perm_B_12_2, e poseidon2_perm_B_12_3, e poseidon2_perm_B_13_0, e poseidon2_perm_B_13_1, e poseidon2_perm_B_13_2, e poseidon2_perm_B_13_3, e poseidon2_perm_B_14_0, e poseidon2_perm_B_14_1, e poseidon2_perm_B_14_2, e poseidon2_perm_B_14_3, e poseidon2_perm_B_15_0, e poseidon2_perm_B_15_1, e poseidon2_perm_B_15_2, e poseidon2_perm_B_15_3, e poseidon2_perm_B_16_0, e poseidon2_perm_B_16_1, e poseidon2_perm_B_16_2, e poseidon2_perm_B_16_3, e poseidon2_perm_B_17_0, e poseidon2_perm_B_17_1, e poseidon2_perm_B_17_2, e poseidon2_perm_B_17_3, e poseidon2_perm_B_18_0, e poseidon2_perm_B_18_1, e poseidon2_perm_B_18_2, e poseidon2_perm_B_18_3, e poseidon2_perm_B_19_0, e poseidon2_perm_B_19_1, e poseidon2_perm_B_19_2, e poseidon2_perm_B_19_3, e poseidon2_perm_B_20_0, e poseidon2_perm_B_20_1, e poseidon2_perm_B_20_2, e poseidon2_perm_B_20_3, e poseidon2_perm_B_21_0, e poseidon2_perm_B_21_1, e poseidon2_perm_B_21_2, e poseidon2_perm_B_21_3, e poseidon2_perm_B_22_0, e poseidon2_perm_B_22_1, e poseidon2_perm_B_22_2, e poseidon2_perm_B_22_3, e poseidon2_perm_B_23_0, e poseidon2_perm_B_23_1, e poseidon2_perm_B_23_2, e poseidon2_perm_B_23_3, e poseidon2_perm_B_24_0, e poseidon2_perm_B_24_1, e poseidon2_perm_B_24_2, e poseidon2_perm_B_24_3, e poseidon2_perm_B_25_0, e poseidon2_perm_B_25_1, e poseidon2_perm_B_25_2, e poseidon2_perm_B_25_3, e poseidon2_perm_B_26_0, e poseidon2_perm_B_26_1, e poseidon2_perm_B_26_2, e poseidon2_perm_B_26_3, e poseidon2_perm_B_27_0, e poseidon2_perm_B_27_1, e poseidon2_perm_B_27_2, e poseidon2_perm_B_27_3, e poseidon2_perm_B_28_0, e poseidon2_perm_B_28_1, e poseidon2_perm_B_28_2, e poseidon2_perm_B_28_3, e poseidon2_perm_B_29_0, e poseidon2_perm_B_29_1, e poseidon2_perm_B_29_2, e poseidon2_perm_B_29_3, e poseidon2_perm_B_30_0, e poseidon2_perm_B_30_1, e poseidon2_perm_B_30_2, e poseidon2_perm_B_30_3, e poseidon2_perm_B_31_0, e poseidon2_perm_B_31_1, e poseidon2_perm_B_31_2, e poseidon2_perm_B_31_3, e poseidon2_perm_B_32_0, e poseidon2_perm_B_32_1, e poseidon2_perm_B_32_2, e poseidon2_perm_B_32_3, e poseidon2_perm_B_33_0, e poseidon2_perm_B_33_1, e poseidon2_perm_B_33_2, e poseidon2_perm_B_33_3, e poseidon2_perm_B_34_0, e poseidon2_perm_B_34_1, e poseidon2_perm_B_34_2, e poseidon2_perm_B_34_3, e poseidon2_perm_B_35_0, e poseidon2_perm_B_35_1, e poseidon2_perm_B_35_2, e poseidon2_perm_B_35_3, e poseidon2_perm_B_36_0, e poseidon2_perm_B_36_1, e poseidon2_perm_B_36_2, e poseidon2_perm_B_36_3, e poseidon2_perm_B_37_0, e poseidon2_perm_B_37_1, e poseidon2_perm_B_37_2, e poseidon2_perm_B_37_3, e poseidon2_perm_B_38_0, e poseidon2_perm_B_38_1, e poseidon2_perm_B_38_2, e poseidon2_perm_B_38_3, e poseidon2_perm_B_39_0, e poseidon2_perm_B_39_1, e poseidon2_perm_B_39_2, e poseidon2_perm_B_39_3, e poseidon2_perm_B_40_0, e poseidon2_perm_B_40_1, e poseidon2_perm_B_40_2, e poseidon2_perm_B_40_3, e poseidon2_perm_B_41_0, e poseidon2_perm_B_41_1, e poseidon2_perm_B_41_2, e poseidon2_perm_B_41_3, e poseidon2_perm_B_42_0, e poseidon2_perm_B_42_1, e poseidon2_perm_B_42_2, e poseidon2_perm_B_42_3, e poseidon2_perm_B_43_0, e poseidon2_perm_B_43_1, e poseidon2_perm_B_43_2, e poseidon2_perm_B_43_3, e poseidon2_perm_B_44_0, e poseidon2_perm_B_44_1, e poseidon2_perm_B_44_2, e poseidon2_perm_B_44_3, e poseidon2_perm_B_45_0, e poseidon2_perm_B_45_1, e poseidon2_perm_B_45_2, e poseidon2_perm_B_45_3, e poseidon2_perm_B_46_0, e poseidon2_perm_B_46_1, e poseidon2_perm_B_46_2, e poseidon2_perm_B_46_3, e poseidon2_perm_B_47_0, e poseidon2_perm_B_47_1, e poseidon2_perm_B_47_2, e poseidon2_perm_B_47_3, e poseidon2_perm_B_48_0, e poseidon2_perm_B_48_1, e poseidon2_perm_B_48_2, e poseidon2_perm_B_48_3, e poseidon2_perm_B_49_0, e poseidon2_perm_B_49_1, e poseidon2_perm_B_49_2, e poseidon2_perm_B_49_3, e poseidon2_perm_B_4_0, e poseidon2_perm_B_4_1, e poseidon2_perm_B_4_2, e poseidon2_perm_B_4_3, e poseidon2_perm_B_50_0, e poseidon2_perm_B_50_1, e poseidon2_perm_B_50_2, e poseidon2_perm_B_50_3, e poseidon2_perm_B_51_0, e poseidon2_perm_B_51_1, e poseidon2_perm_B_51_2, e poseidon2_perm_B_51_3, e poseidon2_perm_B_52_0, e poseidon2_perm_B_52_1, e poseidon2_perm_B_52_2, e poseidon2_perm_B_52_3, e poseidon2_perm_B_53_0, e poseidon2_perm_B_53_1, e poseidon2_perm_B_53_2, e poseidon2_perm_B_53_3, e poseidon2_perm_B_54_0, e poseidon2_perm_B_54_1, e poseidon2_perm_B_54_2, e poseidon2_perm_B_54_3, e poseidon2_perm_B_55_0, e poseidon2_perm_B_55_1, e poseidon2_perm_B_55_2, e poseidon2_perm_B_55_3, e poseidon2_perm_B_56_0, e poseidon2_perm_B_56_1, e poseidon2_perm_B_56_2, e poseidon2_perm_B_56_3, e poseidon2_perm_B_57_0, e poseidon2_perm_B_57_1, e poseidon2_perm_B_57_2, e poseidon2_perm_B_57_3, e poseidon2_perm_B_58_0, e poseidon2_perm_B_58_1, e poseidon2_perm_B_58_2, e poseidon2_perm_B_58_3, e poseidon2_perm_B_59_0, e poseidon2_perm_B_59_1, e poseidon2_perm_B_59_2, e poseidon2_perm_B_59_3, e poseidon2_perm_B_5_0, e poseidon2_perm_B_5_1, e poseidon2_perm_B_5_2, e poseidon2_perm_B_5_3, e poseidon2_perm_B_6_0, e poseidon2_perm_B_6_1, e poseidon2_perm_B_6_2, e poseidon2_perm_B_6_3, e poseidon2_perm_B_7_0, e poseidon2_perm_B_7_1, e poseidon2_perm_B_7_2, e poseidon2_perm_B_7_3, e poseidon2_perm_B_8_0, e poseidon2_perm_B_8_1, e poseidon2_perm_B_8_2, e poseidon2_perm_B_8_3, e poseidon2_perm_B_9_0, e poseidon2_perm_B_9_1, e poseidon2_perm_B_9_2, e poseidon2_perm_B_9_3, e poseidon2_perm_EXT_LAYER_4, e poseidon2_perm_EXT_LAYER_5, e poseidon2_perm_EXT_LAYER_6, e poseidon2_perm_EXT_LAYER_7, e poseidon2_perm_T_0_4, e poseidon2_perm_T_0_5, e poseidon2_perm_T_0_6, e poseidon2_perm_T_0_7, e poseidon2_perm_T_1_4, e poseidon2_perm_T_1_5, e poseidon2_perm_T_1_6, e poseidon2_perm_T_1_7, e poseidon2_perm_T_2_4, e poseidon2_perm_T_2_5, e poseidon2_perm_T_2_6, e poseidon2_perm_T_2_7, e poseidon2_perm_T_3_4, e poseidon2_perm_T_3_5, e poseidon2_perm_T_3_6, e poseidon2_perm_T_3_7, e poseidon2_perm_T_60_4, e poseidon2_perm_T_60_5, e poseidon2_perm_T_60_6, e poseidon2_perm_T_60_7, e poseidon2_perm_T_61_4, e poseidon2_perm_T_61_5, e poseidon2_perm_T_61_6, e poseidon2_perm_T_61_7, e poseidon2_perm_T_62_4, e poseidon2_perm_T_62_5, e poseidon2_perm_T_62_6, e poseidon2_perm_T_62_7, e poseidon2_perm_T_63_4, e poseidon2_perm_T_63_5, e poseidon2_perm_T_63_6, e poseidon2_perm_T_63_7, e poseidon2_perm_a_0, e poseidon2_perm_a_1, e poseidon2_perm_a_2, e poseidon2_perm_a_3, e poseidon2_perm_b_0, e poseidon2_perm_b_1, e poseidon2_perm_b_2, e poseidon2_perm_b_3, e poseidon2_perm_mem_batch_tag_inv, e poseidon2_perm_mem_err, e poseidon2_perm_mem_execution_clk, e poseidon2_perm_mem_input_0_, e poseidon2_perm_mem_input_1_, e poseidon2_perm_mem_input_2_, e poseidon2_perm_mem_input_3_, e poseidon2_perm_mem_input_tag_0_, e poseidon2_perm_mem_input_tag_1_, e poseidon2_perm_mem_input_tag_2_, e poseidon2_perm_mem_input_tag_3_, e poseidon2_perm_mem_max_mem_addr, e poseidon2_perm_mem_output_0_, e poseidon2_perm_mem_output_1_, e poseidon2_perm_mem_output_2_, e poseidon2_perm_mem_output_3_, e poseidon2_perm_mem_read_address_0_, e poseidon2_perm_mem_read_address_1_, e poseidon2_perm_mem_read_address_2_, e poseidon2_perm_mem_read_address_3_, e poseidon2_perm_mem_sel, e poseidon2_perm_mem_sel_dst_out_of_range_err, e poseidon2_perm_mem_sel_invalid_tag_err, e poseidon2_perm_mem_sel_should_exec, e poseidon2_perm_mem_sel_should_read_mem, e poseidon2_perm_mem_sel_src_out_of_range_err, e poseidon2_perm_mem_space_id, e poseidon2_perm_mem_write_address_0_, e poseidon2_perm_mem_write_address_1_, e poseidon2_perm_mem_write_address_2_, e poseidon2_perm_mem_write_address_3_, e poseidon2_perm_sel, e public_data_check_address, e public_data_check_clk_diff_hi, e public_data_check_clk_diff_lo, e public_data_check_const_four, e public_data_check_const_three, e public_data_check_discard, e public_data_check_end, e public_data_check_final_value, e public_data_check_intermediate_root, e public_data_check_leaf_not_exists, e public_data_check_leaf_slot, e public_data_check_leaf_slot_low_leaf_slot_diff_inv, e public_data_check_length_pi_idx, e public_data_check_low_leaf_hash, e public_data_check_low_leaf_index, e public_data_check_low_leaf_next_index, e public_data_check_low_leaf_next_slot, e public_data_check_low_leaf_slot, e public_data_check_low_leaf_value, e public_data_check_merkle_hash_separator, e public_data_check_new_leaf_hash, e public_data_check_next_slot_inv, e public_data_check_next_slot_is_nonzero, e public_data_check_non_discarded_write, e public_data_check_non_protocol_write, e public_data_check_not_end, e public_data_check_protocol_write, e public_data_check_public_data_writes_length, e public_data_check_root, e public_data_check_sel_write_to_public_inputs, e public_data_check_should_insert, e public_data_check_siloing_separator, e public_data_check_slot, e public_data_check_tree_height, e public_data_check_tree_size_after_write, e public_data_check_tree_size_before_write, e public_data_check_updated_low_leaf_hash, e public_data_check_updated_low_leaf_next_index, e public_data_check_updated_low_leaf_next_slot, e public_data_check_updated_low_leaf_value, e public_data_check_value, e public_data_check_write, e public_data_check_write_root, e public_data_squash_check_clock, e public_data_squash_clk_diff_hi, e public_data_squash_clk_diff_lo, e public_data_squash_leaf_slot_increase, e public_data_squash_value, e range_check_dyn_diff, e range_check_dyn_rng_chk_bits, e range_check_dyn_rng_chk_pow_2, e range_check_is_lte_u112, e range_check_is_lte_u128, e range_check_is_lte_u16, e range_check_is_lte_u32, e range_check_is_lte_u48, e range_check_is_lte_u64, e range_check_is_lte_u80, e range_check_is_lte_u96, e range_check_rng_chk_bits, e range_check_sel, e range_check_sel_alu, e range_check_sel_gt, e range_check_sel_keccak, e range_check_sel_memory, e range_check_sel_r0_16_bit_rng_lookup, e range_check_sel_r1_16_bit_rng_lookup, e range_check_sel_r2_16_bit_rng_lookup, e range_check_sel_r3_16_bit_rng_lookup, e range_check_sel_r4_16_bit_rng_lookup, e range_check_sel_r5_16_bit_rng_lookup, e range_check_sel_r6_16_bit_rng_lookup, e range_check_u16_r0, e range_check_u16_r1, e range_check_u16_r2, e range_check_u16_r3, e range_check_u16_r4, e range_check_u16_r5, e range_check_u16_r6, e range_check_u16_r7, e range_check_value, e scalar_mul_bit, e scalar_mul_const_two, e scalar_mul_end, e scalar_mul_sel_not_end, e scalar_mul_should_add, e sha256_a_and_b, e sha256_a_and_b_xor_a_and_c, e sha256_a_and_c, e sha256_a_rotr_13, e sha256_a_rotr_2, e sha256_a_rotr_22, e sha256_a_rotr_2_xor_a_rotr_13, e sha256_and_op_id, e sha256_b_and_c, e sha256_batch_tag_inv, e sha256_ch, e sha256_computed_w_lhs, e sha256_computed_w_rhs, e sha256_e_and_f, e sha256_e_rotr_11, e sha256_e_rotr_25, e sha256_e_rotr_6, e sha256_e_rotr_6_xor_e_rotr_11, e sha256_end, e sha256_err, e sha256_input, e sha256_input_rounds_rem_inv, e sha256_input_tag, e sha256_input_tag_diff_inv, e sha256_last, e sha256_lhs_w_10, e sha256_lhs_w_3, e sha256_maj, e sha256_max_input_addr, e sha256_max_mem_addr, e sha256_max_output_addr, e sha256_max_state_addr, e sha256_mem_out_of_range_err, e sha256_memory_address_0_, e sha256_memory_address_1_, e sha256_memory_address_2_, e sha256_memory_address_3_, e sha256_memory_address_4_, e sha256_memory_address_5_, e sha256_memory_address_6_, e sha256_memory_address_7_, e sha256_memory_register_0_, e sha256_memory_register_1_, e sha256_memory_register_2_, e sha256_memory_register_3_, e sha256_memory_register_4_, e sha256_memory_register_5_, e sha256_memory_register_6_, e sha256_memory_register_7_, e sha256_memory_tag_0_, e sha256_memory_tag_1_, e sha256_memory_tag_2_, e sha256_memory_tag_3_, e sha256_memory_tag_4_, e sha256_memory_tag_5_, e sha256_memory_tag_6_, e sha256_memory_tag_7_, e sha256_next_a_lhs, e sha256_next_a_rhs, e sha256_next_e_lhs, e sha256_next_e_rhs, e sha256_not_e, e sha256_not_e_and_g, e sha256_output_a_lhs, e sha256_output_a_rhs, e sha256_output_b_lhs, e sha256_output_b_rhs, e sha256_output_c_lhs, e sha256_output_c_rhs, e sha256_output_d_lhs, e sha256_output_d_rhs, e sha256_output_e_lhs, e sha256_output_e_rhs, e sha256_output_f_lhs, e sha256_output_f_rhs, e sha256_output_g_lhs, e sha256_output_g_rhs, e sha256_output_h_lhs, e sha256_output_h_rhs, e sha256_perform_round, e sha256_rhs_a_13, e sha256_rhs_a_2, e sha256_rhs_a_22, e sha256_rhs_e_11, e sha256_rhs_e_25, e sha256_rhs_e_6, e sha256_rhs_w_10, e sha256_rhs_w_17, e sha256_rhs_w_18, e sha256_rhs_w_19, e sha256_rhs_w_3, e sha256_rhs_w_7, e sha256_round_constant, e sha256_round_count, e sha256_rounds_remaining_inv, e sha256_rw, e sha256_s_0, e sha256_s_1, e sha256_sel_compute_w, e sha256_sel_input_out_of_range_err, e sha256_sel_invalid_input_row_tag_err, e sha256_sel_invalid_state_tag_err, e sha256_sel_is_input_round, e sha256_sel_mem_state_or_output, e sha256_sel_output_out_of_range_err, e sha256_sel_read_input_from_memory, e sha256_sel_state_out_of_range_err, e sha256_state_addr, e sha256_two_pow_10, e sha256_two_pow_11, e sha256_two_pow_13, e sha256_two_pow_17, e sha256_two_pow_18, e sha256_two_pow_19, e sha256_two_pow_2, e sha256_two_pow_22, e sha256_two_pow_25, e sha256_two_pow_3, e sha256_two_pow_32, e sha256_two_pow_6, e sha256_two_pow_7, e sha256_u32_tag, e sha256_w, e sha256_w_15_rotr_18, e sha256_w_15_rotr_7, e sha256_w_15_rotr_7_xor_w_15_rotr_18, e sha256_w_2_rotr_17, e sha256_w_2_rotr_17_xor_w_2_rotr_19, e sha256_w_2_rotr_19, e sha256_w_s_0, e sha256_w_s_1, e sha256_xor_op_id, e to_radix_end, e to_radix_found, e to_radix_is_unsafe_limb, e to_radix_limb_p_diff, e to_radix_limb_radix_diff, e to_radix_mem_err, e to_radix_mem_input_validation_error, e to_radix_mem_last, e to_radix_mem_limb_index_to_lookup, e to_radix_mem_limb_value, e to_radix_mem_max_mem_size, e to_radix_mem_num_limbs_inv, e to_radix_mem_num_limbs_minus_one_inv, e to_radix_mem_output_tag, e to_radix_mem_radix_min_two_inv, e to_radix_mem_sel_dst_out_of_range_err, e to_radix_mem_sel_invalid_bitwise_radix, e to_radix_mem_sel_num_limbs_is_zero, e to_radix_mem_sel_radix_eq_2, e to_radix_mem_sel_radix_gt_256_err, e to_radix_mem_sel_radix_lt_2_err, e to_radix_mem_sel_value_is_zero, e to_radix_mem_two, e to_radix_mem_two_five_six, e to_radix_mem_value_found, e to_radix_mem_value_inv, e to_radix_mem_write_addr_upper_bound, e to_radix_p_limb, e to_radix_rem_inverse, e to_radix_safety_diff_inverse, e tx_array_length_l2_to_l1_messages_pi_offset, e tx_array_length_note_hashes_pi_offset, e tx_array_length_nullifiers_pi_offset, e tx_calldata_hash, e tx_calldata_size, e tx_const_three, e tx_contract_addr, e tx_dom_sep_public_storage_map_slot, e tx_effective_fee_per_da_gas, e tx_effective_fee_per_l2_gas, e tx_end_phase, e tx_fee_juice_balance_slot, e tx_fee_juice_balances_slot_constant, e tx_fee_juice_contract_address, e tx_fee_payer, e tx_fee_payer_balance, e tx_fee_payer_new_balance, e tx_fee_payer_pi_offset, e tx_fields_length_public_logs_pi_offset, e tx_gas_limit_pi_offset, e tx_gas_used_pi_offset, e tx_is_cleanup, e tx_is_collect_fee, e tx_is_padded, e tx_is_public_call_request, e tx_is_static, e tx_is_tree_insert_phase, e tx_is_tree_padding, e tx_l1_l2_pi_offset, e tx_l2_l1_msg_content, e tx_l2_l1_msg_contract_address, e tx_l2_l1_msg_recipient, e tx_leaf_value, e tx_msg_sender, e tx_next_da_gas_used, e tx_next_da_gas_used_sent_to_enqueued_call, e tx_next_l2_gas_used, e tx_next_l2_gas_used_sent_to_enqueued_call, e tx_next_note_hash_tree_root, e tx_next_note_hash_tree_size, e tx_next_nullifier_tree_root, e tx_next_nullifier_tree_size, e tx_next_num_l2_to_l1_messages, e tx_next_num_note_hashes_emitted, e tx_next_num_nullifiers_emitted, e tx_next_num_public_log_fields, e tx_next_phase_on_revert, e tx_next_public_data_tree_root, e tx_next_public_data_tree_size, e tx_next_retrieved_bytecodes_tree_root, e tx_next_retrieved_bytecodes_tree_size, e tx_next_written_public_data_slots_tree_root, e tx_next_written_public_data_slots_tree_size, e tx_note_hash_pi_offset, e tx_nullifier_limit_error, e tx_nullifier_merkle_separator, e tx_nullifier_pi_offset, e tx_nullifier_tree_height, e tx_prev_da_gas_used_sent_to_enqueued_call, e tx_prev_l2_gas_used_sent_to_enqueued_call, e tx_public_data_pi_offset, e tx_read_pi_length_offset, e tx_read_pi_start_offset, e tx_remaining_phase_inv, e tx_remaining_phase_minus_one_inv, e tx_remaining_side_effects_inv, e tx_reverted_pi_offset, e tx_sel_append_l2_l1_msg, e tx_sel_append_note_hash, e tx_sel_append_nullifier, e tx_sel_l2_l1_msg_append, e tx_sel_note_hash_append, e tx_sel_nullifier_append, e tx_sel_process_call_request, e tx_sel_read_phase_length, e tx_sel_read_trees_and_gas_used, e tx_sel_try_l2_l1_msg_append, e tx_sel_try_note_hash_append, e tx_sel_try_nullifier_append, e tx_setup_phase_value, e tx_should_read_gas_limit, e tx_uint32_max, e tx_write_nullifier_pi_offset, e tx_write_pi_offset, e update_check_address, e update_check_const_three, e update_check_contract_instance_registry_address, e update_check_current_class_id, e update_check_delayed_public_mutable_hash_slot, e update_check_delayed_public_mutable_slot, e update_check_dom_sep_public_storage_map_slot, e update_check_hash_not_zero, e update_check_original_class_id, e update_check_public_data_tree_root, e update_check_sel, e update_check_timestamp, e update_check_timestamp_is_lt_timestamp_of_change, e update_check_timestamp_of_change, e update_check_timestamp_of_change_bit_size, e update_check_timestamp_pi_offset, e update_check_update_hash, e update_check_update_hash_inv, e update_check_update_hi_metadata, e update_check_update_hi_metadata_bit_size, e update_check_update_post_class_id_is_zero, e update_check_update_post_class_inv, e update_check_update_pre_class_id_is_zero, e update_check_update_pre_class_inv, e update_check_update_preimage_metadata, e update_check_update_preimage_post_class_id, e update_check_update_preimage_pre_class_id, e update_check_updated_class_ids_slot, e lookup_range_check_dyn_rng_chk_pow_2_counts, e lookup_range_check_dyn_diff_is_u16_counts, e lookup_range_check_r0_is_u16_counts, e lookup_range_check_r1_is_u16_counts, e lookup_range_check_r2_is_u16_counts, e lookup_range_check_r3_is_u16_counts, e lookup_range_check_r4_is_u16_counts, e lookup_range_check_r5_is_u16_counts, e lookup_range_check_r6_is_u16_counts, e lookup_range_check_r7_is_u16_counts, e lookup_ff_gt_a_lo_range_counts, e lookup_ff_gt_a_hi_range_counts, e lookup_gt_gt_range_counts, e lookup_alu_tag_max_bits_value_counts, e lookup_alu_range_check_decomposition_a_lo_counts, e lookup_alu_range_check_decomposition_a_hi_counts, e lookup_alu_range_check_decomposition_b_lo_counts, e lookup_alu_range_check_decomposition_b_hi_counts, e lookup_alu_range_check_mul_c_hi_counts, e lookup_alu_range_check_div_remainder_counts, e lookup_alu_ff_gt_counts, e lookup_alu_int_gt_counts, e lookup_alu_shifts_two_pow_counts, e lookup_alu_large_trunc_canonical_dec_counts, e lookup_alu_range_check_trunc_mid_counts, e lookup_bitwise_integral_tag_length_counts, e lookup_bitwise_byte_operations_counts, e lookup_memory_range_check_limb_0_counts, e lookup_memory_range_check_limb_1_counts, e lookup_memory_range_check_limb_2_counts, e lookup_memory_tag_max_bits_counts, e lookup_memory_range_check_write_tagged_value_counts, e lookup_data_copy_offset_plus_size_is_gt_data_size_counts, e lookup_data_copy_check_src_addr_in_range_counts, e lookup_data_copy_check_dst_addr_in_range_counts, e lookup_data_copy_sel_has_reads_counts, e lookup_data_copy_col_read_counts, e lookup_ecc_mem_check_dst_addr_in_range_counts, e lookup_ecc_mem_input_output_ecc_add_counts, e lookup_keccakf1600_theta_xor_01_counts, e lookup_keccakf1600_theta_xor_02_counts, e lookup_keccakf1600_theta_xor_03_counts, e lookup_keccakf1600_theta_xor_row_0_counts, e lookup_keccakf1600_theta_xor_11_counts, e lookup_keccakf1600_theta_xor_12_counts, e lookup_keccakf1600_theta_xor_13_counts, e lookup_keccakf1600_theta_xor_row_1_counts, e lookup_keccakf1600_theta_xor_21_counts, e lookup_keccakf1600_theta_xor_22_counts, e lookup_keccakf1600_theta_xor_23_counts, e lookup_keccakf1600_theta_xor_row_2_counts, e lookup_keccakf1600_theta_xor_31_counts, e lookup_keccakf1600_theta_xor_32_counts, e lookup_keccakf1600_theta_xor_33_counts, e lookup_keccakf1600_theta_xor_row_3_counts, e lookup_keccakf1600_theta_xor_41_counts, e lookup_keccakf1600_theta_xor_42_counts, e lookup_keccakf1600_theta_xor_43_counts, e lookup_keccakf1600_theta_xor_row_4_counts, e lookup_keccakf1600_theta_combined_xor_0_counts, e lookup_keccakf1600_theta_combined_xor_1_counts, e lookup_keccakf1600_theta_combined_xor_2_counts, e lookup_keccakf1600_theta_combined_xor_3_counts, e lookup_keccakf1600_theta_combined_xor_4_counts, e lookup_keccakf1600_state_theta_00_counts, e lookup_keccakf1600_state_theta_01_counts, e lookup_keccakf1600_state_theta_02_counts, e lookup_keccakf1600_state_theta_03_counts, e lookup_keccakf1600_state_theta_04_counts, e lookup_keccakf1600_state_theta_10_counts, e lookup_keccakf1600_state_theta_11_counts, e lookup_keccakf1600_state_theta_12_counts, e lookup_keccakf1600_state_theta_13_counts, e lookup_keccakf1600_state_theta_14_counts, e lookup_keccakf1600_state_theta_20_counts, e lookup_keccakf1600_state_theta_21_counts, e lookup_keccakf1600_state_theta_22_counts, e lookup_keccakf1600_state_theta_23_counts, e lookup_keccakf1600_state_theta_24_counts, e lookup_keccakf1600_state_theta_30_counts, e lookup_keccakf1600_state_theta_31_counts, e lookup_keccakf1600_state_theta_32_counts, e lookup_keccakf1600_state_theta_33_counts, e lookup_keccakf1600_state_theta_34_counts, e lookup_keccakf1600_state_theta_40_counts, e lookup_keccakf1600_state_theta_41_counts, e lookup_keccakf1600_state_theta_42_counts, e lookup_keccakf1600_state_theta_43_counts, e lookup_keccakf1600_state_theta_44_counts, e lookup_keccakf1600_theta_limb_02_range_counts, e lookup_keccakf1600_theta_limb_04_range_counts, e lookup_keccakf1600_theta_limb_10_range_counts, e lookup_keccakf1600_theta_limb_12_range_counts, e lookup_keccakf1600_theta_limb_14_range_counts, e lookup_keccakf1600_theta_limb_21_range_counts, e lookup_keccakf1600_theta_limb_23_range_counts, e lookup_keccakf1600_theta_limb_30_range_counts, e lookup_keccakf1600_theta_limb_32_range_counts, e lookup_keccakf1600_theta_limb_33_range_counts, e lookup_keccakf1600_theta_limb_40_range_counts, e lookup_keccakf1600_theta_limb_41_range_counts, e lookup_keccakf1600_theta_limb_43_range_counts, e lookup_keccakf1600_theta_limb_44_range_counts, e lookup_keccakf1600_theta_limb_01_range_counts, e lookup_keccakf1600_theta_limb_03_range_counts, e lookup_keccakf1600_theta_limb_11_range_counts, e lookup_keccakf1600_theta_limb_13_range_counts, e lookup_keccakf1600_theta_limb_20_range_counts, e lookup_keccakf1600_theta_limb_22_range_counts, e lookup_keccakf1600_theta_limb_24_range_counts, e lookup_keccakf1600_theta_limb_31_range_counts, e lookup_keccakf1600_theta_limb_34_range_counts, e lookup_keccakf1600_theta_limb_42_range_counts, e lookup_keccakf1600_state_pi_and_00_counts, e lookup_keccakf1600_state_pi_and_01_counts, e lookup_keccakf1600_state_pi_and_02_counts, e lookup_keccakf1600_state_pi_and_03_counts, e lookup_keccakf1600_state_pi_and_04_counts, e lookup_keccakf1600_state_pi_and_10_counts, e lookup_keccakf1600_state_pi_and_11_counts, e lookup_keccakf1600_state_pi_and_12_counts, e lookup_keccakf1600_state_pi_and_13_counts, e lookup_keccakf1600_state_pi_and_14_counts, e lookup_keccakf1600_state_pi_and_20_counts, e lookup_keccakf1600_state_pi_and_21_counts, e lookup_keccakf1600_state_pi_and_22_counts, e lookup_keccakf1600_state_pi_and_23_counts, e lookup_keccakf1600_state_pi_and_24_counts, e lookup_keccakf1600_state_pi_and_30_counts, e lookup_keccakf1600_state_pi_and_31_counts, e lookup_keccakf1600_state_pi_and_32_counts, e lookup_keccakf1600_state_pi_and_33_counts, e lookup_keccakf1600_state_pi_and_34_counts, e lookup_keccakf1600_state_pi_and_40_counts, e lookup_keccakf1600_state_pi_and_41_counts, e lookup_keccakf1600_state_pi_and_42_counts, e lookup_keccakf1600_state_pi_and_43_counts, e lookup_keccakf1600_state_pi_and_44_counts, e lookup_keccakf1600_state_chi_00_counts, e lookup_keccakf1600_state_chi_01_counts, e lookup_keccakf1600_state_chi_02_counts, e lookup_keccakf1600_state_chi_03_counts, e lookup_keccakf1600_state_chi_04_counts, e lookup_keccakf1600_state_chi_10_counts, e lookup_keccakf1600_state_chi_11_counts, e lookup_keccakf1600_state_chi_12_counts, e lookup_keccakf1600_state_chi_13_counts, e lookup_keccakf1600_state_chi_14_counts, e lookup_keccakf1600_state_chi_20_counts, e lookup_keccakf1600_state_chi_21_counts, e lookup_keccakf1600_state_chi_22_counts, e lookup_keccakf1600_state_chi_23_counts, e lookup_keccakf1600_state_chi_24_counts, e lookup_keccakf1600_state_chi_30_counts, e lookup_keccakf1600_state_chi_31_counts, e lookup_keccakf1600_state_chi_32_counts, e lookup_keccakf1600_state_chi_33_counts, e lookup_keccakf1600_state_chi_34_counts, e lookup_keccakf1600_state_chi_40_counts, e lookup_keccakf1600_state_chi_41_counts, e lookup_keccakf1600_state_chi_42_counts, e lookup_keccakf1600_state_chi_43_counts, e lookup_keccakf1600_state_chi_44_counts, e lookup_keccakf1600_round_cst_counts, e lookup_keccakf1600_state_iota_00_counts, e lookup_keccakf1600_src_out_of_range_toggle_counts, e lookup_keccakf1600_dst_out_of_range_toggle_counts, e lookup_poseidon2_mem_check_src_addr_in_range_counts, e lookup_poseidon2_mem_check_dst_addr_in_range_counts, e lookup_poseidon2_mem_input_output_poseidon2_perm_counts, e lookup_to_radix_limb_range_counts, e lookup_to_radix_limb_less_than_radix_range_counts, e lookup_to_radix_fetch_safe_limbs_counts, e lookup_to_radix_fetch_p_limb_counts, e lookup_to_radix_limb_p_diff_range_counts, e lookup_scalar_mul_to_radix_counts, e lookup_scalar_mul_double_counts, e lookup_scalar_mul_add_counts, e lookup_sha256_range_comp_w_lhs_counts, e lookup_sha256_range_comp_w_rhs_counts, e lookup_sha256_range_rhs_w_7_counts, e lookup_sha256_range_rhs_w_18_counts, e lookup_sha256_range_rhs_w_3_counts, e lookup_sha256_w_s_0_xor_0_counts, e lookup_sha256_w_s_0_xor_1_counts, e lookup_sha256_range_rhs_w_17_counts, e lookup_sha256_range_rhs_w_19_counts, e lookup_sha256_range_rhs_w_10_counts, e lookup_sha256_w_s_1_xor_0_counts, e lookup_sha256_w_s_1_xor_1_counts, e lookup_sha256_range_rhs_e_6_counts, e lookup_sha256_range_rhs_e_11_counts, e lookup_sha256_range_rhs_e_25_counts, e lookup_sha256_s_1_xor_0_counts, e lookup_sha256_s_1_xor_1_counts, e lookup_sha256_ch_and_0_counts, e lookup_sha256_ch_and_1_counts, e lookup_sha256_ch_xor_counts, e lookup_sha256_round_constant_counts, e lookup_sha256_range_rhs_a_2_counts, e lookup_sha256_range_rhs_a_13_counts, e lookup_sha256_range_rhs_a_22_counts, e lookup_sha256_s_0_xor_0_counts, e lookup_sha256_s_0_xor_1_counts, e lookup_sha256_maj_and_0_counts, e lookup_sha256_maj_and_1_counts, e lookup_sha256_maj_and_2_counts, e lookup_sha256_maj_xor_0_counts, e lookup_sha256_maj_xor_1_counts, e lookup_sha256_range_comp_next_a_lhs_counts, e lookup_sha256_range_comp_next_a_rhs_counts, e lookup_sha256_range_comp_next_e_lhs_counts, e lookup_sha256_range_comp_next_e_rhs_counts, e lookup_sha256_range_comp_a_rhs_counts, e lookup_sha256_range_comp_b_rhs_counts, e lookup_sha256_range_comp_c_rhs_counts, e lookup_sha256_range_comp_d_rhs_counts, e lookup_sha256_range_comp_e_rhs_counts, e lookup_sha256_range_comp_f_rhs_counts, e lookup_sha256_range_comp_g_rhs_counts, e lookup_sha256_range_comp_h_rhs_counts, e lookup_sha256_mem_check_state_addr_in_range_counts, e lookup_sha256_mem_check_input_addr_in_range_counts, e lookup_sha256_mem_check_output_addr_in_range_counts, e lookup_to_radix_mem_check_dst_addr_in_range_counts, e lookup_to_radix_mem_check_radix_lt_2_counts, e lookup_to_radix_mem_check_radix_gt_256_counts, e lookup_to_radix_mem_input_output_to_radix_counts, e lookup_poseidon2_hash_poseidon2_perm_counts, e lookup_address_derivation_salted_initialization_hash_poseidon2_0_counts, e lookup_address_derivation_salted_initialization_hash_poseidon2_1_counts, e lookup_address_derivation_partial_address_poseidon2_counts, e lookup_address_derivation_public_keys_hash_poseidon2_0_counts, e lookup_address_derivation_public_keys_hash_poseidon2_1_counts, e lookup_address_derivation_public_keys_hash_poseidon2_2_counts, e lookup_address_derivation_public_keys_hash_poseidon2_3_counts, e lookup_address_derivation_public_keys_hash_poseidon2_4_counts, e lookup_address_derivation_preaddress_poseidon2_counts, e lookup_address_derivation_preaddress_scalar_mul_counts, e lookup_address_derivation_address_ecadd_counts, e lookup_bc_decomposition_bytes_are_bytes_counts, e lookup_bc_hashing_poseidon2_hash_counts, e lookup_merkle_check_merkle_poseidon2_read_counts, e lookup_merkle_check_merkle_poseidon2_write_counts, e lookup_indexed_tree_check_silo_poseidon2_counts, e lookup_indexed_tree_check_low_leaf_value_validation_counts, e lookup_indexed_tree_check_low_leaf_next_value_validation_counts, e lookup_indexed_tree_check_low_leaf_poseidon2_counts, e lookup_indexed_tree_check_updated_low_leaf_poseidon2_counts, e lookup_indexed_tree_check_low_leaf_merkle_check_counts, e lookup_indexed_tree_check_new_leaf_poseidon2_counts, e lookup_indexed_tree_check_new_leaf_merkle_check_counts, e lookup_indexed_tree_check_write_value_to_public_inputs_counts, e lookup_public_data_squash_leaf_slot_increase_ff_gt_counts, e lookup_public_data_squash_clk_diff_range_lo_counts, e lookup_public_data_squash_clk_diff_range_hi_counts, e lookup_public_data_check_clk_diff_range_lo_counts, e lookup_public_data_check_clk_diff_range_hi_counts, e lookup_public_data_check_silo_poseidon2_counts, e lookup_public_data_check_low_leaf_slot_validation_counts, e lookup_public_data_check_low_leaf_next_slot_validation_counts, e lookup_public_data_check_low_leaf_poseidon2_0_counts, e lookup_public_data_check_low_leaf_poseidon2_1_counts, e lookup_public_data_check_updated_low_leaf_poseidon2_0_counts, e lookup_public_data_check_updated_low_leaf_poseidon2_1_counts, e lookup_public_data_check_low_leaf_merkle_check_counts, e lookup_public_data_check_new_leaf_poseidon2_0_counts, e lookup_public_data_check_new_leaf_poseidon2_1_counts, e lookup_public_data_check_new_leaf_merkle_check_counts, e lookup_public_data_check_write_public_data_to_public_inputs_counts, e lookup_public_data_check_write_writes_length_to_public_inputs_counts, e lookup_update_check_timestamp_from_public_inputs_counts, e lookup_update_check_delayed_public_mutable_slot_poseidon2_counts, e lookup_update_check_update_hash_public_data_read_counts, e lookup_update_check_update_hash_poseidon2_counts, e lookup_update_check_update_hi_metadata_range_counts, e lookup_update_check_update_lo_metadata_range_counts, e lookup_update_check_timestamp_is_lt_timestamp_of_change_counts, e lookup_contract_instance_retrieval_check_protocol_address_range_counts, e lookup_contract_instance_retrieval_read_derived_address_from_public_inputs_counts, e lookup_contract_instance_retrieval_deployment_nullifier_read_counts, e lookup_contract_instance_retrieval_address_derivation_counts, e lookup_contract_instance_retrieval_update_check_counts, e lookup_class_id_derivation_class_id_poseidon2_0_counts, e lookup_class_id_derivation_class_id_poseidon2_1_counts, e lookup_bc_retrieval_contract_instance_retrieval_counts, e lookup_bc_retrieval_class_id_derivation_counts, e lookup_bc_retrieval_is_new_class_check_counts, e lookup_bc_retrieval_retrieved_bytecodes_insertion_counts, e lookup_instr_fetching_pc_abs_diff_positive_counts, e lookup_instr_fetching_instr_abs_diff_positive_counts, e lookup_instr_fetching_tag_value_validation_counts, e lookup_instr_fetching_bytecode_size_from_bc_dec_counts, e lookup_instr_fetching_bytes_from_bc_dec_counts, e lookup_instr_fetching_wire_instruction_info_counts, e lookup_emit_public_log_check_memory_out_of_bounds_counts, e lookup_emit_public_log_check_log_fields_count_counts, e lookup_emit_public_log_write_data_to_public_inputs_counts, e lookup_get_contract_instance_precomputed_info_counts, e lookup_get_contract_instance_contract_instance_retrieval_counts, e lookup_l1_to_l2_message_tree_check_merkle_check_counts, e lookup_internal_call_unwind_call_stack_counts, e lookup_context_ctx_stack_rollback_counts, e lookup_context_ctx_stack_return_counts, e lookup_addressing_relative_overflow_result_0_counts, e lookup_addressing_relative_overflow_result_1_counts, e lookup_addressing_relative_overflow_result_2_counts, e lookup_addressing_relative_overflow_result_3_counts, e lookup_addressing_relative_overflow_result_4_counts, e lookup_addressing_relative_overflow_result_5_counts, e lookup_addressing_relative_overflow_result_6_counts, e lookup_gas_addressing_gas_read_counts, e lookup_gas_is_out_of_gas_l2_counts, e lookup_gas_is_out_of_gas_da_counts, e lookup_note_hash_tree_check_silo_poseidon2_counts, e lookup_note_hash_tree_check_read_first_nullifier_counts, e lookup_note_hash_tree_check_nonce_computation_poseidon2_counts, e lookup_note_hash_tree_check_unique_note_hash_poseidon2_counts, e lookup_note_hash_tree_check_merkle_check_counts, e lookup_note_hash_tree_check_write_note_hash_to_public_inputs_counts, e lookup_emit_notehash_notehash_tree_write_counts, e lookup_emit_nullifier_write_nullifier_counts, e lookup_external_call_is_l2_gas_left_gt_allocated_counts, e lookup_external_call_is_da_gas_left_gt_allocated_counts, e lookup_get_env_var_precomputed_info_counts, e lookup_get_env_var_read_from_public_inputs_col0_counts, e lookup_get_env_var_read_from_public_inputs_col1_counts, e lookup_l1_to_l2_message_exists_l1_to_l2_msg_leaf_index_in_range_counts, e lookup_l1_to_l2_message_exists_l1_to_l2_msg_read_counts, e lookup_notehash_exists_note_hash_leaf_index_in_range_counts, e lookup_notehash_exists_note_hash_read_counts, e lookup_nullifier_exists_nullifier_exists_check_counts, e lookup_send_l2_to_l1_msg_recipient_check_counts, e lookup_send_l2_to_l1_msg_write_l2_to_l1_msg_counts, e lookup_sload_storage_read_counts, e lookup_sstore_record_written_storage_slot_counts, e lookup_execution_bytecode_retrieval_result_counts, e lookup_execution_instruction_fetching_result_counts, e lookup_execution_instruction_fetching_body_counts, e lookup_execution_exec_spec_read_counts, e lookup_execution_dyn_l2_factor_bitwise_counts, e lookup_execution_check_radix_gt_256_counts, e lookup_execution_get_p_limbs_counts, e lookup_execution_get_max_limbs_counts, e lookup_execution_check_written_storage_slot_counts, e lookup_execution_dispatch_to_alu_counts, e lookup_execution_dispatch_to_bitwise_counts, e lookup_execution_dispatch_to_cast_counts, e lookup_execution_dispatch_to_set_counts, e lookup_calldata_hashing_get_calldata_field_0_counts, e lookup_calldata_hashing_get_calldata_field_1_counts, e lookup_calldata_hashing_get_calldata_field_2_counts, e lookup_calldata_hashing_poseidon2_hash_counts, e lookup_tx_context_public_inputs_note_hash_tree_counts, e lookup_tx_context_public_inputs_nullifier_tree_counts, e lookup_tx_context_public_inputs_public_data_tree_counts, e lookup_tx_context_public_inputs_l1_l2_tree_counts, e lookup_tx_context_public_inputs_gas_used_counts, e lookup_tx_context_public_inputs_read_gas_limit_counts, e lookup_tx_context_public_inputs_read_reverted_counts, e lookup_tx_context_restore_state_on_revert_counts, e lookup_tx_context_public_inputs_write_note_hash_count_counts, e lookup_tx_context_public_inputs_write_nullifier_count_counts, e lookup_tx_context_public_inputs_write_l2_to_l1_message_count_counts, e lookup_tx_context_public_inputs_write_public_log_count_counts, e lookup_tx_read_phase_spec_counts, e lookup_tx_read_phase_length_counts, e lookup_tx_read_public_call_request_phase_counts, e lookup_tx_read_tree_insert_value_counts, e lookup_tx_note_hash_append_counts, e lookup_tx_nullifier_append_counts, e lookup_tx_read_l2_l1_msg_counts, e lookup_tx_write_l2_l1_msg_counts, e lookup_tx_read_effective_fee_public_inputs_counts, e lookup_tx_read_fee_payer_public_inputs_counts, e lookup_tx_balance_slot_poseidon2_counts, e lookup_tx_balance_read_counts, e lookup_tx_balance_validation_counts, e lookup_tx_write_fee_public_inputs_counts, e bc_decomposition_bytes, e bc_decomposition_bytes_pc_plus_1, e bc_decomposition_bytes_pc_plus_10, e bc_decomposition_bytes_pc_plus_11, e bc_decomposition_bytes_pc_plus_12, e bc_decomposition_bytes_pc_plus_13, e bc_decomposition_bytes_pc_plus_14, e bc_decomposition_bytes_pc_plus_15, e bc_decomposition_bytes_pc_plus_16, e bc_decomposition_bytes_pc_plus_17, e bc_decomposition_bytes_pc_plus_18, e bc_decomposition_bytes_pc_plus_19, e bc_decomposition_bytes_pc_plus_2, e bc_decomposition_bytes_pc_plus_20, e bc_decomposition_bytes_pc_plus_21, e bc_decomposition_bytes_pc_plus_22, e bc_decomposition_bytes_pc_plus_23, e bc_decomposition_bytes_pc_plus_24, e bc_decomposition_bytes_pc_plus_25, e bc_decomposition_bytes_pc_plus_26, e bc_decomposition_bytes_pc_plus_27, e bc_decomposition_bytes_pc_plus_28, e bc_decomposition_bytes_pc_plus_29, e bc_decomposition_bytes_pc_plus_3, e bc_decomposition_bytes_pc_plus_30, e bc_decomposition_bytes_pc_plus_31, e bc_decomposition_bytes_pc_plus_32, e bc_decomposition_bytes_pc_plus_33, e bc_decomposition_bytes_pc_plus_34, e bc_decomposition_bytes_pc_plus_35, e bc_decomposition_bytes_pc_plus_4, e bc_decomposition_bytes_pc_plus_5, e bc_decomposition_bytes_pc_plus_6, e bc_decomposition_bytes_pc_plus_7, e bc_decomposition_bytes_pc_plus_8, e bc_decomposition_bytes_pc_plus_9, e bc_decomposition_bytes_remaining, e bc_decomposition_id, e bc_decomposition_next_packed_pc, e bc_decomposition_pc, e bc_decomposition_sel, e bc_decomposition_sel_windows_gt_remaining, e bc_decomposition_start, e bc_hashing_bytecode_id, e bc_hashing_padding, e bc_hashing_pc_index_1, e bc_hashing_rounds_rem, e bc_hashing_sel, e bc_hashing_sel_not_start, e bc_hashing_start, e bitwise_acc_ia, e bitwise_acc_ib, e bitwise_acc_ic, e bitwise_ctr, e bitwise_op_id, e bitwise_sel, e bitwise_start, e calldata_context_id, e calldata_hashing_calldata_size, e calldata_hashing_context_id, e calldata_hashing_index_0_, e calldata_hashing_output_hash, e calldata_hashing_rounds_rem, e calldata_hashing_sel, e calldata_hashing_start, e calldata_index, e calldata_sel, e data_copy_clk, e data_copy_copy_size, e data_copy_dst_addr, e data_copy_dst_context_id, e data_copy_padding, e data_copy_read_addr, e data_copy_reads_left, e data_copy_sel, e data_copy_sel_cd_copy, e data_copy_src_context_id, e data_copy_start, e emit_public_log_contract_address, e emit_public_log_correct_tag, e emit_public_log_error_out_of_bounds, e emit_public_log_error_tag_mismatch, e emit_public_log_execution_clk, e emit_public_log_is_write_contract_address, e emit_public_log_is_write_memory_value, e emit_public_log_log_address, e emit_public_log_public_inputs_index, e emit_public_log_remaining_rows, e emit_public_log_seen_wrong_tag, e emit_public_log_sel, e emit_public_log_sel_write_to_public_inputs, e emit_public_log_space_id, e emit_public_log_start, e execution_bytecode_id, e execution_clk, e execution_context_id, e execution_contract_address, e execution_da_gas_limit, e execution_discard, e execution_dying_context_id, e execution_enqueued_call_start, e execution_internal_call_id, e execution_internal_call_return_id, e execution_is_static, e execution_l1_l2_tree_root, e execution_l2_gas_limit, e execution_last_child_id, e execution_last_child_returndata_addr, e execution_last_child_returndata_size, e execution_last_child_success, e execution_msg_sender, e execution_next_context_id, e execution_next_internal_call_id, e execution_parent_calldata_addr, e execution_parent_calldata_size, e execution_parent_da_gas_limit, e execution_parent_da_gas_used, e execution_parent_id, e execution_parent_l2_gas_limit, e execution_parent_l2_gas_used, e execution_pc, e execution_prev_da_gas_used, e execution_prev_l2_gas_used, e execution_prev_note_hash_tree_root, e execution_prev_note_hash_tree_size, e execution_prev_nullifier_tree_root, e execution_prev_nullifier_tree_size, e execution_prev_num_l2_to_l1_messages, e execution_prev_num_note_hashes_emitted, e execution_prev_num_nullifiers_emitted, e execution_prev_num_public_log_fields, e execution_prev_public_data_tree_root, e execution_prev_public_data_tree_size, e execution_prev_retrieved_bytecodes_tree_root, e execution_prev_retrieved_bytecodes_tree_size, e execution_prev_written_public_data_slots_tree_root, e execution_prev_written_public_data_slots_tree_size, e execution_sel, e execution_sel_first_row_in_context, e execution_transaction_fee, e ff_gt_a_hi, e ff_gt_a_lo, e ff_gt_b_hi, e ff_gt_b_lo, e ff_gt_cmp_rng_ctr, e ff_gt_p_sub_a_hi, e ff_gt_p_sub_a_lo, e ff_gt_p_sub_b_hi, e ff_gt_p_sub_b_lo, e ff_gt_sel, e ff_gt_sel_dec, e ff_gt_sel_gt, e keccak_memory_addr, e keccak_memory_clk, e keccak_memory_ctr, e keccak_memory_rw, e keccak_memory_sel, e keccak_memory_space_id, e keccak_memory_start_read, e keccak_memory_start_write, e keccak_memory_tag_error, e keccak_memory_val_0_, e keccak_memory_val_10_, e keccak_memory_val_11_, e keccak_memory_val_12_, e keccak_memory_val_13_, e keccak_memory_val_14_, e keccak_memory_val_15_, e keccak_memory_val_16_, e keccak_memory_val_17_, e keccak_memory_val_18_, e keccak_memory_val_19_, e keccak_memory_val_1_, e keccak_memory_val_20_, e keccak_memory_val_21_, e keccak_memory_val_22_, e keccak_memory_val_23_, e keccak_memory_val_2_, e keccak_memory_val_3_, e keccak_memory_val_4_, e keccak_memory_val_5_, e keccak_memory_val_6_, e keccak_memory_val_7_, e keccak_memory_val_8_, e keccak_memory_val_9_, e keccakf1600_clk, e keccakf1600_dst_addr, e keccakf1600_round, e keccakf1600_sel, e keccakf1600_sel_no_error, e keccakf1600_space_id, e keccakf1600_start, e keccakf1600_state_in_00, e keccakf1600_state_in_01, e keccakf1600_state_in_02, e keccakf1600_state_in_03, e keccakf1600_state_in_04, e keccakf1600_state_in_10, e keccakf1600_state_in_11, e keccakf1600_state_in_12, e keccakf1600_state_in_13, e keccakf1600_state_in_14, e keccakf1600_state_in_20, e keccakf1600_state_in_21, e keccakf1600_state_in_22, e keccakf1600_state_in_23, e keccakf1600_state_in_24, e keccakf1600_state_in_30, e keccakf1600_state_in_31, e keccakf1600_state_in_32, e keccakf1600_state_in_33, e keccakf1600_state_in_34, e keccakf1600_state_in_40, e keccakf1600_state_in_41, e keccakf1600_state_in_42, e keccakf1600_state_in_43, e keccakf1600_state_in_44, e memory_address, e memory_clk, e memory_rw, e memory_sel, e memory_space_id, e memory_tag, e memory_value, e merkle_check_index, e merkle_check_merkle_hash_separator, e merkle_check_path_len, e merkle_check_read_node, e merkle_check_read_root, e merkle_check_sel, e merkle_check_start, e merkle_check_write, e merkle_check_write_node, e merkle_check_write_root, e poseidon2_hash_a_0, e poseidon2_hash_a_1, e poseidon2_hash_a_2, e poseidon2_hash_a_3, e poseidon2_hash_input_0, e poseidon2_hash_input_1, e poseidon2_hash_input_2, e poseidon2_hash_num_perm_rounds_rem, e poseidon2_hash_output, e poseidon2_hash_sel, e poseidon2_hash_start, e public_data_check_clk, e public_data_check_sel, e public_data_check_write_idx, e public_data_squash_clk, e public_data_squash_final_value, e public_data_squash_leaf_slot, e public_data_squash_sel, e public_data_squash_write_to_public_inputs, e scalar_mul_bit_idx, e scalar_mul_point_inf, e scalar_mul_point_x, e scalar_mul_point_y, e scalar_mul_res_inf, e scalar_mul_res_x, e scalar_mul_res_y, e scalar_mul_scalar, e scalar_mul_sel, e scalar_mul_start, e scalar_mul_temp_inf, e scalar_mul_temp_x, e scalar_mul_temp_y, e sha256_a, e sha256_b, e sha256_c, e sha256_d, e sha256_e, e sha256_execution_clk, e sha256_f, e sha256_g, e sha256_h, e sha256_helper_w0, e sha256_helper_w1, e sha256_helper_w10, e sha256_helper_w11, e sha256_helper_w12, e sha256_helper_w13, e sha256_helper_w14, e sha256_helper_w15, e sha256_helper_w2, e sha256_helper_w3, e sha256_helper_w4, e sha256_helper_w5, e sha256_helper_w6, e sha256_helper_w7, e sha256_helper_w8, e sha256_helper_w9, e sha256_init_a, e sha256_init_b, e sha256_init_c, e sha256_init_d, e sha256_init_e, e sha256_init_f, e sha256_init_g, e sha256_init_h, e sha256_input_addr, e sha256_input_rounds_rem, e sha256_output_addr, e sha256_rounds_remaining, e sha256_sel, e sha256_sel_invalid_input_tag_err, e sha256_space_id, e sha256_start, e to_radix_acc, e to_radix_acc_under_p, e to_radix_limb, e to_radix_limb_eq_p, e to_radix_limb_index, e to_radix_limb_lt_p, e to_radix_mem_dst_addr, e to_radix_mem_execution_clk, e to_radix_mem_is_output_bits, e to_radix_mem_num_limbs, e to_radix_mem_radix, e to_radix_mem_sel, e to_radix_mem_sel_should_decompose, e to_radix_mem_sel_should_write_mem, e to_radix_mem_space_id, e to_radix_mem_start, e to_radix_mem_value_to_decompose, e to_radix_not_padding_limb, e to_radix_power, e to_radix_radix, e to_radix_safe_limbs, e to_radix_sel, e to_radix_start, e to_radix_value, e tx_da_gas_limit, e tx_discard, e tx_fee, e tx_is_revertible, e tx_is_teardown, e tx_l1_l2_tree_root, e tx_l1_l2_tree_size, e tx_l2_gas_limit, e tx_next_context_id, e tx_phase_value, e tx_prev_da_gas_used, e tx_prev_l2_gas_used, e tx_prev_note_hash_tree_root, e tx_prev_note_hash_tree_size, e tx_prev_nullifier_tree_root, e tx_prev_nullifier_tree_size, e tx_prev_num_l2_to_l1_messages, e tx_prev_num_note_hashes_emitted, e tx_prev_num_nullifiers_emitted, e tx_prev_num_public_log_fields, e tx_prev_public_data_tree_root, e tx_prev_public_data_tree_size, e tx_prev_retrieved_bytecodes_tree_root, e tx_prev_retrieved_bytecodes_tree_size, e tx_prev_written_public_data_slots_tree_root, e tx_prev_written_public_data_slots_tree_size, e tx_read_pi_offset, e tx_remaining_phase_counter, e tx_reverted, e tx_sel, e tx_start_phase, e tx_start_tx, e tx_tx_reverted #define AVM2_DERIVED_WITNESS_ENTITIES_E(e) e perm_data_copy_mem_write_inv, e perm_data_copy_mem_read_inv, e perm_ecc_mem_write_mem_0_inv, e perm_ecc_mem_write_mem_1_inv, e perm_ecc_mem_write_mem_2_inv, e perm_keccak_memory_slice_to_mem_inv, e perm_keccakf1600_read_to_slice_inv, e perm_keccakf1600_write_to_slice_inv, e perm_poseidon2_mem_pos_read_mem_0_inv, e perm_poseidon2_mem_pos_read_mem_1_inv, e perm_poseidon2_mem_pos_read_mem_2_inv, e perm_poseidon2_mem_pos_read_mem_3_inv, e perm_poseidon2_mem_pos_write_mem_0_inv, e perm_poseidon2_mem_pos_write_mem_1_inv, e perm_poseidon2_mem_pos_write_mem_2_inv, e perm_poseidon2_mem_pos_write_mem_3_inv, e perm_sha256_mem_mem_op_0_inv, e perm_sha256_mem_mem_op_1_inv, e perm_sha256_mem_mem_op_2_inv, e perm_sha256_mem_mem_op_3_inv, e perm_sha256_mem_mem_op_4_inv, e perm_sha256_mem_mem_op_5_inv, e perm_sha256_mem_mem_op_6_inv, e perm_sha256_mem_mem_op_7_inv, e perm_sha256_mem_mem_input_read_inv, e perm_to_radix_mem_write_mem_inv, e perm_bc_hashing_bytecode_length_bytes_inv, e perm_bc_hashing_get_packed_field_0_inv, e perm_bc_hashing_get_packed_field_1_inv, e perm_bc_hashing_get_packed_field_2_inv, e perm_public_data_check_squashing_inv, e perm_emit_public_log_read_mem_inv, e perm_get_contract_instance_mem_write_contract_instance_exists_inv, e perm_get_contract_instance_mem_write_contract_instance_member_inv, e perm_internal_call_push_call_stack_inv, e perm_context_ctx_stack_call_inv, e perm_addressing_base_address_from_memory_inv, e perm_addressing_indirect_from_memory_0_inv, e perm_addressing_indirect_from_memory_1_inv, e perm_addressing_indirect_from_memory_2_inv, e perm_addressing_indirect_from_memory_3_inv, e perm_addressing_indirect_from_memory_4_inv, e perm_addressing_indirect_from_memory_5_inv, e perm_addressing_indirect_from_memory_6_inv, e perm_registers_mem_op_0_inv, e perm_registers_mem_op_1_inv, e perm_registers_mem_op_2_inv, e perm_registers_mem_op_3_inv, e perm_registers_mem_op_4_inv, e perm_registers_mem_op_5_inv, e perm_sstore_storage_write_inv, e perm_execution_dispatch_to_cd_copy_inv, e perm_execution_dispatch_to_rd_copy_inv, e perm_execution_dispatch_to_get_contract_instance_inv, e perm_execution_dispatch_to_emit_public_log_inv, e perm_execution_dispatch_to_poseidon2_perm_inv, e perm_execution_dispatch_to_sha256_compression_inv, e perm_execution_dispatch_to_keccakf1600_inv, e perm_execution_dispatch_to_ecc_add_inv, e perm_execution_dispatch_to_to_radix_inv, e perm_calldata_hashing_check_final_size_inv, e perm_tx_read_calldata_hash_inv, e perm_tx_dispatch_exec_start_inv, e perm_tx_dispatch_exec_end_inv, e perm_tx_balance_update_inv, e lookup_range_check_dyn_rng_chk_pow_2_inv, e lookup_range_check_dyn_diff_is_u16_inv, e lookup_range_check_r0_is_u16_inv, e lookup_range_check_r1_is_u16_inv, e lookup_range_check_r2_is_u16_inv, e lookup_range_check_r3_is_u16_inv, e lookup_range_check_r4_is_u16_inv, e lookup_range_check_r5_is_u16_inv, e lookup_range_check_r6_is_u16_inv, e lookup_range_check_r7_is_u16_inv, e lookup_ff_gt_a_lo_range_inv, e lookup_ff_gt_a_hi_range_inv, e lookup_gt_gt_range_inv, e lookup_alu_tag_max_bits_value_inv, e lookup_alu_range_check_decomposition_a_lo_inv, e lookup_alu_range_check_decomposition_a_hi_inv, e lookup_alu_range_check_decomposition_b_lo_inv, e lookup_alu_range_check_decomposition_b_hi_inv, e lookup_alu_range_check_mul_c_hi_inv, e lookup_alu_range_check_div_remainder_inv, e lookup_alu_ff_gt_inv, e lookup_alu_int_gt_inv, e lookup_alu_shifts_two_pow_inv, e lookup_alu_large_trunc_canonical_dec_inv, e lookup_alu_range_check_trunc_mid_inv, e lookup_bitwise_integral_tag_length_inv, e lookup_bitwise_byte_operations_inv, e lookup_memory_range_check_limb_0_inv, e lookup_memory_range_check_limb_1_inv, e lookup_memory_range_check_limb_2_inv, e lookup_memory_tag_max_bits_inv, e lookup_memory_range_check_write_tagged_value_inv, e lookup_data_copy_offset_plus_size_is_gt_data_size_inv, e lookup_data_copy_check_src_addr_in_range_inv, e lookup_data_copy_check_dst_addr_in_range_inv, e lookup_data_copy_sel_has_reads_inv, e lookup_data_copy_col_read_inv, e lookup_ecc_mem_check_dst_addr_in_range_inv, e lookup_ecc_mem_input_output_ecc_add_inv, e lookup_keccakf1600_theta_xor_01_inv, e lookup_keccakf1600_theta_xor_02_inv, e lookup_keccakf1600_theta_xor_03_inv, e lookup_keccakf1600_theta_xor_row_0_inv, e lookup_keccakf1600_theta_xor_11_inv, e lookup_keccakf1600_theta_xor_12_inv, e lookup_keccakf1600_theta_xor_13_inv, e lookup_keccakf1600_theta_xor_row_1_inv, e lookup_keccakf1600_theta_xor_21_inv, e lookup_keccakf1600_theta_xor_22_inv, e lookup_keccakf1600_theta_xor_23_inv, e lookup_keccakf1600_theta_xor_row_2_inv, e lookup_keccakf1600_theta_xor_31_inv, e lookup_keccakf1600_theta_xor_32_inv, e lookup_keccakf1600_theta_xor_33_inv, e lookup_keccakf1600_theta_xor_row_3_inv, e lookup_keccakf1600_theta_xor_41_inv, e lookup_keccakf1600_theta_xor_42_inv, e lookup_keccakf1600_theta_xor_43_inv, e lookup_keccakf1600_theta_xor_row_4_inv, e lookup_keccakf1600_theta_combined_xor_0_inv, e lookup_keccakf1600_theta_combined_xor_1_inv, e lookup_keccakf1600_theta_combined_xor_2_inv, e lookup_keccakf1600_theta_combined_xor_3_inv, e lookup_keccakf1600_theta_combined_xor_4_inv, e lookup_keccakf1600_state_theta_00_inv, e lookup_keccakf1600_state_theta_01_inv, e lookup_keccakf1600_state_theta_02_inv, e lookup_keccakf1600_state_theta_03_inv, e lookup_keccakf1600_state_theta_04_inv, e lookup_keccakf1600_state_theta_10_inv, e lookup_keccakf1600_state_theta_11_inv, e lookup_keccakf1600_state_theta_12_inv, e lookup_keccakf1600_state_theta_13_inv, e lookup_keccakf1600_state_theta_14_inv, e lookup_keccakf1600_state_theta_20_inv, e lookup_keccakf1600_state_theta_21_inv, e lookup_keccakf1600_state_theta_22_inv, e lookup_keccakf1600_state_theta_23_inv, e lookup_keccakf1600_state_theta_24_inv, e lookup_keccakf1600_state_theta_30_inv, e lookup_keccakf1600_state_theta_31_inv, e lookup_keccakf1600_state_theta_32_inv, e lookup_keccakf1600_state_theta_33_inv, e lookup_keccakf1600_state_theta_34_inv, e lookup_keccakf1600_state_theta_40_inv, e lookup_keccakf1600_state_theta_41_inv, e lookup_keccakf1600_state_theta_42_inv, e lookup_keccakf1600_state_theta_43_inv, e lookup_keccakf1600_state_theta_44_inv, e lookup_keccakf1600_theta_limb_02_range_inv, e lookup_keccakf1600_theta_limb_04_range_inv, e lookup_keccakf1600_theta_limb_10_range_inv, e lookup_keccakf1600_theta_limb_12_range_inv, e lookup_keccakf1600_theta_limb_14_range_inv, e lookup_keccakf1600_theta_limb_21_range_inv, e lookup_keccakf1600_theta_limb_23_range_inv, e lookup_keccakf1600_theta_limb_30_range_inv, e lookup_keccakf1600_theta_limb_32_range_inv, e lookup_keccakf1600_theta_limb_33_range_inv, e lookup_keccakf1600_theta_limb_40_range_inv, e lookup_keccakf1600_theta_limb_41_range_inv, e lookup_keccakf1600_theta_limb_43_range_inv, e lookup_keccakf1600_theta_limb_44_range_inv, e lookup_keccakf1600_theta_limb_01_range_inv, e lookup_keccakf1600_theta_limb_03_range_inv, e lookup_keccakf1600_theta_limb_11_range_inv, e lookup_keccakf1600_theta_limb_13_range_inv, e lookup_keccakf1600_theta_limb_20_range_inv, e lookup_keccakf1600_theta_limb_22_range_inv, e lookup_keccakf1600_theta_limb_24_range_inv, e lookup_keccakf1600_theta_limb_31_range_inv, e lookup_keccakf1600_theta_limb_34_range_inv, e lookup_keccakf1600_theta_limb_42_range_inv, e lookup_keccakf1600_state_pi_and_00_inv, e lookup_keccakf1600_state_pi_and_01_inv, e lookup_keccakf1600_state_pi_and_02_inv, e lookup_keccakf1600_state_pi_and_03_inv, e lookup_keccakf1600_state_pi_and_04_inv, e lookup_keccakf1600_state_pi_and_10_inv, e lookup_keccakf1600_state_pi_and_11_inv, e lookup_keccakf1600_state_pi_and_12_inv, e lookup_keccakf1600_state_pi_and_13_inv, e lookup_keccakf1600_state_pi_and_14_inv, e lookup_keccakf1600_state_pi_and_20_inv, e lookup_keccakf1600_state_pi_and_21_inv, e lookup_keccakf1600_state_pi_and_22_inv, e lookup_keccakf1600_state_pi_and_23_inv, e lookup_keccakf1600_state_pi_and_24_inv, e lookup_keccakf1600_state_pi_and_30_inv, e lookup_keccakf1600_state_pi_and_31_inv, e lookup_keccakf1600_state_pi_and_32_inv, e lookup_keccakf1600_state_pi_and_33_inv, e lookup_keccakf1600_state_pi_and_34_inv, e lookup_keccakf1600_state_pi_and_40_inv, e lookup_keccakf1600_state_pi_and_41_inv, e lookup_keccakf1600_state_pi_and_42_inv, e lookup_keccakf1600_state_pi_and_43_inv, e lookup_keccakf1600_state_pi_and_44_inv, e lookup_keccakf1600_state_chi_00_inv, e lookup_keccakf1600_state_chi_01_inv, e lookup_keccakf1600_state_chi_02_inv, e lookup_keccakf1600_state_chi_03_inv, e lookup_keccakf1600_state_chi_04_inv, e lookup_keccakf1600_state_chi_10_inv, e lookup_keccakf1600_state_chi_11_inv, e lookup_keccakf1600_state_chi_12_inv, e lookup_keccakf1600_state_chi_13_inv, e lookup_keccakf1600_state_chi_14_inv, e lookup_keccakf1600_state_chi_20_inv, e lookup_keccakf1600_state_chi_21_inv, e lookup_keccakf1600_state_chi_22_inv, e lookup_keccakf1600_state_chi_23_inv, e lookup_keccakf1600_state_chi_24_inv, e lookup_keccakf1600_state_chi_30_inv, e lookup_keccakf1600_state_chi_31_inv, e lookup_keccakf1600_state_chi_32_inv, e lookup_keccakf1600_state_chi_33_inv, e lookup_keccakf1600_state_chi_34_inv, e lookup_keccakf1600_state_chi_40_inv, e lookup_keccakf1600_state_chi_41_inv, e lookup_keccakf1600_state_chi_42_inv, e lookup_keccakf1600_state_chi_43_inv, e lookup_keccakf1600_state_chi_44_inv, e lookup_keccakf1600_round_cst_inv, e lookup_keccakf1600_state_iota_00_inv, e lookup_keccakf1600_src_out_of_range_toggle_inv, e lookup_keccakf1600_dst_out_of_range_toggle_inv, e lookup_poseidon2_mem_check_src_addr_in_range_inv, e lookup_poseidon2_mem_check_dst_addr_in_range_inv, e lookup_poseidon2_mem_input_output_poseidon2_perm_inv, e lookup_to_radix_limb_range_inv, e lookup_to_radix_limb_less_than_radix_range_inv, e lookup_to_radix_fetch_safe_limbs_inv, e lookup_to_radix_fetch_p_limb_inv, e lookup_to_radix_limb_p_diff_range_inv, e lookup_scalar_mul_to_radix_inv, e lookup_scalar_mul_double_inv, e lookup_scalar_mul_add_inv, e lookup_sha256_range_comp_w_lhs_inv, e lookup_sha256_range_comp_w_rhs_inv, e lookup_sha256_range_rhs_w_7_inv, e lookup_sha256_range_rhs_w_18_inv, e lookup_sha256_range_rhs_w_3_inv, e lookup_sha256_w_s_0_xor_0_inv, e lookup_sha256_w_s_0_xor_1_inv, e lookup_sha256_range_rhs_w_17_inv, e lookup_sha256_range_rhs_w_19_inv, e lookup_sha256_range_rhs_w_10_inv, e lookup_sha256_w_s_1_xor_0_inv, e lookup_sha256_w_s_1_xor_1_inv, e lookup_sha256_range_rhs_e_6_inv, e lookup_sha256_range_rhs_e_11_inv, e lookup_sha256_range_rhs_e_25_inv, e lookup_sha256_s_1_xor_0_inv, e lookup_sha256_s_1_xor_1_inv, e lookup_sha256_ch_and_0_inv, e lookup_sha256_ch_and_1_inv, e lookup_sha256_ch_xor_inv, e lookup_sha256_round_constant_inv, e lookup_sha256_range_rhs_a_2_inv, e lookup_sha256_range_rhs_a_13_inv, e lookup_sha256_range_rhs_a_22_inv, e lookup_sha256_s_0_xor_0_inv, e lookup_sha256_s_0_xor_1_inv, e lookup_sha256_maj_and_0_inv, e lookup_sha256_maj_and_1_inv, e lookup_sha256_maj_and_2_inv, e lookup_sha256_maj_xor_0_inv, e lookup_sha256_maj_xor_1_inv, e lookup_sha256_range_comp_next_a_lhs_inv, e lookup_sha256_range_comp_next_a_rhs_inv, e lookup_sha256_range_comp_next_e_lhs_inv, e lookup_sha256_range_comp_next_e_rhs_inv, e lookup_sha256_range_comp_a_rhs_inv, e lookup_sha256_range_comp_b_rhs_inv, e lookup_sha256_range_comp_c_rhs_inv, e lookup_sha256_range_comp_d_rhs_inv, e lookup_sha256_range_comp_e_rhs_inv, e lookup_sha256_range_comp_f_rhs_inv, e lookup_sha256_range_comp_g_rhs_inv, e lookup_sha256_range_comp_h_rhs_inv, e lookup_sha256_mem_check_state_addr_in_range_inv, e lookup_sha256_mem_check_input_addr_in_range_inv, e lookup_sha256_mem_check_output_addr_in_range_inv, e lookup_to_radix_mem_check_dst_addr_in_range_inv, e lookup_to_radix_mem_check_radix_lt_2_inv, e lookup_to_radix_mem_check_radix_gt_256_inv, e lookup_to_radix_mem_input_output_to_radix_inv, e lookup_poseidon2_hash_poseidon2_perm_inv, e lookup_address_derivation_salted_initialization_hash_poseidon2_0_inv, e lookup_address_derivation_salted_initialization_hash_poseidon2_1_inv, e lookup_address_derivation_partial_address_poseidon2_inv, e lookup_address_derivation_public_keys_hash_poseidon2_0_inv, e lookup_address_derivation_public_keys_hash_poseidon2_1_inv, e lookup_address_derivation_public_keys_hash_poseidon2_2_inv, e lookup_address_derivation_public_keys_hash_poseidon2_3_inv, e lookup_address_derivation_public_keys_hash_poseidon2_4_inv, e lookup_address_derivation_preaddress_poseidon2_inv, e lookup_address_derivation_preaddress_scalar_mul_inv, e lookup_address_derivation_address_ecadd_inv, e lookup_bc_decomposition_bytes_are_bytes_inv, e lookup_bc_hashing_poseidon2_hash_inv, e lookup_merkle_check_merkle_poseidon2_read_inv, e lookup_merkle_check_merkle_poseidon2_write_inv, e lookup_indexed_tree_check_silo_poseidon2_inv, e lookup_indexed_tree_check_low_leaf_value_validation_inv, e lookup_indexed_tree_check_low_leaf_next_value_validation_inv, e lookup_indexed_tree_check_low_leaf_poseidon2_inv, e lookup_indexed_tree_check_updated_low_leaf_poseidon2_inv, e lookup_indexed_tree_check_low_leaf_merkle_check_inv, e lookup_indexed_tree_check_new_leaf_poseidon2_inv, e lookup_indexed_tree_check_new_leaf_merkle_check_inv, e lookup_indexed_tree_check_write_value_to_public_inputs_inv, e lookup_public_data_squash_leaf_slot_increase_ff_gt_inv, e lookup_public_data_squash_clk_diff_range_lo_inv, e lookup_public_data_squash_clk_diff_range_hi_inv, e lookup_public_data_check_clk_diff_range_lo_inv, e lookup_public_data_check_clk_diff_range_hi_inv, e lookup_public_data_check_silo_poseidon2_inv, e lookup_public_data_check_low_leaf_slot_validation_inv, e lookup_public_data_check_low_leaf_next_slot_validation_inv, e lookup_public_data_check_low_leaf_poseidon2_0_inv, e lookup_public_data_check_low_leaf_poseidon2_1_inv, e lookup_public_data_check_updated_low_leaf_poseidon2_0_inv, e lookup_public_data_check_updated_low_leaf_poseidon2_1_inv, e lookup_public_data_check_low_leaf_merkle_check_inv, e lookup_public_data_check_new_leaf_poseidon2_0_inv, e lookup_public_data_check_new_leaf_poseidon2_1_inv, e lookup_public_data_check_new_leaf_merkle_check_inv, e lookup_public_data_check_write_public_data_to_public_inputs_inv, e lookup_public_data_check_write_writes_length_to_public_inputs_inv, e lookup_update_check_timestamp_from_public_inputs_inv, e lookup_update_check_delayed_public_mutable_slot_poseidon2_inv, e lookup_update_check_update_hash_public_data_read_inv, e lookup_update_check_update_hash_poseidon2_inv, e lookup_update_check_update_hi_metadata_range_inv, e lookup_update_check_update_lo_metadata_range_inv, e lookup_update_check_timestamp_is_lt_timestamp_of_change_inv, e lookup_contract_instance_retrieval_check_protocol_address_range_inv, e lookup_contract_instance_retrieval_read_derived_address_from_public_inputs_inv, e lookup_contract_instance_retrieval_deployment_nullifier_read_inv, e lookup_contract_instance_retrieval_address_derivation_inv, e lookup_contract_instance_retrieval_update_check_inv, e lookup_class_id_derivation_class_id_poseidon2_0_inv, e lookup_class_id_derivation_class_id_poseidon2_1_inv, e lookup_bc_retrieval_contract_instance_retrieval_inv, e lookup_bc_retrieval_class_id_derivation_inv, e lookup_bc_retrieval_is_new_class_check_inv, e lookup_bc_retrieval_retrieved_bytecodes_insertion_inv, e lookup_instr_fetching_pc_abs_diff_positive_inv, e lookup_instr_fetching_instr_abs_diff_positive_inv, e lookup_instr_fetching_tag_value_validation_inv, e lookup_instr_fetching_bytecode_size_from_bc_dec_inv, e lookup_instr_fetching_bytes_from_bc_dec_inv, e lookup_instr_fetching_wire_instruction_info_inv, e lookup_emit_public_log_check_memory_out_of_bounds_inv, e lookup_emit_public_log_check_log_fields_count_inv, e lookup_emit_public_log_write_data_to_public_inputs_inv, e lookup_get_contract_instance_precomputed_info_inv, e lookup_get_contract_instance_contract_instance_retrieval_inv, e lookup_l1_to_l2_message_tree_check_merkle_check_inv, e lookup_internal_call_unwind_call_stack_inv, e lookup_context_ctx_stack_rollback_inv, e lookup_context_ctx_stack_return_inv, e lookup_addressing_relative_overflow_result_0_inv, e lookup_addressing_relative_overflow_result_1_inv, e lookup_addressing_relative_overflow_result_2_inv, e lookup_addressing_relative_overflow_result_3_inv, e lookup_addressing_relative_overflow_result_4_inv, e lookup_addressing_relative_overflow_result_5_inv, e lookup_addressing_relative_overflow_result_6_inv, e lookup_gas_addressing_gas_read_inv, e lookup_gas_is_out_of_gas_l2_inv, e lookup_gas_is_out_of_gas_da_inv, e lookup_note_hash_tree_check_silo_poseidon2_inv, e lookup_note_hash_tree_check_read_first_nullifier_inv, e lookup_note_hash_tree_check_nonce_computation_poseidon2_inv, e lookup_note_hash_tree_check_unique_note_hash_poseidon2_inv, e lookup_note_hash_tree_check_merkle_check_inv, e lookup_note_hash_tree_check_write_note_hash_to_public_inputs_inv, e lookup_emit_notehash_notehash_tree_write_inv, e lookup_emit_nullifier_write_nullifier_inv, e lookup_external_call_is_l2_gas_left_gt_allocated_inv, e lookup_external_call_is_da_gas_left_gt_allocated_inv, e lookup_get_env_var_precomputed_info_inv, e lookup_get_env_var_read_from_public_inputs_col0_inv, e lookup_get_env_var_read_from_public_inputs_col1_inv, e lookup_l1_to_l2_message_exists_l1_to_l2_msg_leaf_index_in_range_inv, e lookup_l1_to_l2_message_exists_l1_to_l2_msg_read_inv, e lookup_notehash_exists_note_hash_leaf_index_in_range_inv, e lookup_notehash_exists_note_hash_read_inv, e lookup_nullifier_exists_nullifier_exists_check_inv, e lookup_send_l2_to_l1_msg_recipient_check_inv, e lookup_send_l2_to_l1_msg_write_l2_to_l1_msg_inv, e lookup_sload_storage_read_inv, e lookup_sstore_record_written_storage_slot_inv, e lookup_execution_bytecode_retrieval_result_inv, e lookup_execution_instruction_fetching_result_inv, e lookup_execution_instruction_fetching_body_inv, e lookup_execution_exec_spec_read_inv, e lookup_execution_dyn_l2_factor_bitwise_inv, e lookup_execution_check_radix_gt_256_inv, e lookup_execution_get_p_limbs_inv, e lookup_execution_get_max_limbs_inv, e lookup_execution_check_written_storage_slot_inv, e lookup_execution_dispatch_to_alu_inv, e lookup_execution_dispatch_to_bitwise_inv, e lookup_execution_dispatch_to_cast_inv, e lookup_execution_dispatch_to_set_inv, e lookup_calldata_hashing_get_calldata_field_0_inv, e lookup_calldata_hashing_get_calldata_field_1_inv, e lookup_calldata_hashing_get_calldata_field_2_inv, e lookup_calldata_hashing_poseidon2_hash_inv, e lookup_tx_context_public_inputs_note_hash_tree_inv, e lookup_tx_context_public_inputs_nullifier_tree_inv, e lookup_tx_context_public_inputs_public_data_tree_inv, e lookup_tx_context_public_inputs_l1_l2_tree_inv, e lookup_tx_context_public_inputs_gas_used_inv, e lookup_tx_context_public_inputs_read_gas_limit_inv, e lookup_tx_context_public_inputs_read_reverted_inv, e lookup_tx_context_restore_state_on_revert_inv, e lookup_tx_context_public_inputs_write_note_hash_count_inv, e lookup_tx_context_public_inputs_write_nullifier_count_inv, e lookup_tx_context_public_inputs_write_l2_to_l1_message_count_inv, e lookup_tx_context_public_inputs_write_public_log_count_inv, e lookup_tx_read_phase_spec_inv, e lookup_tx_read_phase_length_inv, e lookup_tx_read_public_call_request_phase_inv, e lookup_tx_read_tree_insert_value_inv, e lookup_tx_note_hash_append_inv, e lookup_tx_nullifier_append_inv, e lookup_tx_read_l2_l1_msg_inv, e lookup_tx_write_l2_l1_msg_inv, e lookup_tx_read_effective_fee_public_inputs_inv, e lookup_tx_read_fee_payer_public_inputs_inv, e lookup_tx_balance_slot_poseidon2_inv, e lookup_tx_balance_read_inv, e lookup_tx_balance_validation_inv, e lookup_tx_write_fee_public_inputs_inv #define AVM2_SHIFTED_ENTITIES_E(e) e bc_decomposition_bytes_shift, e bc_decomposition_bytes_pc_plus_1_shift, e bc_decomposition_bytes_pc_plus_10_shift, e bc_decomposition_bytes_pc_plus_11_shift, e bc_decomposition_bytes_pc_plus_12_shift, e bc_decomposition_bytes_pc_plus_13_shift, e bc_decomposition_bytes_pc_plus_14_shift, e bc_decomposition_bytes_pc_plus_15_shift, e bc_decomposition_bytes_pc_plus_16_shift, e bc_decomposition_bytes_pc_plus_17_shift, e bc_decomposition_bytes_pc_plus_18_shift, e bc_decomposition_bytes_pc_plus_19_shift, e bc_decomposition_bytes_pc_plus_2_shift, e bc_decomposition_bytes_pc_plus_20_shift, e bc_decomposition_bytes_pc_plus_21_shift, e bc_decomposition_bytes_pc_plus_22_shift, e bc_decomposition_bytes_pc_plus_23_shift, e bc_decomposition_bytes_pc_plus_24_shift, e bc_decomposition_bytes_pc_plus_25_shift, e bc_decomposition_bytes_pc_plus_26_shift, e bc_decomposition_bytes_pc_plus_27_shift, e bc_decomposition_bytes_pc_plus_28_shift, e bc_decomposition_bytes_pc_plus_29_shift, e bc_decomposition_bytes_pc_plus_3_shift, e bc_decomposition_bytes_pc_plus_30_shift, e bc_decomposition_bytes_pc_plus_31_shift, e bc_decomposition_bytes_pc_plus_32_shift, e bc_decomposition_bytes_pc_plus_33_shift, e bc_decomposition_bytes_pc_plus_34_shift, e bc_decomposition_bytes_pc_plus_35_shift, e bc_decomposition_bytes_pc_plus_4_shift, e bc_decomposition_bytes_pc_plus_5_shift, e bc_decomposition_bytes_pc_plus_6_shift, e bc_decomposition_bytes_pc_plus_7_shift, e bc_decomposition_bytes_pc_plus_8_shift, e bc_decomposition_bytes_pc_plus_9_shift, e bc_decomposition_bytes_remaining_shift, e bc_decomposition_id_shift, e bc_decomposition_next_packed_pc_shift, e bc_decomposition_pc_shift, e bc_decomposition_sel_shift, e bc_decomposition_sel_windows_gt_remaining_shift, e bc_decomposition_start_shift, e bc_hashing_bytecode_id_shift, e bc_hashing_padding_shift, e bc_hashing_pc_index_1_shift, e bc_hashing_rounds_rem_shift, e bc_hashing_sel_shift, e bc_hashing_sel_not_start_shift, e bc_hashing_start_shift, e bitwise_acc_ia_shift, e bitwise_acc_ib_shift, e bitwise_acc_ic_shift, e bitwise_ctr_shift, e bitwise_op_id_shift, e bitwise_sel_shift, e bitwise_start_shift, e calldata_context_id_shift, e calldata_hashing_calldata_size_shift, e calldata_hashing_context_id_shift, e calldata_hashing_index_0__shift, e calldata_hashing_output_hash_shift, e calldata_hashing_rounds_rem_shift, e calldata_hashing_sel_shift, e calldata_hashing_start_shift, e calldata_index_shift, e calldata_sel_shift, e data_copy_clk_shift, e data_copy_copy_size_shift, e data_copy_dst_addr_shift, e data_copy_dst_context_id_shift, e data_copy_padding_shift, e data_copy_read_addr_shift, e data_copy_reads_left_shift, e data_copy_sel_shift, e data_copy_sel_cd_copy_shift, e data_copy_src_context_id_shift, e data_copy_start_shift, e emit_public_log_contract_address_shift, e emit_public_log_correct_tag_shift, e emit_public_log_error_out_of_bounds_shift, e emit_public_log_error_tag_mismatch_shift, e emit_public_log_execution_clk_shift, e emit_public_log_is_write_contract_address_shift, e emit_public_log_is_write_memory_value_shift, e emit_public_log_log_address_shift, e emit_public_log_public_inputs_index_shift, e emit_public_log_remaining_rows_shift, e emit_public_log_seen_wrong_tag_shift, e emit_public_log_sel_shift, e emit_public_log_sel_write_to_public_inputs_shift, e emit_public_log_space_id_shift, e emit_public_log_start_shift, e execution_bytecode_id_shift, e execution_clk_shift, e execution_context_id_shift, e execution_contract_address_shift, e execution_da_gas_limit_shift, e execution_discard_shift, e execution_dying_context_id_shift, e execution_enqueued_call_start_shift, e execution_internal_call_id_shift, e execution_internal_call_return_id_shift, e execution_is_static_shift, e execution_l1_l2_tree_root_shift, e execution_l2_gas_limit_shift, e execution_last_child_id_shift, e execution_last_child_returndata_addr_shift, e execution_last_child_returndata_size_shift, e execution_last_child_success_shift, e execution_msg_sender_shift, e execution_next_context_id_shift, e execution_next_internal_call_id_shift, e execution_parent_calldata_addr_shift, e execution_parent_calldata_size_shift, e execution_parent_da_gas_limit_shift, e execution_parent_da_gas_used_shift, e execution_parent_id_shift, e execution_parent_l2_gas_limit_shift, e execution_parent_l2_gas_used_shift, e execution_pc_shift, e execution_prev_da_gas_used_shift, e execution_prev_l2_gas_used_shift, e execution_prev_note_hash_tree_root_shift, e execution_prev_note_hash_tree_size_shift, e execution_prev_nullifier_tree_root_shift, e execution_prev_nullifier_tree_size_shift, e execution_prev_num_l2_to_l1_messages_shift, e execution_prev_num_note_hashes_emitted_shift, e execution_prev_num_nullifiers_emitted_shift, e execution_prev_num_public_log_fields_shift, e execution_prev_public_data_tree_root_shift, e execution_prev_public_data_tree_size_shift, e execution_prev_retrieved_bytecodes_tree_root_shift, e execution_prev_retrieved_bytecodes_tree_size_shift, e execution_prev_written_public_data_slots_tree_root_shift, e execution_prev_written_public_data_slots_tree_size_shift, e execution_sel_shift, e execution_sel_first_row_in_context_shift, e execution_transaction_fee_shift, e ff_gt_a_hi_shift, e ff_gt_a_lo_shift, e ff_gt_b_hi_shift, e ff_gt_b_lo_shift, e ff_gt_cmp_rng_ctr_shift, e ff_gt_p_sub_a_hi_shift, e ff_gt_p_sub_a_lo_shift, e ff_gt_p_sub_b_hi_shift, e ff_gt_p_sub_b_lo_shift, e ff_gt_sel_shift, e ff_gt_sel_dec_shift, e ff_gt_sel_gt_shift, e keccak_memory_addr_shift, e keccak_memory_clk_shift, e keccak_memory_ctr_shift, e keccak_memory_rw_shift, e keccak_memory_sel_shift, e keccak_memory_space_id_shift, e keccak_memory_start_read_shift, e keccak_memory_start_write_shift, e keccak_memory_tag_error_shift, e keccak_memory_val_0__shift, e keccak_memory_val_10__shift, e keccak_memory_val_11__shift, e keccak_memory_val_12__shift, e keccak_memory_val_13__shift, e keccak_memory_val_14__shift, e keccak_memory_val_15__shift, e keccak_memory_val_16__shift, e keccak_memory_val_17__shift, e keccak_memory_val_18__shift, e keccak_memory_val_19__shift, e keccak_memory_val_1__shift, e keccak_memory_val_20__shift, e keccak_memory_val_21__shift, e keccak_memory_val_22__shift, e keccak_memory_val_23__shift, e keccak_memory_val_2__shift, e keccak_memory_val_3__shift, e keccak_memory_val_4__shift, e keccak_memory_val_5__shift, e keccak_memory_val_6__shift, e keccak_memory_val_7__shift, e keccak_memory_val_8__shift, e keccak_memory_val_9__shift, e keccakf1600_clk_shift, e keccakf1600_dst_addr_shift, e keccakf1600_round_shift, e keccakf1600_sel_shift, e keccakf1600_sel_no_error_shift, e keccakf1600_space_id_shift, e keccakf1600_start_shift, e keccakf1600_state_in_00_shift, e keccakf1600_state_in_01_shift, e keccakf1600_state_in_02_shift, e keccakf1600_state_in_03_shift, e keccakf1600_state_in_04_shift, e keccakf1600_state_in_10_shift, e keccakf1600_state_in_11_shift, e keccakf1600_state_in_12_shift, e keccakf1600_state_in_13_shift, e keccakf1600_state_in_14_shift, e keccakf1600_state_in_20_shift, e keccakf1600_state_in_21_shift, e keccakf1600_state_in_22_shift, e keccakf1600_state_in_23_shift, e keccakf1600_state_in_24_shift, e keccakf1600_state_in_30_shift, e keccakf1600_state_in_31_shift, e keccakf1600_state_in_32_shift, e keccakf1600_state_in_33_shift, e keccakf1600_state_in_34_shift, e keccakf1600_state_in_40_shift, e keccakf1600_state_in_41_shift, e keccakf1600_state_in_42_shift, e keccakf1600_state_in_43_shift, e keccakf1600_state_in_44_shift, e memory_address_shift, e memory_clk_shift, e memory_rw_shift, e memory_sel_shift, e memory_space_id_shift, e memory_tag_shift, e memory_value_shift, e merkle_check_index_shift, e merkle_check_merkle_hash_separator_shift, e merkle_check_path_len_shift, e merkle_check_read_node_shift, e merkle_check_read_root_shift, e merkle_check_sel_shift, e merkle_check_start_shift, e merkle_check_write_shift, e merkle_check_write_node_shift, e merkle_check_write_root_shift, e poseidon2_hash_a_0_shift, e poseidon2_hash_a_1_shift, e poseidon2_hash_a_2_shift, e poseidon2_hash_a_3_shift, e poseidon2_hash_input_0_shift, e poseidon2_hash_input_1_shift, e poseidon2_hash_input_2_shift, e poseidon2_hash_num_perm_rounds_rem_shift, e poseidon2_hash_output_shift, e poseidon2_hash_sel_shift, e poseidon2_hash_start_shift, e public_data_check_clk_shift, e public_data_check_sel_shift, e public_data_check_write_idx_shift, e public_data_squash_clk_shift, e public_data_squash_final_value_shift, e public_data_squash_leaf_slot_shift, e public_data_squash_sel_shift, e public_data_squash_write_to_public_inputs_shift, e scalar_mul_bit_idx_shift, e scalar_mul_point_inf_shift, e scalar_mul_point_x_shift, e scalar_mul_point_y_shift, e scalar_mul_res_inf_shift, e scalar_mul_res_x_shift, e scalar_mul_res_y_shift, e scalar_mul_scalar_shift, e scalar_mul_sel_shift, e scalar_mul_start_shift, e scalar_mul_temp_inf_shift, e scalar_mul_temp_x_shift, e scalar_mul_temp_y_shift, e sha256_a_shift, e sha256_b_shift, e sha256_c_shift, e sha256_d_shift, e sha256_e_shift, e sha256_execution_clk_shift, e sha256_f_shift, e sha256_g_shift, e sha256_h_shift, e sha256_helper_w0_shift, e sha256_helper_w1_shift, e sha256_helper_w10_shift, e sha256_helper_w11_shift, e sha256_helper_w12_shift, e sha256_helper_w13_shift, e sha256_helper_w14_shift, e sha256_helper_w15_shift, e sha256_helper_w2_shift, e sha256_helper_w3_shift, e sha256_helper_w4_shift, e sha256_helper_w5_shift, e sha256_helper_w6_shift, e sha256_helper_w7_shift, e sha256_helper_w8_shift, e sha256_helper_w9_shift, e sha256_init_a_shift, e sha256_init_b_shift, e sha256_init_c_shift, e sha256_init_d_shift, e sha256_init_e_shift, e sha256_init_f_shift, e sha256_init_g_shift, e sha256_init_h_shift, e sha256_input_addr_shift, e sha256_input_rounds_rem_shift, e sha256_output_addr_shift, e sha256_rounds_remaining_shift, e sha256_sel_shift, e sha256_sel_invalid_input_tag_err_shift, e sha256_space_id_shift, e sha256_start_shift, e to_radix_acc_shift, e to_radix_acc_under_p_shift, e to_radix_limb_shift, e to_radix_limb_eq_p_shift, e to_radix_limb_index_shift, e to_radix_limb_lt_p_shift, e to_radix_mem_dst_addr_shift, e to_radix_mem_execution_clk_shift, e to_radix_mem_is_output_bits_shift, e to_radix_mem_num_limbs_shift, e to_radix_mem_radix_shift, e to_radix_mem_sel_shift, e to_radix_mem_sel_should_decompose_shift, e to_radix_mem_sel_should_write_mem_shift, e to_radix_mem_space_id_shift, e to_radix_mem_start_shift, e to_radix_mem_value_to_decompose_shift, e to_radix_not_padding_limb_shift, e to_radix_power_shift, e to_radix_radix_shift, e to_radix_safe_limbs_shift, e to_radix_sel_shift, e to_radix_start_shift, e to_radix_value_shift, e tx_da_gas_limit_shift, e tx_discard_shift, e tx_fee_shift, e tx_is_revertible_shift, e tx_is_teardown_shift, e tx_l1_l2_tree_root_shift, e tx_l1_l2_tree_size_shift, e tx_l2_gas_limit_shift, e tx_next_context_id_shift, e tx_phase_value_shift, e tx_prev_da_gas_used_shift, e tx_prev_l2_gas_used_shift, e tx_prev_note_hash_tree_root_shift, e tx_prev_note_hash_tree_size_shift, e tx_prev_nullifier_tree_root_shift, e tx_prev_nullifier_tree_size_shift, e tx_prev_num_l2_to_l1_messages_shift, e tx_prev_num_note_hashes_emitted_shift, e tx_prev_num_nullifiers_emitted_shift, e tx_prev_num_public_log_fields_shift, e tx_prev_public_data_tree_root_shift, e tx_prev_public_data_tree_size_shift, e tx_prev_retrieved_bytecodes_tree_root_shift, e tx_prev_retrieved_bytecodes_tree_size_shift, e tx_prev_written_public_data_slots_tree_root_shift, e tx_prev_written_public_data_slots_tree_size_shift, e tx_read_pi_offset_shift, e tx_remaining_phase_counter_shift, e tx_reverted_shift, e tx_sel_shift, e tx_start_phase_shift, e tx_start_tx_shift, e tx_tx_reverted_shift #define AVM2_TO_BE_SHIFTED_E(e) e bc_decomposition_bytes, e bc_decomposition_bytes_pc_plus_1, e bc_decomposition_bytes_pc_plus_10, e bc_decomposition_bytes_pc_plus_11, e bc_decomposition_bytes_pc_plus_12, e bc_decomposition_bytes_pc_plus_13, e bc_decomposition_bytes_pc_plus_14, e bc_decomposition_bytes_pc_plus_15, e bc_decomposition_bytes_pc_plus_16, e bc_decomposition_bytes_pc_plus_17, e bc_decomposition_bytes_pc_plus_18, e bc_decomposition_bytes_pc_plus_19, e bc_decomposition_bytes_pc_plus_2, e bc_decomposition_bytes_pc_plus_20, e bc_decomposition_bytes_pc_plus_21, e bc_decomposition_bytes_pc_plus_22, e bc_decomposition_bytes_pc_plus_23, e bc_decomposition_bytes_pc_plus_24, e bc_decomposition_bytes_pc_plus_25, e bc_decomposition_bytes_pc_plus_26, e bc_decomposition_bytes_pc_plus_27, e bc_decomposition_bytes_pc_plus_28, e bc_decomposition_bytes_pc_plus_29, e bc_decomposition_bytes_pc_plus_3, e bc_decomposition_bytes_pc_plus_30, e bc_decomposition_bytes_pc_plus_31, e bc_decomposition_bytes_pc_plus_32, e bc_decomposition_bytes_pc_plus_33, e bc_decomposition_bytes_pc_plus_34, e bc_decomposition_bytes_pc_plus_35, e bc_decomposition_bytes_pc_plus_4, e bc_decomposition_bytes_pc_plus_5, e bc_decomposition_bytes_pc_plus_6, e bc_decomposition_bytes_pc_plus_7, e bc_decomposition_bytes_pc_plus_8, e bc_decomposition_bytes_pc_plus_9, e bc_decomposition_bytes_remaining, e bc_decomposition_id, e bc_decomposition_next_packed_pc, e bc_decomposition_pc, e bc_decomposition_sel, e bc_decomposition_sel_windows_gt_remaining, e bc_decomposition_start, e bc_hashing_bytecode_id, e bc_hashing_padding, e bc_hashing_pc_index_1, e bc_hashing_rounds_rem, e bc_hashing_sel, e bc_hashing_sel_not_start, e bc_hashing_start, e bitwise_acc_ia, e bitwise_acc_ib, e bitwise_acc_ic, e bitwise_ctr, e bitwise_op_id, e bitwise_sel, e bitwise_start, e calldata_context_id, e calldata_hashing_calldata_size, e calldata_hashing_context_id, e calldata_hashing_index_0_, e calldata_hashing_output_hash, e calldata_hashing_rounds_rem, e calldata_hashing_sel, e calldata_hashing_start, e calldata_index, e calldata_sel, e data_copy_clk, e data_copy_copy_size, e data_copy_dst_addr, e data_copy_dst_context_id, e data_copy_padding, e data_copy_read_addr, e data_copy_reads_left, e data_copy_sel, e data_copy_sel_cd_copy, e data_copy_src_context_id, e data_copy_start, e emit_public_log_contract_address, e emit_public_log_correct_tag, e emit_public_log_error_out_of_bounds, e emit_public_log_error_tag_mismatch, e emit_public_log_execution_clk, e emit_public_log_is_write_contract_address, e emit_public_log_is_write_memory_value, e emit_public_log_log_address, e emit_public_log_public_inputs_index, e emit_public_log_remaining_rows, e emit_public_log_seen_wrong_tag, e emit_public_log_sel, e emit_public_log_sel_write_to_public_inputs, e emit_public_log_space_id, e emit_public_log_start, e execution_bytecode_id, e execution_clk, e execution_context_id, e execution_contract_address, e execution_da_gas_limit, e execution_discard, e execution_dying_context_id, e execution_enqueued_call_start, e execution_internal_call_id, e execution_internal_call_return_id, e execution_is_static, e execution_l1_l2_tree_root, e execution_l2_gas_limit, e execution_last_child_id, e execution_last_child_returndata_addr, e execution_last_child_returndata_size, e execution_last_child_success, e execution_msg_sender, e execution_next_context_id, e execution_next_internal_call_id, e execution_parent_calldata_addr, e execution_parent_calldata_size, e execution_parent_da_gas_limit, e execution_parent_da_gas_used, e execution_parent_id, e execution_parent_l2_gas_limit, e execution_parent_l2_gas_used, e execution_pc, e execution_prev_da_gas_used, e execution_prev_l2_gas_used, e execution_prev_note_hash_tree_root, e execution_prev_note_hash_tree_size, e execution_prev_nullifier_tree_root, e execution_prev_nullifier_tree_size, e execution_prev_num_l2_to_l1_messages, e execution_prev_num_note_hashes_emitted, e execution_prev_num_nullifiers_emitted, e execution_prev_num_public_log_fields, e execution_prev_public_data_tree_root, e execution_prev_public_data_tree_size, e execution_prev_retrieved_bytecodes_tree_root, e execution_prev_retrieved_bytecodes_tree_size, e execution_prev_written_public_data_slots_tree_root, e execution_prev_written_public_data_slots_tree_size, e execution_sel, e execution_sel_first_row_in_context, e execution_transaction_fee, e ff_gt_a_hi, e ff_gt_a_lo, e ff_gt_b_hi, e ff_gt_b_lo, e ff_gt_cmp_rng_ctr, e ff_gt_p_sub_a_hi, e ff_gt_p_sub_a_lo, e ff_gt_p_sub_b_hi, e ff_gt_p_sub_b_lo, e ff_gt_sel, e ff_gt_sel_dec, e ff_gt_sel_gt, e keccak_memory_addr, e keccak_memory_clk, e keccak_memory_ctr, e keccak_memory_rw, e keccak_memory_sel, e keccak_memory_space_id, e keccak_memory_start_read, e keccak_memory_start_write, e keccak_memory_tag_error, e keccak_memory_val_0_, e keccak_memory_val_10_, e keccak_memory_val_11_, e keccak_memory_val_12_, e keccak_memory_val_13_, e keccak_memory_val_14_, e keccak_memory_val_15_, e keccak_memory_val_16_, e keccak_memory_val_17_, e keccak_memory_val_18_, e keccak_memory_val_19_, e keccak_memory_val_1_, e keccak_memory_val_20_, e keccak_memory_val_21_, e keccak_memory_val_22_, e keccak_memory_val_23_, e keccak_memory_val_2_, e keccak_memory_val_3_, e keccak_memory_val_4_, e keccak_memory_val_5_, e keccak_memory_val_6_, e keccak_memory_val_7_, e keccak_memory_val_8_, e keccak_memory_val_9_, e keccakf1600_clk, e keccakf1600_dst_addr, e keccakf1600_round, e keccakf1600_sel, e keccakf1600_sel_no_error, e keccakf1600_space_id, e keccakf1600_start, e keccakf1600_state_in_00, e keccakf1600_state_in_01, e keccakf1600_state_in_02, e keccakf1600_state_in_03, e keccakf1600_state_in_04, e keccakf1600_state_in_10, e keccakf1600_state_in_11, e keccakf1600_state_in_12, e keccakf1600_state_in_13, e keccakf1600_state_in_14, e keccakf1600_state_in_20, e keccakf1600_state_in_21, e keccakf1600_state_in_22, e keccakf1600_state_in_23, e keccakf1600_state_in_24, e keccakf1600_state_in_30, e keccakf1600_state_in_31, e keccakf1600_state_in_32, e keccakf1600_state_in_33, e keccakf1600_state_in_34, e keccakf1600_state_in_40, e keccakf1600_state_in_41, e keccakf1600_state_in_42, e keccakf1600_state_in_43, e keccakf1600_state_in_44, e memory_address, e memory_clk, e memory_rw, e memory_sel, e memory_space_id, e memory_tag, e memory_value, e merkle_check_index, e merkle_check_merkle_hash_separator, e merkle_check_path_len, e merkle_check_read_node, e merkle_check_read_root, e merkle_check_sel, e merkle_check_start, e merkle_check_write, e merkle_check_write_node, e merkle_check_write_root, e poseidon2_hash_a_0, e poseidon2_hash_a_1, e poseidon2_hash_a_2, e poseidon2_hash_a_3, e poseidon2_hash_input_0, e poseidon2_hash_input_1, e poseidon2_hash_input_2, e poseidon2_hash_num_perm_rounds_rem, e poseidon2_hash_output, e poseidon2_hash_sel, e poseidon2_hash_start, e public_data_check_clk, e public_data_check_sel, e public_data_check_write_idx, e public_data_squash_clk, e public_data_squash_final_value, e public_data_squash_leaf_slot, e public_data_squash_sel, e public_data_squash_write_to_public_inputs, e scalar_mul_bit_idx, e scalar_mul_point_inf, e scalar_mul_point_x, e scalar_mul_point_y, e scalar_mul_res_inf, e scalar_mul_res_x, e scalar_mul_res_y, e scalar_mul_scalar, e scalar_mul_sel, e scalar_mul_start, e scalar_mul_temp_inf, e scalar_mul_temp_x, e scalar_mul_temp_y, e sha256_a, e sha256_b, e sha256_c, e sha256_d, e sha256_e, e sha256_execution_clk, e sha256_f, e sha256_g, e sha256_h, e sha256_helper_w0, e sha256_helper_w1, e sha256_helper_w10, e sha256_helper_w11, e sha256_helper_w12, e sha256_helper_w13, e sha256_helper_w14, e sha256_helper_w15, e sha256_helper_w2, e sha256_helper_w3, e sha256_helper_w4, e sha256_helper_w5, e sha256_helper_w6, e sha256_helper_w7, e sha256_helper_w8, e sha256_helper_w9, e sha256_init_a, e sha256_init_b, e sha256_init_c, e sha256_init_d, e sha256_init_e, e sha256_init_f, e sha256_init_g, e sha256_init_h, e sha256_input_addr, e sha256_input_rounds_rem, e sha256_output_addr, e sha256_rounds_remaining, e sha256_sel, e sha256_sel_invalid_input_tag_err, e sha256_space_id, e sha256_start, e to_radix_acc, e to_radix_acc_under_p, e to_radix_limb, e to_radix_limb_eq_p, e to_radix_limb_index, e to_radix_limb_lt_p, e to_radix_mem_dst_addr, e to_radix_mem_execution_clk, e to_radix_mem_is_output_bits, e to_radix_mem_num_limbs, e to_radix_mem_radix, e to_radix_mem_sel, e to_radix_mem_sel_should_decompose, e to_radix_mem_sel_should_write_mem, e to_radix_mem_space_id, e to_radix_mem_start, e to_radix_mem_value_to_decompose, e to_radix_not_padding_limb, e to_radix_power, e to_radix_radix, e to_radix_safe_limbs, e to_radix_sel, e to_radix_start, e to_radix_value, e tx_da_gas_limit, e tx_discard, e tx_fee, e tx_is_revertible, e tx_is_teardown, e tx_l1_l2_tree_root, e tx_l1_l2_tree_size, e tx_l2_gas_limit, e tx_next_context_id, e tx_phase_value, e tx_prev_da_gas_used, e tx_prev_l2_gas_used, e tx_prev_note_hash_tree_root, e tx_prev_note_hash_tree_size, e tx_prev_nullifier_tree_root, e tx_prev_nullifier_tree_size, e tx_prev_num_l2_to_l1_messages, e tx_prev_num_note_hashes_emitted, e tx_prev_num_nullifiers_emitted, e tx_prev_num_public_log_fields, e tx_prev_public_data_tree_root, e tx_prev_public_data_tree_size, e tx_prev_retrieved_bytecodes_tree_root, e tx_prev_retrieved_bytecodes_tree_size, e tx_prev_written_public_data_slots_tree_root, e tx_prev_written_public_data_slots_tree_size, e tx_read_pi_offset, e tx_remaining_phase_counter, e tx_reverted, e tx_sel, e tx_start_phase, e tx_start_tx, e tx_tx_reverted @@ -36,16 +36,16 @@ enum class ColumnAndShifts { SENTINEL_DO_NOT_USE, }; -constexpr auto NUM_COLUMNS_WITH_SHIFTS = 3438; -constexpr auto NUM_COLUMNS_WITHOUT_SHIFTS = 3074; +constexpr auto NUM_COLUMNS_WITH_SHIFTS = 3439; +constexpr auto NUM_COLUMNS_WITHOUT_SHIFTS = 3075; constexpr auto NUM_PRECOMPUTED_ENTITIES = 119; -constexpr auto NUM_WIRE_ENTITIES = 2511; +constexpr auto NUM_WIRE_ENTITIES = 2512; constexpr auto NUM_DERIVED_ENTITIES = 444; constexpr auto NUM_WITNESS_ENTITIES = NUM_WIRE_ENTITIES + NUM_DERIVED_ENTITIES; constexpr auto NUM_WIRES_TO_BE_SHIFTED = 364; constexpr auto NUM_SHIFTED_ENTITIES = 364; constexpr auto NUM_UNSHIFTED_ENTITIES = NUM_COLUMNS_WITHOUT_SHIFTS; -constexpr auto NUM_ALL_ENTITIES = 3438; +constexpr auto NUM_ALL_ENTITIES = 3439; /* * Layout for all entities is: diff --git a/barretenberg/cpp/src/barretenberg/vm2/generated/flavor_variables.hpp b/barretenberg/cpp/src/barretenberg/vm2/generated/flavor_variables.hpp index 22c2e6bc3473..4f8a7766f253 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/generated/flavor_variables.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/generated/flavor_variables.hpp @@ -141,10 +141,10 @@ namespace bb::avm2 { struct AvmFlavorVariables { static constexpr size_t NUM_PRECOMPUTED_ENTITIES = 119; - static constexpr size_t NUM_WITNESS_ENTITIES = 2955; + static constexpr size_t NUM_WITNESS_ENTITIES = 2956; static constexpr size_t NUM_SHIFTED_ENTITIES = 364; - static constexpr size_t NUM_WIRES = 2511; - static constexpr size_t NUM_ALL_ENTITIES = 3438; + static constexpr size_t NUM_WIRES = 2512; + static constexpr size_t NUM_ALL_ENTITIES = 3439; // Need to be templated for recursive verifier template diff --git a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/contract_instance_retrieval.hpp b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/contract_instance_retrieval.hpp index 20d2e8432637..c58b25b8e2d6 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/contract_instance_retrieval.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/contract_instance_retrieval.hpp @@ -14,8 +14,8 @@ template class contract_instance_retrievalImpl { public: using FF = FF_; - static constexpr std::array SUBRELATION_PARTIAL_LENGTHS = { 3, 3, 3, 2, 3, 3, 5, 3, 3, - 3, 3, 4, 4, 4, 4, 4, 4, 3 }; + static constexpr std::array SUBRELATION_PARTIAL_LENGTHS = { 3, 3, 3, 2, 3, 3, 5, 3, 3, 3, + 3, 4, 4, 4, 4, 4, 4, 4, 3 }; template inline static bool skip(const AllEntities& in) { @@ -47,6 +47,7 @@ template class contract_instance_retrieval : public Relation class contract_instance_retrieval : public Relation::accumulate(ContainerOverSubrelations& static_cast(in.get(C::contract_instance_retrieval_init_hash)); std::get<16>(evals) += (tmp * scaling_factor); } - { + { // INSTANCE_MEMBER_IMMUTABLES_HASH_IS_ZERO_IF_DNE using View = typename std::tuple_element_t<17, ContainerOverSubrelations>::View; + auto tmp = static_cast(in.get(C::contract_instance_retrieval_sel)) * + (FF(1) - static_cast(in.get(C::contract_instance_retrieval_exists))) * + static_cast(in.get(C::contract_instance_retrieval_immutables_hash)); + std::get<17>(evals) += (tmp * scaling_factor); + } + { + using View = typename std::tuple_element_t<18, ContainerOverSubrelations>::View; auto tmp = (static_cast(in.get(C::contract_instance_retrieval_should_check_for_update)) - static_cast(in.get(C::contract_instance_retrieval_should_check_nullifier)) * static_cast(in.get(C::contract_instance_retrieval_exists))); - std::get<17>(evals) += (tmp * scaling_factor); + std::get<18>(evals) += (tmp * scaling_factor); } } diff --git a/barretenberg/cpp/src/barretenberg/vm2/simulation/lib/hinting_dbs.cpp b/barretenberg/cpp/src/barretenberg/vm2/simulation/lib/hinting_dbs.cpp index 71f55503510f..d470b3de7430 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/simulation/lib/hinting_dbs.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/simulation/lib/hinting_dbs.cpp @@ -31,6 +31,7 @@ std::optional HintingContractsDB::get_contract_instance(const .current_contract_class_id = instance->current_contract_class_id, .original_contract_class_id = instance->original_contract_class_id, .initialization_hash = instance->initialization_hash, + .immutables_hash = instance->immutables_hash, .public_keys = PublicKeysHint{ .master_nullifier_public_key = instance->public_keys.nullifier_key, .master_incoming_viewing_public_key = instance->public_keys.incoming_viewing_key, diff --git a/barretenberg/cpp/src/barretenberg/vm2/simulation/lib/raw_data_dbs.cpp b/barretenberg/cpp/src/barretenberg/vm2/simulation/lib/raw_data_dbs.cpp index 43789d46d53e..07dbf74e44c1 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/simulation/lib/raw_data_dbs.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/simulation/lib/raw_data_dbs.cpp @@ -113,6 +113,7 @@ std::optional HintedRawContractDB::get_contract_instance(const .current_contract_class_id = contract_instance_hint.current_contract_class_id, .original_contract_class_id = contract_instance_hint.original_contract_class_id, .initialization_hash = contract_instance_hint.initialization_hash, + .immutables_hash = contract_instance_hint.immutables_hash, .public_keys = PublicKeys{ .nullifier_key = contract_instance_hint.public_keys.master_nullifier_public_key, diff --git a/barretenberg/cpp/src/barretenberg/vm2/testing/avm_inputs.testdata.bin b/barretenberg/cpp/src/barretenberg/vm2/testing/avm_inputs.testdata.bin index 515bb19cc8da..0a6a56584a8c 100644 Binary files a/barretenberg/cpp/src/barretenberg/vm2/testing/avm_inputs.testdata.bin and b/barretenberg/cpp/src/barretenberg/vm2/testing/avm_inputs.testdata.bin differ diff --git a/barretenberg/cpp/src/barretenberg/vm2/testing/fixtures.cpp b/barretenberg/cpp/src/barretenberg/vm2/testing/fixtures.cpp index 1d26f21b5482..fe0350f2537b 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/testing/fixtures.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/testing/fixtures.cpp @@ -163,6 +163,7 @@ ContractInstance random_contract_instance() .current_contract_class_id = FF::random_element(), .original_contract_class_id = FF::random_element(), .initialization_hash = FF::random_element(), + .immutables_hash = FF::random_element(), .public_keys = PublicKeys{ .nullifier_key = AffinePoint::random_element(), .incoming_viewing_key = AffinePoint::random_element(), diff --git a/barretenberg/cpp/src/barretenberg/vm2/testing/minimal_tx.testdata.bin b/barretenberg/cpp/src/barretenberg/vm2/testing/minimal_tx.testdata.bin index b1bad858f3f2..9a8300965748 100644 Binary files a/barretenberg/cpp/src/barretenberg/vm2/testing/minimal_tx.testdata.bin and b/barretenberg/cpp/src/barretenberg/vm2/testing/minimal_tx.testdata.bin differ diff --git a/barretenberg/cpp/src/barretenberg/vm2/tracegen/contract_instance_retrieval_trace.cpp b/barretenberg/cpp/src/barretenberg/vm2/tracegen/contract_instance_retrieval_trace.cpp index 1ca1e17954c2..e436bf1b891c 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/tracegen/contract_instance_retrieval_trace.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/tracegen/contract_instance_retrieval_trace.cpp @@ -62,6 +62,7 @@ void ContractInstanceRetrievalTraceBuilder::process( { C::contract_instance_retrieval_original_class_id, event.contract_instance.original_contract_class_id }, { C::contract_instance_retrieval_init_hash, event.contract_instance.initialization_hash }, + { C::contract_instance_retrieval_immutables_hash, event.contract_instance.immutables_hash }, // Public keys (hinted) { C::contract_instance_retrieval_nullifier_key_x, event.contract_instance.public_keys.nullifier_key.x }, diff --git a/barretenberg/cpp/src/barretenberg/vm2/tracegen/contract_instance_retrieval_trace.test.cpp b/barretenberg/cpp/src/barretenberg/vm2/tracegen/contract_instance_retrieval_trace.test.cpp index 865470f908cd..b831956b057e 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/tracegen/contract_instance_retrieval_trace.test.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/tracegen/contract_instance_retrieval_trace.test.cpp @@ -28,6 +28,7 @@ ContractInstance create_test_contract_instance(uint32_t salt_value = 123) .current_contract_class_id = FF(0xdeadbeefULL), .original_contract_class_id = FF(0xcafebabeULL), .initialization_hash = FF(0x11111111ULL), + .immutables_hash = FF(0x22222222ULL), .public_keys = PublicKeys{ .nullifier_key = { FF(0x100), FF(0x101) }, @@ -98,6 +99,7 @@ TEST(ContractInstanceRetrievalTraceGenTest, SingleEvent) ROW_FIELD_EQ(contract_instance_retrieval_current_class_id, 0xdeadbeefULL), ROW_FIELD_EQ(contract_instance_retrieval_original_class_id, 0xcafebabeULL), ROW_FIELD_EQ(contract_instance_retrieval_init_hash, 0x11111111ULL), + ROW_FIELD_EQ(contract_instance_retrieval_immutables_hash, 0x22222222ULL), // Public keys ROW_FIELD_EQ(contract_instance_retrieval_nullifier_key_x, 0x100), diff --git a/noir-projects/aztec-nr/aztec/src/publish_contract_instance.nr b/noir-projects/aztec-nr/aztec/src/publish_contract_instance.nr index 6cd429499339..157aa6d26b1f 100644 --- a/noir-projects/aztec-nr/aztec/src/publish_contract_instance.nr +++ b/noir-projects/aztec-nr/aztec/src/publish_contract_instance.nr @@ -25,24 +25,25 @@ pub fn publish_contract_instance_for_public_execution(context: &mut PrivateConte // ../../yarn-project/node_modules/.bin/aztec-cli codegen // target/contract_instance_registry_contract-ContractInstanceRegistry.json --nr -o // ./contracts/contract_instance_registry_contract/src/interface - let mut serialized_args = [0; 16]; + let mut serialized_args = [0; 17]; serialized_args[0] = instance.salt; serialized_args[1] = instance.contract_class_id.to_field(); serialized_args[2] = instance.initialization_hash; + serialized_args[3] = instance.immutables_hash; let serialized_public_keys = instance.public_keys.serialize(); for i in 0..12 { - serialized_args[i + 3] = serialized_public_keys[i]; + serialized_args[i + 4] = serialized_public_keys[i]; } - serialized_args[15] = universal_deploy as Field; + serialized_args[16] = universal_deploy as Field; let _call_result = context.call_private_function( CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS, comptime { FunctionSelector::from_signature( - "publish_for_public_execution(Field,(Field),Field,(((Field,Field,bool)),((Field,Field,bool)),((Field,Field,bool)),((Field,Field,bool))),bool)", + "publish_for_public_execution(Field,(Field),Field,Field,(((Field,Field,bool)),((Field,Field,bool)),((Field,Field,bool)),((Field,Field,bool))),bool)", ) }, serialized_args, diff --git a/noir-projects/noir-contracts/contracts/protocol/contract_instance_registry_contract/src/main.nr b/noir-projects/noir-contracts/contracts/protocol/contract_instance_registry_contract/src/main.nr index e8f1e8c0bb4a..9c0b61646f8a 100644 --- a/noir-projects/noir-contracts/contracts/protocol/contract_instance_registry_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/protocol/contract_instance_registry_contract/src/main.nr @@ -32,6 +32,7 @@ pub contract ContractInstanceRegistry { salt: Field, contract_class_id: ContractClassId, initialization_hash: Field, + immutables_hash: Field, public_keys: PublicKeys, deployer: AztecAddress, } @@ -39,7 +40,7 @@ pub contract ContractInstanceRegistry { // Custom serialization is required because we don't want to waste one field for the `is_infinite` flag of public // key points (public key points will never be the infinity point). impl ContractInstancePublished { - fn serialize_non_standard(self) -> [Field; 15] { + fn serialize_non_standard(self) -> [Field; 16] { [ self.CONTRACT_INSTANCE_PUBLISHED_MAGIC_VALUE, self.address.to_field(), @@ -47,6 +48,7 @@ pub contract ContractInstanceRegistry { self.salt, self.contract_class_id.to_field(), self.initialization_hash, + self.immutables_hash, self.public_keys.npk_m.serialize()[0], self.public_keys.npk_m.serialize()[1], self.public_keys.ivpk_m.serialize()[0], @@ -77,7 +79,8 @@ pub contract ContractInstanceRegistry { /// Publishes a new contract instance. /// - /// The caller provides deployment parameters (salt, class_id, init_hash, public_keys, universal_deploy). + /// The caller provides deployment parameters (salt, class_id, init_hash, immutables_hash, public_keys, + /// universal_deploy). /// The `universal_deploy` flag controls whether the deployer address is bound into the contract address: /// when true, deployer is zero (anyone can deploy the same instance); when false, deployer is the caller. /// @@ -95,6 +98,7 @@ pub contract ContractInstanceRegistry { salt: Field, contract_class_id: ContractClassId, initialization_hash: Field, + immutables_hash: Field, public_keys: PublicKeys, universal_deploy: bool, ) -> return_data aztec::protocol::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs { @@ -103,7 +107,9 @@ pub contract ContractInstanceRegistry { // body, I have removed that check. assert_compatible_oracle_version(); - let serialized_params: [Field; 16] = [salt, contract_class_id.to_field(), initialization_hash] + // 4 prefix fields (salt, class_id, init_hash, immutables_hash) + 12 public-key fields + 1 universal_deploy + // flag. + let serialized_params: [Field; 17] = [salt, contract_class_id.to_field(), initialization_hash, immutables_hash] .concat(public_keys.serialize()) .concat([universal_deploy.to_field()]); @@ -146,17 +152,15 @@ pub contract ContractInstanceRegistry { address, public_keys, initialization_hash, + immutables_hash, salt, deployer, - version: 1, + version: 2, }; let payload = event.serialize_non_standard(); debug_log_format("ContractInstancePublished: {}", payload); - // We pad the payload with [0] to match the length required by emit_private_log. Since the log is not - // encrypted, padding with zero rather than a random value is acceptable (we don't care about privacy here). - let padded_log = payload.concat([0]); let length = payload.len(); - context.emit_private_log(padded_log, length); + context.emit_private_log(payload, length); // MACRO CODE START context.finish() @@ -307,6 +311,7 @@ pub contract ContractInstanceRegistry { pub _salt: Field, pub _contract_class_id: ContractClassId, pub _initialization_hash: Field, + pub _immutables_hash: Field, pub _public_keys: PublicKeys, pub _universal_deploy: bool, } diff --git a/noir-projects/noir-contracts/contracts/protocol_interface/contract_instance_registry_interface/src/main.nr b/noir-projects/noir-contracts/contracts/protocol_interface/contract_instance_registry_interface/src/main.nr index d672c3b7bf5b..43af16745a71 100644 --- a/noir-projects/noir-contracts/contracts/protocol_interface/contract_instance_registry_interface/src/main.nr +++ b/noir-projects/noir-contracts/contracts/protocol_interface/contract_instance_registry_interface/src/main.nr @@ -25,6 +25,7 @@ pub contract ContractInstanceRegistry { salt: Field, contract_class_id: ContractClassId, initialization_hash: Field, + immutables_hash: Field, public_keys: PublicKeys, universal_deploy: bool, ) {} diff --git a/noir-projects/noir-protocol-circuits/crates/private-kernel-init/Prover.toml b/noir-projects/noir-protocol-circuits/crates/private-kernel-init/Prover.toml index 11d2e8ee0b13..1bcc5583afb4 100644 --- a/noir-projects/noir-protocol-circuits/crates/private-kernel-init/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/private-kernel-init/Prover.toml @@ -1,18 +1,18 @@ -vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" +vk_tree_root = "0x115e00fed9b96e899daa4210aaf690c52c3fb9024f12ecfa6295969410d246a4" is_private_only = false -first_nullifier_hint = "0x09fac458f9e079d0117ef63746c55ce66b3e5d95c8420974d9c69f369b0d77ef" +first_nullifier_hint = "0x13adb1d6054fb22ca3aa5d15d174af958294a4c864af64472cfb0bd66d609b12" revertible_counter_hint = "0x0000000000000000000000000000000000000000000000000000000000000005" [tx_request] -args_hash = "0x2237e42a84e35fc9371ec568e04d6db13130f02f527e0cce6f78ebf038f70f5f" -salt = "0x0dcc552c9a204fa5c60481076f34e420fdd64d81a8c273ad1c336f00b6912f8c" +args_hash = "0x287e8f0f14be024bcdb785537dd1436a237bf64a937589f8ae8eae465ed1db21" +salt = "0x1425eb7a27091218bd7ef327ab08169a29d3d3d8aac86dddadc73b61b97ec563" [tx_request.origin] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x004093295436e1581085b446326dceb0678c0fdee4aec1d441b23d0c941a4f2a" [tx_request.tx_context] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x000000000000000000000000000000000000000000000000000000008cdefce3" [tx_request.tx_context.gas_settings.gas_limits] da_gas = "0x0000000000000000000000000000000000000000000000000000000000030000" @@ -37,16 +37,16 @@ fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000000000 inner = "0x000000000000000000000000000000000000000000000000000000009d57a239" [[protocol_contracts.derived_addresses]] -inner = "0x1520f4bb11a3a1d2248a03d8472e9af4bb8324eb1d2d8c83bce61894383464b9" +inner = "0x2912f9783016adf7fdf369db240edfcd44b2020430c231cbad6e025feb6f0156" [[protocol_contracts.derived_addresses]] -inner = "0x26a43bf066852a7b1ec3c5b454f41735fea12e2ffbefed471058124b91d94018" +inner = "0x12e6d1296cc8a232b0cd04bc902425bd660d1c33f367054658565b895dd02792" [[protocol_contracts.derived_addresses]] inner = "0x1bd26c6831ebc53674b13ac69a0c534563c37e46c2cbb36f2deca107a26515fa" [[protocol_contracts.derived_addresses]] -inner = "0x06870c63132d2a4e3356a76d773240efe729e7d9b9380a7a3cf1798fc9031aed" +inner = "0x1a6c91c4f8e806d987e3cbaa9220bade6e1ac8c9e74aad593fb75a31ece44f0c" [[protocol_contracts.derived_addresses]] inner = "0x0083c4dfb922796f1086d399f8f3d021159d1a87ba3b833dcdf9863c630ba643" @@ -218,7 +218,7 @@ key = [ hash = "0x103023eab6f953f6b7b9525f412e0bc1655bd72d5e4b46ded148c6137deb9006" [private_call.verification_key_hints] -contract_class_artifact_hash = "0x1d8791271c09cabf2ac9aaa6bd8095b473d90e367f72c6df771aa7a4ec960f9e" +contract_class_artifact_hash = "0x29421a877388f045c82fcc2ec780c0a393720cc32ac4a2415052fb4d6099e0f2" contract_class_public_bytecode_commitment = "0x0ce4c618c3ed7f3a20410e618c06bb701e150af7fe28a3e92f68e7733809f33e" updated_class_id_delayed_public_mutable_values = [ "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -239,39 +239,39 @@ updated_class_id_delayed_public_mutable_values = [ ] [private_call.verification_key_hints.public_keys.npk_m.inner] -x = "0x025f9f657095ad240d89a28336e0f7be994c9f270d62c6a3228aa8bada12d01d" -y = "0x1a7e0782cbdd3ebc39b0bd4a33b5894cb3451bc52c2fadd70371ed8d81db479f" +x = "0x08020a607259c2c56bb8ee59c2e8203eeff8ecbf18f33552efb9f9bbbdbd4c40" +y = "0x2a0b3f8df818db792ab556fb8739d9ae98a647976880ec230102f767ed8d028a" is_infinite = false [private_call.verification_key_hints.public_keys.ivpk_m.inner] -x = "0x22f40cddddbd77c2aa6fead1b876909111a45ab1b5f69a48df1440764a7dcd90" -y = "0x1a6c5d7af83395c1e6c82ef8cb26ec6674f65cfb52521dae0b54130764bdf10d" +x = "0x1cd1bccce6ee6e3ab4863d334e756edc986a8ff1f87b7db054e813fb9231a5ce" +y = "0x2f6ca2abfcec37b75dcf34c17aa4c1e507e00cfc33323a082f7e4fff8a21ccc4" is_infinite = false [private_call.verification_key_hints.public_keys.ovpk_m.inner] -x = "0x2d41c74462094b1d13ed19ce294c4a39cdc7635080f32399494e5e796b663933" -y = "0x19944298156083d73fc78b3e628123fccead0fec542f0a55cfd319f2b77047ca" +x = "0x0ffe352665e3d1593959e408c9505287c9906078f35b6f9341ffa8d6a4ef0c71" +y = "0x1c2b16fdfb61ddfec086bb532328581256f4ba00461891f781eaf5744adf12f8" is_infinite = false [private_call.verification_key_hints.public_keys.tpk_m.inner] -x = "0x2b8dc3a19be872d7c3b215f6b1716e586cdc99c79320ec3f5989233e0957fc39" -y = "0x13eec92e41aeeec0598539fbf7d94629cc58515f87507cb2638264f68be7c432" +x = "0x033ab7f17ba3a5f1280d11875005bfeffbfceb12b74888cdcaac70769e1a1a0c" +y = "0x0d6902ce74b26cb0618a115e1ace1745a5ff7dc361f9a7c767accc6d1590af0a" is_infinite = false [private_call.verification_key_hints.salted_initialization_hash] - inner = "0x26ec6a326bed489e479823ab0ea1152729bcec7cbe15048c3e02a1e4309d4a68" + inner = "0x286c3445acce7d84b56b1b65ac48ba12e3e3db9746528ca477655ca5d34b1827" [private_call.verification_key_hints.updated_class_id_witness] - leaf_index = "132" + leaf_index = "123" sibling_path = [ - "0x10a274cd78b609bb9ff5960dfac7a0add8ccae279c81ec05441bbb8165d517dd", - "0x27047bd2479bc929cd5250e32e3b3e05f8cef863f7c8a349df77a9b2bf85588d", - "0x1d36a7e02b793d41e28f57b4480fe48b3f169b794f73d57683c7bfc4253da367", - "0x25c533089637cf9ecd3633dfcb0ee03be91faff3e02f51778cd5738264514c88", - "0x1d52af9cd9f69c1286e9a96fd498e736789a5bc463fceb1c176a4f9292f7cbe3", - "0x1ff1d5db01572c915915a22173c73d8073df9af4e4c57f6af29df5315da44419", - "0x070dcbac794fa663bc71b42d80775c0cea8c3ed7580207cfd30fd1285813ce07", - "0x2027713f7323f965c6751ce6c41f7759c9501fe781928b9507814d749cb86f25", + "0x113e4dff2bf81de1dc57e0ad09c64d5f2c1e0bea37d3610c2bcd4d048c1e1e33", + "0x303a470cb42e42257340779127929646aeec66d3324f346ba73796e8319005ba", + "0x136baaee314f9d1f9b3475ffd2abde9b27929468b91fbe3db866d0811c53521c", + "0x1bcaa2b99d7876873c5c1986eee0a6697705913ff000b148eae3ce81fe2dc771", + "0x2edd4e68944dac758244213037fbe9d622c7c28d6070f16862b3e8986090bee4", + "0x1d5ea1a288ff1ff4cabceaaa2f93eda378a5fb0a2a55423f4d4d205969181931", + "0x23b80d0ef13d744a52faabf5651164d28f7faf902653e41a35472eea87936e6e", + "0x2d4d61a79e80405cee3942de4a1007a09f7b28e82528cc044e22e8a8f51c0c55", "0x16c8aff52f0422f4bfc502620fe15dd6a4de67637563b7a8175f2d5727d268a4", "0x1c76b6744bc3d6b1cd4b53459a08b4959643c0768fde657299fcc82e2732f744", "0x12a6fac0fdfbd7897d8fe955f454cdb309ce8597d647ebfd0ba614c4eb215581", @@ -307,13 +307,13 @@ is_infinite = false ] [private_call.verification_key_hints.updated_class_id_leaf] - slot = "0x1dbe81fde1f18bf3e8828a3595c65a1ee32397477e23d9c5c9e4c0386bbb4a2b" - value = "0x0055534400000000000000000000000000000000000000000000000000000000" - next_slot = "0x213a03911d28297ad85626532672b56d721f6e4af4e78d6f156cf1cb98482089" + slot = "0x192dc688bf2c1942592737adc473719073294b8400485a21d44688e95c92fed7" + value = "0x00000000000000000000000000000000000000000000021e19e0c9bab2400000" + next_slot = "0x202a277d48399454827600be0b287c14ab41488520498a576e55d345faa01ab5" next_index = "0x0000000000000000000000000000000000000000000000000000000000000086" [app_public_inputs] -args_hash = "0x2237e42a84e35fc9371ec568e04d6db13130f02f527e0cce6f78ebf038f70f5f" +args_hash = "0x287e8f0f14be024bcdb785537dd1436a237bf64a937589f8ae8eae465ed1db21" returns_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" start_side_effect_counter = "0x0000000000000000000000000000000000000000000000000000000000000002" end_side_effect_counter = "0x0000000000000000000000000000000000000000000000000000000000000007" @@ -321,7 +321,7 @@ expected_non_revertible_side_effect_counter = "0x0000000000000000000000000000000 expected_revertible_side_effect_counter = "0x0000000000000000000000000000000000000000000000000000000000000000" min_revertible_side_effect_counter = "0x0000000000000000000000000000000000000000000000000000000000000005" is_fee_payer = true -expiration_timestamp = "0x0000000000000000000000000000000000000000000000000000000069ff2940" +expiration_timestamp = "0x000000000000000000000000000000000000000000000000000000006a077ccb" [app_public_inputs.call_context] is_static_call = false @@ -330,7 +330,7 @@ expiration_timestamp = "0x000000000000000000000000000000000000000000000000000000 inner = "0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000" [app_public_inputs.call_context.contract_address] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x004093295436e1581085b446326dceb0678c0fdee4aec1d441b23d0c941a4f2a" [app_public_inputs.call_context.function_selector] inner = "0x000000000000000000000000000000000000000000000000000000009d57a239" @@ -340,7 +340,7 @@ expiration_timestamp = "0x000000000000000000000000000000000000000000000000000000 [[app_public_inputs.note_hash_read_requests.array]] [app_public_inputs.note_hash_read_requests.array.inner] -inner = "0x29ecb485abf1e4a9963bb4dada6e8b67bda9c6bb09527ecb8d0c64a0d119e0fd" +inner = "0x2b91b57ee0cfe3e2019a1e7ee752ad299e061f35048f237462b39936bb6e2b1e" counter = "0x0000000000000000000000000000000000000000000000000000000000000003" [app_public_inputs.note_hash_read_requests.array.contract_address] @@ -1113,13 +1113,13 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [app_public_inputs.public_call_requests.array.inner] is_static_call = false - calldata_hash = "0x16acf8ee72d77f214e5286307ed2710fda25445374c38debbef546a746b679ce" + calldata_hash = "0x117bceb62698b59bcb974cb6da609cfb60dd5a53668a4e172fdd4a4eff9a229f" [app_public_inputs.public_call_requests.array.inner.msg_sender] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x004093295436e1581085b446326dceb0678c0fdee4aec1d441b23d0c941a4f2a" [app_public_inputs.public_call_requests.array.inner.contract_address] - inner = "0x16fc6ad8c94527d45832bb8631b0c1dedf3218fe7c3ca04e01850a3eff6a511a" + inner = "0x2e3993e7e67d16bc61a3a09f9def235ab7ae477cdc581290c66576f115047af2" [[app_public_inputs.public_call_requests.array]] counter = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -2055,12 +2055,12 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" length = "0x0000000000000000000000000000000000000000000000000000000000000000" [app_public_inputs.anchor_block_header] - sponge_blob_hash = "0x13a1bf44c19e7c2eb7fc1a96527d072cf424bc99c760e392f4abcecc1fc597f8" + sponge_blob_hash = "0x0405650bcd6c8190a8745e3e230bacee32b200a3c78499712d0dbdc506b253b2" total_fees = "0x00000000000000000000000000000000000000000000000002b26ec5db7a7140" total_mana_used = "0x00000000000000000000000000000000000000000000000000000000000a3979" [app_public_inputs.anchor_block_header.last_archive] - root = "0x0d18996e508e8c1e51f6a56652cc5d71169450ff16c25de9af7f79af5385e334" + root = "0x1b254f482c3705906ac7ecb9fe7fd9ba918b9b9acabaea00de4c87f1ec9979c1" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000008" [app_public_inputs.anchor_block_header.state.l1_to_l2_message_tree] @@ -2068,26 +2068,26 @@ root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002000" [app_public_inputs.anchor_block_header.state.partial.note_hash_tree] -root = "0x1c223e428d6faa36822890e3b99417ddf73ffb069bf4c44b6ae9d7fc741733f6" +root = "0x0f62c40044b4da1bfaccdde9657a757e4f3389eca2f84f4e2b03d9e245d11d12" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000200" [app_public_inputs.anchor_block_header.state.partial.nullifier_tree] -root = "0x01c778a6b3dcb1245bb0aee174252dd95256e67309f952e5d2f8cbafffe20d0f" +root = "0x1c481d97b30d497993eba6f833bf868c9e78d745d674d7cfd4f498b78eb52ea9" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000280" [app_public_inputs.anchor_block_header.state.partial.public_data_tree] -root = "0x134e44df49ddb89525046d19bcfc2734c78e419994de9d6f7467eb84d02d1060" +root = "0x2cbd590d7f3ee096291de2bc3204f1072faba175a7a17368c5e2c384b470c61f" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [app_public_inputs.anchor_block_header.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x000000000000000000000000000000000000000000000000000000008cdefce3" block_number = "0x0000000000000000000000000000000000000000000000000000000000000008" slot_number = "0x0000000000000000000000000000000000000000000000000000000000000022" - timestamp = "0x0000000000000000000000000000000000000000000000000000000069fdd7c0" + timestamp = "0x000000000000000000000000000000000000000000000000000000006a062b4b" [app_public_inputs.anchor_block_header.global_variables.coinbase] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000003d0220de6fd33ed3481276c1954065244b2fa8d5" [app_public_inputs.anchor_block_header.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -2098,7 +2098,7 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [app_public_inputs.tx_context] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x000000000000000000000000000000000000000000000000000000008cdefce3" [app_public_inputs.tx_context.gas_settings.gas_limits] da_gas = "0x0000000000000000000000000000000000000000000000000000000000030000" diff --git a/noir-projects/noir-protocol-circuits/crates/private-kernel-reset/Prover.toml b/noir-projects/noir-protocol-circuits/crates/private-kernel-reset/Prover.toml index 2743b35323d1..004478389968 100644 --- a/noir-projects/noir-protocol-circuits/crates/private-kernel-reset/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/private-kernel-reset/Prover.toml @@ -1,13 +1,13 @@ [previous_kernel.vk_data] leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000000" sibling_path = [ - "0x0ddc610a21615b2984181082c3de07058b9f7d4be62806c4fd475161f8bd2be3", - "0x0f92d54d29bddf6ec768db2c0b4685fb325d248b3ad9a3c6adda76c6c5004224", - "0x0656bbf5e3f4cc4fa5e2fa46e7fd370db0bee05586a1849c37c77d05abe2d8a5", - "0x166399703d23a5c22febc6185f8eb93c72b65906eefef226e643c35fa0022adb", - "0x25f6f5fc25ee815cef59a1889f1e39db3d431d01b01ee1554f9492afec9d41d6", - "0x28650667b92be48b116289119fa4794a5fe8fe5792a49d89b9977feae7f685a6", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x259f6a32db2a51f751fefc393b69596901ee87ac595a0f3f26cdaaf4aca09a5d", + "0x117324d8f1837e360e42a9e1a60627c42818aab363e49e6ce9dc4a579b7d2b19", + "0x213638990f3966940871f7b7960f5f90a15e0f118976f4e528ab020570b04bad", + "0x1f148ac97029402992c6a1b1ae1b5e0805e49ea6242bc44f8880501e5455593e", + "0x08e506e1b4afdb0e6492d582e7f7da14da78cdb5d35cddc587855ffb03aaecf1", + "0x0ea386a780cf0f70cf258740f800f4788e20b555a155c2ad9cd01dd4c0b649a5", + "0x10f050f0394d228b26baefadb2f029bd889b21a3e7e17efe6d9ef92fef9af70e" ] [previous_kernel.vk_data.vk] @@ -160,21 +160,21 @@ sibling_path = [ [previous_kernel_public_inputs] min_revertible_side_effect_counter = "0x0000000000000000000000000000000000000000000000000000000000000005" -expiration_timestamp = "0x0000000000000000000000000000000000000000000000000000000069ff293f" +expiration_timestamp = "0x000000000000000000000000000000000000000000000000000000006a077cca" is_private_only = false -claimed_first_nullifier = "0x09fac458f9e079d0117ef63746c55ce66b3e5d95c8420974d9c69f369b0d77ef" +claimed_first_nullifier = "0x13adb1d6054fb22ca3aa5d15d174af958294a4c864af64472cfb0bd66d609b12" claimed_revertible_counter = "0x0000000000000000000000000000000000000000000000000000000000000005" [previous_kernel_public_inputs.constants] - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" + vk_tree_root = "0x115e00fed9b96e899daa4210aaf690c52c3fb9024f12ecfa6295969410d246a4" [previous_kernel_public_inputs.constants.anchor_block_header] - sponge_blob_hash = "0x13a1bf44c19e7c2eb7fc1a96527d072cf424bc99c760e392f4abcecc1fc597f8" + sponge_blob_hash = "0x0405650bcd6c8190a8745e3e230bacee32b200a3c78499712d0dbdc506b253b2" total_fees = "0x00000000000000000000000000000000000000000000000002b26ec5db7a7140" total_mana_used = "0x00000000000000000000000000000000000000000000000000000000000a3979" [previous_kernel_public_inputs.constants.anchor_block_header.last_archive] - root = "0x0d18996e508e8c1e51f6a56652cc5d71169450ff16c25de9af7f79af5385e334" + root = "0x1b254f482c3705906ac7ecb9fe7fd9ba918b9b9acabaea00de4c87f1ec9979c1" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000008" [previous_kernel_public_inputs.constants.anchor_block_header.state.l1_to_l2_message_tree] @@ -182,26 +182,26 @@ root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002000" [previous_kernel_public_inputs.constants.anchor_block_header.state.partial.note_hash_tree] -root = "0x1c223e428d6faa36822890e3b99417ddf73ffb069bf4c44b6ae9d7fc741733f6" +root = "0x0f62c40044b4da1bfaccdde9657a757e4f3389eca2f84f4e2b03d9e245d11d12" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000200" [previous_kernel_public_inputs.constants.anchor_block_header.state.partial.nullifier_tree] -root = "0x01c778a6b3dcb1245bb0aee174252dd95256e67309f952e5d2f8cbafffe20d0f" +root = "0x1c481d97b30d497993eba6f833bf868c9e78d745d674d7cfd4f498b78eb52ea9" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000280" [previous_kernel_public_inputs.constants.anchor_block_header.state.partial.public_data_tree] -root = "0x134e44df49ddb89525046d19bcfc2734c78e419994de9d6f7467eb84d02d1060" +root = "0x2cbd590d7f3ee096291de2bc3204f1072faba175a7a17368c5e2c384b470c61f" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [previous_kernel_public_inputs.constants.anchor_block_header.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x000000000000000000000000000000000000000000000000000000008cdefce3" block_number = "0x0000000000000000000000000000000000000000000000000000000000000008" slot_number = "0x0000000000000000000000000000000000000000000000000000000000000022" - timestamp = "0x0000000000000000000000000000000000000000000000000000000069fdd7c0" + timestamp = "0x000000000000000000000000000000000000000000000000000000006a062b4b" [previous_kernel_public_inputs.constants.anchor_block_header.global_variables.coinbase] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000003d0220de6fd33ed3481276c1954065244b2fa8d5" [previous_kernel_public_inputs.constants.anchor_block_header.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -212,7 +212,7 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [previous_kernel_public_inputs.constants.tx_context] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x000000000000000000000000000000000000000000000000000000008cdefce3" [previous_kernel_public_inputs.constants.tx_context.gas_settings.gas_limits] da_gas = "0x0000000000000000000000000000000000000000000000000000000000030000" @@ -231,16 +231,16 @@ fee_per_da_gas = "0x000000000000000000000000000000000000000000000000000000000000 fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x1520f4bb11a3a1d2248a03d8472e9af4bb8324eb1d2d8c83bce61894383464b9" +inner = "0x2912f9783016adf7fdf369db240edfcd44b2020430c231cbad6e025feb6f0156" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x26a43bf066852a7b1ec3c5b454f41735fea12e2ffbefed471058124b91d94018" +inner = "0x12e6d1296cc8a232b0cd04bc902425bd660d1c33f367054658565b895dd02792" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] inner = "0x1bd26c6831ebc53674b13ac69a0c534563c37e46c2cbb36f2deca107a26515fa" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x06870c63132d2a4e3356a76d773240efe729e7d9b9380a7a3cf1798fc9031aed" +inner = "0x1a6c91c4f8e806d987e3cbaa9220bade6e1ac8c9e74aad593fb75a31ece44f0c" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] inner = "0x0083c4dfb922796f1086d399f8f3d021159d1a87ba3b833dcdf9863c630ba643" @@ -268,7 +268,7 @@ length = "0x0000000000000000000000000000000000000000000000000000000000000001" [[previous_kernel_public_inputs.validation_requests.note_hash_read_requests.array]] [previous_kernel_public_inputs.validation_requests.note_hash_read_requests.array.inner] -inner = "0x29ecb485abf1e4a9963bb4dada6e8b67bda9c6bb09527ecb8d0c64a0d119e0fd" +inner = "0x2b91b57ee0cfe3e2019a1e7ee752ad299e061f35048f237462b39936bb6e2b1e" counter = "0x0000000000000000000000000000000000000000000000000000000000000003" [previous_kernel_public_inputs.validation_requests.note_hash_read_requests.array.contract_address] @@ -2779,7 +2779,7 @@ length = "0x0000000000000000000000000000000000000000000000000000000000000001" counter = "0x0000000000000000000000000000000000000000000000000000000000000001" [previous_kernel_public_inputs.end.nullifiers.array.inner.inner] - value = "0x023cfeab2c97a4c457a539c4b7c7c9d1fefa40027aacd687b5282ff01a46f27b" + value = "0x213ba1d5003316186372cede50bc4e8c97f33794fd97911bb89803d7c696c7ad" note_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" [previous_kernel_public_inputs.end.nullifiers.array.contract_address] @@ -5594,13 +5594,13 @@ length = "0x0000000000000000000000000000000000000000000000000000000000000001" [previous_kernel_public_inputs.end.public_call_requests.array.inner] is_static_call = false - calldata_hash = "0x16acf8ee72d77f214e5286307ed2710fda25445374c38debbef546a746b679ce" + calldata_hash = "0x117bceb62698b59bcb974cb6da609cfb60dd5a53668a4e172fdd4a4eff9a229f" [previous_kernel_public_inputs.end.public_call_requests.array.inner.msg_sender] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x004093295436e1581085b446326dceb0678c0fdee4aec1d441b23d0c941a4f2a" [previous_kernel_public_inputs.end.public_call_requests.array.inner.contract_address] - inner = "0x16fc6ad8c94527d45832bb8631b0c1dedf3218fe7c3ca04e01850a3eff6a511a" + inner = "0x2e3993e7e67d16bc61a3a09f9def235ab7ae477cdc581290c66576f115047af2" [[previous_kernel_public_inputs.end.public_call_requests.array]] counter = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -6307,7 +6307,7 @@ length = "0x0000000000000000000000000000000000000000000000000000000000000000" inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [previous_kernel_public_inputs.fee_payer] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x004093295436e1581085b446326dceb0678c0fdee4aec1d441b23d0c941a4f2a" [padded_side_effects] note_hashes = [ @@ -8311,9 +8311,9 @@ read_request_index = "0x00000000000000000000000000000000000000000000000000000000 "0x30105bad22ddcc508b739b7c9ad87a561c569ff5cb0098a853c1c4ac21b7a037", "0x1e20ad4181460cbfdc74ca773502c59b890f184efe300ebad895956d318422da", "0x1434e6e2d5db1053ab8a3be58704509c799ee17e109c77f441f7bf1755400249", - "0x0951be8128e49814029387ac6bfbe43a1e43dadd05a6e50f78ef8265cd09b5a1", + "0x01a6f5819db5afea82b272daa5b375f3ddaec6f3084031bd07a4e18439f44c6f", "0x221cf368938c74e4fced9dfb2a8e37cd8a6c57d21385c249f0b5c2412341287f", - "0x15f254a15d2db357812a7044082d84639b7c8adc2a909034fb01d4a6879296ab", + "0x0855f8b364ecc6560f67daecf9c211d3a0d5b904be21d5aef76b241c6434a353", "0x13abc9bba431e6930c169f5daeb60aedbb27d7618c7ff88b3b4ec1c6de1d6bb8", "0x0d04c63f36bd168215c9b09a227c7e8d3ad48e2f11b8202fd07c524bd30ee88f", "0x042c72d0ca208f0631ed947050258333518c26059f0a2ef041e933b1b2a6d8ad", @@ -8350,7 +8350,7 @@ read_request_index = "0x00000000000000000000000000000000000000000000000000000000 ] [hints.note_hash_read_request_hints.settled_read_hints.leaf_preimage] - value = "0x29ecb485abf1e4a9963bb4dada6e8b67bda9c6bb09527ecb8d0c64a0d119e0fd" + value = "0x2b91b57ee0cfe3e2019a1e7ee752ad299e061f35048f237462b39936bb6e2b1e" [[hints.note_hash_read_request_hints.settled_read_hints]] read_request_index = "0x0000000000000000000000000000000000000000000000000000000000000040" diff --git a/noir-projects/noir-protocol-circuits/crates/private-kernel-tail-to-public/Prover.toml b/noir-projects/noir-protocol-circuits/crates/private-kernel-tail-to-public/Prover.toml index 4a9ed54ae711..9bec3c4dd2bb 100644 --- a/noir-projects/noir-protocol-circuits/crates/private-kernel-tail-to-public/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/private-kernel-tail-to-public/Prover.toml @@ -1,15 +1,15 @@ -expiration_timestamp_upper_bound = "0x0000000000000000000000000000000000000000000000000000000069ff1b30" +expiration_timestamp_upper_bound = "0x000000000000000000000000000000000000000000000000000000006a076ebb" [previous_kernel.vk_data] leaf_index = "0x000000000000000000000000000000000000000000000000000000000000003d" sibling_path = [ - "0x1836f64afd38c3a05416bbcee658f4acce2576bbe554a445b33b8936297034e1", - "0x2c05a8ec2045319ea62b81134a53d4e0c1b021fed7877a3a8acc676cf26794f7", - "0x280ae800476659efd90f7ae6a3a2ae3958c1261ca9ae8ba3b2b8320fc9ef662d", - "0x1afa13b72352bab63bfdb391bbadee67783679a9b5ce7fbbcde44387ba5b0eae", - "0x2a99cb07c31aa5ee3a8af2c6db61485892e126a5eac56720fcbbbb002b19d015", - "0x0384c341c7892982bb9f5581098584a00bc572787bf4153d0a52532652ace783", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x29f367742df17da1ac2ae324c1aa8e9c08321a36e620d427df41edbe1a4843d2", + "0x1d6e7e74ecd7a93b75efb2928e8423283c8dc0a6db9a2e8389ff7804672f82f7", + "0x05791394be89b82e2d9ba2469402ffbd7d3776dc1e5f851aec3cbee850e26796", + "0x1eeb7c40bfe7984ae95a1aa6948a3c8e4cb2566c9e2330ac0fdf66da5e849829", + "0x01b9f30a261f6d1294ce4da1bee8dcf399181a88362801a08cc1adef5744be25", + "0x2b458abdab3d6cb6c667f1e03258a9cfd692834b8c451e66e60853e47117d304", + "0x10f050f0394d228b26baefadb2f029bd889b21a3e7e17efe6d9ef92fef9af70e" ] [previous_kernel.vk_data.vk] @@ -17,34 +17,34 @@ sibling_path = [ "0x0000000000000000000000000000000000000000000000000000000000000011", "0x000000000000000000000000000000000000000000000000000000000000001a", "0x0000000000000000000000000000000000000000000000000000000000000cad", - "0x0000000000000000000000000000002b2468b5f8f13bd482d710d25b291a02d4", - "0x000000000000000000000000000000000028799bf367c0778599b2b948882163", - "0x000000000000000000000000000000fe9b706fe16bc87d35001fd66356a746bc", - "0x000000000000000000000000000000000001ca485164bddf169d3fe6c29f62e7", - "0x00000000000000000000000000000075e09707371f536b6282e95e95cb185f37", - "0x000000000000000000000000000000000024009d9583c43b01bfe49bd946bf15", - "0x000000000000000000000000000000881a9c651f0a2aae2de99f5557fa22023f", - "0x00000000000000000000000000000000000068e5a5ca58bc35138b3847beeed4", - "0x000000000000000000000000000000f223a8c39d330da2a41cef98b4e091c9b7", - "0x0000000000000000000000000000000000211f7059c97618280acecd75745235", - "0x000000000000000000000000000000044e4a5f8a66993f61ec86dfb978efde9c", - "0x0000000000000000000000000000000000090682734b33c06cd65ba8824167f6", - "0x0000000000000000000000000000007add80ab4d0d02238831551a2844a9f730", - "0x00000000000000000000000000000000000bb45a300640a05ece5fe1ad9b9ee5", - "0x0000000000000000000000000000007da2be4190c8f0f38b37f33d411b427a1b", - "0x000000000000000000000000000000000026098dd8b73e82d335f5e784cbf652", - "0x0000000000000000000000000000007ab032555b3b13f26ed0788c300e54c30a", - "0x00000000000000000000000000000000002a8c9e9e15de7b8b11220f4055bf04", - "0x000000000000000000000000000000f4ce25385f14112552f1512e2f4e99d0e8", - "0x000000000000000000000000000000000015873846a6e7648a844f037a03f737", - "0x00000000000000000000000000000076dbac5187affde31d2adfb3b5064f5a77", - "0x000000000000000000000000000000000020ef23c172d94df80288571d7e3ca3", - "0x000000000000000000000000000000e69eb7802e5d99aa20bc39dee1f6b84b8f", - "0x00000000000000000000000000000000002b2c9af00759a128112ed819b8b1b0", - "0x000000000000000000000000000000f74bd0fb26a604548c9068fef410612fb9", - "0x00000000000000000000000000000000002ca283b09804c9b7d8ca32dc3a2c75", - "0x000000000000000000000000000000c90052c50c0497cddef7e3a71872d14596", - "0x0000000000000000000000000000000000231d65742b933d5aef1ad67db52143", + "0x00000000000000000000000000000011563f48d0d3dd51be734dbb124b13caff", + "0x00000000000000000000000000000000001367c55b7f2c878f979048da0a639c", + "0x000000000000000000000000000000a5b150999d74bbf89905bf105d894ac49c", + "0x00000000000000000000000000000000002f3a14657345f22e74ae699345b95a", + "0x0000000000000000000000000000001f15507aa3fcd92ab0c9b181a58de8d0b1", + "0x00000000000000000000000000000000001a27cf1f76522ef8170b4740d231c4", + "0x000000000000000000000000000000bb856162dd484ec3496dc85ab704015749", + "0x00000000000000000000000000000000001b0c669ac88833692a032e131b8502", + "0x000000000000000000000000000000b963d6a9a36ec84202ed8345a98954e29b", + "0x00000000000000000000000000000000001c553266d1468f1cd299cc4dc0cc46", + "0x00000000000000000000000000000034e607fc0854c4215bf16d90732f68751d", + "0x00000000000000000000000000000000001c038f92562a75d698478b10e87d0f", + "0x000000000000000000000000000000e941c26347800041a810eb0347fec730dc", + "0x0000000000000000000000000000000000055b1be4a695c4f2ccbc4a65aa2330", + "0x000000000000000000000000000000886d69260c39f8d6dddc326684baaa6ea2", + "0x0000000000000000000000000000000000259636bd5f86fe44d6a1caa53a5916", + "0x000000000000000000000000000000cc265d17569f6b5ac07e1687159cddd8fd", + "0x000000000000000000000000000000000005d706fb7f59e37bb3f9538d46b5bf", + "0x000000000000000000000000000000d342da353422473f2f198569593ad09b5c", + "0x0000000000000000000000000000000000110f2d39f3a64bed83facd2d23ed03", + "0x000000000000000000000000000000918b3d472ad89e2cd16af3a50258e63b70", + "0x000000000000000000000000000000000000eb34cff07f9baed2d9fb45b0d81d", + "0x000000000000000000000000000000553a1412a8d785b232043f32a9c055b202", + "0x000000000000000000000000000000000020702274842c8705c977564752c7ac", + "0x000000000000000000000000000000634bd6393f19a264551175f883b8eeb1fc", + "0x00000000000000000000000000000000000068b54f7445119f94ac399e5afdc8", + "0x000000000000000000000000000000f680f59edc4da77e27467b8d587a6feef8", + "0x00000000000000000000000000000000000dce63ccd4a7c6f00af5c0d3e054b1", "0x000000000000000000000000000000b86b4223f0ebb39a8741b6ebba3a313095", "0x00000000000000000000000000000000001f853f71eaa7368db93d05eefb5256", "0x000000000000000000000000000000467ff45666661562c57d52de8c4f8f193c", @@ -53,78 +53,78 @@ sibling_path = [ "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000000000089d2777774ad5c33906740b3656fda53a0", - "0x0000000000000000000000000000000000133bedccd128dc4587817ae09af71b", - "0x000000000000000000000000000000641918e54723a119562889c1ff6239d13d", - "0x00000000000000000000000000000000002c14c2e4f17070e269f9903a383793", - "0x00000000000000000000000000000026c43cff4875a95471fe2c2008292fff78", - "0x00000000000000000000000000000000001224540abfac9c15d64e21d816b9dd", - "0x000000000000000000000000000000beb481b4d5d4eef75c1b133ca9b7efa690", - "0x000000000000000000000000000000000019b490637210bf2280a86ae0a1d7f7", - "0x000000000000000000000000000000e0b4e0795a8b1375e34eab2397b735ef03", - "0x00000000000000000000000000000000000effe6364fc31714fde11efcbe733c", - "0x0000000000000000000000000000005a1907824e164fc0fdd0f0e7c61f4d7398", - "0x00000000000000000000000000000000001cd6403b37da0361f243a3606ac383", - "0x0000000000000000000000000000006a48458b17770a4ad91f725dd01a8c486b", - "0x00000000000000000000000000000000000c395fd0e57de7d52c706e13918651", - "0x000000000000000000000000000000cde7b67f0a01ba051f06746ff7b56f59de", - "0x000000000000000000000000000000000020e0ab3fa354e260e0ac1855e128ca", + "0x00000000000000000000000000000008213b46863381382ea5fdad6571170143", + "0x000000000000000000000000000000000025928d69c7ac67a015cbcac330bd68", + "0x000000000000000000000000000000173201f0d9b8b12c10fbd2a0e1111fdca1", + "0x00000000000000000000000000000000001077cd43b91ad62e540071bd31088f", + "0x0000000000000000000000000000008824c31efb3d60a15a7f0563778f48a378", + "0x00000000000000000000000000000000002af5800f990d3bdf4d45ae0aed3a84", + "0x000000000000000000000000000000a099b3fa89113315a7046db3226bfb49bf", + "0x000000000000000000000000000000000017a49a2052cc89699e5e16c748d7c8", + "0x0000000000000000000000000000006dfdc41d84bff08492ba7513b8665a2388", + "0x00000000000000000000000000000000000bc2dee187d1196cd061bd41400f44", + "0x000000000000000000000000000000c2cb4dcb8499b1a38365218a476f3482fc", + "0x000000000000000000000000000000000014888d0cd6378b3fbf7cea2b9fe49c", + "0x0000000000000000000000000000001f19028523275beba9bb96f97311fe66a5", + "0x0000000000000000000000000000000000032c84ebef1424f4da0d8764c79627", + "0x000000000000000000000000000000ec661031b4280152732e67375fd41f22c8", + "0x00000000000000000000000000000000000b2d878cc3d73486fc594474104206", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000000000654fe84b50aced8eb7212098af0880ed53", - "0x00000000000000000000000000000000002b2fcb6b0ee568a71f92d2a9bbfad3", - "0x0000000000000000000000000000005d9f4f1e59fac32314c435fb51e2a25ff0", - "0x000000000000000000000000000000000009734092d4e035b968ae8ee337464c", - "0x000000000000000000000000000000a28867ea56c5fbf4aca51fdbbf965e5dae", - "0x00000000000000000000000000000000002feaf04057ed002c072833048ce9e0", - "0x000000000000000000000000000000f9b70bdcd41a1c0bade216b9d5284af115", - "0x00000000000000000000000000000000001ece78d726aaf44e37d9053ebd1534", - "0x000000000000000000000000000000c4e55b000805b017402a109a6b29805245", - "0x00000000000000000000000000000000001d999b7c6ca8df0cca3c57ee4c8be8", - "0x0000000000000000000000000000008820aa820991933af75b5d02d44d0bf685", - "0x0000000000000000000000000000000000039880d1fbfc627ab3421788858e66", - "0x000000000000000000000000000000514dfa671906947f5f640255bfc583eedc", - "0x00000000000000000000000000000000000b0e0c990016a1fdf37d3d6daea7ae", - "0x00000000000000000000000000000040dbbc0f6d52ba0ce246acf816373fbbc1", - "0x0000000000000000000000000000000000035ba8d570a6b7efa251b206e85c82", - "0x0000000000000000000000000000003ebdd6ba8db24c72ad85e8d10fb1346027", - "0x0000000000000000000000000000000000035c795b4ad27e20c934ac5ae517b8", - "0x0000000000000000000000000000005369721308b3dda5dbbab39f83bffcf79a", - "0x0000000000000000000000000000000000241a6ba1547bf3c8eb2ded3454d897", - "0x0000000000000000000000000000009f97bcbba8db2f8bda79a78c0eaefacc5a", - "0x00000000000000000000000000000000002c960a56441f3a00b2f8b48f3b3563", - "0x000000000000000000000000000000ffe2ad855d3522d6b3f8b544681949c713", - "0x00000000000000000000000000000000000002f9753e605a6cbf6dbc604046a6", - "0x0000000000000000000000000000008cfee82227443d00335c9ef376137f6217", - "0x00000000000000000000000000000000001708d8cb04ad71f327107dd3e73cfb", - "0x0000000000000000000000000000007872392082ec4533c6b70f690660ee498f", - "0x0000000000000000000000000000000000122a83a98d1d526cb57355616bb850", - "0x0000000000000000000000000000000a95a3eeae99b98360d61166e89954845a", - "0x0000000000000000000000000000000000202c82d7bd85e9243e7ed0801ebe64", - "0x00000000000000000000000000000027acbc73301fe1b0c21888c2722dd75b7a", - "0x00000000000000000000000000000000002ae7d3ca125bd531826422c7d1acf7", - "0x000000000000000000000000000000d761bb670a9ff734cc38f0d30238a2b28c", - "0x000000000000000000000000000000000005aa3fab8a429258028c4a4287a0e6", - "0x0000000000000000000000000000007a80c32a515f441ce80a5d6cdb53d50866", - "0x000000000000000000000000000000000017f409fea3a1680e6df2a07e9eb3af", - "0x0000000000000000000000000000001a93444f40b0bc09418c7894fe797e2736", - "0x0000000000000000000000000000000000171474b32205fc141e14cfb847a8d3", - "0x000000000000000000000000000000081188cb41c2b23f91bef3a8237fb5fa5d", - "0x00000000000000000000000000000000001ed9b478e77d9f60e9614dfd6014ba", - "0x00000000000000000000000000000042f9a2c111e62ef204c3851affea6af0ef", - "0x0000000000000000000000000000000000108601bd973a835e50fc521d6ec1d9", - "0x000000000000000000000000000000f92be9d44c6688723f37065c3af9521bd6", - "0x000000000000000000000000000000000022ed90948b7d0f29ee1ed4349cab5a", - "0x000000000000000000000000000000bf6e68585d4cb32aeb39412d4a3e6cd968", - "0x00000000000000000000000000000000000c8df79002571c9aef12bb6d7f3bca", - "0x000000000000000000000000000000046577d9d6782e8214d846d3a16aa8ceb7", - "0x0000000000000000000000000000000000249e158a2e56acae4de64894bb2366", - "0x0000000000000000000000000000004b4ecd7a5a335425433b11e098157c3557", - "0x0000000000000000000000000000000000152c2ebca43c64a74ea10b830e9f62", - "0x0000000000000000000000000000006e65e30a946db2c5e16462e3a487d614eb", - "0x0000000000000000000000000000000000294d7279cdf2f3a5a0f47d5d830d40", + "0x0000000000000000000000000000002cea2fea6e02d1d696f47ebaf857de960b", + "0x00000000000000000000000000000000001c364a377a48f887fc68cf7a37900b", + "0x00000000000000000000000000000011baad7450df1126e75ef43460d601a252", + "0x0000000000000000000000000000000000135f457c71b98071fe059e880dfa6c", + "0x000000000000000000000000000000c7c99c33c9c73258aa3260732ea9ff27c6", + "0x00000000000000000000000000000000001ce2cc95878479e2bca83914b9f573", + "0x0000000000000000000000000000007e89b3cbaf1a99e8eced625905b34d4638", + "0x00000000000000000000000000000000000b6934ecadaf34701878538778a730", + "0x000000000000000000000000000000d6231ad5f7f83e966ad09a146077eead7e", + "0x00000000000000000000000000000000000ab7b5147b8727e74be0cef1d03d00", + "0x000000000000000000000000000000917f018931a7cb7f78751671f344f2b190", + "0x00000000000000000000000000000000000f7e6e3ce86387c05bf4b2bec5a141", + "0x0000000000000000000000000000006b839d7a0ebf02f8c51d5f914a5fb3e750", + "0x00000000000000000000000000000000001b88dda46d56cec6b03de3cc31a9e0", + "0x0000000000000000000000000000007f1c78d5161a45f12172d2cec83354d6d9", + "0x00000000000000000000000000000000002b77637c7eabdf4171634b8c7414e8", + "0x000000000000000000000000000000b493defcea91383688114410d1d28d878c", + "0x000000000000000000000000000000000022e05a29d3898ea56326be2d8ad9b9", + "0x00000000000000000000000000000056b0b6456732bb57c560d67f7ae7edd546", + "0x000000000000000000000000000000000011917cb1cbce9c01749f765418eaf4", + "0x0000000000000000000000000000001c7786fbc810929682912244ae184f6ff3", + "0x00000000000000000000000000000000001452b4958d89eef6beec70117d191e", + "0x00000000000000000000000000000010ae5a0fd1deab1992ba82eb244fb0cde7", + "0x000000000000000000000000000000000011da18040b2c35944baccad5d9b568", + "0x0000000000000000000000000000000169eda5d290dab996a8c706ef81bf2664", + "0x00000000000000000000000000000000002c89c6c8b1c312da3be8451539f46d", + "0x000000000000000000000000000000665826f6be22c1e8366a54f6fafd6f964e", + "0x000000000000000000000000000000000003cc1682f239efee9d4f9f2f3018b6", + "0x000000000000000000000000000000c76319a11604acb2547ee4926b9bd0f181", + "0x0000000000000000000000000000000000010bd9544bfa73a13d36d44c06a154", + "0x000000000000000000000000000000f873b00e3e45a52a3941017c59b818f67c", + "0x00000000000000000000000000000000001c42e4b0a857a141dceb9a38294f3d", + "0x000000000000000000000000000000b51e20a786edc7a10671e9f109d817a7c1", + "0x00000000000000000000000000000000001ba7e7ada18e3fb5bdd97446f20e4a", + "0x0000000000000000000000000000005366493cff3922ba63dacf494b022dc02b", + "0x0000000000000000000000000000000000298707647bfe12ed8fbe700d0d2a16", + "0x00000000000000000000000000000053215d0d3090e68a5de3652637c3d34a86", + "0x0000000000000000000000000000000000164ff4b3856b85a178f9d83ae49063", + "0x0000000000000000000000000000002562e74c6140ce1cc1abf92627edee6047", + "0x00000000000000000000000000000000002f487595aac1f4f495f45876e4471f", + "0x0000000000000000000000000000001faa9be57d5d23a275fcf89395269d21c4", + "0x00000000000000000000000000000000001a95c75afb175ff8662d0dcda686ab", + "0x000000000000000000000000000000c980e5a60d92611ec9f0eaf66d4377fb12", + "0x000000000000000000000000000000000006b2be8b4931815bf4e070d03dfdfc", + "0x0000000000000000000000000000008d14744b77d826a4a1dda629dd6452076e", + "0x000000000000000000000000000000000021421b00b686a33f726ccc6fd65812", + "0x0000000000000000000000000000001d26c9d3d324fe2b3b9446297ac2ccd9ec", + "0x00000000000000000000000000000000001624a9f336ccb055b2233c70a98368", + "0x0000000000000000000000000000006dcf470e8960856d6f097947933a5d62b0", + "0x0000000000000000000000000000000000027b997cf8aa013e442ac3fb440557", + "0x00000000000000000000000000000002726bc9d04fdb56b9aa67527a0437880a", + "0x0000000000000000000000000000000000084b7c224f9c01f478fafa937a0a00", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -145,10 +145,10 @@ sibling_path = [ "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000000000034620fc4f5dc2f120b5673912cf04226e9", - "0x000000000000000000000000000000000025a6078d74c0fd7d4dd9e328ad4c94", - "0x00000000000000000000000000000019d834f9bb59a8e973ed867f0477fc8121", - "0x00000000000000000000000000000000001fdeb0dc3db761477a1a9feb00c906", + "0x000000000000000000000000000000599a08e2d4c0086a5af438d96cc138ccc2", + "0x0000000000000000000000000000000000281c8a4d206d94c435d22524003355", + "0x0000000000000000000000000000009039170f98bdc371b0fd62cd15af98733d", + "0x000000000000000000000000000000000019d6463aec3577b13256d70b01f367", "0x00000000000000000000000000000076959cf0870e0ae93bb69edc64b0cacdac", "0x0000000000000000000000000000000000269679f8c1a1ad2aadccaf8ba3100e", "0x000000000000000000000000000000bb028a742987d54246ffc933f8240d70ef", @@ -158,25 +158,25 @@ sibling_path = [ "0x00000000000000000000000000000071f09c1d3d2c8f9499c838fc966b04ada9", "0x00000000000000000000000000000000000f4504ac6f302739e9f2c7aa824d12" ] - hash = "0x297f9ac45dd6c9f333314227aacca93023e72710232e7120328d7e7c209ebc8f" + hash = "0x128985134809b0082950e81a10ca3f20f31c4d6a1e2f2a62a195019dff6db56b" [previous_kernel_public_inputs] min_revertible_side_effect_counter = "0x0000000000000000000000000000000000000000000000000000000000000005" -expiration_timestamp = "0x0000000000000000000000000000000000000000000000000000000069ff293f" +expiration_timestamp = "0x000000000000000000000000000000000000000000000000000000006a077cca" is_private_only = false -claimed_first_nullifier = "0x09fac458f9e079d0117ef63746c55ce66b3e5d95c8420974d9c69f369b0d77ef" +claimed_first_nullifier = "0x13adb1d6054fb22ca3aa5d15d174af958294a4c864af64472cfb0bd66d609b12" claimed_revertible_counter = "0x0000000000000000000000000000000000000000000000000000000000000005" [previous_kernel_public_inputs.constants] - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" + vk_tree_root = "0x115e00fed9b96e899daa4210aaf690c52c3fb9024f12ecfa6295969410d246a4" [previous_kernel_public_inputs.constants.anchor_block_header] - sponge_blob_hash = "0x13a1bf44c19e7c2eb7fc1a96527d072cf424bc99c760e392f4abcecc1fc597f8" + sponge_blob_hash = "0x0405650bcd6c8190a8745e3e230bacee32b200a3c78499712d0dbdc506b253b2" total_fees = "0x00000000000000000000000000000000000000000000000002b26ec5db7a7140" total_mana_used = "0x00000000000000000000000000000000000000000000000000000000000a3979" [previous_kernel_public_inputs.constants.anchor_block_header.last_archive] - root = "0x0d18996e508e8c1e51f6a56652cc5d71169450ff16c25de9af7f79af5385e334" + root = "0x1b254f482c3705906ac7ecb9fe7fd9ba918b9b9acabaea00de4c87f1ec9979c1" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000008" [previous_kernel_public_inputs.constants.anchor_block_header.state.l1_to_l2_message_tree] @@ -184,26 +184,26 @@ root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002000" [previous_kernel_public_inputs.constants.anchor_block_header.state.partial.note_hash_tree] -root = "0x1c223e428d6faa36822890e3b99417ddf73ffb069bf4c44b6ae9d7fc741733f6" +root = "0x0f62c40044b4da1bfaccdde9657a757e4f3389eca2f84f4e2b03d9e245d11d12" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000200" [previous_kernel_public_inputs.constants.anchor_block_header.state.partial.nullifier_tree] -root = "0x01c778a6b3dcb1245bb0aee174252dd95256e67309f952e5d2f8cbafffe20d0f" +root = "0x1c481d97b30d497993eba6f833bf868c9e78d745d674d7cfd4f498b78eb52ea9" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000280" [previous_kernel_public_inputs.constants.anchor_block_header.state.partial.public_data_tree] -root = "0x134e44df49ddb89525046d19bcfc2734c78e419994de9d6f7467eb84d02d1060" +root = "0x2cbd590d7f3ee096291de2bc3204f1072faba175a7a17368c5e2c384b470c61f" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [previous_kernel_public_inputs.constants.anchor_block_header.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x000000000000000000000000000000000000000000000000000000008cdefce3" block_number = "0x0000000000000000000000000000000000000000000000000000000000000008" slot_number = "0x0000000000000000000000000000000000000000000000000000000000000022" - timestamp = "0x0000000000000000000000000000000000000000000000000000000069fdd7c0" + timestamp = "0x000000000000000000000000000000000000000000000000000000006a062b4b" [previous_kernel_public_inputs.constants.anchor_block_header.global_variables.coinbase] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000003d0220de6fd33ed3481276c1954065244b2fa8d5" [previous_kernel_public_inputs.constants.anchor_block_header.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -214,7 +214,7 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [previous_kernel_public_inputs.constants.tx_context] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x000000000000000000000000000000000000000000000000000000008cdefce3" [previous_kernel_public_inputs.constants.tx_context.gas_settings.gas_limits] da_gas = "0x0000000000000000000000000000000000000000000000000000000000030000" @@ -233,16 +233,16 @@ fee_per_da_gas = "0x000000000000000000000000000000000000000000000000000000000000 fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x1520f4bb11a3a1d2248a03d8472e9af4bb8324eb1d2d8c83bce61894383464b9" +inner = "0x2912f9783016adf7fdf369db240edfcd44b2020430c231cbad6e025feb6f0156" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x26a43bf066852a7b1ec3c5b454f41735fea12e2ffbefed471058124b91d94018" +inner = "0x12e6d1296cc8a232b0cd04bc902425bd660d1c33f367054658565b895dd02792" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] inner = "0x1bd26c6831ebc53674b13ac69a0c534563c37e46c2cbb36f2deca107a26515fa" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x06870c63132d2a4e3356a76d773240efe729e7d9b9380a7a3cf1798fc9031aed" +inner = "0x1a6c91c4f8e806d987e3cbaa9220bade6e1ac8c9e74aad593fb75a31ece44f0c" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] inner = "0x0083c4dfb922796f1086d399f8f3d021159d1a87ba3b833dcdf9863c630ba643" @@ -2781,7 +2781,7 @@ length = "0x0000000000000000000000000000000000000000000000000000000000000001" counter = "0x0000000000000000000000000000000000000000000000000000000000000001" [previous_kernel_public_inputs.end.nullifiers.array.inner.inner] - value = "0x09fac458f9e079d0117ef63746c55ce66b3e5d95c8420974d9c69f369b0d77ef" + value = "0x13adb1d6054fb22ca3aa5d15d174af958294a4c864af64472cfb0bd66d609b12" note_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" [previous_kernel_public_inputs.end.nullifiers.array.contract_address] @@ -5596,13 +5596,13 @@ length = "0x0000000000000000000000000000000000000000000000000000000000000001" [previous_kernel_public_inputs.end.public_call_requests.array.inner] is_static_call = false - calldata_hash = "0x16acf8ee72d77f214e5286307ed2710fda25445374c38debbef546a746b679ce" + calldata_hash = "0x117bceb62698b59bcb974cb6da609cfb60dd5a53668a4e172fdd4a4eff9a229f" [previous_kernel_public_inputs.end.public_call_requests.array.inner.msg_sender] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x004093295436e1581085b446326dceb0678c0fdee4aec1d441b23d0c941a4f2a" [previous_kernel_public_inputs.end.public_call_requests.array.inner.contract_address] - inner = "0x16fc6ad8c94527d45832bb8631b0c1dedf3218fe7c3ca04e01850a3eff6a511a" + inner = "0x2e3993e7e67d16bc61a3a09f9def235ab7ae477cdc581290c66576f115047af2" [[previous_kernel_public_inputs.end.public_call_requests.array]] counter = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -6309,7 +6309,7 @@ length = "0x0000000000000000000000000000000000000000000000000000000000000000" inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [previous_kernel_public_inputs.fee_payer] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x004093295436e1581085b446326dceb0678c0fdee4aec1d441b23d0c941a4f2a" [padded_side_effect_amounts] non_revertible_note_hashes = "0x0000000000000000000000000000000000000000000000000000000000000000" diff --git a/noir-projects/noir-protocol-circuits/crates/private-kernel-tail/Prover.toml b/noir-projects/noir-protocol-circuits/crates/private-kernel-tail/Prover.toml index e85826cf5411..0a109af4e597 100644 --- a/noir-projects/noir-protocol-circuits/crates/private-kernel-tail/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/private-kernel-tail/Prover.toml @@ -1,15 +1,15 @@ -expiration_timestamp_upper_bound = "0x0000000000000000000000000000000000000000000000000000000069ff1b30" +expiration_timestamp_upper_bound = "0x000000000000000000000000000000000000000000000000000000006a076ebb" [previous_kernel.vk_data] leaf_index = "0x000000000000000000000000000000000000000000000000000000000000003d" sibling_path = [ - "0x1836f64afd38c3a05416bbcee658f4acce2576bbe554a445b33b8936297034e1", - "0x2c05a8ec2045319ea62b81134a53d4e0c1b021fed7877a3a8acc676cf26794f7", - "0x280ae800476659efd90f7ae6a3a2ae3958c1261ca9ae8ba3b2b8320fc9ef662d", - "0x1afa13b72352bab63bfdb391bbadee67783679a9b5ce7fbbcde44387ba5b0eae", - "0x2a99cb07c31aa5ee3a8af2c6db61485892e126a5eac56720fcbbbb002b19d015", - "0x0384c341c7892982bb9f5581098584a00bc572787bf4153d0a52532652ace783", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x29f367742df17da1ac2ae324c1aa8e9c08321a36e620d427df41edbe1a4843d2", + "0x1d6e7e74ecd7a93b75efb2928e8423283c8dc0a6db9a2e8389ff7804672f82f7", + "0x05791394be89b82e2d9ba2469402ffbd7d3776dc1e5f851aec3cbee850e26796", + "0x1eeb7c40bfe7984ae95a1aa6948a3c8e4cb2566c9e2330ac0fdf66da5e849829", + "0x01b9f30a261f6d1294ce4da1bee8dcf399181a88362801a08cc1adef5744be25", + "0x2b458abdab3d6cb6c667f1e03258a9cfd692834b8c451e66e60853e47117d304", + "0x10f050f0394d228b26baefadb2f029bd889b21a3e7e17efe6d9ef92fef9af70e" ] [previous_kernel.vk_data.vk] @@ -17,34 +17,34 @@ sibling_path = [ "0x0000000000000000000000000000000000000000000000000000000000000011", "0x000000000000000000000000000000000000000000000000000000000000001a", "0x0000000000000000000000000000000000000000000000000000000000000cad", - "0x0000000000000000000000000000002b2468b5f8f13bd482d710d25b291a02d4", - "0x000000000000000000000000000000000028799bf367c0778599b2b948882163", - "0x000000000000000000000000000000fe9b706fe16bc87d35001fd66356a746bc", - "0x000000000000000000000000000000000001ca485164bddf169d3fe6c29f62e7", - "0x00000000000000000000000000000075e09707371f536b6282e95e95cb185f37", - "0x000000000000000000000000000000000024009d9583c43b01bfe49bd946bf15", - "0x000000000000000000000000000000881a9c651f0a2aae2de99f5557fa22023f", - "0x00000000000000000000000000000000000068e5a5ca58bc35138b3847beeed4", - "0x000000000000000000000000000000f223a8c39d330da2a41cef98b4e091c9b7", - "0x0000000000000000000000000000000000211f7059c97618280acecd75745235", - "0x000000000000000000000000000000044e4a5f8a66993f61ec86dfb978efde9c", - "0x0000000000000000000000000000000000090682734b33c06cd65ba8824167f6", - "0x0000000000000000000000000000007add80ab4d0d02238831551a2844a9f730", - "0x00000000000000000000000000000000000bb45a300640a05ece5fe1ad9b9ee5", - "0x0000000000000000000000000000007da2be4190c8f0f38b37f33d411b427a1b", - "0x000000000000000000000000000000000026098dd8b73e82d335f5e784cbf652", - "0x0000000000000000000000000000007ab032555b3b13f26ed0788c300e54c30a", - "0x00000000000000000000000000000000002a8c9e9e15de7b8b11220f4055bf04", - "0x000000000000000000000000000000f4ce25385f14112552f1512e2f4e99d0e8", - "0x000000000000000000000000000000000015873846a6e7648a844f037a03f737", - "0x00000000000000000000000000000076dbac5187affde31d2adfb3b5064f5a77", - "0x000000000000000000000000000000000020ef23c172d94df80288571d7e3ca3", - "0x000000000000000000000000000000e69eb7802e5d99aa20bc39dee1f6b84b8f", - "0x00000000000000000000000000000000002b2c9af00759a128112ed819b8b1b0", - "0x000000000000000000000000000000f74bd0fb26a604548c9068fef410612fb9", - "0x00000000000000000000000000000000002ca283b09804c9b7d8ca32dc3a2c75", - "0x000000000000000000000000000000c90052c50c0497cddef7e3a71872d14596", - "0x0000000000000000000000000000000000231d65742b933d5aef1ad67db52143", + "0x00000000000000000000000000000011563f48d0d3dd51be734dbb124b13caff", + "0x00000000000000000000000000000000001367c55b7f2c878f979048da0a639c", + "0x000000000000000000000000000000a5b150999d74bbf89905bf105d894ac49c", + "0x00000000000000000000000000000000002f3a14657345f22e74ae699345b95a", + "0x0000000000000000000000000000001f15507aa3fcd92ab0c9b181a58de8d0b1", + "0x00000000000000000000000000000000001a27cf1f76522ef8170b4740d231c4", + "0x000000000000000000000000000000bb856162dd484ec3496dc85ab704015749", + "0x00000000000000000000000000000000001b0c669ac88833692a032e131b8502", + "0x000000000000000000000000000000b963d6a9a36ec84202ed8345a98954e29b", + "0x00000000000000000000000000000000001c553266d1468f1cd299cc4dc0cc46", + "0x00000000000000000000000000000034e607fc0854c4215bf16d90732f68751d", + "0x00000000000000000000000000000000001c038f92562a75d698478b10e87d0f", + "0x000000000000000000000000000000e941c26347800041a810eb0347fec730dc", + "0x0000000000000000000000000000000000055b1be4a695c4f2ccbc4a65aa2330", + "0x000000000000000000000000000000886d69260c39f8d6dddc326684baaa6ea2", + "0x0000000000000000000000000000000000259636bd5f86fe44d6a1caa53a5916", + "0x000000000000000000000000000000cc265d17569f6b5ac07e1687159cddd8fd", + "0x000000000000000000000000000000000005d706fb7f59e37bb3f9538d46b5bf", + "0x000000000000000000000000000000d342da353422473f2f198569593ad09b5c", + "0x0000000000000000000000000000000000110f2d39f3a64bed83facd2d23ed03", + "0x000000000000000000000000000000918b3d472ad89e2cd16af3a50258e63b70", + "0x000000000000000000000000000000000000eb34cff07f9baed2d9fb45b0d81d", + "0x000000000000000000000000000000553a1412a8d785b232043f32a9c055b202", + "0x000000000000000000000000000000000020702274842c8705c977564752c7ac", + "0x000000000000000000000000000000634bd6393f19a264551175f883b8eeb1fc", + "0x00000000000000000000000000000000000068b54f7445119f94ac399e5afdc8", + "0x000000000000000000000000000000f680f59edc4da77e27467b8d587a6feef8", + "0x00000000000000000000000000000000000dce63ccd4a7c6f00af5c0d3e054b1", "0x000000000000000000000000000000b86b4223f0ebb39a8741b6ebba3a313095", "0x00000000000000000000000000000000001f853f71eaa7368db93d05eefb5256", "0x000000000000000000000000000000467ff45666661562c57d52de8c4f8f193c", @@ -53,78 +53,78 @@ sibling_path = [ "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000000000089d2777774ad5c33906740b3656fda53a0", - "0x0000000000000000000000000000000000133bedccd128dc4587817ae09af71b", - "0x000000000000000000000000000000641918e54723a119562889c1ff6239d13d", - "0x00000000000000000000000000000000002c14c2e4f17070e269f9903a383793", - "0x00000000000000000000000000000026c43cff4875a95471fe2c2008292fff78", - "0x00000000000000000000000000000000001224540abfac9c15d64e21d816b9dd", - "0x000000000000000000000000000000beb481b4d5d4eef75c1b133ca9b7efa690", - "0x000000000000000000000000000000000019b490637210bf2280a86ae0a1d7f7", - "0x000000000000000000000000000000e0b4e0795a8b1375e34eab2397b735ef03", - "0x00000000000000000000000000000000000effe6364fc31714fde11efcbe733c", - "0x0000000000000000000000000000005a1907824e164fc0fdd0f0e7c61f4d7398", - "0x00000000000000000000000000000000001cd6403b37da0361f243a3606ac383", - "0x0000000000000000000000000000006a48458b17770a4ad91f725dd01a8c486b", - "0x00000000000000000000000000000000000c395fd0e57de7d52c706e13918651", - "0x000000000000000000000000000000cde7b67f0a01ba051f06746ff7b56f59de", - "0x000000000000000000000000000000000020e0ab3fa354e260e0ac1855e128ca", + "0x00000000000000000000000000000008213b46863381382ea5fdad6571170143", + "0x000000000000000000000000000000000025928d69c7ac67a015cbcac330bd68", + "0x000000000000000000000000000000173201f0d9b8b12c10fbd2a0e1111fdca1", + "0x00000000000000000000000000000000001077cd43b91ad62e540071bd31088f", + "0x0000000000000000000000000000008824c31efb3d60a15a7f0563778f48a378", + "0x00000000000000000000000000000000002af5800f990d3bdf4d45ae0aed3a84", + "0x000000000000000000000000000000a099b3fa89113315a7046db3226bfb49bf", + "0x000000000000000000000000000000000017a49a2052cc89699e5e16c748d7c8", + "0x0000000000000000000000000000006dfdc41d84bff08492ba7513b8665a2388", + "0x00000000000000000000000000000000000bc2dee187d1196cd061bd41400f44", + "0x000000000000000000000000000000c2cb4dcb8499b1a38365218a476f3482fc", + "0x000000000000000000000000000000000014888d0cd6378b3fbf7cea2b9fe49c", + "0x0000000000000000000000000000001f19028523275beba9bb96f97311fe66a5", + "0x0000000000000000000000000000000000032c84ebef1424f4da0d8764c79627", + "0x000000000000000000000000000000ec661031b4280152732e67375fd41f22c8", + "0x00000000000000000000000000000000000b2d878cc3d73486fc594474104206", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000000000654fe84b50aced8eb7212098af0880ed53", - "0x00000000000000000000000000000000002b2fcb6b0ee568a71f92d2a9bbfad3", - "0x0000000000000000000000000000005d9f4f1e59fac32314c435fb51e2a25ff0", - "0x000000000000000000000000000000000009734092d4e035b968ae8ee337464c", - "0x000000000000000000000000000000a28867ea56c5fbf4aca51fdbbf965e5dae", - "0x00000000000000000000000000000000002feaf04057ed002c072833048ce9e0", - "0x000000000000000000000000000000f9b70bdcd41a1c0bade216b9d5284af115", - "0x00000000000000000000000000000000001ece78d726aaf44e37d9053ebd1534", - "0x000000000000000000000000000000c4e55b000805b017402a109a6b29805245", - "0x00000000000000000000000000000000001d999b7c6ca8df0cca3c57ee4c8be8", - "0x0000000000000000000000000000008820aa820991933af75b5d02d44d0bf685", - "0x0000000000000000000000000000000000039880d1fbfc627ab3421788858e66", - "0x000000000000000000000000000000514dfa671906947f5f640255bfc583eedc", - "0x00000000000000000000000000000000000b0e0c990016a1fdf37d3d6daea7ae", - "0x00000000000000000000000000000040dbbc0f6d52ba0ce246acf816373fbbc1", - "0x0000000000000000000000000000000000035ba8d570a6b7efa251b206e85c82", - "0x0000000000000000000000000000003ebdd6ba8db24c72ad85e8d10fb1346027", - "0x0000000000000000000000000000000000035c795b4ad27e20c934ac5ae517b8", - "0x0000000000000000000000000000005369721308b3dda5dbbab39f83bffcf79a", - "0x0000000000000000000000000000000000241a6ba1547bf3c8eb2ded3454d897", - "0x0000000000000000000000000000009f97bcbba8db2f8bda79a78c0eaefacc5a", - "0x00000000000000000000000000000000002c960a56441f3a00b2f8b48f3b3563", - "0x000000000000000000000000000000ffe2ad855d3522d6b3f8b544681949c713", - "0x00000000000000000000000000000000000002f9753e605a6cbf6dbc604046a6", - "0x0000000000000000000000000000008cfee82227443d00335c9ef376137f6217", - "0x00000000000000000000000000000000001708d8cb04ad71f327107dd3e73cfb", - "0x0000000000000000000000000000007872392082ec4533c6b70f690660ee498f", - "0x0000000000000000000000000000000000122a83a98d1d526cb57355616bb850", - "0x0000000000000000000000000000000a95a3eeae99b98360d61166e89954845a", - "0x0000000000000000000000000000000000202c82d7bd85e9243e7ed0801ebe64", - "0x00000000000000000000000000000027acbc73301fe1b0c21888c2722dd75b7a", - "0x00000000000000000000000000000000002ae7d3ca125bd531826422c7d1acf7", - "0x000000000000000000000000000000d761bb670a9ff734cc38f0d30238a2b28c", - "0x000000000000000000000000000000000005aa3fab8a429258028c4a4287a0e6", - "0x0000000000000000000000000000007a80c32a515f441ce80a5d6cdb53d50866", - "0x000000000000000000000000000000000017f409fea3a1680e6df2a07e9eb3af", - "0x0000000000000000000000000000001a93444f40b0bc09418c7894fe797e2736", - "0x0000000000000000000000000000000000171474b32205fc141e14cfb847a8d3", - "0x000000000000000000000000000000081188cb41c2b23f91bef3a8237fb5fa5d", - "0x00000000000000000000000000000000001ed9b478e77d9f60e9614dfd6014ba", - "0x00000000000000000000000000000042f9a2c111e62ef204c3851affea6af0ef", - "0x0000000000000000000000000000000000108601bd973a835e50fc521d6ec1d9", - "0x000000000000000000000000000000f92be9d44c6688723f37065c3af9521bd6", - "0x000000000000000000000000000000000022ed90948b7d0f29ee1ed4349cab5a", - "0x000000000000000000000000000000bf6e68585d4cb32aeb39412d4a3e6cd968", - "0x00000000000000000000000000000000000c8df79002571c9aef12bb6d7f3bca", - "0x000000000000000000000000000000046577d9d6782e8214d846d3a16aa8ceb7", - "0x0000000000000000000000000000000000249e158a2e56acae4de64894bb2366", - "0x0000000000000000000000000000004b4ecd7a5a335425433b11e098157c3557", - "0x0000000000000000000000000000000000152c2ebca43c64a74ea10b830e9f62", - "0x0000000000000000000000000000006e65e30a946db2c5e16462e3a487d614eb", - "0x0000000000000000000000000000000000294d7279cdf2f3a5a0f47d5d830d40", + "0x0000000000000000000000000000002cea2fea6e02d1d696f47ebaf857de960b", + "0x00000000000000000000000000000000001c364a377a48f887fc68cf7a37900b", + "0x00000000000000000000000000000011baad7450df1126e75ef43460d601a252", + "0x0000000000000000000000000000000000135f457c71b98071fe059e880dfa6c", + "0x000000000000000000000000000000c7c99c33c9c73258aa3260732ea9ff27c6", + "0x00000000000000000000000000000000001ce2cc95878479e2bca83914b9f573", + "0x0000000000000000000000000000007e89b3cbaf1a99e8eced625905b34d4638", + "0x00000000000000000000000000000000000b6934ecadaf34701878538778a730", + "0x000000000000000000000000000000d6231ad5f7f83e966ad09a146077eead7e", + "0x00000000000000000000000000000000000ab7b5147b8727e74be0cef1d03d00", + "0x000000000000000000000000000000917f018931a7cb7f78751671f344f2b190", + "0x00000000000000000000000000000000000f7e6e3ce86387c05bf4b2bec5a141", + "0x0000000000000000000000000000006b839d7a0ebf02f8c51d5f914a5fb3e750", + "0x00000000000000000000000000000000001b88dda46d56cec6b03de3cc31a9e0", + "0x0000000000000000000000000000007f1c78d5161a45f12172d2cec83354d6d9", + "0x00000000000000000000000000000000002b77637c7eabdf4171634b8c7414e8", + "0x000000000000000000000000000000b493defcea91383688114410d1d28d878c", + "0x000000000000000000000000000000000022e05a29d3898ea56326be2d8ad9b9", + "0x00000000000000000000000000000056b0b6456732bb57c560d67f7ae7edd546", + "0x000000000000000000000000000000000011917cb1cbce9c01749f765418eaf4", + "0x0000000000000000000000000000001c7786fbc810929682912244ae184f6ff3", + "0x00000000000000000000000000000000001452b4958d89eef6beec70117d191e", + "0x00000000000000000000000000000010ae5a0fd1deab1992ba82eb244fb0cde7", + "0x000000000000000000000000000000000011da18040b2c35944baccad5d9b568", + "0x0000000000000000000000000000000169eda5d290dab996a8c706ef81bf2664", + "0x00000000000000000000000000000000002c89c6c8b1c312da3be8451539f46d", + "0x000000000000000000000000000000665826f6be22c1e8366a54f6fafd6f964e", + "0x000000000000000000000000000000000003cc1682f239efee9d4f9f2f3018b6", + "0x000000000000000000000000000000c76319a11604acb2547ee4926b9bd0f181", + "0x0000000000000000000000000000000000010bd9544bfa73a13d36d44c06a154", + "0x000000000000000000000000000000f873b00e3e45a52a3941017c59b818f67c", + "0x00000000000000000000000000000000001c42e4b0a857a141dceb9a38294f3d", + "0x000000000000000000000000000000b51e20a786edc7a10671e9f109d817a7c1", + "0x00000000000000000000000000000000001ba7e7ada18e3fb5bdd97446f20e4a", + "0x0000000000000000000000000000005366493cff3922ba63dacf494b022dc02b", + "0x0000000000000000000000000000000000298707647bfe12ed8fbe700d0d2a16", + "0x00000000000000000000000000000053215d0d3090e68a5de3652637c3d34a86", + "0x0000000000000000000000000000000000164ff4b3856b85a178f9d83ae49063", + "0x0000000000000000000000000000002562e74c6140ce1cc1abf92627edee6047", + "0x00000000000000000000000000000000002f487595aac1f4f495f45876e4471f", + "0x0000000000000000000000000000001faa9be57d5d23a275fcf89395269d21c4", + "0x00000000000000000000000000000000001a95c75afb175ff8662d0dcda686ab", + "0x000000000000000000000000000000c980e5a60d92611ec9f0eaf66d4377fb12", + "0x000000000000000000000000000000000006b2be8b4931815bf4e070d03dfdfc", + "0x0000000000000000000000000000008d14744b77d826a4a1dda629dd6452076e", + "0x000000000000000000000000000000000021421b00b686a33f726ccc6fd65812", + "0x0000000000000000000000000000001d26c9d3d324fe2b3b9446297ac2ccd9ec", + "0x00000000000000000000000000000000001624a9f336ccb055b2233c70a98368", + "0x0000000000000000000000000000006dcf470e8960856d6f097947933a5d62b0", + "0x0000000000000000000000000000000000027b997cf8aa013e442ac3fb440557", + "0x00000000000000000000000000000002726bc9d04fdb56b9aa67527a0437880a", + "0x0000000000000000000000000000000000084b7c224f9c01f478fafa937a0a00", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -145,10 +145,10 @@ sibling_path = [ "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000000000034620fc4f5dc2f120b5673912cf04226e9", - "0x000000000000000000000000000000000025a6078d74c0fd7d4dd9e328ad4c94", - "0x00000000000000000000000000000019d834f9bb59a8e973ed867f0477fc8121", - "0x00000000000000000000000000000000001fdeb0dc3db761477a1a9feb00c906", + "0x000000000000000000000000000000599a08e2d4c0086a5af438d96cc138ccc2", + "0x0000000000000000000000000000000000281c8a4d206d94c435d22524003355", + "0x0000000000000000000000000000009039170f98bdc371b0fd62cd15af98733d", + "0x000000000000000000000000000000000019d6463aec3577b13256d70b01f367", "0x00000000000000000000000000000076959cf0870e0ae93bb69edc64b0cacdac", "0x0000000000000000000000000000000000269679f8c1a1ad2aadccaf8ba3100e", "0x000000000000000000000000000000bb028a742987d54246ffc933f8240d70ef", @@ -158,25 +158,25 @@ sibling_path = [ "0x00000000000000000000000000000071f09c1d3d2c8f9499c838fc966b04ada9", "0x00000000000000000000000000000000000f4504ac6f302739e9f2c7aa824d12" ] - hash = "0x297f9ac45dd6c9f333314227aacca93023e72710232e7120328d7e7c209ebc8f" + hash = "0x128985134809b0082950e81a10ca3f20f31c4d6a1e2f2a62a195019dff6db56b" [previous_kernel_public_inputs] min_revertible_side_effect_counter = "0x0000000000000000000000000000000000000000000000000000000000000005" -expiration_timestamp = "0x0000000000000000000000000000000000000000000000000000000069ff293f" +expiration_timestamp = "0x000000000000000000000000000000000000000000000000000000006a077cca" is_private_only = true -claimed_first_nullifier = "0x282b555a2f009837bd02f744ae119250934c991464481b5613f7f2112a615f7c" +claimed_first_nullifier = "0x0dc13cb16dbb5efc680f1b3795abd333ea2ea29dc746578d446e00e61f5a6996" claimed_revertible_counter = "0x0000000000000000000000000000000000000000000000000000000000000005" [previous_kernel_public_inputs.constants] - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" + vk_tree_root = "0x115e00fed9b96e899daa4210aaf690c52c3fb9024f12ecfa6295969410d246a4" [previous_kernel_public_inputs.constants.anchor_block_header] - sponge_blob_hash = "0x13a1bf44c19e7c2eb7fc1a96527d072cf424bc99c760e392f4abcecc1fc597f8" + sponge_blob_hash = "0x0405650bcd6c8190a8745e3e230bacee32b200a3c78499712d0dbdc506b253b2" total_fees = "0x00000000000000000000000000000000000000000000000002b26ec5db7a7140" total_mana_used = "0x00000000000000000000000000000000000000000000000000000000000a3979" [previous_kernel_public_inputs.constants.anchor_block_header.last_archive] - root = "0x0d18996e508e8c1e51f6a56652cc5d71169450ff16c25de9af7f79af5385e334" + root = "0x1b254f482c3705906ac7ecb9fe7fd9ba918b9b9acabaea00de4c87f1ec9979c1" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000008" [previous_kernel_public_inputs.constants.anchor_block_header.state.l1_to_l2_message_tree] @@ -184,26 +184,26 @@ root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002000" [previous_kernel_public_inputs.constants.anchor_block_header.state.partial.note_hash_tree] -root = "0x1c223e428d6faa36822890e3b99417ddf73ffb069bf4c44b6ae9d7fc741733f6" +root = "0x0f62c40044b4da1bfaccdde9657a757e4f3389eca2f84f4e2b03d9e245d11d12" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000200" [previous_kernel_public_inputs.constants.anchor_block_header.state.partial.nullifier_tree] -root = "0x01c778a6b3dcb1245bb0aee174252dd95256e67309f952e5d2f8cbafffe20d0f" +root = "0x1c481d97b30d497993eba6f833bf868c9e78d745d674d7cfd4f498b78eb52ea9" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000280" [previous_kernel_public_inputs.constants.anchor_block_header.state.partial.public_data_tree] -root = "0x134e44df49ddb89525046d19bcfc2734c78e419994de9d6f7467eb84d02d1060" +root = "0x2cbd590d7f3ee096291de2bc3204f1072faba175a7a17368c5e2c384b470c61f" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [previous_kernel_public_inputs.constants.anchor_block_header.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x000000000000000000000000000000000000000000000000000000008cdefce3" block_number = "0x0000000000000000000000000000000000000000000000000000000000000008" slot_number = "0x0000000000000000000000000000000000000000000000000000000000000022" - timestamp = "0x0000000000000000000000000000000000000000000000000000000069fdd7c0" + timestamp = "0x000000000000000000000000000000000000000000000000000000006a062b4b" [previous_kernel_public_inputs.constants.anchor_block_header.global_variables.coinbase] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000003d0220de6fd33ed3481276c1954065244b2fa8d5" [previous_kernel_public_inputs.constants.anchor_block_header.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -214,7 +214,7 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [previous_kernel_public_inputs.constants.tx_context] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x000000000000000000000000000000000000000000000000000000008cdefce3" [previous_kernel_public_inputs.constants.tx_context.gas_settings.gas_limits] da_gas = "0x0000000000000000000000000000000000000000000000000000000000030000" @@ -233,16 +233,16 @@ fee_per_da_gas = "0x000000000000000000000000000000000000000000000000000000000000 fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x1520f4bb11a3a1d2248a03d8472e9af4bb8324eb1d2d8c83bce61894383464b9" +inner = "0x2912f9783016adf7fdf369db240edfcd44b2020430c231cbad6e025feb6f0156" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x26a43bf066852a7b1ec3c5b454f41735fea12e2ffbefed471058124b91d94018" +inner = "0x12e6d1296cc8a232b0cd04bc902425bd660d1c33f367054658565b895dd02792" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] inner = "0x1bd26c6831ebc53674b13ac69a0c534563c37e46c2cbb36f2deca107a26515fa" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x06870c63132d2a4e3356a76d773240efe729e7d9b9380a7a3cf1798fc9031aed" +inner = "0x1a6c91c4f8e806d987e3cbaa9220bade6e1ac8c9e74aad593fb75a31ece44f0c" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] inner = "0x0083c4dfb922796f1086d399f8f3d021159d1a87ba3b833dcdf9863c630ba643" @@ -2263,7 +2263,7 @@ length = "0x0000000000000000000000000000000000000000000000000000000000000002" [[previous_kernel_public_inputs.end.note_hashes.array]] [previous_kernel_public_inputs.end.note_hashes.array.inner] -inner = "0x2295fa9f079bf362a4f01c3b07d9f912f9b484e5ee527ad7a528025a165b9352" +inner = "0x1f86d1e868030bc9ccf0465ea675d7dbaa99a296dab9a2407f5283b6f16f5c3f" counter = "0x000000000000000000000000000000000000000000000000000000000000000a" [previous_kernel_public_inputs.end.note_hashes.array.contract_address] @@ -2271,7 +2271,7 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [[previous_kernel_public_inputs.end.note_hashes.array]] [previous_kernel_public_inputs.end.note_hashes.array.inner] -inner = "0x27f0738f58cf7f88e6845175913245e6f82475f464578de70619eceaff66402e" +inner = "0x0b58ce1ad0e046b142d2eed948abb7268753a6d7013159af59109b832189a0fe" counter = "0x000000000000000000000000000000000000000000000000000000000000000c" [previous_kernel_public_inputs.end.note_hashes.array.contract_address] @@ -2781,7 +2781,7 @@ length = "0x0000000000000000000000000000000000000000000000000000000000000003" counter = "0x0000000000000000000000000000000000000000000000000000000000000001" [previous_kernel_public_inputs.end.nullifiers.array.inner.inner] - value = "0x282b555a2f009837bd02f744ae119250934c991464481b5613f7f2112a615f7c" + value = "0x0dc13cb16dbb5efc680f1b3795abd333ea2ea29dc746578d446e00e61f5a6996" note_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" [previous_kernel_public_inputs.end.nullifiers.array.contract_address] @@ -2792,7 +2792,7 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" counter = "0x0000000000000000000000000000000000000000000000000000000000000009" [previous_kernel_public_inputs.end.nullifiers.array.inner.inner] - value = "0x1567c8c1ff81dda9727361df23c92849c46772567aa0bf3723db03c3751e9d2e" + value = "0x18e242dbf19cf1d73b6df44bc2cb0f966b4f90fc85edacd4e5eddaacd781c52f" note_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" [previous_kernel_public_inputs.end.nullifiers.array.contract_address] @@ -2803,7 +2803,7 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" counter = "0x000000000000000000000000000000000000000000000000000000000000000e" [previous_kernel_public_inputs.end.nullifiers.array.inner.inner] - value = "0x1cb96ed0bfe97ed05e23f013062425e5ce6599fb6430b162e69edfc317d5bf82" + value = "0x0e431d69bf2a57b8472d1a5def22c7435f4f209283d12e4fec21e4a42b0ace57" note_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" [previous_kernel_public_inputs.end.nullifiers.array.contract_address] @@ -3599,22 +3599,22 @@ counter = "0x000000000000000000000000000000000000000000000000000000000000000b" [previous_kernel_public_inputs.end.private_logs.array.inner.inner.log] fields = [ - "0x2c3715409dc4762ec9a9a602d199ea9932d61edd3fd32c9891fe5ea5a722acde", - "0x10433733db106ed8336b9b799ec2debee9fe2da75f114f567eefde5abf9f74d3", - "0x17440c522b009a136c2207db86790b05464774690523c7fbf949ad381664d0ea", - "0x0a5e8928a4d74ad3256e8a697cfdf84b7baae32abad67b2de7c36ffd67acb665", - "0x0b1200621e156c6d79f463e17e81b96f11d18d716ca5222e7276e07d45845a26", - "0x04b2b64d09e487d10d557106046a94a97f2c40f4316e6667a2c2d9a99db05385", - "0x193da3d713c24b85e1c8f22dd8ef575e88d19c6732f8fd17e370cf64e65b3e04", - "0x08569203e8f3d028234ed200df77bca848c9b4b015ad8797c37669a5e5d1ee0c", - "0x13a9b2003409ad3d4f38caba797acc77092ddd431af25a955a83dc6f5b92cc93", - "0x16fece01bc0b0205bcbaca2904d5674d10573bfef038f94d3e5d526596da2ae9", - "0x0a438177a05071eaeb1862f154b187315de4dc804e275b0f2258baf4700c6d64", - "0x0959244a76e5e861ce5b8833101b91e19d758109d68cc174a6f9eec9c7afa008", - "0x03533d18a1c3ebcf22f820a243be161c9798ea59a506572e32e125c53b7aee7e", - "0x1e2b22ea302597bfcbcfdefcda48b60e35fce9c70f46c6cb90fa6db6e8d4dc6d", - "0x28fab93b8cd28d8d2a993badc3d1a080902feecfab019dc7c00af0ea9f6f403d", - "0x104c4c81c135af94af35a1eeb49b1262e5c53e25ee513731ddeb9f6496eea2ab" + "0x2b30819027606c83d38ed8186c9a5a5cab236ebe9ef9d9ff5a34e7c2dcecd97f", + "0x1aa7fd9c63e65f09668f80ac94b787d7971299eea34223c61cad5b52453ff891", + "0x0d9a68e365acae285fef93416045353a0f0a4602ec7fa602b6cd3e5d20e01231", + "0x105260a403e285c2087ffb282a0fad6a59f62607f189516f3196a1ef5911ff2e", + "0x22727637b94845ae480dfddb2224f479e164ea07c800d0ac850c36ec154a8875", + "0x2322397df354ebe1cd7385f4c7cbfddd427349fcc710a3a1107d190a848390e4", + "0x0e691b433e817cd7f8579e986a95ae19068398ca2fd38ea07e5d0349e375c0d1", + "0x1a3e6e39d30dc1841025609cb692a887fb30f436a25e2395018a5e472dfe2f47", + "0x10908074ff1c198d6dbf8c42439887a10d3eca94b4ca924359b3b58268223574", + "0x231a37810f081c28943041cb8025f054fefc43587ac431b3ddb57cb4f8f813a8", + "0x1389f79cd620064179359a113159aafbb6de31e9ebd2076e8c88a5964df14d80", + "0x1738f0845c729616685559a13832b44086a917e7cfb78466a743fba6c434897d", + "0x16bb7e7eb11ae0cfae88df7db19fea02febf23c2e3c18eff5b0b5d81beac1c88", + "0x09f77579231de67ac7fcbfa43d37922bd9207d688d760b9bb69353201cc022ca", + "0x18934f7f41f208034962d6bf8e9e7a139ee7944dad0cea0d3a3f13742d6bc341", + "0x2aa5c235875015d037be0d8ee1529224c629f6723481f56c4f93256759853d73" ] length = "0x0000000000000000000000000000000000000000000000000000000000000010" @@ -3630,22 +3630,22 @@ counter = "0x000000000000000000000000000000000000000000000000000000000000000d" [previous_kernel_public_inputs.end.private_logs.array.inner.inner.log] fields = [ - "0x1b7f52b7a346b47077bab6835a0810e5d75e977fc3f3fbb0436055bcdaa167ee", - "0x2320e89fb76918e7dc48b13861302dbf78af5ba8d5a20da77d19781ac32b9bc2", - "0x2a99619c0d4d380dbc3d53d03ed35011aa9c296a507fabcf712f43a0e5a10850", - "0x02e5d98e7dfbe7653dafb14afddd7e00f403b5a60816d7ab961823bd3cc4b628", - "0x223b37d6caffe87e91cddafdf65c4f641a609ff13350d02654b0fed1443088ab", - "0x2846b9aa4544f8f8851554f5d0c189c188756d734112e1eedd6840c8aeb0e66f", - "0x21cda3f228d55fb1b37f2b7c7a5d42066007143db17645669521ff58956fa7bf", - "0x1d8d79951d7389e5f9dfa963f93e399aebaa346e9ce3b3a5da1b45e4600a1553", - "0x15eabc8ed921f60621fa4fa35214748a7593f1c06a1e66b76092f789b4960bc5", - "0x16babb28d68725cb64d6d7558d49fb921c480359488fcdfb5292019239a50563", - "0x015e561b49da425d081b87bac01336defa1e29ee50d01b7be798ac28e05b24d6", - "0x04bf1a23807cb0711511a6140caf195df55fcf029842652243034ae2ca740648", - "0x2789cc422a86395739004c513cf6a15024e3adf5f2e238b18e1b4f1211a9383a", - "0x00c4e950cfe804e8a3623fe768c82b7340b0216f93c00351c53e2144364cfb51", - "0x2fd9827b4118b7ef401dff1727785e46fdd31947d2e733f4b39076f43652c18a", - "0x158ca7fba6e7fa7b3eb7c062751182d93b4e36b5c77d2e609e246b810650e59e" + "0x1491868e5b7d0c470aee8a3d4dc5b192d231c40177afacd77baa611235262171", + "0x125714bea6f9dce352c199679a8b5a26f29a446843ab0d2d27638e53dc7fa3d9", + "0x13f6548984f27a2359c3fb9425ecd544745203c7e8210b7c647da3181c112ea8", + "0x2fb0acce009caf570ddae31423b79c1a5fd4de750fb069483cfe6cef92551ccb", + "0x02bcf57bf5ae43e2f4cba86050542f4af40b53a0816ae4ad547d95d927d4ebae", + "0x1c8d75c0eeaaa3dcedc92000a72ca5fe6e36ed1a7c5d224d90a3588260834ab3", + "0x0fe0a678a4a889c77f4c5c1acd98885aac6a054ab88fe3a82379ee1247bfc912", + "0x0c0102b88c3484da6c5bf4e816d1b149c29ef216dc369ca99e6710a053bf11ea", + "0x1adcf045ce496a50e160809678659311ba38a05976d598d6600d37144af5f69d", + "0x2e78fe47d01bd0483d9bdf32c773ecfe381b960cb3e18df875c176934092f61a", + "0x0e2bb7123f637b39c25b78343fffff4bff9d27ad9385b336044bca1ab9e0233a", + "0x055921bdf7bc041204b620ae9a35a450e1c30caf9c74c76c570710968ef42c37", + "0x25905c96c6c4fb1cc220d5d9c2dce2c8f962844fcc1f1e3598eb6acfe9eb5961", + "0x2fe9b256e86e2d83b8534d9160095d9c3aff177b8725655274dd9ce7658a0ece", + "0x17060a3c6d31a72f59d76deb26b409534db35c1b3923cef6c391605882176440", + "0x1f04bccaefa4b15b6d70befd3166133e3e931992bdcf8be80cf5d27cf273c325" ] length = "0x0000000000000000000000000000000000000000000000000000000000000010" @@ -3661,22 +3661,22 @@ counter = "0x000000000000000000000000000000000000000000000000000000000000000f" [previous_kernel_public_inputs.end.private_logs.array.inner.inner.log] fields = [ - "0x07d20bd951900d3094f2894e3c76c117114e3150dc3197e9e325e42b4487c6e2", - "0x127157561e774918ba656738fb61ad37f92086431bd4f1e4842ab11928b0f8d2", - "0x2e5cf59c8f2eee7a06d14cdedb8fe58945357cb16f4c792094325909a12924b2", - "0x0e29376c31f2aa7a156c6ce6d1fc9529998251d8500604658f173ff86adffa98", - "0x20761b8be9a186cf6a1730b8a1e99049a07e45c005e66d27b6e0ef15a2833e2f", - "0x1adf679b2441cf3535241924a35164cf8309256721e3f9fcb860bc2acc462b46", - "0x06a613741497b7b7ee978a495bfed7d19bbf76c462d268cee17a3920b1b1abe0", - "0x10ade06e253c1cfd65f24246211fb703c157fd9b563ffaf6ab01b6fba4635155", - "0x2311c6b104555d4d9afc7d66be6b47a41f8aa96eb77f613a75fc952da5975ccf", - "0x08431c3838d7ad6198c1d33ff138953ace3520551bd95b69692609ee11ded216", - "0x1822c33cf8097138c896bb9f7aad7def909a6859d5e640919fd16ebcf153a0db", - "0x11203b31ef49d39fb85a5ea474116c334c156091ab468493a480f13ad1ec1849", - "0x207a4712bacadd2f631fe253cb62932a7acb586dd6dd1b10e0fbe733f61a8f11", - "0x2c862b0eb14b1325a0ca63dda4570f718541d998fb4aba96339b7913b80757c9", - "0x1bf17ee7d3cf2487dcf1eb7a3647b0920c9e68aacc0a33c9a424d4ee6601ded3", - "0x2c70c9b7da7d7df78fcae182d124d7041209070f76d920e5d5c2d7590c385ea1" + "0x0f50d61a2a0fe5665f1c283c34a4531710c1e000b1f383411a99859ee1ee4d53", + "0x13f26c630553de5906836b206accc8cf000329dc18088423a112235d96dbc3c9", + "0x2b120c9b4aaf7c91853ba9c2b8b7ed0d5b56822af2b7b8e56ca2d129237919e2", + "0x16d17b09f6a894b3121de46e0a2597d69dbd38dee282972f6414e12d9042e7a3", + "0x1b64dd0997d9fcd6b5f1a11aec27a3346079bd950fb8a0a25ff71eae435a2f54", + "0x2418ac619a391c7402e38eae1bec620f3bcd8dceff8d1d31649604ae0321878e", + "0x0f234f67156c5ab7b862153bb1da37312c17408ca8f7ba132847aeea3669a8b8", + "0x1051f1366644fd12a2c43a1322d54c2a6f68a8bc11109632974c9af81ad569f2", + "0x0e4fe72cf1dd72edfadb546476b086c7de9af10e9c156884b723ee287befda5b", + "0x0b1de4fab7bbbcf69b9e3bdb063ea9a65ceb1d90fcfc7c218e7934b804554883", + "0x102c2b2cd9cbb1318e810bb39247f640bae7d9be5a0ed0b2884f04f0cbc4bc2a", + "0x05b64dcdfb7475e9a898e8c1a07bf77e5598832b98d6518cd6c1d517d971cc7b", + "0x265a8fcf129a9525f28b2890191fd1efd04226615824e81820804b2cd999886c", + "0x0c5ae02353286e01a3e8ec3f6eefe1268c76d4c699e875d925930285e67a7de2", + "0x14a85a06e89b58306e221ae28d90f0a92764cb0ff669c9253e96476833d9bc34", + "0x2e3e4be4d0a1a7bebca612ae27855c4e31b9df05460d65ac5b664ee9dcf87e5e" ] length = "0x0000000000000000000000000000000000000000000000000000000000000010" @@ -6309,4 +6309,4 @@ length = "0x0000000000000000000000000000000000000000000000000000000000000000" inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [previous_kernel_public_inputs.fee_payer] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x004093295436e1581085b446326dceb0678c0fdee4aec1d441b23d0c941a4f2a" diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first-single-tx/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first-single-tx/Prover.toml index b60a27ba98d5..fa2b6db3097f 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first-single-tx/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first-single-tx/Prover.toml @@ -28,10 +28,10 @@ new_l1_to_l2_message_subtree_root_sibling_path = [ "0x0aced6fe68143f4c7acd16345a8c1bb50c51a0692b760eb48728feb923d90757" ] new_archive_sibling_path = [ - "0x08c303b52910eab1e07d04de401bcbe8d8f36ca377c5168e795f7f5f4156bcd5", - "0x1cfdc3f191fd4278971f73de8ee4302bd29051bb0c93c1ba7a8a7feaa4e59846", + "0x187582fed9947bd0a9df84f6d37f538f6fcd597d87122e7db5cb48f38be596b7", + "0x054b90f40ddddac561368ad8682c81232e076f48bead1301f74aba84136cb94d", "0x14e4b977b2203b70e6ee1c2456eb7114d090fe4b907f631eecd0919fed432e7d", - "0x2b3b2f80ea4227dfe7ab4edec33942ff08b95b023d6d15efb0abde90594c993b", + "0x2e970ecab0b8bea180ad841965d9373e3f872b11a0a6f897427f164f517f7030", "0x1e20ad4181460cbfdc74ca773502c59b890f184efe300ebad895956d318422da", "0x1434e6e2d5db1053ab8a3be58704509c799ee17e109c77f441f7bf1755400249", "0x119f56a2e8423a7feaab49b9b5dcbadec0648dfa4096b61b6774ea33ae29dc7f", @@ -477,19 +477,19 @@ new_archive_sibling_path = [ [inputs.parity_root.public_inputs] sha_root = "0x00de7b349d2306334734e4f58b1302a6ed5a6c796a706f6597a5641b6d468223" converted_root = "0x0d04c63f36bd168215c9b09a227c7e8d3ad48e2f11b8202fd07c524bd30ee88f" - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" + vk_tree_root = "0x115e00fed9b96e899daa4210aaf690c52c3fb9024f12ecfa6295969410d246a4" prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.parity_root.vk_data] leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000016" sibling_path = [ - "0x03c2794698e7be6401d02011dc2296136a6aeb5a9ea3e6d244ece148cf45e1d0", + "0x09e31f1470e1053f8c72fb6a54c2dc6bc35fff3e9236c629a064f37f5998d246", "0x2ba2de2d2cb820a66a273f2ba930d43a4469119ad58fe01eaed0e0d615ffb426", "0x18f1abfe1a07005f35a20c06b468f7a4d3b68ecc2c025c88271b6550a827d41b", - "0x268f759e38c9ff705a78c055b44e19f7d2b0227f3c4f2e31d6874550d498abec", - "0x09f661abe743a7c8125aa0498ca1d01914fdac9cadadb415e0d1a05934997b99", - "0x28650667b92be48b116289119fa4794a5fe8fe5792a49d89b9977feae7f685a6", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x12b2fc2c75329888431e1f3abec5c810aea9fd591c813570cee181f1b665d1ae", + "0x01fbbbbce155d5c589bcb506d4155b721f210ee119133b30de937783113e323e", + "0x0ea386a780cf0f70cf258740f800f4788e20b555a155c2ad9cd01dd4c0b649a5", + "0x10f050f0394d228b26baefadb2f029bd889b21a3e7e17efe6d9ef92fef9af70e" ] [inputs.parity_root.vk_data.vk] @@ -1099,16 +1099,16 @@ new_archive_sibling_path = [ [inputs.previous_rollup.public_inputs] num_txs = "0x0000000000000000000000000000000000000000000000000000000000000001" out_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" - accumulated_fees = "0x0000000000000000000000000000000000000000000000000022e452ad469ea0" + accumulated_fees = "0x0000000000000000000000000000000000000000000000000022e44313545d00" accumulated_mana_used = "0x00000000000000000000000000000000000000000000000000000000000a3979" [inputs.previous_rollup.public_inputs.constants] - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" - protocol_contracts_hash = "0x0333160f082dfc02e255c756febac14dc42c4c88b882e0403d44710c1f0bb80f" + vk_tree_root = "0x115e00fed9b96e899daa4210aaf690c52c3fb9024f12ecfa6295969410d246a4" + protocol_contracts_hash = "0x10a32ead90905324604efd0afce0bd841a58c34206040eb4e259be5fe8b90de8" prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.previous_rollup.public_inputs.constants.last_archive] - root = "0x24f3d6261780561e8ede638edf15d34d9f93372572631856307c57a08dfb9cb1" + root = "0x2b2cc76a06e0d9171534d99a1f1cfbd6eb033d5712af9b8fef977ea3e2d30e82" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000b" [inputs.previous_rollup.public_inputs.constants.l1_to_l2_tree_snapshot] @@ -1117,43 +1117,43 @@ new_archive_sibling_path = [ [inputs.previous_rollup.public_inputs.constants.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x000000000000000000000000000000000000000000000000000000008cdefce3" block_number = "0x000000000000000000000000000000000000000000000000000000000000000b" slot_number = "0x0000000000000000000000000000000000000000000000000000000000000043" - timestamp = "0x0000000000000000000000000000000000000000000000000000000069fde108" + timestamp = "0x000000000000000000000000000000000000000000000000000000006a063493" [inputs.previous_rollup.public_inputs.constants.global_variables.coinbase] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000003d0220de6fd33ed3481276c1954065244b2fa8d5" [inputs.previous_rollup.public_inputs.constants.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollup.public_inputs.constants.global_variables.gas_fees] fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" - fee_per_l2_gas = "0x00000000000000000000000000000000000000000000000000000003699e8ba0" + fee_per_l2_gas = "0x00000000000000000000000000000000000000000000000000000003699d0500" [inputs.previous_rollup.public_inputs.start_tree_snapshots.note_hash_tree] -root = "0x2126a6e400b3fae90b44b74482d5b59dc707ba8f044c90a5f0e06ff48029f19f" +root = "0x030a54533f369d5052ba4ce15c7da3210e0702a11d806b82a8e44d3d04c0fa88" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000300" [inputs.previous_rollup.public_inputs.start_tree_snapshots.nullifier_tree] -root = "0x0e8d32952999631ff527d706426177bdb3208db1d3b8dd4e74ba883610dc37e5" +root = "0x19f673ade24c464385eacee9ea0676ea9f790fb73c0aa31ee1b7b332bd2dd75d" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000380" [inputs.previous_rollup.public_inputs.start_tree_snapshots.public_data_tree] -root = "0x0d21d4944ca04ad548057c7362ba76b7370e29929fe9cdd32ec1d04c07e21179" +root = "0x1c1874a7fa2daf7453bc043f63e00780db5d24e354bff2f38741eea0d43f60de" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [inputs.previous_rollup.public_inputs.end_tree_snapshots.note_hash_tree] -root = "0x2126a6e400b3fae90b44b74482d5b59dc707ba8f044c90a5f0e06ff48029f19f" +root = "0x030a54533f369d5052ba4ce15c7da3210e0702a11d806b82a8e44d3d04c0fa88" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000340" [inputs.previous_rollup.public_inputs.end_tree_snapshots.nullifier_tree] -root = "0x28f8d2b1f0315d8539c1e4ff651e2eaac034de0a2271cd6f198f557ecf449cb1" +root = "0x1f4f6e04c64c90f15666d84e6fceb3e11a472bea6ff9e72f35d51d7d524180da" next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000003c0" [inputs.previous_rollup.public_inputs.end_tree_snapshots.public_data_tree] -root = "0x1a010e7a4312757d9349e0058c907064764c9836de016199dbd957ca46fefc3b" +root = "0x0bd76b84155a240fba8f4540ae13003c1801bbfc6604dd6b33b4be5ac62c4623" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [inputs.previous_rollup.public_inputs.start_sponge_blob] @@ -1179,15 +1179,15 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.previous_rollup.public_inputs.end_sponge_blob.sponge] cache = [ - "0x00000000000000000000000000000000000000000000021e00afaeb15ed67ca0", + "0x00000000000000000000000000000000000000000000021e00afaec0f8c8be40", "0x0000000000000000000000000000000000000000000000000000000000000af0", - "0x12d1296a2643b832fbd1d6d3ed3678833fce770084efd75adfd517de8214ccf3" + "0x21f429ce5edf30ad48f624c6480af649eda3c8526611ceef694b12809e260c17" ] state = [ - "0x11cc4dd8716179a3121aa6820cf8805b0e65d61d2b958fe317a1ec807c461a21", - "0x0027ae2792755b030071ea296ff933c1fbc939538b5565420ed3e94832815961", - "0x20fa0000aefa41fd803dab187b732d999bc74c8fbd1093faea082ec34b9a2976", - "0x15a69510721f899245edece9d54fb2ab846e01ef0c7480c8a80c649d69839cbd" + "0x2841a763f559f695c7fccb5279436981784377a127d22ae1087fe73a4c2b2c9b", + "0x250a0edb087414a0ed9fc89cbb59f482dae4fe882df18224468afbf8a266da0d", + "0x06285cc645e59a4436ebc608280a42b8b9d3fb9cb3e5c772baf5668942fd7bac", + "0x0142a91116a315c2343f2cec0afb80091ce4e96b5570af44623d8245dfc007b5" ] cache_size = "0x0000000000000000000000000000000000000000000000000000000000000001" squeeze_mode = false @@ -1198,10 +1198,10 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x09b4bb0061881fc354c5fadf8dc55f36b0c67dc3b2f58a18406363dfa0b079fa", "0x2136af42d41c58f3fd528f4e88c2de5152c2bb251a3c4d8950d4401a0c8ae6ff", "0x02d4017a1d1c142d1fdf34bf701748bd9db29906e0114ac657648a51d10b6799", - "0x099ef6a9a40aaf85e056bda90684adf858addbb90af303d82f8157b86b705b92", - "0x25f6f5fc25ee815cef59a1889f1e39db3d431d01b01ee1554f9492afec9d41d6", - "0x28650667b92be48b116289119fa4794a5fe8fe5792a49d89b9977feae7f685a6", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x0186c83e21e344a559356060b9f16254f9f8d0b51509d1d5ff42e6629dc440fb", + "0x08e506e1b4afdb0e6492d582e7f7da14da78cdb5d35cddc587855ffb03aaecf1", + "0x0ea386a780cf0f70cf258740f800f4788e20b555a155c2ad9cd01dd4c0b649a5", + "0x10f050f0394d228b26baefadb2f029bd889b21a3e7e17efe6d9ef92fef9af70e" ] [inputs.previous_rollup.vk_data.vk] @@ -1209,94 +1209,94 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x0000000000000000000000000000000000000000000000000000000000000017", "0x0000000000000000000000000000000000000000000000000000000000000042", "0x0000000000000000000000000000000000000000000000000000000000000005", - "0x0000000000000000000000000000008a8843c678d444ced3a35d87626e56ed9f", - "0x0000000000000000000000000000000000060403e4feb303ebae0081cbad4e96", - "0x000000000000000000000000000000f0fe138760bd40aadc43c77ad160555212", - "0x0000000000000000000000000000000000154e802ee66f7a511a469adb8153e5", - "0x00000000000000000000000000000012b75e2667d243bc4bb7b0cde3bdc5eefc", - "0x000000000000000000000000000000000013e94fa83017e580a2e280e4f8c376", - "0x000000000000000000000000000000fb8b3161040e7a5502bf277aec7b82cb6b", - "0x000000000000000000000000000000000014e7113349a6d4f2b0d3c9bde42075", - "0x0000000000000000000000000000006bc15064df220ad5d2fea722296bf72c99", - "0x00000000000000000000000000000000002039216ff43d16e0a63e542794decf", - "0x000000000000000000000000000000f0d3e00b510ae4272fbba83d787c7e6b6e", - "0x000000000000000000000000000000000022f73b00c62c39fc49fbffa96081da", - "0x0000000000000000000000000000000ff9f67bc7c9b90987dbed3fadf40bacc4", - "0x00000000000000000000000000000000001dc87bb292ea49bdb5bb87509c9781", - "0x00000000000000000000000000000025239c23a65572724acdd6663984afc224", - "0x000000000000000000000000000000000005e345da6870bd306f04558f601b45", - "0x000000000000000000000000000000cb380ac3dc3f8788bab24fcb5d9eedc949", - "0x000000000000000000000000000000000017714c1fab296b76d2f78ed675c1ce", - "0x00000000000000000000000000000095bca1a9f9a186f7ec34e43c479e5d1b2f", - "0x000000000000000000000000000000000018d292be64529b7e9ec24c76e561d9", - "0x0000000000000000000000000000006f1bd711730ae2aaf83227b9d9f46daa43", - "0x00000000000000000000000000000000002df0b894f5971084c0a65839178a66", - "0x000000000000000000000000000000909f2efe0bffa95e984d456089f568f59b", - "0x00000000000000000000000000000000002908f2c7ddf9573df347d6c9f22fde", + "0x00000000000000000000000000000057cf110106ddc3ed5f2c879676811e8d32", + "0x000000000000000000000000000000000024103b0bd0ba6b98908d59f8fa6c92", + "0x000000000000000000000000000000d59a8c08489e37aa21d8901fa3d6488de2", + "0x0000000000000000000000000000000000291d91304771175bbb5b92811b22ea", + "0x0000000000000000000000000000002e53aaf34a7c9fa8436f83e2ce9c1e6752", + "0x000000000000000000000000000000000021e5690c9fec972834d7283870169f", + "0x00000000000000000000000000000006c70ff7a8ef6b270814dcd5c2860285cd", + "0x0000000000000000000000000000000000232b97c90e32797d114953acdb42e1", + "0x000000000000000000000000000000cfda308373655f72f6bd8776a2ffcdff5d", + "0x0000000000000000000000000000000000257b3ec04cc184846ecc01adac6b8d", + "0x000000000000000000000000000000849d21c95bc952f135827227537f25a140", + "0x000000000000000000000000000000000029995fc084c4cc0a12060b52a29afe", + "0x0000000000000000000000000000007e719d6b80df6e02a9cf0b7068690f4f61", + "0x000000000000000000000000000000000028e353f3ea1394828e5b85d3d11d8c", + "0x000000000000000000000000000000931e85d9eb05e790b60eba0912eaf30702", + "0x0000000000000000000000000000000000301941f34f872a41be1a3c65268b2e", + "0x000000000000000000000000000000377ca43a619a8b5e4561db6fa1d3b8ecfd", + "0x000000000000000000000000000000000002f0e3a6203619370bcbd4e4f0891f", + "0x000000000000000000000000000000325ac0e4aed8920e9df61494b6e1d55857", + "0x0000000000000000000000000000000000195056eadad14252e5f8bfcab423da", + "0x000000000000000000000000000000a62226a0145c6c8815b02e77ff729aa48f", + "0x00000000000000000000000000000000000bbd87d17a889f273d4ebe7c13dba7", + "0x000000000000000000000000000000e6c442fdd331923067401ab8cb71ed5ba1", + "0x00000000000000000000000000000000001099c5df4ae9499ba6ee0ad2d9f3f9", "0x0000000000000000000000000000006f206a04895661d3bd004222a1f8a7fc73", "0x00000000000000000000000000000000001b12a59a820d3aa543a594a1b9d92f", "0x0000000000000000000000000000002103559842aca1e08af33bb1f714ebc02a", "0x00000000000000000000000000000000001b8936a0be628b58af9859c2a851d1", - "0x000000000000000000000000000000d2c67f3c526e05aa6d25558ae65cf0e3ac", - "0x000000000000000000000000000000000006cc97b785475ed3429d939fa00e96", - "0x000000000000000000000000000000c5240a725c016a35037b37f73c37b68de9", - "0x000000000000000000000000000000000015e6206f121de2aafe259c32889a4b", - "0x0000000000000000000000000000004cba3ce39736c272ff963bdbdfcb67c2ef", - "0x0000000000000000000000000000000000243b3786310485c3234295957c5222", - "0x0000000000000000000000000000002c3672eaf01e849995fc3f6dc99dcd1d60", - "0x00000000000000000000000000000000001449e8673b109f980a1542f1ddd670", - "0x000000000000000000000000000000f077af86375782052dfc713a0c67f9a08b", - "0x0000000000000000000000000000000000124108d868884e76f5ceeb60b2bdae", - "0x00000000000000000000000000000029c3fd985c5dd5867bd8fed36ad940e02d", - "0x0000000000000000000000000000000000146fedc34ca9246ab0df070f31ee14", - "0x000000000000000000000000000000706a32f5a8f5fa44205bb08662e0ef1396", - "0x000000000000000000000000000000000016ded7f7f0b72d3ecf256f5c2ee613", - "0x0000000000000000000000000000002eaf856304cdbbb4d0b926d9c9211028c0", - "0x000000000000000000000000000000000004696250db37878179b548105ff54e", - "0x000000000000000000000000000000047767298e4177562ddcbcae03c7ec6ccc", - "0x00000000000000000000000000000000001f29f52f5f45f28e462390b0f914f9", - "0x00000000000000000000000000000004e950f9459bf160429275bc6a733319ea", - "0x0000000000000000000000000000000000175f23657f8f899b10b84c1ffe432c", - "0x0000000000000000000000000000006e522620788963bd42d9ab48810f89afe4", - "0x00000000000000000000000000000000002243c76dbde36a37e42b92bae3eb16", - "0x0000000000000000000000000000005641fbcbddd5abb62d653fd7f1ed10ed7e", - "0x000000000000000000000000000000000007d25e6a46da918fdb902e1a78efb4", - "0x00000000000000000000000000000065f7509bb551cb061c5fd1e92bc85a4974", - "0x00000000000000000000000000000000002efbc0dd9b88baa9675d95ae595e68", - "0x00000000000000000000000000000046bdd1d7603fdb2ee53f8966b3069082a5", - "0x0000000000000000000000000000000000161d3346daa3f83e4416d59e8135b6", - "0x000000000000000000000000000000ec124a53466d06b5e0df3e77f9f6a6ae15", - "0x0000000000000000000000000000000000128b36a77e814ffa503da6fd061fc3", - "0x0000000000000000000000000000002cfa5f8d00fe2bbdd85db6b0179a4c7346", - "0x00000000000000000000000000000000002b7ce5f45710c4b113f7ca6b3291b0", - "0x00000000000000000000000000000054409cb824bb2028eb6a501f9585b13eda", - "0x000000000000000000000000000000000026412333aa334f56e0761374f0c38b", - "0x0000000000000000000000000000002a23ae58cbd13760028a699488d5a4300f", - "0x0000000000000000000000000000000000225067a42bdcd7d9eec23d250acc92", - "0x0000000000000000000000000000006e28e63b7d6bc65c15c009f5dd9304f8fd", - "0x00000000000000000000000000000000002648ab0c9cfefbb147853e364bef8d", - "0x000000000000000000000000000000f00a9e6c1594965b7c14b2310b489b52f9", - "0x00000000000000000000000000000000000a03f4283d5d64b7245827349741ee", - "0x00000000000000000000000000000073f3c5531dc194b7332ef4e765192e3962", - "0x0000000000000000000000000000000000088b01c6cab84d827c1d8eae1ebbbd", - "0x000000000000000000000000000000e197f3a024045bec491c28fc4b7594347b", - "0x000000000000000000000000000000000025bf29aee6c0dd8976574600dfacea", - "0x00000000000000000000000000000023cebfa19e1e206b1d71359821037c31b7", - "0x00000000000000000000000000000000000c2354b63a0bcd72350e606c3fa0e7", - "0x000000000000000000000000000000fcf564b220543fd0aea7b28c05df85fe3a", - "0x00000000000000000000000000000000000c2f035d78985f2c0e4ab138790e69", - "0x0000000000000000000000000000005129d16313e897118223bd963067e22700", - "0x000000000000000000000000000000000004c87b337be4b82e809af637daef82", - "0x000000000000000000000000000000279941b3633c9a8e9fc6e68ef4be5633f4", - "0x00000000000000000000000000000000002a9334f2cfa791a9bbc88cc234a5d2", - "0x000000000000000000000000000000ab1a8db808cb2b1b90ba26085c23154102", - "0x00000000000000000000000000000000002c04e8fdbd1f2154a1b42961e3b6b5", - "0x0000000000000000000000000000005729f9b6dcfc45fa934c44ad8800e2b7c6", - "0x00000000000000000000000000000000002c584d4df5aaa602e46e5033408d64", - "0x0000000000000000000000000000004daf206a533411e7b39ab99acaf3287ca2", - "0x000000000000000000000000000000000020d85db8daa0dd9c83ceda296cbe73", - "0x000000000000000000000000000000ab6d868729c089d55819b59b1df10e26ce", - "0x000000000000000000000000000000000004b5421430befd61f014813d315ade", + "0x000000000000000000000000000000c99a8c234c72c05e9b9da4a4fe6a5f117a", + "0x000000000000000000000000000000000014489029cf548bb617909bfb4fc4c6", + "0x000000000000000000000000000000a69eb4777f7c40cf97a93e1e87fe9b91a1", + "0x000000000000000000000000000000000019ce5213848e03960995f5052f777f", + "0x00000000000000000000000000000013c37b31033098f26ea7d865f9c5ecfbe7", + "0x000000000000000000000000000000000019883e1816d3593bc992e668e636a6", + "0x000000000000000000000000000000da0aa2392094ea9149ce458054dcac1258", + "0x00000000000000000000000000000000000ec137510665209635af885c1532c4", + "0x000000000000000000000000000000a0672f78f14862f407ef51776577307e74", + "0x000000000000000000000000000000000017990b9891616eaf1421e512f0a252", + "0x000000000000000000000000000000ad2566cd4a64d6ea9220dc961cd47f394b", + "0x0000000000000000000000000000000000070a8d7fe2af4375e555d85a68ba56", + "0x0000000000000000000000000000001dd61fdd1d49d6fa154cdff4472b5b0cdd", + "0x00000000000000000000000000000000000bb0d5d5ccb2d531408a1fdf5e71fd", + "0x0000000000000000000000000000005c8f1111c0670512953563b18d59765d8d", + "0x00000000000000000000000000000000002c0f9ef5ef6a01ad293285532034cd", + "0x000000000000000000000000000000f0215e66ba0cc35ed5f256c48de3c099cf", + "0x00000000000000000000000000000000000d1caf599e61a628df07a699ccd89d", + "0x000000000000000000000000000000d99692d058844f7fa084c8ef50c299049f", + "0x00000000000000000000000000000000000d9309655d7d77d0c4e97472ee3574", + "0x0000000000000000000000000000005a187655f3c9838e72abebe3462af6d2a8", + "0x0000000000000000000000000000000000225d6487dc669975c3d59afabb647a", + "0x000000000000000000000000000000e919272c67d9ec47e34409750e84d507f2", + "0x00000000000000000000000000000000000d5c8c0f3c9d22e1b80d8a0873ad5c", + "0x0000000000000000000000000000009fa6ffd7c8795b20807f53cb6a00a00d96", + "0x000000000000000000000000000000000012813d309efe3a9badc21a9c0f29c9", + "0x000000000000000000000000000000334172c9cb695aca26b4568118cfb464a6", + "0x00000000000000000000000000000000001fd1306a1f0e9b6a5134f817fea109", + "0x0000000000000000000000000000005def1ea6d15fa86c8b609c15d60eea9fec", + "0x00000000000000000000000000000000002f28ee11565a012e83f39636389a41", + "0x000000000000000000000000000000b5d3c65b0953602d276ee79ac03e4de81c", + "0x00000000000000000000000000000000002bc6071504318788fda58456b7ed41", + "0x000000000000000000000000000000c8835926ec8921619bb29d4f0ed9dd032d", + "0x0000000000000000000000000000000000170ebe65297e1abae46aae4b19f38a", + "0x000000000000000000000000000000d266e9260fc8e8df0ef931f3496a263b1a", + "0x00000000000000000000000000000000001c0a934d6474a35dc7218748d9907a", + "0x000000000000000000000000000000517321c70919c72fc461d16368a1b57c09", + "0x000000000000000000000000000000000019408e7b62309ec698d92c46871644", + "0x00000000000000000000000000000010a8b38ca2e62e1437ec29e26be7d11d1a", + "0x00000000000000000000000000000000002ecd222a859359a4e760bc35f04941", + "0x000000000000000000000000000000e740e76c2f9ffa734562a70ca4a3e93c7c", + "0x00000000000000000000000000000000001c21d871036a10e2bdcdaebe61e731", + "0x000000000000000000000000000000b3e1e7349e6a9c99fe6e0e9c63d42c4dc7", + "0x00000000000000000000000000000000002ce372edc4836b309cc8b11eb5cd8b", + "0x00000000000000000000000000000037aeb7bdea7ed90bb2021448339761fd21", + "0x00000000000000000000000000000000002aa9f47f1c1627c0a23834fa108d51", + "0x000000000000000000000000000000f72876d845824059212cfb28bd30ad43f4", + "0x000000000000000000000000000000000004af70b99bd774fe0a5b9fbf019ae8", + "0x000000000000000000000000000000a63477dad561c6a8b68d14b745bcf05f97", + "0x000000000000000000000000000000000008d7fd511a681d138c2480960d077c", + "0x000000000000000000000000000000bef623a591a0c339f4b0f1f04fcd38bd1f", + "0x00000000000000000000000000000000001c8cae52c228bda362985317b4df2a", + "0x00000000000000000000000000000010f552bd20f0c6efb7103e38ec156f4472", + "0x00000000000000000000000000000000001864d52a497cdc35c5043d8de03c94", + "0x0000000000000000000000000000008eb80da264ac17c505ba8553aa28a2760f", + "0x0000000000000000000000000000000000242e223d1a6a1fe29451b6e6f9e9c0", + "0x00000000000000000000000000000010e810a78fd50f9db6ccafc990e68eb835", + "0x000000000000000000000000000000000022194df6a14024e4faa70aac7a4d8d", + "0x000000000000000000000000000000a6ac4e80087ce7593ee591737f10a5d950", + "0x00000000000000000000000000000000001df2128d6a9a0c37251202dd85c263", "0x0000000000000000000000000000005eefcb3c6f69064ed55425945fcc74c2bc", "0x00000000000000000000000000000000001613278bd29c20c182e6f3b5e367ce", "0x0000000000000000000000000000006c39d4dd8c65752b9bc2628fcc3dbf415c", @@ -1317,12 +1317,12 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x00000000000000000000000000000000002a56ce41f6b0be13b9c26747621b82", "0x000000000000000000000000000000d5827d6338c78656c0d12ca1aea6ef2c7c", "0x00000000000000000000000000000000001aa98f2de3ddda547d8f6de4e725de", - "0x000000000000000000000000000000bd9c096acdaa162e6c7ee9b718f7fbf759", - "0x00000000000000000000000000000000002c70947eefbeb3fcbc1953b2ccb88f", - "0x00000000000000000000000000000045e09e50b539ce6228369e4b4cb8530ce0", - "0x0000000000000000000000000000000000062cf2c7d023a38df32e6c8c04a8c1" + "0x000000000000000000000000000000ba8c511c4ab2de34e86f48c91c380c23b5", + "0x00000000000000000000000000000000002ba8c125b045ffa70b266787de4966", + "0x000000000000000000000000000000da7de16dc93474a0f0177bf1b1b00c3f36", + "0x00000000000000000000000000000000002c204d14e4f03ca6363da8ebe31ee7" ] - hash = "0x208d8b1ad2d688325416c8a23881e8b14753352851d7740b339ea2ebd455cdcc" + hash = "0x13a575346512841fa8ffe904f42bb97f77933efe4906474c143c28f9dd86a701" [inputs.previous_l1_to_l2] root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first/Prover.toml index 969d8532627b..4c6b805bdbf1 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first/Prover.toml @@ -29,9 +29,9 @@ new_l1_to_l2_message_subtree_root_sibling_path = [ ] new_archive_sibling_path = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x1cfdc3f191fd4278971f73de8ee4302bd29051bb0c93c1ba7a8a7feaa4e59846", + "0x054b90f40ddddac561368ad8682c81232e076f48bead1301f74aba84136cb94d", "0x14e4b977b2203b70e6ee1c2456eb7114d090fe4b907f631eecd0919fed432e7d", - "0x2b3b2f80ea4227dfe7ab4edec33942ff08b95b023d6d15efb0abde90594c993b", + "0x2e970ecab0b8bea180ad841965d9373e3f872b11a0a6f897427f164f517f7030", "0x1e20ad4181460cbfdc74ca773502c59b890f184efe300ebad895956d318422da", "0x1434e6e2d5db1053ab8a3be58704509c799ee17e109c77f441f7bf1755400249", "0x119f56a2e8423a7feaab49b9b5dcbadec0648dfa4096b61b6774ea33ae29dc7f", @@ -477,19 +477,19 @@ new_archive_sibling_path = [ [inputs.parity_root.public_inputs] sha_root = "0x00de7b349d2306334734e4f58b1302a6ed5a6c796a706f6597a5641b6d468223" converted_root = "0x0d04c63f36bd168215c9b09a227c7e8d3ad48e2f11b8202fd07c524bd30ee88f" - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" + vk_tree_root = "0x115e00fed9b96e899daa4210aaf690c52c3fb9024f12ecfa6295969410d246a4" prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.parity_root.vk_data] leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000016" sibling_path = [ - "0x03c2794698e7be6401d02011dc2296136a6aeb5a9ea3e6d244ece148cf45e1d0", + "0x09e31f1470e1053f8c72fb6a54c2dc6bc35fff3e9236c629a064f37f5998d246", "0x2ba2de2d2cb820a66a273f2ba930d43a4469119ad58fe01eaed0e0d615ffb426", "0x18f1abfe1a07005f35a20c06b468f7a4d3b68ecc2c025c88271b6550a827d41b", - "0x268f759e38c9ff705a78c055b44e19f7d2b0227f3c4f2e31d6874550d498abec", - "0x09f661abe743a7c8125aa0498ca1d01914fdac9cadadb415e0d1a05934997b99", - "0x28650667b92be48b116289119fa4794a5fe8fe5792a49d89b9977feae7f685a6", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x12b2fc2c75329888431e1f3abec5c810aea9fd591c813570cee181f1b665d1ae", + "0x01fbbbbce155d5c589bcb506d4155b721f210ee119133b30de937783113e323e", + "0x0ea386a780cf0f70cf258740f800f4788e20b555a155c2ad9cd01dd4c0b649a5", + "0x10f050f0394d228b26baefadb2f029bd889b21a3e7e17efe6d9ef92fef9af70e" ] [inputs.parity_root.vk_data.vk] @@ -1099,16 +1099,16 @@ new_archive_sibling_path = [ [inputs.previous_rollups.public_inputs] num_txs = "0x0000000000000000000000000000000000000000000000000000000000000002" out_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" - accumulated_fees = "0x00000000000000000000000000000000000000000000000000885bb87af2ece0" - accumulated_mana_used = "0x00000000000000000000000000000000000000000000000000000000001210e5" + accumulated_fees = "0x0000000000000000000000000000000000000000000000000083c454635e0920" + accumulated_mana_used = "0x000000000000000000000000000000000000000000000000000000000011752b" [inputs.previous_rollups.public_inputs.constants] - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" - protocol_contracts_hash = "0x0333160f082dfc02e255c756febac14dc42c4c88b882e0403d44710c1f0bb80f" + vk_tree_root = "0x115e00fed9b96e899daa4210aaf690c52c3fb9024f12ecfa6295969410d246a4" + protocol_contracts_hash = "0x10a32ead90905324604efd0afce0bd841a58c34206040eb4e259be5fe8b90de8" prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.previous_rollups.public_inputs.constants.last_archive] - root = "0x25dd04dc7f0a4299651ea908c014de487c4be771db4d68b458d16aa041af02ba" + root = "0x2521431714d5fae9c9497a549853582f97f43bca7eea64a1a0aa431783287439" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000a" [inputs.previous_rollups.public_inputs.constants.l1_to_l2_tree_snapshot] @@ -1117,13 +1117,13 @@ new_archive_sibling_path = [ [inputs.previous_rollups.public_inputs.constants.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x000000000000000000000000000000000000000000000000000000008cdefce3" block_number = "0x000000000000000000000000000000000000000000000000000000000000000a" slot_number = "0x0000000000000000000000000000000000000000000000000000000000000042" - timestamp = "0x0000000000000000000000000000000000000000000000000000000069fde0c0" + timestamp = "0x000000000000000000000000000000000000000000000000000000006a06344b" [inputs.previous_rollups.public_inputs.constants.global_variables.coinbase] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000003d0220de6fd33ed3481276c1954065244b2fa8d5" [inputs.previous_rollups.public_inputs.constants.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -1133,27 +1133,27 @@ new_archive_sibling_path = [ fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000078c3bcb60" [inputs.previous_rollups.public_inputs.start_tree_snapshots.note_hash_tree] -root = "0x11ea69a14ea9c12bed3f481dd61addfb2d90d96aa40b626c4d2e47b3466e7b88" +root = "0x2908bf1cf1e39b8a7a58f176355b1463a351f73e0aeafe3ec2025adec49f4897" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000240" [inputs.previous_rollups.public_inputs.start_tree_snapshots.nullifier_tree] -root = "0x10e14d1e03084d8016d8018077d4e629cb58cbf3139897cdd78db40c002a04d7" +root = "0x2c3038ffe818b210f773e174f35b0d53ac3624757bb29b6c0d3aa5cb7413e50c" next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000002c0" [inputs.previous_rollups.public_inputs.start_tree_snapshots.public_data_tree] -root = "0x1410b6658243b878037c23a953c69c3a138fdf38373efa0662a549111364b310" +root = "0x246a615f499785783dfca134db45a55d24c0c3f4bbd1c0141a5a41df05381c04" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [inputs.previous_rollups.public_inputs.end_tree_snapshots.note_hash_tree] -root = "0x2126a6e400b3fae90b44b74482d5b59dc707ba8f044c90a5f0e06ff48029f19f" +root = "0x030a54533f369d5052ba4ce15c7da3210e0702a11d806b82a8e44d3d04c0fa88" next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000002c0" [inputs.previous_rollups.public_inputs.end_tree_snapshots.nullifier_tree] -root = "0x26fd6ffebb711b7b1d916a895bb8bf3c6b5fc915b1e5a22db0fb801072027d80" +root = "0x2527d24acbb698de86fdfe706537eed63e92f65eb01667ca8c6b1a5cc4d1c649" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000340" [inputs.previous_rollups.public_inputs.end_tree_snapshots.public_data_tree] -root = "0x2cef7e5e25fb54c99feb0d6fbc5bb44eb98d00d3022f4baf5e3f6025a7320293" +root = "0x15089f2566ce411560a78b1de6a4ebc1664acf4ec903e738ee0a7d73896ee4dd" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [inputs.previous_rollups.public_inputs.start_sponge_blob] @@ -1175,33 +1175,33 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 squeeze_mode = false [inputs.previous_rollups.public_inputs.end_sponge_blob] - num_absorbed_fields = "0x0000000000000000000000000000000000000000000000000000000000000047" + num_absorbed_fields = "0x0000000000000000000000000000000000000000000000000000000000000045" [inputs.previous_rollups.public_inputs.end_sponge_blob.sponge] cache = [ - "0x2a44787960631c708a6c54319236e2733f5bf18956a780d4f076e06d46e8c52f", - "0x21c2f9acd4cfd49d3570c4429b45c6dcf5658ac7592091682403c9468c8fbfc5", - "0x089c49b97c1e121fc3d9c0d7f3793cdd886de1fb26e735edbdae3790abaedd66" + "0x004093295436e1581085b446326dceb0678c0fdee4aec1d441b23d0c941a4f2a", + "0x21f429ce5edf30ad48f624c6480af649eda3c8526611ceef694b12809e260c17", + "0x00000000000000000000000000000000000000000000021e011fbf2496689ba0" ] state = [ - "0x0b196378726e6d2cbd4d793963bdda8cc494c766409365f6a0f3b9f8e2e2c277", - "0x29906675cd547621ba2ccf000d609acec4b304b7b4d929f9e586687d92c311a9", - "0x17ecd8ac459a19c262c431de5d01f6726a3b03485399398d69165cc195454006", - "0x254280886c6baee6bfedb4dae9055f680574d4b1bb6a4245fb1f24c70eedaa76" + "0x2553346861ee3c76d03c12e03ef7844b5d1010e7b07aa8fcef96ee76b2e049f3", + "0x2d4066cb72bc3a33c9e521d1e8313ec79663d70c3ab2189cb41695aa52a4541c", + "0x24479e0769fb6b9e30581b0cfc715f13070c49a213f99653948f1b9970b722e1", + "0x2e2cc1a01f7601b2b598953ae4d207e9f5f7dc8cdaeac7b9acc41b1761bd715a" ] - cache_size = "0x0000000000000000000000000000000000000000000000000000000000000002" + cache_size = "0x0000000000000000000000000000000000000000000000000000000000000003" squeeze_mode = false [inputs.previous_rollups.vk_data] leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000009" sibling_path = [ - "0x208d8b1ad2d688325416c8a23881e8b14753352851d7740b339ea2ebd455cdcc", + "0x13a575346512841fa8ffe904f42bb97f77933efe4906474c143c28f9dd86a701", "0x2136af42d41c58f3fd528f4e88c2de5152c2bb251a3c4d8950d4401a0c8ae6ff", "0x02d4017a1d1c142d1fdf34bf701748bd9db29906e0114ac657648a51d10b6799", - "0x099ef6a9a40aaf85e056bda90684adf858addbb90af303d82f8157b86b705b92", - "0x25f6f5fc25ee815cef59a1889f1e39db3d431d01b01ee1554f9492afec9d41d6", - "0x28650667b92be48b116289119fa4794a5fe8fe5792a49d89b9977feae7f685a6", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x0186c83e21e344a559356060b9f16254f9f8d0b51509d1d5ff42e6629dc440fb", + "0x08e506e1b4afdb0e6492d582e7f7da14da78cdb5d35cddc587855ffb03aaecf1", + "0x0ea386a780cf0f70cf258740f800f4788e20b555a155c2ad9cd01dd4c0b649a5", + "0x10f050f0394d228b26baefadb2f029bd889b21a3e7e17efe6d9ef92fef9af70e" ] [inputs.previous_rollups.vk_data.vk] @@ -1811,16 +1811,16 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.previous_rollups.public_inputs] num_txs = "0x0000000000000000000000000000000000000000000000000000000000000001" out_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" - accumulated_fees = "0x000000000000000000000000000000000000000000000000004894bc72b69ca0" - accumulated_mana_used = "0x0000000000000000000000000000000000000000000000000000000000099dbf" + accumulated_fees = "0x000000000000000000000000000000000000000000000000004d2c208a4b8060" + accumulated_mana_used = "0x00000000000000000000000000000000000000000000000000000000000a3979" [inputs.previous_rollups.public_inputs.constants] - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" - protocol_contracts_hash = "0x0333160f082dfc02e255c756febac14dc42c4c88b882e0403d44710c1f0bb80f" + vk_tree_root = "0x115e00fed9b96e899daa4210aaf690c52c3fb9024f12ecfa6295969410d246a4" + protocol_contracts_hash = "0x10a32ead90905324604efd0afce0bd841a58c34206040eb4e259be5fe8b90de8" prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.previous_rollups.public_inputs.constants.last_archive] - root = "0x25dd04dc7f0a4299651ea908c014de487c4be771db4d68b458d16aa041af02ba" + root = "0x2521431714d5fae9c9497a549853582f97f43bca7eea64a1a0aa431783287439" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000a" [inputs.previous_rollups.public_inputs.constants.l1_to_l2_tree_snapshot] @@ -1829,13 +1829,13 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.previous_rollups.public_inputs.constants.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x000000000000000000000000000000000000000000000000000000008cdefce3" block_number = "0x000000000000000000000000000000000000000000000000000000000000000a" slot_number = "0x0000000000000000000000000000000000000000000000000000000000000042" - timestamp = "0x0000000000000000000000000000000000000000000000000000000069fde0c0" + timestamp = "0x000000000000000000000000000000000000000000000000000000006a06344b" [inputs.previous_rollups.public_inputs.constants.global_variables.coinbase] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000003d0220de6fd33ed3481276c1954065244b2fa8d5" [inputs.previous_rollups.public_inputs.constants.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -1845,45 +1845,45 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000078c3bcb60" [inputs.previous_rollups.public_inputs.start_tree_snapshots.note_hash_tree] -root = "0x2126a6e400b3fae90b44b74482d5b59dc707ba8f044c90a5f0e06ff48029f19f" +root = "0x030a54533f369d5052ba4ce15c7da3210e0702a11d806b82a8e44d3d04c0fa88" next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000002c0" [inputs.previous_rollups.public_inputs.start_tree_snapshots.nullifier_tree] -root = "0x26fd6ffebb711b7b1d916a895bb8bf3c6b5fc915b1e5a22db0fb801072027d80" +root = "0x2527d24acbb698de86fdfe706537eed63e92f65eb01667ca8c6b1a5cc4d1c649" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000340" [inputs.previous_rollups.public_inputs.start_tree_snapshots.public_data_tree] -root = "0x2cef7e5e25fb54c99feb0d6fbc5bb44eb98d00d3022f4baf5e3f6025a7320293" +root = "0x15089f2566ce411560a78b1de6a4ebc1664acf4ec903e738ee0a7d73896ee4dd" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [inputs.previous_rollups.public_inputs.end_tree_snapshots.note_hash_tree] -root = "0x2126a6e400b3fae90b44b74482d5b59dc707ba8f044c90a5f0e06ff48029f19f" +root = "0x030a54533f369d5052ba4ce15c7da3210e0702a11d806b82a8e44d3d04c0fa88" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000300" [inputs.previous_rollups.public_inputs.end_tree_snapshots.nullifier_tree] -root = "0x0e8d32952999631ff527d706426177bdb3208db1d3b8dd4e74ba883610dc37e5" +root = "0x19f673ade24c464385eacee9ea0676ea9f790fb73c0aa31ee1b7b332bd2dd75d" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000380" [inputs.previous_rollups.public_inputs.end_tree_snapshots.public_data_tree] -root = "0x0d21d4944ca04ad548057c7362ba76b7370e29929fe9cdd32ec1d04c07e21179" +root = "0x1c1874a7fa2daf7453bc043f63e00780db5d24e354bff2f38741eea0d43f60de" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [inputs.previous_rollups.public_inputs.start_sponge_blob] - num_absorbed_fields = "0x0000000000000000000000000000000000000000000000000000000000000047" + num_absorbed_fields = "0x0000000000000000000000000000000000000000000000000000000000000045" [inputs.previous_rollups.public_inputs.start_sponge_blob.sponge] cache = [ - "0x2a44787960631c708a6c54319236e2733f5bf18956a780d4f076e06d46e8c52f", - "0x21c2f9acd4cfd49d3570c4429b45c6dcf5658ac7592091682403c9468c8fbfc5", - "0x089c49b97c1e121fc3d9c0d7f3793cdd886de1fb26e735edbdae3790abaedd66" + "0x004093295436e1581085b446326dceb0678c0fdee4aec1d441b23d0c941a4f2a", + "0x21f429ce5edf30ad48f624c6480af649eda3c8526611ceef694b12809e260c17", + "0x00000000000000000000000000000000000000000000021e011fbf2496689ba0" ] state = [ - "0x0b196378726e6d2cbd4d793963bdda8cc494c766409365f6a0f3b9f8e2e2c277", - "0x29906675cd547621ba2ccf000d609acec4b304b7b4d929f9e586687d92c311a9", - "0x17ecd8ac459a19c262c431de5d01f6726a3b03485399398d69165cc195454006", - "0x254280886c6baee6bfedb4dae9055f680574d4b1bb6a4245fb1f24c70eedaa76" + "0x2553346861ee3c76d03c12e03ef7844b5d1010e7b07aa8fcef96ee76b2e049f3", + "0x2d4066cb72bc3a33c9e521d1e8313ec79663d70c3ab2189cb41695aa52a4541c", + "0x24479e0769fb6b9e30581b0cfc715f13070c49a213f99653948f1b9970b722e1", + "0x2e2cc1a01f7601b2b598953ae4d207e9f5f7dc8cdaeac7b9acc41b1761bd715a" ] - cache_size = "0x0000000000000000000000000000000000000000000000000000000000000002" + cache_size = "0x0000000000000000000000000000000000000000000000000000000000000003" squeeze_mode = false [inputs.previous_rollups.public_inputs.end_sponge_blob] @@ -1892,14 +1892,14 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.previous_rollups.public_inputs.end_sponge_blob.sponge] cache = [ "0x00000000000000000000000000000000000000000000021e00d293040c1d1b40", - "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec", - "0x12d1296a2643b832fbd1d6d3ed3678833fce770084efd75adfd517de8214ccf3" + "0x000000000000000000000000000000000000000000000000000000000000076c", + "0x21f429ce5edf30ad48f624c6480af649eda3c8526611ceef694b12809e260c17" ] state = [ - "0x046ca01947e306f5aad217a20c357e8720e466bf48af683e5dc034abe73721f0", - "0x14686ac6e82fd9bd26ab09d349ce45506d9c0d1dee28a4967817015ea73b887b", - "0x0b7d5bc95988dfda6650240e060e449c0ec3d312f8da80bd59a897a3ce57c1ee", - "0x1ea8a35effe09689490c7037df5f38ebfc4f6641047f2e4bcab5542979b4667c" + "0x21d9a22453764529e060228febe54721ad619529b2456e2ffaf1b0e4e8d0fe98", + "0x0fcd17f3df3350c53cb2ca4c83eefcf3f32658c80399d24dc059c2280c155f90", + "0x16a8417c1bbe9931dee9d1bd52961c254f1b98d4bc1b90f02885cbe5cd8758eb", + "0x151e27ecc79819a6fded3212a25f84b3766d599cc1ae3009ef36f3b7a65b6a87" ] cache_size = "0x0000000000000000000000000000000000000000000000000000000000000001" squeeze_mode = false @@ -1910,10 +1910,10 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x09b4bb0061881fc354c5fadf8dc55f36b0c67dc3b2f58a18406363dfa0b079fa", "0x2136af42d41c58f3fd528f4e88c2de5152c2bb251a3c4d8950d4401a0c8ae6ff", "0x02d4017a1d1c142d1fdf34bf701748bd9db29906e0114ac657648a51d10b6799", - "0x099ef6a9a40aaf85e056bda90684adf858addbb90af303d82f8157b86b705b92", - "0x25f6f5fc25ee815cef59a1889f1e39db3d431d01b01ee1554f9492afec9d41d6", - "0x28650667b92be48b116289119fa4794a5fe8fe5792a49d89b9977feae7f685a6", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x0186c83e21e344a559356060b9f16254f9f8d0b51509d1d5ff42e6629dc440fb", + "0x08e506e1b4afdb0e6492d582e7f7da14da78cdb5d35cddc587855ffb03aaecf1", + "0x0ea386a780cf0f70cf258740f800f4788e20b555a155c2ad9cd01dd4c0b649a5", + "0x10f050f0394d228b26baefadb2f029bd889b21a3e7e17efe6d9ef92fef9af70e" ] [inputs.previous_rollups.vk_data.vk] @@ -1921,94 +1921,94 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x0000000000000000000000000000000000000000000000000000000000000017", "0x0000000000000000000000000000000000000000000000000000000000000042", "0x0000000000000000000000000000000000000000000000000000000000000005", - "0x0000000000000000000000000000008a8843c678d444ced3a35d87626e56ed9f", - "0x0000000000000000000000000000000000060403e4feb303ebae0081cbad4e96", - "0x000000000000000000000000000000f0fe138760bd40aadc43c77ad160555212", - "0x0000000000000000000000000000000000154e802ee66f7a511a469adb8153e5", - "0x00000000000000000000000000000012b75e2667d243bc4bb7b0cde3bdc5eefc", - "0x000000000000000000000000000000000013e94fa83017e580a2e280e4f8c376", - "0x000000000000000000000000000000fb8b3161040e7a5502bf277aec7b82cb6b", - "0x000000000000000000000000000000000014e7113349a6d4f2b0d3c9bde42075", - "0x0000000000000000000000000000006bc15064df220ad5d2fea722296bf72c99", - "0x00000000000000000000000000000000002039216ff43d16e0a63e542794decf", - "0x000000000000000000000000000000f0d3e00b510ae4272fbba83d787c7e6b6e", - "0x000000000000000000000000000000000022f73b00c62c39fc49fbffa96081da", - "0x0000000000000000000000000000000ff9f67bc7c9b90987dbed3fadf40bacc4", - "0x00000000000000000000000000000000001dc87bb292ea49bdb5bb87509c9781", - "0x00000000000000000000000000000025239c23a65572724acdd6663984afc224", - "0x000000000000000000000000000000000005e345da6870bd306f04558f601b45", - "0x000000000000000000000000000000cb380ac3dc3f8788bab24fcb5d9eedc949", - "0x000000000000000000000000000000000017714c1fab296b76d2f78ed675c1ce", - "0x00000000000000000000000000000095bca1a9f9a186f7ec34e43c479e5d1b2f", - "0x000000000000000000000000000000000018d292be64529b7e9ec24c76e561d9", - "0x0000000000000000000000000000006f1bd711730ae2aaf83227b9d9f46daa43", - "0x00000000000000000000000000000000002df0b894f5971084c0a65839178a66", - "0x000000000000000000000000000000909f2efe0bffa95e984d456089f568f59b", - "0x00000000000000000000000000000000002908f2c7ddf9573df347d6c9f22fde", + "0x00000000000000000000000000000057cf110106ddc3ed5f2c879676811e8d32", + "0x000000000000000000000000000000000024103b0bd0ba6b98908d59f8fa6c92", + "0x000000000000000000000000000000d59a8c08489e37aa21d8901fa3d6488de2", + "0x0000000000000000000000000000000000291d91304771175bbb5b92811b22ea", + "0x0000000000000000000000000000002e53aaf34a7c9fa8436f83e2ce9c1e6752", + "0x000000000000000000000000000000000021e5690c9fec972834d7283870169f", + "0x00000000000000000000000000000006c70ff7a8ef6b270814dcd5c2860285cd", + "0x0000000000000000000000000000000000232b97c90e32797d114953acdb42e1", + "0x000000000000000000000000000000cfda308373655f72f6bd8776a2ffcdff5d", + "0x0000000000000000000000000000000000257b3ec04cc184846ecc01adac6b8d", + "0x000000000000000000000000000000849d21c95bc952f135827227537f25a140", + "0x000000000000000000000000000000000029995fc084c4cc0a12060b52a29afe", + "0x0000000000000000000000000000007e719d6b80df6e02a9cf0b7068690f4f61", + "0x000000000000000000000000000000000028e353f3ea1394828e5b85d3d11d8c", + "0x000000000000000000000000000000931e85d9eb05e790b60eba0912eaf30702", + "0x0000000000000000000000000000000000301941f34f872a41be1a3c65268b2e", + "0x000000000000000000000000000000377ca43a619a8b5e4561db6fa1d3b8ecfd", + "0x000000000000000000000000000000000002f0e3a6203619370bcbd4e4f0891f", + "0x000000000000000000000000000000325ac0e4aed8920e9df61494b6e1d55857", + "0x0000000000000000000000000000000000195056eadad14252e5f8bfcab423da", + "0x000000000000000000000000000000a62226a0145c6c8815b02e77ff729aa48f", + "0x00000000000000000000000000000000000bbd87d17a889f273d4ebe7c13dba7", + "0x000000000000000000000000000000e6c442fdd331923067401ab8cb71ed5ba1", + "0x00000000000000000000000000000000001099c5df4ae9499ba6ee0ad2d9f3f9", "0x0000000000000000000000000000006f206a04895661d3bd004222a1f8a7fc73", "0x00000000000000000000000000000000001b12a59a820d3aa543a594a1b9d92f", "0x0000000000000000000000000000002103559842aca1e08af33bb1f714ebc02a", "0x00000000000000000000000000000000001b8936a0be628b58af9859c2a851d1", - "0x000000000000000000000000000000d2c67f3c526e05aa6d25558ae65cf0e3ac", - "0x000000000000000000000000000000000006cc97b785475ed3429d939fa00e96", - "0x000000000000000000000000000000c5240a725c016a35037b37f73c37b68de9", - "0x000000000000000000000000000000000015e6206f121de2aafe259c32889a4b", - "0x0000000000000000000000000000004cba3ce39736c272ff963bdbdfcb67c2ef", - "0x0000000000000000000000000000000000243b3786310485c3234295957c5222", - "0x0000000000000000000000000000002c3672eaf01e849995fc3f6dc99dcd1d60", - "0x00000000000000000000000000000000001449e8673b109f980a1542f1ddd670", - "0x000000000000000000000000000000f077af86375782052dfc713a0c67f9a08b", - "0x0000000000000000000000000000000000124108d868884e76f5ceeb60b2bdae", - "0x00000000000000000000000000000029c3fd985c5dd5867bd8fed36ad940e02d", - "0x0000000000000000000000000000000000146fedc34ca9246ab0df070f31ee14", - "0x000000000000000000000000000000706a32f5a8f5fa44205bb08662e0ef1396", - "0x000000000000000000000000000000000016ded7f7f0b72d3ecf256f5c2ee613", - "0x0000000000000000000000000000002eaf856304cdbbb4d0b926d9c9211028c0", - "0x000000000000000000000000000000000004696250db37878179b548105ff54e", - "0x000000000000000000000000000000047767298e4177562ddcbcae03c7ec6ccc", - "0x00000000000000000000000000000000001f29f52f5f45f28e462390b0f914f9", - "0x00000000000000000000000000000004e950f9459bf160429275bc6a733319ea", - "0x0000000000000000000000000000000000175f23657f8f899b10b84c1ffe432c", - "0x0000000000000000000000000000006e522620788963bd42d9ab48810f89afe4", - "0x00000000000000000000000000000000002243c76dbde36a37e42b92bae3eb16", - "0x0000000000000000000000000000005641fbcbddd5abb62d653fd7f1ed10ed7e", - "0x000000000000000000000000000000000007d25e6a46da918fdb902e1a78efb4", - "0x00000000000000000000000000000065f7509bb551cb061c5fd1e92bc85a4974", - "0x00000000000000000000000000000000002efbc0dd9b88baa9675d95ae595e68", - "0x00000000000000000000000000000046bdd1d7603fdb2ee53f8966b3069082a5", - "0x0000000000000000000000000000000000161d3346daa3f83e4416d59e8135b6", - "0x000000000000000000000000000000ec124a53466d06b5e0df3e77f9f6a6ae15", - "0x0000000000000000000000000000000000128b36a77e814ffa503da6fd061fc3", - "0x0000000000000000000000000000002cfa5f8d00fe2bbdd85db6b0179a4c7346", - "0x00000000000000000000000000000000002b7ce5f45710c4b113f7ca6b3291b0", - "0x00000000000000000000000000000054409cb824bb2028eb6a501f9585b13eda", - "0x000000000000000000000000000000000026412333aa334f56e0761374f0c38b", - "0x0000000000000000000000000000002a23ae58cbd13760028a699488d5a4300f", - "0x0000000000000000000000000000000000225067a42bdcd7d9eec23d250acc92", - "0x0000000000000000000000000000006e28e63b7d6bc65c15c009f5dd9304f8fd", - "0x00000000000000000000000000000000002648ab0c9cfefbb147853e364bef8d", - "0x000000000000000000000000000000f00a9e6c1594965b7c14b2310b489b52f9", - "0x00000000000000000000000000000000000a03f4283d5d64b7245827349741ee", - "0x00000000000000000000000000000073f3c5531dc194b7332ef4e765192e3962", - "0x0000000000000000000000000000000000088b01c6cab84d827c1d8eae1ebbbd", - "0x000000000000000000000000000000e197f3a024045bec491c28fc4b7594347b", - "0x000000000000000000000000000000000025bf29aee6c0dd8976574600dfacea", - "0x00000000000000000000000000000023cebfa19e1e206b1d71359821037c31b7", - "0x00000000000000000000000000000000000c2354b63a0bcd72350e606c3fa0e7", - "0x000000000000000000000000000000fcf564b220543fd0aea7b28c05df85fe3a", - "0x00000000000000000000000000000000000c2f035d78985f2c0e4ab138790e69", - "0x0000000000000000000000000000005129d16313e897118223bd963067e22700", - "0x000000000000000000000000000000000004c87b337be4b82e809af637daef82", - "0x000000000000000000000000000000279941b3633c9a8e9fc6e68ef4be5633f4", - "0x00000000000000000000000000000000002a9334f2cfa791a9bbc88cc234a5d2", - "0x000000000000000000000000000000ab1a8db808cb2b1b90ba26085c23154102", - "0x00000000000000000000000000000000002c04e8fdbd1f2154a1b42961e3b6b5", - "0x0000000000000000000000000000005729f9b6dcfc45fa934c44ad8800e2b7c6", - "0x00000000000000000000000000000000002c584d4df5aaa602e46e5033408d64", - "0x0000000000000000000000000000004daf206a533411e7b39ab99acaf3287ca2", - "0x000000000000000000000000000000000020d85db8daa0dd9c83ceda296cbe73", - "0x000000000000000000000000000000ab6d868729c089d55819b59b1df10e26ce", - "0x000000000000000000000000000000000004b5421430befd61f014813d315ade", + "0x000000000000000000000000000000c99a8c234c72c05e9b9da4a4fe6a5f117a", + "0x000000000000000000000000000000000014489029cf548bb617909bfb4fc4c6", + "0x000000000000000000000000000000a69eb4777f7c40cf97a93e1e87fe9b91a1", + "0x000000000000000000000000000000000019ce5213848e03960995f5052f777f", + "0x00000000000000000000000000000013c37b31033098f26ea7d865f9c5ecfbe7", + "0x000000000000000000000000000000000019883e1816d3593bc992e668e636a6", + "0x000000000000000000000000000000da0aa2392094ea9149ce458054dcac1258", + "0x00000000000000000000000000000000000ec137510665209635af885c1532c4", + "0x000000000000000000000000000000a0672f78f14862f407ef51776577307e74", + "0x000000000000000000000000000000000017990b9891616eaf1421e512f0a252", + "0x000000000000000000000000000000ad2566cd4a64d6ea9220dc961cd47f394b", + "0x0000000000000000000000000000000000070a8d7fe2af4375e555d85a68ba56", + "0x0000000000000000000000000000001dd61fdd1d49d6fa154cdff4472b5b0cdd", + "0x00000000000000000000000000000000000bb0d5d5ccb2d531408a1fdf5e71fd", + "0x0000000000000000000000000000005c8f1111c0670512953563b18d59765d8d", + "0x00000000000000000000000000000000002c0f9ef5ef6a01ad293285532034cd", + "0x000000000000000000000000000000f0215e66ba0cc35ed5f256c48de3c099cf", + "0x00000000000000000000000000000000000d1caf599e61a628df07a699ccd89d", + "0x000000000000000000000000000000d99692d058844f7fa084c8ef50c299049f", + "0x00000000000000000000000000000000000d9309655d7d77d0c4e97472ee3574", + "0x0000000000000000000000000000005a187655f3c9838e72abebe3462af6d2a8", + "0x0000000000000000000000000000000000225d6487dc669975c3d59afabb647a", + "0x000000000000000000000000000000e919272c67d9ec47e34409750e84d507f2", + "0x00000000000000000000000000000000000d5c8c0f3c9d22e1b80d8a0873ad5c", + "0x0000000000000000000000000000009fa6ffd7c8795b20807f53cb6a00a00d96", + "0x000000000000000000000000000000000012813d309efe3a9badc21a9c0f29c9", + "0x000000000000000000000000000000334172c9cb695aca26b4568118cfb464a6", + "0x00000000000000000000000000000000001fd1306a1f0e9b6a5134f817fea109", + "0x0000000000000000000000000000005def1ea6d15fa86c8b609c15d60eea9fec", + "0x00000000000000000000000000000000002f28ee11565a012e83f39636389a41", + "0x000000000000000000000000000000b5d3c65b0953602d276ee79ac03e4de81c", + "0x00000000000000000000000000000000002bc6071504318788fda58456b7ed41", + "0x000000000000000000000000000000c8835926ec8921619bb29d4f0ed9dd032d", + "0x0000000000000000000000000000000000170ebe65297e1abae46aae4b19f38a", + "0x000000000000000000000000000000d266e9260fc8e8df0ef931f3496a263b1a", + "0x00000000000000000000000000000000001c0a934d6474a35dc7218748d9907a", + "0x000000000000000000000000000000517321c70919c72fc461d16368a1b57c09", + "0x000000000000000000000000000000000019408e7b62309ec698d92c46871644", + "0x00000000000000000000000000000010a8b38ca2e62e1437ec29e26be7d11d1a", + "0x00000000000000000000000000000000002ecd222a859359a4e760bc35f04941", + "0x000000000000000000000000000000e740e76c2f9ffa734562a70ca4a3e93c7c", + "0x00000000000000000000000000000000001c21d871036a10e2bdcdaebe61e731", + "0x000000000000000000000000000000b3e1e7349e6a9c99fe6e0e9c63d42c4dc7", + "0x00000000000000000000000000000000002ce372edc4836b309cc8b11eb5cd8b", + "0x00000000000000000000000000000037aeb7bdea7ed90bb2021448339761fd21", + "0x00000000000000000000000000000000002aa9f47f1c1627c0a23834fa108d51", + "0x000000000000000000000000000000f72876d845824059212cfb28bd30ad43f4", + "0x000000000000000000000000000000000004af70b99bd774fe0a5b9fbf019ae8", + "0x000000000000000000000000000000a63477dad561c6a8b68d14b745bcf05f97", + "0x000000000000000000000000000000000008d7fd511a681d138c2480960d077c", + "0x000000000000000000000000000000bef623a591a0c339f4b0f1f04fcd38bd1f", + "0x00000000000000000000000000000000001c8cae52c228bda362985317b4df2a", + "0x00000000000000000000000000000010f552bd20f0c6efb7103e38ec156f4472", + "0x00000000000000000000000000000000001864d52a497cdc35c5043d8de03c94", + "0x0000000000000000000000000000008eb80da264ac17c505ba8553aa28a2760f", + "0x0000000000000000000000000000000000242e223d1a6a1fe29451b6e6f9e9c0", + "0x00000000000000000000000000000010e810a78fd50f9db6ccafc990e68eb835", + "0x000000000000000000000000000000000022194df6a14024e4faa70aac7a4d8d", + "0x000000000000000000000000000000a6ac4e80087ce7593ee591737f10a5d950", + "0x00000000000000000000000000000000001df2128d6a9a0c37251202dd85c263", "0x0000000000000000000000000000005eefcb3c6f69064ed55425945fcc74c2bc", "0x00000000000000000000000000000000001613278bd29c20c182e6f3b5e367ce", "0x0000000000000000000000000000006c39d4dd8c65752b9bc2628fcc3dbf415c", @@ -2029,12 +2029,12 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x00000000000000000000000000000000002a56ce41f6b0be13b9c26747621b82", "0x000000000000000000000000000000d5827d6338c78656c0d12ca1aea6ef2c7c", "0x00000000000000000000000000000000001aa98f2de3ddda547d8f6de4e725de", - "0x000000000000000000000000000000bd9c096acdaa162e6c7ee9b718f7fbf759", - "0x00000000000000000000000000000000002c70947eefbeb3fcbc1953b2ccb88f", - "0x00000000000000000000000000000045e09e50b539ce6228369e4b4cb8530ce0", - "0x0000000000000000000000000000000000062cf2c7d023a38df32e6c8c04a8c1" + "0x000000000000000000000000000000ba8c511c4ab2de34e86f48c91c380c23b5", + "0x00000000000000000000000000000000002ba8c125b045ffa70b266787de4966", + "0x000000000000000000000000000000da7de16dc93474a0f0177bf1b1b00c3f36", + "0x00000000000000000000000000000000002c204d14e4f03ca6363da8ebe31ee7" ] - hash = "0x208d8b1ad2d688325416c8a23881e8b14753352851d7740b339ea2ebd455cdcc" + hash = "0x13a575346512841fa8ffe904f42bb97f77933efe4906474c143c28f9dd86a701" [inputs.previous_l1_to_l2] root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-checkpoint-merge/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-checkpoint-merge/Prover.toml index 28d9ad79f9c8..6158bf64f4c5 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-checkpoint-merge/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-checkpoint-merge/Prover.toml @@ -484,7 +484,7 @@ proof = [ [inputs.previous_rollups.public_inputs] checkpoint_header_hashes = [ - "0x004d16fb29611dba53004101a433c88fddade0ec60446fddec1589851839a774", + "0x003adb8347e9c0e3f0851c6021c4426699f22e9abf6f33d0bde439f9ff8e3ad4", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -520,17 +520,17 @@ proof = [ [inputs.previous_rollups.public_inputs.constants] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" - protocol_contracts_hash = "0x0333160f082dfc02e255c756febac14dc42c4c88b882e0403d44710c1f0bb80f" + version = "0x000000000000000000000000000000000000000000000000000000008cdefce3" + vk_tree_root = "0x115e00fed9b96e899daa4210aaf690c52c3fb9024f12ecfa6295969410d246a4" + protocol_contracts_hash = "0x10a32ead90905324604efd0afce0bd841a58c34206040eb4e259be5fe8b90de8" prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.previous_rollups.public_inputs.previous_archive] - root = "0x00f30d99838de8d9e0b40bb5f19c53ebd2cea2e4e324a6b48a4db2655906ad63" + root = "0x2bf1efe3477d3c5010706892741cefaa2fff9bc64817298e29c4e3a418ab6e60" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000009" [inputs.previous_rollups.public_inputs.new_archive] - root = "0x25dd04dc7f0a4299651ea908c014de487c4be771db4d68b458d16aa041af02ba" + root = "0x2521431714d5fae9c9497a549853582f97f43bca7eea64a1a0aa431783287439" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000a" [inputs.previous_rollups.public_inputs.previous_out_hash] @@ -545,7 +545,7 @@ proof = [ value = "0x000000000000000000000000000000000000000000000000003b2f97f0a76c80" [inputs.previous_rollups.public_inputs.fees.recipient] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000003d0220de6fd33ed3481276c1954065244b2fa8d5" [[inputs.previous_rollups.public_inputs.fees]] value = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -772,15 +772,15 @@ proof = [ ] [inputs.previous_rollups.public_inputs.end_blob_accumulator] - blob_commitments_hash_acc = "0x00c6080f82da97cd32a6e6f96167937982d1b1d102f2670358d457217207a2a5" - z_acc = "0x1ff8cc937c58f2d72966f69b2e490b6dc7f6704680430ac91ea6c0e6207d4d96" - gamma_acc = "0x1684547681775fced98c96d09e82919f729d14549da6323b669a8512c9b3802e" + blob_commitments_hash_acc = "0x00ffbaf7ab77b75db5c796ebb432d41e9098ae2d3827c7373923259cfc9b78a4" + z_acc = "0x07a51b370139429725a6f98769493ba7fd550915fa92a608c6cdb425cc6c3a8b" + gamma_acc = "0x25f0628111470e7bd3f726d273c7b6c9ac5cdbf187b960b5afd62dfa9ffab14f" [inputs.previous_rollups.public_inputs.end_blob_accumulator.y_acc] limbs = [ - "0xd2054ab1639ea442bd23a5b1c57cf5", - "0x4b6135801975f6ab44b107b0a1e000", - "0x677b" + "0xce7eee06bfc9f6970ab449a0e72230", + "0x28c7ce216389ca35560585fc48efe0", + "0x3610" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc] @@ -788,35 +788,35 @@ proof = [ [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc.x] limbs = [ - "0xca945aeef9c954013ca54795553295", - "0x9c13e59f13d27ea1d0bbfde41965a9", - "0xf7f9f09f06a5e9f04fb45ab0edb363", - "0x18f7d5" + "0xfb0cfd3d1f4d0e93696ae59cf09bdd", + "0x12da399f4ecc2ba9c7d860ab514238", + "0xea6c4834b4830586227f108b5c07e5", + "0x01cbe7" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc.y] limbs = [ - "0xb04ef08577b05403570538b51898a0", - "0x2797dcc9fb92375446462d46b4ccbb", - "0x39156e19c6155c4ef0f97030dc5d90", - "0x0ad01d" + "0xe4daaf3795e63b41e496d8f46579e2", + "0x0d11d7fe307498a075e5b234b00629", + "0x4c62a206be1b8bc19981fc62c94332", + "0x0b9ea2" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.gamma_pow_acc] limbs = [ - "0x551bcc798b08297e8823944cd61ccd", - "0xa11af380fa73225d8ac70a4862f1cc", - "0x24db" + "0x03a87f88957e590a3d95773e1b7d12", + "0x7baa161fdc15cc971fcbf2849b1573", + "0x0b50" ] [inputs.previous_rollups.public_inputs.final_blob_challenges] - z = "0x0f20024c268f33a3baa0f8f38bddd3d70a7fe791632d4914d95c44e2099fa150" + z = "0x2b05bb64fd2ee9852b902738bb95e46a0537b9ad076e81e6e1a4cb0b5c5796fb" [inputs.previous_rollups.public_inputs.final_blob_challenges.gamma] limbs = [ - "0x551bcc798b08297e8823944cd61ccd", - "0xa11af380fa73225d8ac70a4862f1cc", - "0x24db" + "0x03a87f88957e590a3d95773e1b7d12", + "0x7baa161fdc15cc971fcbf2849b1573", + "0x0b50" ] [inputs.previous_rollups.vk_data] @@ -824,11 +824,11 @@ proof = [ sibling_path = [ "0x1edc2329182e13c58f5ced1e4ca120ba845e074e81d59ee64d0bbd583ecdd429", "0x1f502972a4bdd0353e082932afca85331d93e89c99ab3a78511939c18eb14641", - "0x1f0a3ab28f16510e4f9a5682a8b5f2826f55082cd639c6b76e6e970d8bb4224d", - "0x268f759e38c9ff705a78c055b44e19f7d2b0227f3c4f2e31d6874550d498abec", - "0x09f661abe743a7c8125aa0498ca1d01914fdac9cadadb415e0d1a05934997b99", - "0x28650667b92be48b116289119fa4794a5fe8fe5792a49d89b9977feae7f685a6", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x077df93ce467a49dde4acac6583cb935dceb05e4fc9e46b89acaa84893f27b5e", + "0x12b2fc2c75329888431e1f3abec5c810aea9fd591c813570cee181f1b665d1ae", + "0x01fbbbbce155d5c589bcb506d4155b721f210ee119133b30de937783113e323e", + "0x0ea386a780cf0f70cf258740f800f4788e20b555a155c2ad9cd01dd4c0b649a5", + "0x10f050f0394d228b26baefadb2f029bd889b21a3e7e17efe6d9ef92fef9af70e" ] [inputs.previous_rollups.vk_data.vk] @@ -1437,7 +1437,7 @@ proof = [ [inputs.previous_rollups.public_inputs] checkpoint_header_hashes = [ - "0x00db58820ef17b4cb952c006ed78296097c3fcf7fd0fc3e3cec1f8260fc64045", + "0x000ccc8bdb86e25cf7a74d062bc89c342b68fc14ec085ba411edd80cfb418c1f", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1473,17 +1473,17 @@ proof = [ [inputs.previous_rollups.public_inputs.constants] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" - protocol_contracts_hash = "0x0333160f082dfc02e255c756febac14dc42c4c88b882e0403d44710c1f0bb80f" + version = "0x000000000000000000000000000000000000000000000000000000008cdefce3" + vk_tree_root = "0x115e00fed9b96e899daa4210aaf690c52c3fb9024f12ecfa6295969410d246a4" + protocol_contracts_hash = "0x10a32ead90905324604efd0afce0bd841a58c34206040eb4e259be5fe8b90de8" prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.previous_rollups.public_inputs.previous_archive] - root = "0x25dd04dc7f0a4299651ea908c014de487c4be771db4d68b458d16aa041af02ba" + root = "0x2521431714d5fae9c9497a549853582f97f43bca7eea64a1a0aa431783287439" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000a" [inputs.previous_rollups.public_inputs.new_archive] - root = "0x24f3d6261780561e8ede638edf15d34d9f93372572631856307c57a08dfb9cb1" + root = "0x2b2cc76a06e0d9171534d99a1f1cfbd6eb033d5712af9b8fef977ea3e2d30e82" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000b" [inputs.previous_rollups.public_inputs.previous_out_hash] @@ -1498,7 +1498,7 @@ proof = [ value = "0x00000000000000000000000000000000000000000000000000d0f074eda98980" [inputs.previous_rollups.public_inputs.fees.recipient] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000003d0220de6fd33ed3481276c1954065244b2fa8d5" [[inputs.previous_rollups.public_inputs.fees]] value = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -1687,15 +1687,15 @@ proof = [ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.start_blob_accumulator] - blob_commitments_hash_acc = "0x00c6080f82da97cd32a6e6f96167937982d1b1d102f2670358d457217207a2a5" - z_acc = "0x1ff8cc937c58f2d72966f69b2e490b6dc7f6704680430ac91ea6c0e6207d4d96" - gamma_acc = "0x1684547681775fced98c96d09e82919f729d14549da6323b669a8512c9b3802e" + blob_commitments_hash_acc = "0x00ffbaf7ab77b75db5c796ebb432d41e9098ae2d3827c7373923259cfc9b78a4" + z_acc = "0x07a51b370139429725a6f98769493ba7fd550915fa92a608c6cdb425cc6c3a8b" + gamma_acc = "0x25f0628111470e7bd3f726d273c7b6c9ac5cdbf187b960b5afd62dfa9ffab14f" [inputs.previous_rollups.public_inputs.start_blob_accumulator.y_acc] limbs = [ - "0xd2054ab1639ea442bd23a5b1c57cf5", - "0x4b6135801975f6ab44b107b0a1e000", - "0x677b" + "0xce7eee06bfc9f6970ab449a0e72230", + "0x28c7ce216389ca35560585fc48efe0", + "0x3610" ] [inputs.previous_rollups.public_inputs.start_blob_accumulator.c_acc] @@ -1703,37 +1703,37 @@ proof = [ [inputs.previous_rollups.public_inputs.start_blob_accumulator.c_acc.x] limbs = [ - "0xca945aeef9c954013ca54795553295", - "0x9c13e59f13d27ea1d0bbfde41965a9", - "0xf7f9f09f06a5e9f04fb45ab0edb363", - "0x18f7d5" + "0xfb0cfd3d1f4d0e93696ae59cf09bdd", + "0x12da399f4ecc2ba9c7d860ab514238", + "0xea6c4834b4830586227f108b5c07e5", + "0x01cbe7" ] [inputs.previous_rollups.public_inputs.start_blob_accumulator.c_acc.y] limbs = [ - "0xb04ef08577b05403570538b51898a0", - "0x2797dcc9fb92375446462d46b4ccbb", - "0x39156e19c6155c4ef0f97030dc5d90", - "0x0ad01d" + "0xe4daaf3795e63b41e496d8f46579e2", + "0x0d11d7fe307498a075e5b234b00629", + "0x4c62a206be1b8bc19981fc62c94332", + "0x0b9ea2" ] [inputs.previous_rollups.public_inputs.start_blob_accumulator.gamma_pow_acc] limbs = [ - "0x551bcc798b08297e8823944cd61ccd", - "0xa11af380fa73225d8ac70a4862f1cc", - "0x24db" + "0x03a87f88957e590a3d95773e1b7d12", + "0x7baa161fdc15cc971fcbf2849b1573", + "0x0b50" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator] - blob_commitments_hash_acc = "0x00ff28bea8c07e7b060d248cb2071f813aa6e39e07e3a527c1739e6a7793c093" - z_acc = "0x11b2ee0dde26d315a246f5bdc01db8abe8200c6581201debd1cffc51ad26f95d" - gamma_acc = "0x152f389c138d41dde799d4f4fc748753332ddcd5bcd19fe35e4fbe60581534c2" + blob_commitments_hash_acc = "0x00d77961792390c52a0b483011a89cee4654391f249ec2fe1747874cf322e0b3" + z_acc = "0x29007235f991893ecbd042b149cea0f3325df79034c3af4bbc18ede5f8847c99" + gamma_acc = "0x0c9f6b7c50e23eab69146847c8667f47f534f90927d00b90685d47d152ee5ffb" [inputs.previous_rollups.public_inputs.end_blob_accumulator.y_acc] limbs = [ - "0x4183756e36181f92164c36776c2ba3", - "0xaff710205b13b83794ee63e35bb424", - "0x411e" + "0xc65b87ee51836fcfe24addc71bbe74", + "0x31232c4dab95f79665d041356c97b2", + "0x6216" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc] @@ -1741,35 +1741,35 @@ proof = [ [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc.x] limbs = [ - "0x6e2f87b978f4bca529d7ad90a41cd8", - "0x734aa1582c8aee32f8334cfc594ab0", - "0x21aa57d7e1012415e25e37ee62bbcb", - "0x015e58" + "0x0c3d7386fc4eac408de6d7148427bc", + "0x3f6a59979f9a19dc1e70c99dab56cd", + "0x2e57e8ea758416a007381702358b4e", + "0x122139" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc.y] limbs = [ - "0xd8e530734ccb89f49a545e13ead68c", - "0x914523b3ef75387e032ac9fef36157", - "0x5342c94a6ba1df16b871173b323290", - "0x1604f8" + "0xad8824d27ca234bdfda4130448ff39", + "0x3c1abc87ba60a77bb27a4646b14890", + "0xbef5b415e70603a89f9fbbdb920f53", + "0x01254a" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.gamma_pow_acc] limbs = [ - "0xc0250cc6b8725b2b00687dab94d327", - "0xd7f65a721538376d885811c9aafe6f", - "0x297f" + "0x2f4c02e293cde5564d03c74652dd1a", + "0x5c6554cb9f5666b5f541ab7efb6e28", + "0x05f9" ] [inputs.previous_rollups.public_inputs.final_blob_challenges] - z = "0x0f20024c268f33a3baa0f8f38bddd3d70a7fe791632d4914d95c44e2099fa150" + z = "0x2b05bb64fd2ee9852b902738bb95e46a0537b9ad076e81e6e1a4cb0b5c5796fb" [inputs.previous_rollups.public_inputs.final_blob_challenges.gamma] limbs = [ - "0x551bcc798b08297e8823944cd61ccd", - "0xa11af380fa73225d8ac70a4862f1cc", - "0x24db" + "0x03a87f88957e590a3d95773e1b7d12", + "0x7baa161fdc15cc971fcbf2849b1573", + "0x0b50" ] [inputs.previous_rollups.vk_data] @@ -1777,11 +1777,11 @@ proof = [ sibling_path = [ "0x1edc2329182e13c58f5ced1e4ca120ba845e074e81d59ee64d0bbd583ecdd429", "0x1f502972a4bdd0353e082932afca85331d93e89c99ab3a78511939c18eb14641", - "0x1f0a3ab28f16510e4f9a5682a8b5f2826f55082cd639c6b76e6e970d8bb4224d", - "0x268f759e38c9ff705a78c055b44e19f7d2b0227f3c4f2e31d6874550d498abec", - "0x09f661abe743a7c8125aa0498ca1d01914fdac9cadadb415e0d1a05934997b99", - "0x28650667b92be48b116289119fa4794a5fe8fe5792a49d89b9977feae7f685a6", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x077df93ce467a49dde4acac6583cb935dceb05e4fc9e46b89acaa84893f27b5e", + "0x12b2fc2c75329888431e1f3abec5c810aea9fd591c813570cee181f1b665d1ae", + "0x01fbbbbce155d5c589bcb506d4155b721f210ee119133b30de937783113e323e", + "0x0ea386a780cf0f70cf258740f800f4788e20b555a155c2ad9cd01dd4c0b649a5", + "0x10f050f0394d228b26baefadb2f029bd889b21a3e7e17efe6d9ef92fef9af70e" ] [inputs.previous_rollups.vk_data.vk] diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-checkpoint-root-single-block/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-checkpoint-root-single-block/Prover.toml index d140961b168f..680106d1fed6 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-checkpoint-root-single-block/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-checkpoint-root-single-block/Prover.toml @@ -483,69 +483,69 @@ proof = [ ] [inputs.previous_rollup.public_inputs] - timestamp = "0x0000000000000000000000000000000000000000000000000000000069fde108" - block_headers_hash = "0x04c025c44ceb642aa54659bf652c91b00ccb432f9837ec84c1c282e567c223fc" + timestamp = "0x000000000000000000000000000000000000000000000000000000006a06344b" + block_headers_hash = "0x187582fed9947bd0a9df84f6d37f538f6fcd597d87122e7db5cb48f38be596b7" in_hash = "0x00de7b349d2306334734e4f58b1302a6ed5a6c796a706f6597a5641b6d468223" out_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" - accumulated_fees = "0x0000000000000000000000000000000000000000000000000022e452ad469ea0" - accumulated_mana_used = "0x00000000000000000000000000000000000000000000000000000000000a3979" + accumulated_fees = "0x00000000000000000000000000000000000000000000000000d0f074eda98980" + accumulated_mana_used = "0x00000000000000000000000000000000000000000000000000000000001baea4" [inputs.previous_rollup.public_inputs.constants] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" - protocol_contracts_hash = "0x0333160f082dfc02e255c756febac14dc42c4c88b882e0403d44710c1f0bb80f" + version = "0x000000000000000000000000000000000000000000000000000000008cdefce3" + vk_tree_root = "0x115e00fed9b96e899daa4210aaf690c52c3fb9024f12ecfa6295969410d246a4" + protocol_contracts_hash = "0x10a32ead90905324604efd0afce0bd841a58c34206040eb4e259be5fe8b90de8" prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" - slot_number = "0x0000000000000000000000000000000000000000000000000000000000000043" + slot_number = "0x0000000000000000000000000000000000000000000000000000000000000042" [inputs.previous_rollup.public_inputs.constants.coinbase] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000003d0220de6fd33ed3481276c1954065244b2fa8d5" [inputs.previous_rollup.public_inputs.constants.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollup.public_inputs.constants.gas_fees] fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" - fee_per_l2_gas = "0x00000000000000000000000000000000000000000000000000000003699e8ba0" + fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000078c3bcb60" [inputs.previous_rollup.public_inputs.previous_archive] - root = "0x24f3d6261780561e8ede638edf15d34d9f93372572631856307c57a08dfb9cb1" - next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000b" + root = "0x2521431714d5fae9c9497a549853582f97f43bca7eea64a1a0aa431783287439" + next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000a" [inputs.previous_rollup.public_inputs.new_archive] - root = "0x0f84849714aa969caef587fe17273c9fae12f846c68db0f1ab092faf93a29145" - next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000c" + root = "0x2b2cc76a06e0d9171534d99a1f1cfbd6eb033d5712af9b8fef977ea3e2d30e82" + next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000b" [inputs.previous_rollup.public_inputs.start_state.l1_to_l2_message_tree] root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002800" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002400" [inputs.previous_rollup.public_inputs.start_state.partial.note_hash_tree] -root = "0x2126a6e400b3fae90b44b74482d5b59dc707ba8f044c90a5f0e06ff48029f19f" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000300" +root = "0x2908bf1cf1e39b8a7a58f176355b1463a351f73e0aeafe3ec2025adec49f4897" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000240" [inputs.previous_rollup.public_inputs.start_state.partial.nullifier_tree] -root = "0x0e8d32952999631ff527d706426177bdb3208db1d3b8dd4e74ba883610dc37e5" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000380" +root = "0x2c3038ffe818b210f773e174f35b0d53ac3624757bb29b6c0d3aa5cb7413e50c" +next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000002c0" [inputs.previous_rollup.public_inputs.start_state.partial.public_data_tree] -root = "0x0d21d4944ca04ad548057c7362ba76b7370e29929fe9cdd32ec1d04c07e21179" +root = "0x246a615f499785783dfca134db45a55d24c0c3f4bbd1c0141a5a41df05381c04" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [inputs.previous_rollup.public_inputs.end_state.l1_to_l2_message_tree] root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002c00" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002800" [inputs.previous_rollup.public_inputs.end_state.partial.note_hash_tree] -root = "0x2126a6e400b3fae90b44b74482d5b59dc707ba8f044c90a5f0e06ff48029f19f" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000340" +root = "0x030a54533f369d5052ba4ce15c7da3210e0702a11d806b82a8e44d3d04c0fa88" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000300" [inputs.previous_rollup.public_inputs.end_state.partial.nullifier_tree] -root = "0x28f8d2b1f0315d8539c1e4ff651e2eaac034de0a2271cd6f198f557ecf449cb1" -next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000003c0" +root = "0x19f673ade24c464385eacee9ea0676ea9f790fb73c0aa31ee1b7b332bd2dd75d" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000380" [inputs.previous_rollup.public_inputs.end_state.partial.public_data_tree] -root = "0x1a010e7a4312757d9349e0058c907064764c9836de016199dbd957ca46fefc3b" +root = "0x1c1874a7fa2daf7453bc043f63e00780db5d24e354bff2f38741eea0d43f60de" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [inputs.previous_rollup.public_inputs.start_sponge_blob] @@ -567,161 +567,161 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 squeeze_mode = false [inputs.previous_rollup.public_inputs.end_sponge_blob] - num_absorbed_fields = "0x0000000000000000000000000000000000000000000000000000000000000011" + num_absorbed_fields = "0x0000000000000000000000000000000000000000000000000000000000000056" [inputs.previous_rollup.public_inputs.end_sponge_blob.sponge] cache = [ - "0x1a010e7a4312757d9349e0058c907064764c9836de016199dbd957ca46fefc3b", + "0x1c1874a7fa2daf7453bc043f63e00780db5d24e354bff2f38741eea0d43f60de", "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a", - "0x28f8d2b1f0315d8539c1e4ff651e2eaac034de0a2271cd6f198f557ecf449cb1" + "0x19f673ade24c464385eacee9ea0676ea9f790fb73c0aa31ee1b7b332bd2dd75d" ] state = [ - "0x0e1dd9cced5f0826c6e4058004b9cb3a696b39c148c0354124d03d9ed9b4ef46", - "0x0e88efccb1b5effd0110855538123edbbdb2e94b791607a00b954bece2a9bfc9", - "0x1957ffd20204e64443fb09410f7b76cfb098ff3becc10b9e08208fad4d4b03cb", - "0x0c822003a2f7fd4b344c8b039a0d20ff579eed35b7d7e49c8d2fbda1d2e1560c" + "0x1241b99e2383a6c9a3d4bde0270cbe7ef1433f1c91bb0fc92fbf33e3a768fb11", + "0x2a57508d0f131390a59fe3265b06a5f4d994aec257c11c2f4e00e5ebaad69d59", + "0x0b07f5332ef07929d7e33934d40d9e372f4a94ebe0da0030f0110136656c9ee2", + "0x2ad28dc467239c54819849a4fdc3f91b49ffc361e4ac94f67748ffba0ce274ad" ] cache_size = "0x0000000000000000000000000000000000000000000000000000000000000002" squeeze_mode = false [inputs.previous_rollup.vk_data] - leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000b" + leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000a" sibling_path = [ - "0x1276688c1c8f1024c963d35957328b73153c55580532254f0676c26e2ad55993", - "0x1025a6a71839d2ab10e9652312547fd6944d80234a52379f6a944c2500ebc294", + "0x1cd81d6249bfece0299cdfaff8344081684997c787276db4fb5cdb25a0d6822d", + "0x1cd078bae72e1fbc6190aa0116d796435c1a3829e56b6f78c1e7812cc96517df", "0x02d4017a1d1c142d1fdf34bf701748bd9db29906e0114ac657648a51d10b6799", - "0x099ef6a9a40aaf85e056bda90684adf858addbb90af303d82f8157b86b705b92", - "0x25f6f5fc25ee815cef59a1889f1e39db3d431d01b01ee1554f9492afec9d41d6", - "0x28650667b92be48b116289119fa4794a5fe8fe5792a49d89b9977feae7f685a6", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x0186c83e21e344a559356060b9f16254f9f8d0b51509d1d5ff42e6629dc440fb", + "0x08e506e1b4afdb0e6492d582e7f7da14da78cdb5d35cddc587855ffb03aaecf1", + "0x0ea386a780cf0f70cf258740f800f4788e20b555a155c2ad9cd01dd4c0b649a5", + "0x10f050f0394d228b26baefadb2f029bd889b21a3e7e17efe6d9ef92fef9af70e" ] [inputs.previous_rollup.vk_data.vk] key = [ - "0x0000000000000000000000000000000000000000000000000000000000000015", + "0x0000000000000000000000000000000000000000000000000000000000000016", "0x0000000000000000000000000000000000000000000000000000000000000046", "0x0000000000000000000000000000000000000000000000000000000000000005", - "0x000000000000000000000000000000ea6e74a6fa43b4810edc310e2d2b66dab4", - "0x000000000000000000000000000000000015c12f6f69bff32654e403b8e9a2b8", - "0x00000000000000000000000000000010f1d77dfb1e9178bab79124490d92915a", - "0x00000000000000000000000000000000000a9b89b1676b31989664a34260314d", - "0x000000000000000000000000000000a2d8941fda778834590a006f995557ff4c", - "0x00000000000000000000000000000000002dadd9e8063bfbee06194004949394", - "0x0000000000000000000000000000002036fe67ff22643d06461e1c8edcbc2dc9", - "0x000000000000000000000000000000000021c85b69f65f83d6cf1854a9563213", - "0x000000000000000000000000000000b19756d6156d0300b3ecb9be77605be1a8", - "0x0000000000000000000000000000000000014a4064a3b551e9b75fa13659629b", - "0x0000000000000000000000000000003491c66acf5693a16ec1f7241609c18f45", - "0x000000000000000000000000000000000023b0ed5030538c865d72cb8908352a", - "0x000000000000000000000000000000efedf593c1cfc28146ff68d9dcb1070ca7", - "0x00000000000000000000000000000000002a8174a5153b946abe57e2ed06d454", - "0x0000000000000000000000000000009c3212d084550b683558797af1477ceb8f", - "0x00000000000000000000000000000000002c32c65b02e59d9aae5b8a57ec27e4", - "0x0000000000000000000000000000007b88e113308893f906561837b9edc3baa5", - "0x00000000000000000000000000000000001a45b642b5e649f033eca82a810b8b", - "0x00000000000000000000000000000068591e612a0127878f63e7923f17854d2a", - "0x00000000000000000000000000000000001d50690ef0dd775e7f4fc0f17281bf", - "0x000000000000000000000000000000eece658386d09783fcc2d61a622eb6b121", - "0x00000000000000000000000000000000001d5b3af11c73d93414e18accc31071", - "0x0000000000000000000000000000007b1ee7fea7dfabee7dad1a5e3e816c2a2e", - "0x00000000000000000000000000000000000a5f02160bfa014a46b329f3618dc8", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000000000043bda12a99877a984942e29d821cd37870", - "0x000000000000000000000000000000000020b1906b429f07ca51070221399472", - "0x000000000000000000000000000000c185af02499653794e9d4c7fa1a6c5751c", - "0x00000000000000000000000000000000002927f8b050e657021afb2f572e0f84", - "0x000000000000000000000000000000ceda688bdd2aea1e5253ea0d86743abebd", - "0x00000000000000000000000000000000000072f93e3607e4ac8c369fb92fe33a", - "0x000000000000000000000000000000eaff91f9cc05f03c6d8546358d580ef17a", - "0x0000000000000000000000000000000000225d5df5771e53084f6e364ad8e3da", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000002218617f23e467fecd2e3c938179a2b578", - "0x00000000000000000000000000000000002497b7dd7eec4e260f8ca521f1109e", - "0x000000000000000000000000000000914e208f9621734ce56985cdd29d01a78b", - "0x00000000000000000000000000000000001092e497a21b124b279b86e029a993", - "0x0000000000000000000000000000002ef4ddf310bee1f74f655cbb0ceb9315d0", - "0x0000000000000000000000000000000000270b81bec5e6b0f455065b02f68a0f", - "0x000000000000000000000000000000ef21188ec62b59040e4f1b89dfa23be48e", - "0x000000000000000000000000000000000009ced6e0108e8e67b299d9e3bad9a9", - "0x000000000000000000000000000000f61d5b8425740d0df669b875491e615449", - "0x0000000000000000000000000000000000064a6a9bbcefc6ad4b2d4e1e03985f", - "0x000000000000000000000000000000d004ad7846785bcb0db2672f6e5292f7c2", - "0x00000000000000000000000000000000002114c1fc4a3c39cbc96baf3ba693af", - "0x0000000000000000000000000000005cc5465cd9391ce8e7799e91bf9aac8039", - "0x00000000000000000000000000000000001c59b40d18b5d06d88617f2ed5c568", - "0x0000000000000000000000000000008134581657d125ca542477d684313ad999", - "0x0000000000000000000000000000000000259435f2950ead4bad62f0635944d8", - "0x0000000000000000000000000000008e3beb4333afb6a1db12c0889130b8f7f7", - "0x00000000000000000000000000000000002d022d695e566dd0ddfd15b59ad6f6", - "0x00000000000000000000000000000019ac6e38521a0144c3d1abe706030d643e", - "0x00000000000000000000000000000000000961e2643f9317a4d6144abb77cae4", - "0x000000000000000000000000000000827e5482f658cec2661f8cf88c4558800d", - "0x00000000000000000000000000000000002bcc1992b1410cdd05f32c2148a800", - "0x000000000000000000000000000000049c1604c9e61fe1eb1a4e6c0044a88607", - "0x00000000000000000000000000000000001a50aafae1419fae00770a64d75a52", - "0x0000000000000000000000000000003a404091304c1a4935267fb66a90af706f", - "0x0000000000000000000000000000000000175f69e34efe02635c0450ff14d814", - "0x00000000000000000000000000000056a7488e33d23f5a7e31e8c24c4d32feb9", - "0x0000000000000000000000000000000000152b125831f20c0046084a92a3a01d", - "0x0000000000000000000000000000001bd75185387ebcf04a2d1541b418c93962", - "0x000000000000000000000000000000000007d44e382095a4ddb6c84d676f975b", - "0x000000000000000000000000000000e37e00ccdd16f0cfb118365311a964e475", - "0x00000000000000000000000000000000001c3ba17a670cdeca7019e1d2c17e93", - "0x000000000000000000000000000000ef2f893fc357863e53675b8dfdace77275", - "0x000000000000000000000000000000000013a4df076b371985ff93656b8e4483", - "0x0000000000000000000000000000007adddc444f0c602af7efaa9c977e9ab80f", - "0x0000000000000000000000000000000000138e76ae51938924778a06f02de461", - "0x000000000000000000000000000000f63ec082d951768fe05e6d3bc9d50bc72d", - "0x00000000000000000000000000000000002ac3a11527579ccbe6c1966976f6ad", - "0x00000000000000000000000000000066d0ea63d8dd4511ec55e666f7bf6d6c3d", - "0x00000000000000000000000000000000001fe7a9cb68d795240eaec0b6efe451", - "0x0000000000000000000000000000005309c6e2db27d4be273a758a178e1af682", - "0x00000000000000000000000000000000000962316a08cadc097d50603d1606c4", - "0x000000000000000000000000000000ab5c17e93d31a1c79c62d8597447920f36", - "0x000000000000000000000000000000000019ede1992f131cdd105f8afcde56a5", - "0x000000000000000000000000000000b03aa7f0563671be6a98678d8dac3ed963", - "0x00000000000000000000000000000000002c9acda51c7b3e6e04e82aaf0bbe35", - "0x000000000000000000000000000000b7eceb60b962a8108199e7506d967bf042", - "0x00000000000000000000000000000000000ab8ec69e3b26d13207351e2be7d7d", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000000000cecbb15178a8f920cda67225b16a74cedc", + "0x000000000000000000000000000000000027d6768d7a42e6d16437278bad40df", + "0x0000000000000000000000000000003c7f047f5907379b7e9aa8bd5f5e3ce06d", + "0x0000000000000000000000000000000000302a606b748348fead5be05afeca29", + "0x0000000000000000000000000000003f21eb8e49c1107150725bfd9f6c5eb811", + "0x000000000000000000000000000000000029570eaec2f44e132cebb1ab935cb1", + "0x000000000000000000000000000000f365b3c90cad3ea0de2f82eb3f13a78ba0", + "0x000000000000000000000000000000000025da12d363ea3a156e2d09c5a96f77", + "0x0000000000000000000000000000001276df5a106fc1ec090ba1fdfa98458334", + "0x0000000000000000000000000000000000198a3da1413d65b9374bde1e0fa0e9", + "0x000000000000000000000000000000369057c0fdd2e1ac1e3e0547c8129fbc2f", + "0x000000000000000000000000000000000023bf4cafb00a30d972d7951de74146", + "0x000000000000000000000000000000d7d149f6111491223cb36de4bc775ca51b", + "0x0000000000000000000000000000000000266d5c2f4e8c8b1723970e4e9c0e6b", + "0x000000000000000000000000000000b98178caec9771def1141d9aca3fb8020d", + "0x000000000000000000000000000000000015d41a7104261ee148729a6fba9fb7", + "0x0000000000000000000000000000008d5244a297a58aa018657f93939e229296", + "0x000000000000000000000000000000000025f48d3343e7a83028906a6a5bd7c3", + "0x0000000000000000000000000000006fe5b7ff9dacedbf8aafb177951a6b543d", + "0x00000000000000000000000000000000000a37c7bb3c890ea9ef09b5550d4e26", + "0x0000000000000000000000000000000cc2fbcf0bab28148b4074df6b529abaf4", + "0x000000000000000000000000000000000020cf80037a4b02a4b9165b0bba4b10", + "0x000000000000000000000000000000f38a0d6be11a1896ebccde840c96397180", + "0x000000000000000000000000000000000007c46ea1ab508d8b9725818d3de754", + "0x0000000000000000000000000000004724cde9ce06e5411caabd7dd4fe2dcf89", + "0x0000000000000000000000000000000000267e7e5f0e6e2991964e87475f961b", + "0x0000000000000000000000000000001f11b31d10d889999d1f1349f99703a55f", + "0x00000000000000000000000000000000001ca2da1bd75c23c6533fc450360e0a", + "0x0000000000000000000000000000003f1080527287dd07513ef6336993bf7da2", + "0x0000000000000000000000000000000000036c4c1d1cd34c30bd97df17c66f3e", + "0x00000000000000000000000000000051ff71bab057b42299f3922e4acadbaa88", + "0x00000000000000000000000000000000002a11a99b1ad429cb422706ce304b56", + "0x000000000000000000000000000000cf52c851ff7523ab469decfa61682b56ce", + "0x000000000000000000000000000000000005e728c2bcc8a2d1861df1b9ecd684", + "0x000000000000000000000000000000bf90506ed195f24ffba8a1f346608e3985", + "0x000000000000000000000000000000000010bf50052731534a58dd6106183e3b", + "0x0000000000000000000000000000000c4fa7887c4303032d2757f580b103c679", + "0x00000000000000000000000000000000002abd21a5f39074dac1387e4d74b968", + "0x00000000000000000000000000000026f82affd4104eeac03e00e0c9f35fee6c", + "0x00000000000000000000000000000000002569f3e15470af8370181f794cfce5", + "0x000000000000000000000000000000c8199e845ea4c2b26fe3c09238636ad726", + "0x00000000000000000000000000000000000d979c42de2b96dad691b7d63fd62e", + "0x00000000000000000000000000000099a2069f3e9b1478d80ec97236efb8878a", + "0x000000000000000000000000000000000013857a57dd976e1143aedba1da8509", + "0x000000000000000000000000000000f43629cb42e1474d19fe50728d372ce2d6", + "0x00000000000000000000000000000000000206b3834e7abc7ee37ccfd6fd5830", + "0x000000000000000000000000000000553f32aaedb34f78cfbd3925b962b9e7f4", + "0x000000000000000000000000000000000018e0583fd629fc15f2deb2bb57d922", + "0x000000000000000000000000000000dec0d0979d4cecf9902269d65e0a603a5d", + "0x00000000000000000000000000000000000f6e468415e5ac6d28a7c94d12c4eb", + "0x000000000000000000000000000000494b4ca94c6d8a61c3318ff62440ec33fa", + "0x00000000000000000000000000000000002ea891aa4eb5fd12a1bf8e0e1fc48f", + "0x000000000000000000000000000000844cb4e94e97927e648050b644979f92f4", + "0x00000000000000000000000000000000001db8534e7e5e42e3c75fcfc2998418", + "0x000000000000000000000000000000bcce9bbefcb4c9a3345989a6ebf0187b43", + "0x0000000000000000000000000000000000139c9e5ee46b9ba8e551d9f3dd3ead", + "0x000000000000000000000000000000b0a9b85eb5fbaeeecc741825903b79acdd", + "0x000000000000000000000000000000000030528d5be55b3c3d4fa93e6f09ed29", + "0x0000000000000000000000000000000b78170e4314105c600103fa0e938240d3", + "0x00000000000000000000000000000000002679b0b93b3d3de1205ba61d2728be", + "0x00000000000000000000000000000062bbce378c1e2cbfb0effe3a41696547cd", + "0x0000000000000000000000000000000000019eb4e23e6676db721c8ba5e83a86", + "0x000000000000000000000000000000ba1201cf0ce7f72573361168bafededd26", + "0x00000000000000000000000000000000001c128c2ced0010e699ca6636eca684", + "0x0000000000000000000000000000004ad9e5aa700e773b58c0f2f1f924fe9b90", + "0x00000000000000000000000000000000002306c1c7b02abf9675a4e09ce1333e", + "0x00000000000000000000000000000037a46560d17b13e8cfaee3a1d1dc59d7c9", + "0x000000000000000000000000000000000012d2b9bb83752ea7a7d41e7ddf6899", + "0x000000000000000000000000000000c973a6913959cf239e9ee14623e02c506b", + "0x0000000000000000000000000000000000236294a0ca0c7309552b7a93848551", + "0x000000000000000000000000000000cee9f6bd20a9c7fa2e52270a797777278b", + "0x00000000000000000000000000000000000bed1dafa797cb90722d0c7bc9ee39", + "0x00000000000000000000000000000006a60aea2be62725b3539dfb075415361c", + "0x000000000000000000000000000000000029afb4d11ecc95c2240af2dc869167", + "0x0000000000000000000000000000008f51d67f079a30db6cd99eabc42c6a864e", + "0x0000000000000000000000000000000000027514115df9f0a097c22e63bfa576", + "0x0000000000000000000000000000006490c7781a4fe8277392273f6062a1ea06", + "0x000000000000000000000000000000000014a885c8afa17ca3039a5225de16f6", + "0x0000000000000000000000000000008b8fdb0196ef6051edc046a2379ab50ca3", + "0x00000000000000000000000000000000002698614719730f6dcb5265d190dfef", + "0x000000000000000000000000000000e537aa1dcabaf53629fd8d544591b3baeb", + "0x000000000000000000000000000000000010886ea73fd22857768fa38d467d47", + "0x00000000000000000000000000000016f7f7080a26647b63a52ec42909fbd93f", + "0x000000000000000000000000000000000008557138bf83e4db79a2a15aff8141", + "0x000000000000000000000000000000937c4417f797f7acf3bd9dbfacae005d04", + "0x0000000000000000000000000000000000003c99ae57b5bc8da1e65c77f2f116", + "0x0000000000000000000000000000003561721062ad8a97c85856090ab43aec10", + "0x00000000000000000000000000000000000119075ed2c55d1da78446b6b1763f", + "0x000000000000000000000000000000720c42b7569cc2f3149f891bea025eb3e1", + "0x00000000000000000000000000000000000a4a472694ec96876785ee52db9117", + "0x000000000000000000000000000000899f74d8c6cb5d6913934ce86bf7a8fd2f", + "0x00000000000000000000000000000000002351d8cf62e447a6ad623d1576c70e", + "0x000000000000000000000000000000eff011caee40885a1228037bacd671c917", + "0x000000000000000000000000000000000028a9e4afdebabed8c9db5043f651d9", + "0x000000000000000000000000000000df5feae8869502a1c8b84f2bfa88460397", + "0x00000000000000000000000000000000002a4aea8df3da995b6993d106db01d7", + "0x0000000000000000000000000000007865f93da8894da5579d078bc52c865a23", + "0x000000000000000000000000000000000008ff54796b152dd8613c8b78175f0f", + "0x000000000000000000000000000000a6451fa917a48400fa444deb67a7ae56c5", + "0x00000000000000000000000000000000000ae3e2509278517f5cde67366a90c5", + "0x0000000000000000000000000000005e1f735a0fcf0b9170f0fb96b149aa6bfa", + "0x0000000000000000000000000000000000121155b0e2aa30081d1cd787338972", + "0x000000000000000000000000000000507a37d65b4307ff81bc9bb1dda679defa", + "0x00000000000000000000000000000000000eb66dc9635ca0b929275cbaccb034", "0x0000000000000000000000000000001eee81b23a887f299049b14c11e98460d6", "0x00000000000000000000000000000000002a56ce41f6b0be13b9c26747621b82", "0x000000000000000000000000000000d5827d6338c78656c0d12ca1aea6ef2c7c", "0x00000000000000000000000000000000001aa98f2de3ddda547d8f6de4e725de", - "0x000000000000000000000000000000ab626198b0ffe754ee7a00134867d6524b", - "0x0000000000000000000000000000000000016d89d36083b0f55dba4523be0aff", - "0x00000000000000000000000000000081d7c7a641b523d79569cb352fd7652081", - "0x000000000000000000000000000000000023fdf5ec3df2b078ebe39feac15b55" + "0x0000000000000000000000000000003cd139664895c835b7db057e267444185d", + "0x0000000000000000000000000000000000278d9634c51d3d6411de549a20f00d", + "0x000000000000000000000000000000632156bd768b6aff2cc6c43bee7523f51e", + "0x00000000000000000000000000000000000f8f67eb7b9bf147f71401de052fc0" ] - hash = "0x1cd81d6249bfece0299cdfaff8344081684997c787276db4fb5cdb25a0d6822d" + hash = "0x1276688c1c8f1024c963d35957328b73153c55580532254f0676c26e2ad55993" [inputs.hints] previous_archive_sibling_path = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x1cfdc3f191fd4278971f73de8ee4302bd29051bb0c93c1ba7a8a7feaa4e59846", + "0x092566493e1c6d7c4395496bec02f3da62dad2cb327ecda2615e30ffa3141c18", + "0x19f1a0c09db4cd026f686e9c8fb45501a9fefb4eb1b4c6c328a51343a0094eeb", "0x14e4b977b2203b70e6ee1c2456eb7114d090fe4b907f631eecd0919fed432e7d", - "0x2b3b2f80ea4227dfe7ab4edec33942ff08b95b023d6d15efb0abde90594c993b", + "0x2e970ecab0b8bea180ad841965d9373e3f872b11a0a6f897427f164f517f7030", "0x1e20ad4181460cbfdc74ca773502c59b890f184efe300ebad895956d318422da", "0x1434e6e2d5db1053ab8a3be58704509c799ee17e109c77f441f7bf1755400249", "0x119f56a2e8423a7feaab49b9b5dcbadec0648dfa4096b61b6774ea33ae29dc7f", @@ -757,93 +757,93 @@ new_out_hash_sibling_path = [ "0x00089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c" ] blobs_fields = [ + "0x00000000009c707518000200030000000100030030000000000000000000003d", + "0x1d527e7823caa902908af3ab1cc0ba94a5ad2b270b54529be278a8bf8c87d05b", + "0x000000000000000000000000000000000000000000000000003b2f97f0a76c80", + "0x22bd19c3bb038787bce70f499d47a0f97c5220b52b5ce08521df117b2a7ef0a9", + "0x2bfbb5dc441e50231a1355202ee0baed6368adbb2dd7141f961eb2d956e0f2fa", + "0x0d1969060040587e63fd51e28287b8290fb18da43ad8852b8311b7174a24e2cb", + "0x047bfb48b2f989bbedc3d9274532a7a2f5110315723c0ec8ec5d097f18f02d64", + "0x1ca4e4d70b42649652cfaaffce3d2c47f88c70c20389397b5aab34eb4dd54064", + "0x21f429ce5edf30ad48f624c6480af649eda3c8526611ceef694b12809e260c17", + "0x00000000000000000000000000000000000000000000021e016853e1091f3840", + "0x0000000000000000000000000000000000000000000000000000000000000010", + "0x200b71b5c95a08e7ccd3d23d27242b53d3ab9fca18bb146f3df18b9f94ebfeff", + "0x1f4baf16b914b3e4ac9044eca8f7a8ed9907538c516e53f141fbe344115d2130", + "0x13f6ce8199a91ab8f397a190699d80c72c82accab82f34b1593d852741197c9e", + "0x14d362d6c425dcba955be4bf9a9e917e1e4ba549a8f2fd94bb1d9c30238df12b", + "0x2a908c89196db72096bae4700b1f39dc7e9593d6a55dabd12c6d17e5b5b4d901", + "0x2361ab73c230678246e7fea6ce4ef9b830c2f18063ff36b3367f8c50a7b85eb1", + "0x20c1c77db32010c98b456db91501ac08cfc0c24a6f5c48250da3d283a0edeeb1", + "0x1a60433f69dfc100cb72340156899e067c53affad0807756e8396b2cf617eb96", + "0x24efb6699b6142e65a3334600bde5305a11b30f32ea66110dd29ceea859af967", + "0x2f41b787293f44dcbaebe2facf3e4758ba9fa957bf8951dda7a82adbc9d5fa60", + "0x02f0993d950b21f66b6c5d7e5d60fd5c4ee535ba259a4ed39b6d2fddc0d4ff0e", + "0x299e13b4052baf10d0a89de68984be3d72629f2fe1ed7090a47779a259e83bed", + "0x178acfbbb7d189d43f2832e59d0c43f89aa2c132eaeadafa93dd05d48f02d507", + "0x01cd051a1ab9546e126444e3dbd9c9fcf4a6dbff4893beb67e6d4230fbe602a1", + "0x1441aceedd1a4ed1e2fb01704d117fd1bd17c7d8a6b2aa08d85e38f68aeaa9b6", + "0x2fee8f955e76f6c8d5b76035e4e52a6170a1e1a38487a4e24f651a6a4d338c64", + "0x0000000000000000000000000000000000000000000000000000000000000010", + "0x2179147bb0838da5518902ae1cea53a4307492e3b2da9ded159ed3bb199e3db0", + "0x0ee596ab346ebf22d78a042a3385becb720b492b3d6ea2ffd95f6a767dd6a0c3", + "0x0a7c748bb6713659aa65e237a5b8ad8e68034a52bccda6392296ee02571af9a0", + "0x260853c19abe5575775ef704636c3dc536e21baf9ebde06eb5293fe813ffbbfe", + "0x029b464271dd829d54e3cec925ec2c13d0b206cec9a3d9b91287f2fba507ccd8", + "0x240748b108956db499751ee8fc26baf2a10b79f398bccac2267886d53f3f40b8", + "0x007acc4db6e9cbbb3518dbb074cb80c573c87a1d55190cc21f58ee3ef41a5567", + "0x0359b1a5512f797870223c431bb8d87060e19a03e9328cc243792084df96d68d", + "0x2bdfb3c25cb292d798f59b6bc591c73c950a0c5537baff435c1c141b2eca78fd", + "0x26d6a90591b67755bc5c9b5f1485e6da6a3227e9b92472bc3da67b87bd6d9c86", + "0x0cd6598dbbbf8f3ecbc21bd6c542066808dc38940eb82c391cbb0f162c43b7fa", + "0x1b32ea009bdbdd29e1821190a4b07a36c9d60b8664961127fb2523b9d2bfbea0", + "0x09b4e8c7279de5aedaf1e5da56c22758d59b52e55c67ce3c2f8055056b253134", + "0x0958cf4e9be0ef9fa33d4db4d3b4f8f63db437edcbbd52f39f97291fca3e9073", + "0x222a56fade0474f5d4689602d1900ea498a6a663f6bcdd5fcd2e444604300969", + "0x1e811c907b8a4c30f53baf95ff1be4755944f278adee3876080cac7acc5fb610", + "0x0000000000000000000000000000000000000000000000000000000000000010", + "0x0fc0f01b6a8412b14fe695e2c72a445bf82fa0038f32d14be5212175338a60d3", + "0x0fd644918c04b9b8618f557300c734acd006b7f740ea7c7f200b6c267053fd82", + "0x1540ec0e130a13004338c43b6b2ca2f3d2d21985544777fb76462b0589daecf1", + "0x1a98e814fd22d8a3a6073bb1ea481655354685c24f67ff79843074bac8bd6105", + "0x0e8708ebf5a3b657f6fa41732cfec15f5ec7ea91931dbada8a4c1d35132db3b7", + "0x00b8a9a513a2978ec081a4520ae9cd7fa9a5385f34622a44e1bfbbba1560ac18", + "0x164f7f25884150e702e7037e3ecc875f5621a199d06ddf4df458a14d3cebe60b", + "0x19cdd0ba1153bf9c866103ce8d7e19cac52e38576d35f4c5dc62b671f52fe987", + "0x15801e7eac46d51ac380d85269291278881117eb1b2ea27d4fd5b904a017e762", + "0x14f5446b6f8555a590f042f0eed7f7c34a1a2e0f39730796734e0c7487bf7794", + "0x17eab588e74a9a356bc715ef815b82248cceaefdd81c30c781b0b2368016c612", + "0x0e16b381c13934f2ddc514c7f60ab6f3bdcef930385f511c2ec6b0f1c03f8e66", + "0x1abfb442f69c62cad43d5e508868573d696167b6dc9b922879b9d8ee1a74d252", + "0x0cbffe6b23d52f87fdaf0d28817cbc54f47901db14854d162c4228856c6a349c", + "0x2699cad7d736570b3d342f9f9017704864b0a2a614b2859ba4374a054f428727", + "0x28a5fb39d0219320eee8fc8106d15ee60bbe0f17fe1e307d45be512e3bd12337", + "0x00000000009c7075180000000100000002000000000000000000000000000008", + "0x114bc54de9111aade4cde66a3ed74df9aa2ff0e1d9cef2385e1b33da2afc2fbe", + "0x000000000000000000000000000000000000000000000000004894bc72b69ca0", + "0x1673838213aa23039438e35ef649831da97e2b77bc91491ee76ae65e51737517", + "0x06639f18e90988e6feda7196ae00624985ec4d8a6d694999a5b2275e49e79d6b", + "0x004093295436e1581085b446326dceb0678c0fdee4aec1d441b23d0c941a4f2a", + "0x21f429ce5edf30ad48f624c6480af649eda3c8526611ceef694b12809e260c17", + "0x00000000000000000000000000000000000000000000021e011fbf2496689ba0", "0x00000000009c707518000000010000000300000000000000000000000000000a", - "0x2ca391890a7afa0a4098cceb64d9aa356e84a1055e6e2b3df10e2a5033f0b691", - "0x0000000000000000000000000000000000000000000000000022e452ad469ea0", - "0x09fac458f9e079d0117ef63746c55ce66b3e5d95c8420974d9c69f369b0d77ef", - "0x2935995b8343928a25acdb09654bdc27aeef345ec185caa48fb0048bd475fbcb", - "0x0000000000000000000000000000000000000000000000000000000000001c20", - "0x0dc02e099550676b3dcfd522010d4db9d2c47a4556dfa28aa20a4a0eb35c54a4", - "0x0000000000000000000000000000000000000000000000000000000000000af0", - "0x12d1296a2643b832fbd1d6d3ed3678833fce770084efd75adfd517de8214ccf3", - "0x00000000000000000000000000000000000000000000021e00afaeb15ed67ca0", - "0x0000000000000000000000000000eb8dcdbf0000000069fde1080000000b0001", - "0x000000000000000002c0000000000d0000000003c0000000008b0000000a3979", - "0x24f3d6261780561e8ede638edf15d34d9f93372572631856307c57a08dfb9cb1", - "0x2126a6e400b3fae90b44b74482d5b59dc707ba8f044c90a5f0e06ff48029f19f", - "0x28f8d2b1f0315d8539c1e4ff651e2eaac034de0a2271cd6f198f557ecf449cb1", - "0x1a010e7a4312757d9349e0058c907064764c9836de016199dbd957ca46fefc3b", + "0x06c9b03214f32367beb906d4b1b798bc97b009369ba35699c473d649b767d11e", + "0x000000000000000000000000000000000000000000000000004d2c208a4b8060", + "0x043cc8fabc95fca13d0cc4b002d1c55ab8c3f0e4320cbb5d69a6658b3fd82f0c", + "0x034eb80881eccbf6a1615935975eba42c6c588b86791713b62dbf4fcc56dbbff", + "0x0000000000000000000000000000000000000000000000000000000000001fa4", + "0x303cc082eba5247b6b42b1ea4b08c8b1207feddecdf4b5568b98e0d22a37d5ee", + "0x000000000000000000000000000000000000000000000000000000000000076c", + "0x21f429ce5edf30ad48f624c6480af649eda3c8526611ceef694b12809e260c17", + "0x00000000000000000000000000000000000000000000021e00d293040c1d1b40", + "0x0000000000000000000000000000eb8dcdbf000000006a06344b0000000a0003", + "0x00000000000000000280000000000c000000000380000000008b0000001baea4", + "0x2521431714d5fae9c9497a549853582f97f43bca7eea64a1a0aa431783287439", + "0x030a54533f369d5052ba4ce15c7da3210e0702a11d806b82a8e44d3d04c0fa88", + "0x19f673ade24c464385eacee9ea0676ea9f790fb73c0aa31ee1b7b332bd2dd75d", + "0x1c1874a7fa2daf7453bc043f63e00780db5d24e354bff2f38741eea0d43f60de", "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a", - "0x0000000000000000000000000000000000000000000000008c63744300000012", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000008c63744300000057", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -25334,42 +25334,42 @@ blobs_fields = [ "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000" ] -blobs_hash = "0x0098dfcc50238facc959eceef09a4ed661501b8a94815f8d69ad5b265956d2f1" +blobs_hash = "0x00bca4e296016c1708ab862a969fdae36dd91a4835c01bfde3a8f4b2d17ce784" [inputs.hints.previous_block_header] - sponge_blob_hash = "0x208b2bb1ace451b93e09ef0119c861c986fb26bb867456eb5c93661b83befc33" - total_fees = "0x00000000000000000000000000000000000000000000000000d0f074eda98980" - total_mana_used = "0x00000000000000000000000000000000000000000000000000000000001baea4" + sponge_blob_hash = "0x30563adfbe36a973903c501fd8bdb912b1a3c22b86ee7fe7a0a580dfd9e30a56" + total_fees = "0x000000000000000000000000000000000000000000000000003b2f97f0a76c80" + total_mana_used = "0x000000000000000000000000000000000000000000000000000000000007d76c" [inputs.hints.previous_block_header.last_archive] - root = "0x25dd04dc7f0a4299651ea908c014de487c4be771db4d68b458d16aa041af02ba" - next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000a" + root = "0x2bf1efe3477d3c5010706892741cefaa2fff9bc64817298e29c4e3a418ab6e60" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000009" [inputs.hints.previous_block_header.state.l1_to_l2_message_tree] root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002800" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002400" [inputs.hints.previous_block_header.state.partial.note_hash_tree] -root = "0x2126a6e400b3fae90b44b74482d5b59dc707ba8f044c90a5f0e06ff48029f19f" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000300" +root = "0x2908bf1cf1e39b8a7a58f176355b1463a351f73e0aeafe3ec2025adec49f4897" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000240" [inputs.hints.previous_block_header.state.partial.nullifier_tree] -root = "0x0e8d32952999631ff527d706426177bdb3208db1d3b8dd4e74ba883610dc37e5" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000380" +root = "0x2c3038ffe818b210f773e174f35b0d53ac3624757bb29b6c0d3aa5cb7413e50c" +next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000002c0" [inputs.hints.previous_block_header.state.partial.public_data_tree] -root = "0x0d21d4944ca04ad548057c7362ba76b7370e29929fe9cdd32ec1d04c07e21179" +root = "0x246a615f499785783dfca134db45a55d24c0c3f4bbd1c0141a5a41df05381c04" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [inputs.hints.previous_block_header.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" - block_number = "0x000000000000000000000000000000000000000000000000000000000000000a" - slot_number = "0x0000000000000000000000000000000000000000000000000000000000000042" - timestamp = "0x0000000000000000000000000000000000000000000000000000000069fde0c0" + version = "0x000000000000000000000000000000000000000000000000000000008cdefce3" + block_number = "0x0000000000000000000000000000000000000000000000000000000000000009" + slot_number = "0x0000000000000000000000000000000000000000000000000000000000000041" + timestamp = "0x000000000000000000000000000000000000000000000000000000006a063403" [inputs.hints.previous_block_header.global_variables.coinbase] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000003d0220de6fd33ed3481276c1954065244b2fa8d5" [inputs.hints.previous_block_header.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -25380,18 +25380,18 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.hints.previous_out_hash] root = "0x00c95e0ceb41951039e1592745ec2faea9866f6eaf01bf189a4463b4143af093" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000002" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000001" [inputs.hints.start_blob_accumulator] - blob_commitments_hash_acc = "0x00ff28bea8c07e7b060d248cb2071f813aa6e39e07e3a527c1739e6a7793c093" - z_acc = "0x11b2ee0dde26d315a246f5bdc01db8abe8200c6581201debd1cffc51ad26f95d" - gamma_acc = "0x152f389c138d41dde799d4f4fc748753332ddcd5bcd19fe35e4fbe60581534c2" + blob_commitments_hash_acc = "0x00ffbaf7ab77b75db5c796ebb432d41e9098ae2d3827c7373923259cfc9b78a4" + z_acc = "0x07a51b370139429725a6f98769493ba7fd550915fa92a608c6cdb425cc6c3a8b" + gamma_acc = "0x25f0628111470e7bd3f726d273c7b6c9ac5cdbf187b960b5afd62dfa9ffab14f" [inputs.hints.start_blob_accumulator.y_acc] limbs = [ - "0x4183756e36181f92164c36776c2ba3", - "0xaff710205b13b83794ee63e35bb424", - "0x411e" + "0xce7eee06bfc9f6970ab449a0e72230", + "0x28c7ce216389ca35560585fc48efe0", + "0x3610" ] [inputs.hints.start_blob_accumulator.c_acc] @@ -25399,35 +25399,35 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.hints.start_blob_accumulator.c_acc.x] limbs = [ - "0x6e2f87b978f4bca529d7ad90a41cd8", - "0x734aa1582c8aee32f8334cfc594ab0", - "0x21aa57d7e1012415e25e37ee62bbcb", - "0x015e58" + "0xfb0cfd3d1f4d0e93696ae59cf09bdd", + "0x12da399f4ecc2ba9c7d860ab514238", + "0xea6c4834b4830586227f108b5c07e5", + "0x01cbe7" ] [inputs.hints.start_blob_accumulator.c_acc.y] limbs = [ - "0xd8e530734ccb89f49a545e13ead68c", - "0x914523b3ef75387e032ac9fef36157", - "0x5342c94a6ba1df16b871173b323290", - "0x1604f8" + "0xe4daaf3795e63b41e496d8f46579e2", + "0x0d11d7fe307498a075e5b234b00629", + "0x4c62a206be1b8bc19981fc62c94332", + "0x0b9ea2" ] [inputs.hints.start_blob_accumulator.gamma_pow_acc] limbs = [ - "0xc0250cc6b8725b2b00687dab94d327", - "0xd7f65a721538376d885811c9aafe6f", - "0x297f" + "0x03a87f88957e590a3d95773e1b7d12", + "0x7baa161fdc15cc971fcbf2849b1573", + "0x0b50" ] [inputs.hints.final_blob_challenges] - z = "0x0f20024c268f33a3baa0f8f38bddd3d70a7fe791632d4914d95c44e2099fa150" + z = "0x2b05bb64fd2ee9852b902738bb95e46a0537b9ad076e81e6e1a4cb0b5c5796fb" [inputs.hints.final_blob_challenges.gamma] limbs = [ - "0x551bcc798b08297e8823944cd61ccd", - "0xa11af380fa73225d8ac70a4862f1cc", - "0x24db" + "0x03a87f88957e590a3d95773e1b7d12", + "0x7baa161fdc15cc971fcbf2849b1573", + "0x0b50" ] [[inputs.hints.blob_commitments]] @@ -25435,18 +25435,18 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.hints.blob_commitments.x] limbs = [ - "0x1f41ee1ce165ab1325a3d58dcce4b0", - "0x8cc2d9c146e110aecfd6e1d0a88478", - "0x5f035ed6b113a1d400984d75519e9c", - "0x0c2ecb" + "0x5b7c6bf5104f6e92bbf3b839e80903", + "0xb5293105d68d1202aa1b9d3a97d4a1", + "0x39d71bfbf03e4a5a00d1243ae148f6", + "0x0da61a" ] [inputs.hints.blob_commitments.y] limbs = [ - "0x6e4b336ccd13490195783945cd06c4", - "0x87ab466617f89f75e1b4e5cc2de3cf", - "0x5c00c3065f22ed5a6511f4ef9144d8", - "0x0290b1" + "0x616bcdfa44813bc82622c11a30d8c5", + "0x1e4e53a0514712ee77355bdfdf794c", + "0x6dc135f06d0222e10ec346fd3d2ccb", + "0x0f889f" ] [[inputs.hints.blob_commitments]] diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-root/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-root/Prover.toml index 64ff802314a0..b37f76d44b3d 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-root/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-root/Prover.toml @@ -484,8 +484,8 @@ proof = [ [inputs.previous_rollups.public_inputs] checkpoint_header_hashes = [ - "0x004d16fb29611dba53004101a433c88fddade0ec60446fddec1589851839a774", - "0x00db58820ef17b4cb952c006ed78296097c3fcf7fd0fc3e3cec1f8260fc64045", + "0x003adb8347e9c0e3f0851c6021c4426699f22e9abf6f33d0bde439f9ff8e3ad4", + "0x000ccc8bdb86e25cf7a74d062bc89c342b68fc14ec085ba411edd80cfb418c1f", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -520,17 +520,17 @@ proof = [ [inputs.previous_rollups.public_inputs.constants] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" - protocol_contracts_hash = "0x0333160f082dfc02e255c756febac14dc42c4c88b882e0403d44710c1f0bb80f" + version = "0x000000000000000000000000000000000000000000000000000000008cdefce3" + vk_tree_root = "0x115e00fed9b96e899daa4210aaf690c52c3fb9024f12ecfa6295969410d246a4" + protocol_contracts_hash = "0x10a32ead90905324604efd0afce0bd841a58c34206040eb4e259be5fe8b90de8" prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.previous_rollups.public_inputs.previous_archive] - root = "0x00f30d99838de8d9e0b40bb5f19c53ebd2cea2e4e324a6b48a4db2655906ad63" + root = "0x2bf1efe3477d3c5010706892741cefaa2fff9bc64817298e29c4e3a418ab6e60" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000009" [inputs.previous_rollups.public_inputs.new_archive] - root = "0x24f3d6261780561e8ede638edf15d34d9f93372572631856307c57a08dfb9cb1" + root = "0x2b2cc76a06e0d9171534d99a1f1cfbd6eb033d5712af9b8fef977ea3e2d30e82" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000b" [inputs.previous_rollups.public_inputs.previous_out_hash] @@ -545,13 +545,13 @@ proof = [ value = "0x000000000000000000000000000000000000000000000000003b2f97f0a76c80" [inputs.previous_rollups.public_inputs.fees.recipient] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000003d0220de6fd33ed3481276c1954065244b2fa8d5" [[inputs.previous_rollups.public_inputs.fees]] value = "0x00000000000000000000000000000000000000000000000000d0f074eda98980" [inputs.previous_rollups.public_inputs.fees.recipient] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000003d0220de6fd33ed3481276c1954065244b2fa8d5" [[inputs.previous_rollups.public_inputs.fees]] value = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -772,15 +772,15 @@ proof = [ ] [inputs.previous_rollups.public_inputs.end_blob_accumulator] - blob_commitments_hash_acc = "0x00ff28bea8c07e7b060d248cb2071f813aa6e39e07e3a527c1739e6a7793c093" - z_acc = "0x11b2ee0dde26d315a246f5bdc01db8abe8200c6581201debd1cffc51ad26f95d" - gamma_acc = "0x152f389c138d41dde799d4f4fc748753332ddcd5bcd19fe35e4fbe60581534c2" + blob_commitments_hash_acc = "0x00d77961792390c52a0b483011a89cee4654391f249ec2fe1747874cf322e0b3" + z_acc = "0x29007235f991893ecbd042b149cea0f3325df79034c3af4bbc18ede5f8847c99" + gamma_acc = "0x0c9f6b7c50e23eab69146847c8667f47f534f90927d00b90685d47d152ee5ffb" [inputs.previous_rollups.public_inputs.end_blob_accumulator.y_acc] limbs = [ - "0x4183756e36181f92164c36776c2ba3", - "0xaff710205b13b83794ee63e35bb424", - "0x411e" + "0xc65b87ee51836fcfe24addc71bbe74", + "0x31232c4dab95f79665d041356c97b2", + "0x6216" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc] @@ -788,35 +788,35 @@ proof = [ [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc.x] limbs = [ - "0x6e2f87b978f4bca529d7ad90a41cd8", - "0x734aa1582c8aee32f8334cfc594ab0", - "0x21aa57d7e1012415e25e37ee62bbcb", - "0x015e58" + "0x0c3d7386fc4eac408de6d7148427bc", + "0x3f6a59979f9a19dc1e70c99dab56cd", + "0x2e57e8ea758416a007381702358b4e", + "0x122139" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc.y] limbs = [ - "0xd8e530734ccb89f49a545e13ead68c", - "0x914523b3ef75387e032ac9fef36157", - "0x5342c94a6ba1df16b871173b323290", - "0x1604f8" + "0xad8824d27ca234bdfda4130448ff39", + "0x3c1abc87ba60a77bb27a4646b14890", + "0xbef5b415e70603a89f9fbbdb920f53", + "0x01254a" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.gamma_pow_acc] limbs = [ - "0xc0250cc6b8725b2b00687dab94d327", - "0xd7f65a721538376d885811c9aafe6f", - "0x297f" + "0x2f4c02e293cde5564d03c74652dd1a", + "0x5c6554cb9f5666b5f541ab7efb6e28", + "0x05f9" ] [inputs.previous_rollups.public_inputs.final_blob_challenges] - z = "0x0f20024c268f33a3baa0f8f38bddd3d70a7fe791632d4914d95c44e2099fa150" + z = "0x2b05bb64fd2ee9852b902738bb95e46a0537b9ad076e81e6e1a4cb0b5c5796fb" [inputs.previous_rollups.public_inputs.final_blob_challenges.gamma] limbs = [ - "0x551bcc798b08297e8823944cd61ccd", - "0xa11af380fa73225d8ac70a4862f1cc", - "0x24db" + "0x03a87f88957e590a3d95773e1b7d12", + "0x7baa161fdc15cc971fcbf2849b1573", + "0x0b50" ] [inputs.previous_rollups.vk_data] @@ -824,11 +824,11 @@ proof = [ sibling_path = [ "0x1be72f1f471a29db247f7c4f19c03e11631575edec0695c29deba92770cce437", "0x0c0e71d61b37e5093a79987574f6a04cf58c7a6b47f650ec04b30cb9c9b3ccec", - "0x1f0a3ab28f16510e4f9a5682a8b5f2826f55082cd639c6b76e6e970d8bb4224d", - "0x268f759e38c9ff705a78c055b44e19f7d2b0227f3c4f2e31d6874550d498abec", - "0x09f661abe743a7c8125aa0498ca1d01914fdac9cadadb415e0d1a05934997b99", - "0x28650667b92be48b116289119fa4794a5fe8fe5792a49d89b9977feae7f685a6", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x077df93ce467a49dde4acac6583cb935dceb05e4fc9e46b89acaa84893f27b5e", + "0x12b2fc2c75329888431e1f3abec5c810aea9fd591c813570cee181f1b665d1ae", + "0x01fbbbbce155d5c589bcb506d4155b721f210ee119133b30de937783113e323e", + "0x0ea386a780cf0f70cf258740f800f4788e20b555a155c2ad9cd01dd4c0b649a5", + "0x10f050f0394d228b26baefadb2f029bd889b21a3e7e17efe6d9ef92fef9af70e" ] [inputs.previous_rollups.vk_data.vk] @@ -1437,7 +1437,7 @@ proof = [ [inputs.previous_rollups.public_inputs] checkpoint_header_hashes = [ - "0x009751d5fc5ec4f92e16f7b70c3b084aced0c7e9416fae20ebc6fcbca6b9501c", + "0x00724c441dfc8e686db466242ac730878a4a0a8f693385b80f5e77eafa1a0675", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1473,17 +1473,17 @@ proof = [ [inputs.previous_rollups.public_inputs.constants] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" - protocol_contracts_hash = "0x0333160f082dfc02e255c756febac14dc42c4c88b882e0403d44710c1f0bb80f" + version = "0x000000000000000000000000000000000000000000000000000000008cdefce3" + vk_tree_root = "0x115e00fed9b96e899daa4210aaf690c52c3fb9024f12ecfa6295969410d246a4" + protocol_contracts_hash = "0x10a32ead90905324604efd0afce0bd841a58c34206040eb4e259be5fe8b90de8" prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.previous_rollups.public_inputs.previous_archive] - root = "0x24f3d6261780561e8ede638edf15d34d9f93372572631856307c57a08dfb9cb1" + root = "0x2b2cc76a06e0d9171534d99a1f1cfbd6eb033d5712af9b8fef977ea3e2d30e82" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000b" [inputs.previous_rollups.public_inputs.new_archive] - root = "0x0f84849714aa969caef587fe17273c9fae12f846c68db0f1ab092faf93a29145" + root = "0x190235b4f2389840ddebb32248a7df4f08437a94292934de6a25793f48bc7fdd" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000c" [inputs.previous_rollups.public_inputs.previous_out_hash] @@ -1495,10 +1495,10 @@ proof = [ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000003" [[inputs.previous_rollups.public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000022e452ad469ea0" + value = "0x0000000000000000000000000000000000000000000000000022e44313545d00" [inputs.previous_rollups.public_inputs.fees.recipient] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000003d0220de6fd33ed3481276c1954065244b2fa8d5" [[inputs.previous_rollups.public_inputs.fees]] value = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -1687,15 +1687,15 @@ proof = [ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.start_blob_accumulator] - blob_commitments_hash_acc = "0x00ff28bea8c07e7b060d248cb2071f813aa6e39e07e3a527c1739e6a7793c093" - z_acc = "0x11b2ee0dde26d315a246f5bdc01db8abe8200c6581201debd1cffc51ad26f95d" - gamma_acc = "0x152f389c138d41dde799d4f4fc748753332ddcd5bcd19fe35e4fbe60581534c2" + blob_commitments_hash_acc = "0x00d77961792390c52a0b483011a89cee4654391f249ec2fe1747874cf322e0b3" + z_acc = "0x29007235f991893ecbd042b149cea0f3325df79034c3af4bbc18ede5f8847c99" + gamma_acc = "0x0c9f6b7c50e23eab69146847c8667f47f534f90927d00b90685d47d152ee5ffb" [inputs.previous_rollups.public_inputs.start_blob_accumulator.y_acc] limbs = [ - "0x4183756e36181f92164c36776c2ba3", - "0xaff710205b13b83794ee63e35bb424", - "0x411e" + "0xc65b87ee51836fcfe24addc71bbe74", + "0x31232c4dab95f79665d041356c97b2", + "0x6216" ] [inputs.previous_rollups.public_inputs.start_blob_accumulator.c_acc] @@ -1703,37 +1703,37 @@ proof = [ [inputs.previous_rollups.public_inputs.start_blob_accumulator.c_acc.x] limbs = [ - "0x6e2f87b978f4bca529d7ad90a41cd8", - "0x734aa1582c8aee32f8334cfc594ab0", - "0x21aa57d7e1012415e25e37ee62bbcb", - "0x015e58" + "0x0c3d7386fc4eac408de6d7148427bc", + "0x3f6a59979f9a19dc1e70c99dab56cd", + "0x2e57e8ea758416a007381702358b4e", + "0x122139" ] [inputs.previous_rollups.public_inputs.start_blob_accumulator.c_acc.y] limbs = [ - "0xd8e530734ccb89f49a545e13ead68c", - "0x914523b3ef75387e032ac9fef36157", - "0x5342c94a6ba1df16b871173b323290", - "0x1604f8" + "0xad8824d27ca234bdfda4130448ff39", + "0x3c1abc87ba60a77bb27a4646b14890", + "0xbef5b415e70603a89f9fbbdb920f53", + "0x01254a" ] [inputs.previous_rollups.public_inputs.start_blob_accumulator.gamma_pow_acc] limbs = [ - "0xc0250cc6b8725b2b00687dab94d327", - "0xd7f65a721538376d885811c9aafe6f", - "0x297f" + "0x2f4c02e293cde5564d03c74652dd1a", + "0x5c6554cb9f5666b5f541ab7efb6e28", + "0x05f9" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator] - blob_commitments_hash_acc = "0x00e314212187820bcccc75acc041531f0e6f2139db72f9962951480b5eb309b4" - z_acc = "0x0f20024c268f33a3baa0f8f38bddd3d70a7fe791632d4914d95c44e2099fa150" - gamma_acc = "0x28a8c47b24266cbe95e6e5df4d8f583081a6e7d873a03dfabcf3fad3204acc2f" + blob_commitments_hash_acc = "0x00272112bd97121374f7781473cf71e7a96199e551613eb5d3348ed67cf6fc96" + z_acc = "0x2b05bb64fd2ee9852b902738bb95e46a0537b9ad076e81e6e1a4cb0b5c5796fb" + gamma_acc = "0x04dcd4e3be5bf3b8f13d3c76f7cd601d12ba30a521584aeda7b7187df5f81f39" [inputs.previous_rollups.public_inputs.end_blob_accumulator.y_acc] limbs = [ - "0xca8704c4fce27431f9bc6cf6bc5ee8", - "0x2e59181e0640e995e15724147eea98", - "0x5a08" + "0x6ddcb335bd9a766256d963c5759149", + "0x8191ed57c4cce96c52c3435fe0de98", + "0x5747" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc] @@ -1741,35 +1741,35 @@ proof = [ [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc.x] limbs = [ - "0x1fc2db53f95236761d435a3d7a82eb", - "0x4f0266217c841c706ff759bcd9619a", - "0x6b2dfe9b2403f250a44b3a4a85c7a7", - "0x09f649" + "0xbe2f23dff5a46f88aa3ae8efa2224f", + "0x6a756207e007070daf894c359fa44f", + "0x0c21efead512f1de5122338bb8a96c", + "0x126921" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc.y] limbs = [ - "0xdf0f6a879571ea5e99241f6a774cc6", - "0x962be4a71909fb2b0c13c6d8aa4780", - "0xd7e987a1f4d2937f67abc39e2ce5d4", - "0x042b58" + "0x54a947f3178da64289940d48b11a75", + "0x40332d2ae1fa1295a9e5400bfe96ca", + "0x759e15a44a67e30c0cabab1dedc116", + "0x19d44a" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.gamma_pow_acc] limbs = [ - "0xed650727d9732d1fc427beb2dcf581", - "0xdcd9e8dc02a33765f813f467a095de", - "0x0e9c" + "0x1eb6299fe26025dcd2f66f0f8de4cf", + "0xf2724ded79b0ed9785f6913b38110f", + "0x3bad" ] [inputs.previous_rollups.public_inputs.final_blob_challenges] - z = "0x0f20024c268f33a3baa0f8f38bddd3d70a7fe791632d4914d95c44e2099fa150" + z = "0x2b05bb64fd2ee9852b902738bb95e46a0537b9ad076e81e6e1a4cb0b5c5796fb" [inputs.previous_rollups.public_inputs.final_blob_challenges.gamma] limbs = [ - "0x551bcc798b08297e8823944cd61ccd", - "0xa11af380fa73225d8ac70a4862f1cc", - "0x24db" + "0x03a87f88957e590a3d95773e1b7d12", + "0x7baa161fdc15cc971fcbf2849b1573", + "0x0b50" ] [inputs.previous_rollups.vk_data] @@ -1777,11 +1777,11 @@ proof = [ sibling_path = [ "0x1edc2329182e13c58f5ced1e4ca120ba845e074e81d59ee64d0bbd583ecdd429", "0x1f502972a4bdd0353e082932afca85331d93e89c99ab3a78511939c18eb14641", - "0x1f0a3ab28f16510e4f9a5682a8b5f2826f55082cd639c6b76e6e970d8bb4224d", - "0x268f759e38c9ff705a78c055b44e19f7d2b0227f3c4f2e31d6874550d498abec", - "0x09f661abe743a7c8125aa0498ca1d01914fdac9cadadb415e0d1a05934997b99", - "0x28650667b92be48b116289119fa4794a5fe8fe5792a49d89b9977feae7f685a6", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x077df93ce467a49dde4acac6583cb935dceb05e4fc9e46b89acaa84893f27b5e", + "0x12b2fc2c75329888431e1f3abec5c810aea9fd591c813570cee181f1b665d1ae", + "0x01fbbbbce155d5c589bcb506d4155b721f210ee119133b30de937783113e323e", + "0x0ea386a780cf0f70cf258740f800f4788e20b555a155c2ad9cd01dd4c0b649a5", + "0x10f050f0394d228b26baefadb2f029bd889b21a3e7e17efe6d9ef92fef9af70e" ] [inputs.previous_rollups.vk_data.vk] diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-tx-base-private/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-tx-base-private/Prover.toml index 0daea78c3d23..e468234b8cff 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-tx-base-private/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-tx-base-private/Prover.toml @@ -3,7 +3,7 @@ anchor_block_archive_sibling_path = [ "0x0000000000000000000000000000000000000000000000000000000000000000", "0x19f1a0c09db4cd026f686e9c8fb45501a9fefb4eb1b4c6c328a51343a0094eeb", "0x14e4b977b2203b70e6ee1c2456eb7114d090fe4b907f631eecd0919fed432e7d", - "0x2b3b2f80ea4227dfe7ab4edec33942ff08b95b023d6d15efb0abde90594c993b", + "0x2e970ecab0b8bea180ad841965d9373e3f872b11a0a6f897427f164f517f7030", "0x1e20ad4181460cbfdc74ca773502c59b890f184efe300ebad895956d318422da", "0x1434e6e2d5db1053ab8a3be58704509c799ee17e109c77f441f7bf1755400249", "0x119f56a2e8423a7feaab49b9b5dcbadec0648dfa4096b61b6774ea33ae29dc7f", @@ -3061,1017 +3061,1017 @@ contract_class_log_fields = [ [inputs.hiding_kernel_proof_data] proof = [ - "0x00ffd75efda6e34b65121fde81a69ba5f2a45acc69b143f1e333d23658e80f55", - "0x0094776a12fb89f4b79a211bfa3a123207f9ad5633b79be105497666fb335bf5", - "0x00d17297ba98cbb8657cb604ec67599c7a85328c46b50b54b0cbc52943fd2264", - "0x009dff5d1b2b67b894899ebcc54bca90dd7480e42a685a692c75d0f8055bec2c", - "0x00c0d25d3d357e684dbb3e1b28e7aabf97967a5ff28a67c38886575be5b6babd", - "0x0022cb2794ffb670f60a8dff4602cf5e93ca43bf651c52fc0919a8fb973374e9", - "0x00adf3b1bad196cacf4bbced5c5901d3efebf39d6b89e517f94d45ccfb1efbd3", - "0x0028c69ebe9961c53434f6c4d4f3e9921ff5b652674b535f132a1fc7c8228de3", - "0x00fe3ad1f7d405ad161fe64ba928307a2fbdb9ac1157dbe82e2d6d72f5044edf", - "0x002dc6b27c1b5fbabceb49c8ed5d3c2dec4fb00afe60324b03cca49974726d60", - "0x000f1525f80fe686760ef1f3b292c309ab7452b0c3678b4c0654b5ae25a3f32d", - "0x00dbcbc18aef1cd4c03e4335ecd088883fd93e6a2ba98c10d2ac34cda77dfc48", - "0x00f4e56686b75cd63c78b800bc9a5fe549ca6bcd9d6eca61c1fa5a104fce5546", - "0x0054e54c83d00911ef88f8f1ed287779c630a34045420201d0669f14c1b4de66", - "0x0018c65a26ab7e3b8ebac5221afa73da55ae5c36c08d9a0018da7d5d17e29872", - "0x00711647e952591a6ca41f5620fa9a03bb75790f8f81db6dfa82c31548480456", - "0x0013925676e49ac65094b4d49d52e1a170e5039602fcf864b0ac6f7e9da2e562", - "0x00d91b375ddef300c30fbb8aeab90cf398034b025f3a80928e5648caa4305977", - "0x005482eb58c00660408674a52b2dbcf144f6cd81e8eae46f8472f23e676656a2", - "0x00eaca2a637d4108f9d875a6894f7b6d422c7866620003ae177a6e3d0f8144f4", - "0x00e94a79f13f9ac53694a4f4a7937305f9ee22511b40f32cdc5295f811329b1d", - "0x0092a64411b0146c87875de91204ed5887e86adc0e1420b95095a40c3bebe4e4", - "0x000b8ee89f7b2e5b15306b27947219fa81b6ed217c7e2f062405610b17a3eac3", - "0x00cb681d138ffcd55f855e933bb676a70e00ee0cfe6b052c3ad9bd98b0f2830a", - "0x004ad7e724966e80273dd1cbc4438c33753f51003cfa7a9539e655b5500b916e", - "0x00da0e801b70978301c27e0932a556f858dae29306da56a5e9fc4d12ae81d4bc", - "0x003c88b248de4edcb308ffabca61a81d0badf09ab8c0db324115cac211a33315", - "0x00fa54e31397b715b3b4f78d101a92f46182627272e4bcaa9661c18423b7aad2", - "0x004bf3e6103dbc0f11e88e4a96ae979650b453fb23293d6042f422ecee105c8e", - "0x00aa32266a8e4a7794d11c5cdc0b3a94828fdec171940886f71c481595573c45", - "0x004d234cff37718289fedc718cbc31527aedea95dc6dbfda696e03b7eabf9023", - "0x0072505be5605360c6974f2456aa1ef0a20a9d080af340cf4ca3a9a605398257", - "0x0027fb05374784e684c91cc9d14237550a7c4f394cd83dc375629c0992093892", - "0x005a78001cf50b1003c738fb1d5bafa348bd87a995a627ea058d269df6467538", - "0x00f5a712d8697c55a2d079a425ea01b2d5f1835a6024452a4dee96d8d84ce12e", - "0x0049b1ac87b46fb780996fea081b31f7fc3a48e93b44c74b961086fac1dec208", - "0x00fad978518359b69586fd3898da97a077f2c7cef71f5092a187a0c514c3af05", - "0x00c59283427a17f123d663975bd19939ee89775b8e7c94fcd9bd5b3241ccaab4", - "0x00923ee87ab5358cec0dbd2a80b8692b4bf7f4dad1f8d844f4a7f9ab4d8bac8c", - "0x006b4cfa0700b36c4eba18ff146692a3280bbfd3ca77afff2ed4f28b77279806", - "0x00b3df44b2ede48afd7f8623cc1effc2ba735a26f84c7bab2fbefcec7811f5e8", - "0x001c2661dc49f216ea9d0a8aa92b42bd3b47d33fd14489514cb7f8bc27904e48", - "0x002dd11f2ea077b2dae65a51527862c022df36c0307acd228dcfeaaad24c348f", - "0x00cce3192f03077621ac9dfa9d3c74578df9fc4cd92279c5424a5005bd96d494", - "0x0019b5385a04d7a04bc5e959cf3c7ab40161643e708d0e7fb4ed3e041ea05b27", - "0x00c69e7eee0f2d74ab6f09f20334f09d71c70aa1debc9ea6982a4466a1b0d940", - "0x000470dac797cee8c98eff759b080f250f4741af184c23ce815aea4cfc4e8c48", - "0x0077db2fa409a80393e0e0a2c11e9d70c2e5a8638c1c9437699dec6294712973", - "0x00dbe9cc8ea14f3af035459adf3a81e8907f6825ecff3d23339995592e3ef0ab", - "0x0005cd8fa6df56ff6bea8aca5174379bc05b1be3005208151bc6ff12127acfed", - "0x00fe3a1af45ef5e3ad0e4600434f0d35e2f2497d0f2b8af16731563ca0e61964", - "0x009e0611af494263d72231e5bd024838ee9d685df45054adc5605287dd911383", - "0x00cb244e2dc1b125f1b63565440a6b12d7fadd2f224dd9398eef59dec2c519f2", - "0x00ab953633f658117abda1c94812bf746724499504dab6d9f73ca4b1e5b479ad", - "0x00a5e839bb44dff0b346d4785e34274d2efbfc96466adbb951531aa23745fdec", - "0x004081ac19c5d624029d58663f1a2d81fb43559ee9f4a0ada6939ee3cbcb59d0", - "0x00fc77c7714e75ddd629369407eacc37d4f06ebb6408e1a674c2e6f7458486d4", - "0x00200f4567c708d8bf6305e1596756bf740c1565b6685bed4acbec81c21e334d", - "0x005190221e0ed1fadb52805279274d6070b4e66e8f99d6d677c5ac7698c5585d", - "0x00c060759e742ac60dee8624e7bef11d95c25a75752ba54a9756cd8a3ad29b49", - "0x0088bfdbc2d149a96860d92213b3efffe302b8047b685f2f070f92ffd11f126b", - "0x00a9709e3d7c990f3e9df6aa1158b267befce727676a06470440a3d439493fa5", - "0x00481b00e3ea9fed099f355ff7d93f845461ff60187d1a93048e185fb3fa17b0", - "0x00b0ad26295afe5052a8a146fcdd7256616c8502f52c581d39939284c10b88e7", - "0x00f37729095752021c4c756ec5f82a1665dccac4838106225af649aba0719466", - "0x00896364974c0f4ab9ddf0ff8efc0ea0291196a724c38c9f0bfaa824669e735d", - "0x00ca06d90a05cfa04f1f12c01b554b77ed4a1803ef900d1739e5b7e0fcc4298f", - "0x005cf219fa11cdaaeecc9111a3c6d5d9f6b6ac48d73cf2ca8459f0001a7252aa", - "0x00a0dcacf4d8909895fa74ac2fb19dac071f3eebaa87a9b288569545d3d4a459", - "0x00560885c50c9b3330f2883185fb9fb889d8274b7aad7c09287602cb34b57736", - "0x0014091ac9016c73f76c16da9ee2d7c0fcb1923dff44069f3e0c48516a489dff", - "0x0011f6cc01f0c634990c827ed8ce622106bca44d800dfceab72eaca7b97aaf26", - "0x00062a8bdd4c181da3c0d8db39fd5e3fb4a2c73502e74d1582545241cee24f6d", - "0x0002dcdf3ef72c76dc4f2db72b71f0c38092e7336e4819ab3071674f1e213948", - "0x00d300b5e4bc03e1786182b5e2acb06b9bcecf220dcfedf8282cb66daa14b336", - "0x0098bd593aba34edd8c5ab0196ef9decf21b554fdefd3d65e20e0bd10615f893", - "0x00bdae3b00f52e096681762b639eadc26f8d5ae0152e435103664816630998ab", - "0x000d4377eb4b67c45637153ce4e9d91ed9cfb974ecc78b839f6accdacb71dd92", - "0x0074b62778d941a2539ff5f3c5612df968c04a5edc39722fa9c58fc6d79531b9", - "0x00d4ebaa8947bf046bf3d9c56661d4974fcd2c59db6b00534c338a65567759eb", - "0x00a53e0d5d5a57bc2b20f0a6212d3dee63816e0ac3adbfd7c3c688a6477d306f", - "0x003dd28b3becf359f1038832484168f47ccfb88daf62379251f125c14c75000d", - "0x00049973f1c05f070fe62138443073bbe3f28dbe2e0389ba7350220dbf127c8e", - "0x00450aa2c34fbfcbfa2ff9c037426f06c3fb1686ee6f4f12f5b4f5afc073272c", - "0x004f8dc9c25c46adf54e838982fcc9ab2396a13a8810d4cf32cde4168ca64f56", - "0x006e8e03f85bc18191b58538adccb21ad65246f59e591f97f48733f7d6bea23b", - "0x006cd3fb83405999e677cf5d7487887acc7b1cc496aa44e297166bc89ce65024", - "0x00960212536689cdbba2bb302a06be296fafa80c8188d0f63e081c7c8024e9c5", - "0x00544a83d08c93b1389d7725528861b5026c2c3e85cbd85ecb68f3082908a73e", - "0x000e7a9088d83afd167463f0837390214f4000db121bae34a90bca1f159b7e8a", - "0x00f98fc88ea73c8f6942d155ef39829684cb33dc0a9b408309fc4c1bfe22b894", - "0x008e676979c9c2c35c2e53e771cd34706c337f220952e07aec75be0d51145027", - "0x00f3f80db41e4d5b34a48bcfbcc7f82f3b878d81da4ee41d739eca84037b9e2f", - "0x0054af458a4daff7aaa295af26733ea8d49749b759bccef54de69638fc93799a", - "0x009d699fadc87947ea6d2c12445c1a5265ff01ad0c91582fa4bfac62d95cd3ad", - "0x00a2a16b2d92288b9f954d012ae4db21e50d538a94c38558cba0899d7e73e2ad", - "0x0067b4a5355b3b0087041a43f2ab03ee7745df904fef5ea244d039c903ceb091", - "0x00d7a48abc04a190ba3912271166e8dc93fc86be702a6411d7d66d6ecb9b293e", - "0x00d38a3a570b4d0e3bd2a304c34898351936db4e8e9278f331247f77c736b210", - "0x00872ddb3e904029c680fb188e5475e855fece2fedd07f2a4ae1bad46ede51d3", - "0x009075efaeaa2b761ac8520a05f8d633d5018f63fd4b27bb140fda33483b33a2", - "0x0074283d7872f1ea5f1b97b8f9921faea86c1cdbd66164eb39dffc6bede8558d", - "0x00c56fc456899d3e6ce3f1affbb9b7b070b7606a4378c1878555c38dda18ccd8", - "0x0077628608d0615b89905aecfc878a2e56ece2359ef12a196f200d094862a2b9", - "0x0028bf28f847b0f28ea3bcf441390d6688d6f388d6c14d056bf810c0a2e36012", - "0x0094b752463346e22191e752f55e58adca12af840b7491b8630e12e5bd53d87d", - "0x001f60ab6e2bfdac64e66e9d67553501cf841d8ae37fe2aa8f469ee7680760c7", - "0x00dfb73cb441dab864f6ca5fdbf5cc6278ba1905b663970340175eeefcbf90bb", - "0x005c57d2a80127b9902f9799f172fe384852ba94a84e8454b823bea37b6c6bc6", - "0x008350a4f1a5bbca102bafd6aa0fdb0d547cefef0f251f0fac0bfdbf45f6f535", - "0x007e1655610eca51be0a6518710cd90ff44cdd78a60ad37bca7a6a99e784c81b", - "0x00c896fd7f29c3be28f83c987ed24a96883034b4e2c86afca477b70ce3bb48a5", - "0x00ac938106af7be51e768d9f6c0b31b2e8a5aae4f948fcb965e8b512b1b115c1", - "0x00821ca77be45ecab881a47a312782959c9910da5c92ec3b465363bb9318eaea", - "0x000379a5292696b0c00395f7a88f399d57d1e82553fbf2b00edbbdfc4b1cd670", - "0x006a4a43463fb2797c2a64e82f5ba9cd0aada8500947b370a2b6c1509eeb96ef", - "0x002320aebd6d209852a8b20bc96027da97ffe47230146f331c3b2fe3ef5fd166", - "0x00084900fa32b26e930cf45f312d3c951b715d8c0d92b6d7b15ddc6cd2dda6f6", - "0x00094fe8e88d007793fbbd41812b45ef1bb92bce16f1759c030f0f30e5a78b35", - "0x001c4ae4a057fce62c55a015018840fbce0155f39dcd90f1c85bf0d3cd478320", - "0x000df43e5f53ebcf4dd664c94eb5cd93afb3abe811d9dc9da7b1679ece9bcbbe", - "0x00c373b8a8e96f6c15f165aa1f44677c65ffb3cf2586d235017d2ec7202a83af", - "0x005ac0d0316e9e5b58c9cda198618bf934350ca446e1d89b9678d8febfa7097f", - "0x00db546a5ffc90afe616014af94fba468e0bf9294a9fdc9cc018fce0bd187f79", - "0x006f0f795c70daa026780016ab81ae08f980dcbb16f5b66a48bdc8c1d8ed78ac", - "0x0053112e3ef6b8bff7d3c974890bd8f21f73fcd29104743047857d1b28cd5272", - "0x0012dfe8535397ca222b82fd8d1f81049b6b329fc8e8c04b9df4b6b7a31d8d5a", - "0x004c579a0cabef2ba7b850c224d97eafe93ed023c801ce34d404542dc699ef11", - "0x006438d149b3d5c954b5c2c6bd432ba51f72db66407335f43b20487cbcc1526f", - "0x00e710daf787f00e5b597f9bdc0d9a4386ef718fd709986b1a8d0b28a5eb81b4", - "0x00729aa5d89c00f22753a7b1e4a2cd1266de1d310b8f7d3bad6082bd857b7bd5", - "0x00403c0b7e953a13c5256b9462c07ea69472714235189cd7734e0d538b8db887", - "0x00fd4ef4be186ba095017acc419a1a8d7ebcc5d3973c4cc77cc164beaba73754", - "0x0099e12b2609e52f328f354774bd596258bdb35f33480df2474ea08696b87f50", - "0x00b82de1aa129698cca68f2628bab1079b35b17e437002ca53ed3255e1d9da34", - "0x0065c3db031004b4a6e4990921825f56f6f422d1286d4979c7f9d26c6358e712", - "0x00b9d89ee4ec898236d76f64d2dfc13960d34c857f9f14d1bcde5a6b3e34b7b3", - "0x00e6fb2d7923e923471898b2a6abd8e68b1e633fb5d8f2a97fe606e6da15543d", - "0x006bbfa2f0f0daef13ab7e09bb0ef99b279a6b7ebbbc12ba5a9f47b9106de112", - "0x006595e5c105f34c8c4c4d4e67d31ea16155682a65c1ba7f79cf27212b8d361c", - "0x00d1a2660dde4ab6a0ad877f0df31e2ff0cd0dc5323c01821f599d642b951be0", - "0x0081d8bcbe038387d02c809fadc3bce26132a1ad7a47e330ffe839ea1c89b3e5", - "0x00576b8bd38a2dcb3ec1b8ad9e096c202ee4fb55aebffc89a03d2d47f26add5e", - "0x001cba28aaf197f41e1dc41a81d0c88fee35fffb6d042d4487154caa422a6d8c", - "0x006b81e2330ab8f4d1ce4db000b983bfce4791b7abf2efe5595b55360dca7969", - "0x00b4401865c0c3946f1d81289ab27a6033fcbe235401c37f22bd02c7c2e24428", - "0x0006127b874f1cecb3957e777b4ca2fe721a97d2fdad5a2af4f68413ba979959", - "0x00bb7c0a9934bd781f9f1c681acc25f427f07bd2e78aad85a501d3b606984495", - "0x005d76103ead6a757f8fabb9c72020d6bb90ec103d3e6ea2f8692046cdcbb45d", - "0x0019709bd085b1f93613b32fdca2c6dedd0730a646912fc2f49339ad308144f0", - "0x006eeca96beb05e0f9f698616df386f9712d15f0cf1c1c5cfd6afc5225c66948", - "0x001eb5e07beca7bd38bf6c4b02e7997ecd13980eaadaa86d6ef58c2d3918c62d", - "0x00fe00922708a2aad3a04daa28a593b6bf6acdcd823d4625a931c0a6485a5aec", - "0x009f237894bb526fce60e5c637901a1d3e08d385a075700e6b022717c8f447a7", - "0x001cc87573a2403b57c33c7183741d6d36c15842cdda37d23778d145d14da4de", - "0x00a9adcd8429ef9b8f3d3ae132171c592dc0802fad274195e50ddb73824694c6", - "0x0047dc2ffb61192b0c493947c88b1ad1ad7dc0ffdc3e0c04cbafaf769c536220", - "0x00c059a88961db19f636a82854f64d1ded34fecd9c585ebf9d4aca2394379e28", - "0x009351d93deb3b3ee7a35aa01333ea9ca7d61c992964c07401b25647bb37ea37", - "0x00db6b15ffa6ec93d39147b7a9af6aa98bcadc690909f308f2503a780811cf9a", - "0x00fd6c330d8dfd651c813ca035f477797596fb899bb11a768f1b1a52ea85755d", - "0x00c7774db0f4e18244137cb81719fc2eab000d9d153103ed8dd8f32c4edf1c13", - "0x00afc4f9d1ff14d489dd68521e0ded5455d70830991dd6e2708a58356ca12e7d", - "0x00929192a946977e99104ee11d804b4a08e3d3da6485657ca0627e4997379710", - "0x006f0745aadf72ab233cfecfd29b3597360c903c1e84df03e0520ceee23b4a57", - "0x0046f5e6db10eb3714b755db5c5e7c2b3ac2668774fdc08c735441279ad42d3f", - "0x00ebd085fbfc64309b050d27d23aa593384f8675192df988f0622d2326d4b5fa", - "0x0051d30985d7420fef891dcf954577f43f72442dd14958007069161715fb81b4", - "0x00412c89c8f0decc36298b1fc5ba23469ac29cbc49c69daaead41bd19dc09582", - "0x00f8fce0cbef040beb905b34ae2c996a0ef885682bbca113f8285d2db57577b8", - "0x006c0ceaba27ceda641a17b1427740c990e1e437c77d5e23266872cf00a36c2e", - "0x00893b6de2c88c4a7683f0ff07674b3df94027059859af2e7dc961c5dc5ef422", - "0x0035e01687f7b8d267ddbd5d06d920c1dd38bd2df81ea60b19c5462473a330ce", - "0x00859df0bc08c635e533612e5076771e2828591753e04d3334e3e0d05433f144", - "0x00cd9272cff295baaf871105b6ec5122314d3ac7c2ee1b2f9d0e7879318634a6", - "0x002c87cda016444dbc917e11d0d8335f61ede22f4fe50626bb5f6ef828730dac", - "0x008224e5fe0d50a304acd9ee9c68e192b08f6467a546e34706768c971ad66147", - "0x003f1a06b9f95b85a086f203180d62e04cf14a37d78619467625a2d1f1633f78", - "0x005cc6b58453d764cd710d8ab736495432f18e38d08c003727dd87bae7b42c93", - "0x004454633281b2a338fa9c95968a5b275f6e1e5aafad780934864602f1cd2087", - "0x00e5c8023938a790e06abc1b8106aa928f46c2250bbbd4775d1a54cce7baaacd", - "0x001f916f9091b389c433ffdc4213efaa669981e189ebb69d3c284978e61bc15b", - "0x00e98e83d99d75d0fea9fefc315b8948d0f9a7acf672da99de21c3404da94718", - "0x00feceb7c5e1072097e2a845688360588446cbe818d5839cef07ad1e2993bae6", - "0x0005cb012c5aad05df939c952d4aeccf8fe41c374f89cceeec9f052b9e4d36ae", - "0x00c5120938da314252f6bcecd19c59c6dba4ec7b5c8e520d843d4a2de4f1b600", - "0x008a994849701000b98dd8fcf80ce7b201a879c16669149dff6402bc40e5a7c0", - "0x00c97d832d3751bc73fc6fede1bd7cfa98dd2c4bbb68a6c8383839300e682450", - "0x00b28f05bbfec9df9bab03e383b61e03be7eab8296ea15b4dc9ae7018b05f410", - "0x0045d0948a36255ead2a4e3f67a7998d1f43ee582cf8e2fe33956ecfbd94a3f3", - "0x00803739861d21c9fed48738f35ef388d3f824a867c3adcc13867a00f7aaa841", - "0x00cbf27734572c73b5a951d1d670c4424d6a334eb0df45d45eb6e4e32bbcc1bb", - "0x006626f2d2e74ed28ce5e8e928a6cad27acc9af56f54bcc011c5e82c797f635b", - "0x00ed10c007e316321f34cfb631ff8260203cae956ae96e5af80c6422a3898917", - "0x0063d2fdb6e2c228381da5d260f4b417408d813df544d3a6e8bb00801d051bc8", - "0x00fa593e59765b7a27b7c31f5328abbc901fcd4984bb548637760c7d9626a442", - "0x00b97fa0058eeb124eef202db8a976dfb69ed659cacb39f23bf56f948fd7c796", - "0x00f94c2010645d948185e5c3a2ac60462840e4a871a92af1f64df8886a580286", - "0x00cac18445eceba6c8725cd0de1263d5c4173e5d0cf7aab73d738b6a31a45a85", - "0x000a2113239fe3d27b3120542813e1bebd70cdfcfaa953296fa32af0d0737178", - "0x009f960132dc779a78675640b618f3752d1790204bfaf8159cff245718f7241a", - "0x00e67a98c71548b543e46295c54f2231970d238c26b24b9daed786aba53a2545", - "0x00fb5df950e6965168f0a8f3f66864b1b620d6a96fbae80716c76f59c3a281df", - "0x00ed3914ebc916dcf26e790381aed9a941d5c69b262037cd75736e96362e2094", - "0x0087f910e892ab621049823d5631488bb2258fa10af61e8ca5b7dee6ff5422dd", - "0x0039d386b2a5d26debe8f0fd33593877c4d511c07f036693aa8a7bffd79479bb", - "0x00bf53f9ef776b2dad1e14cf570da2b3c6ec5188abab81f5b629d7a6331c43b1", - "0x007ec3f9527a354470924841e137b1df52cf2eba5ccf5b9f5d9b886749bff249", - "0x0053071b4a36a52a417530d34c3591139d44ce602dd2c8eaf988a95746395db3", - "0x000587592f2468934db51946107a54558d95367c0576c1ce536744fba4492d71", - "0x0065af317f0fd32d37e628f8e18c9174fbb669203ff313a65166b7431668cb6c", - "0x0044e779e4e05417f85967929a69a34f86ec199d2ce31c4848271b9daedce37d", - "0x009d0d7d8695c61575a96975e8ad5bd95322eddfde0a6af9e1a7df016fc070cf", - "0x00c187c9f42d0b9e52ec528b8010a89dad2195422406a6e3985fe3d93fc67b23", - "0x003435fdf41c90a3026d126b5c7d27a4613961d4e9140781c2d9da7cb93c5177", - "0x00a4d559a67cfafa5586f4dd41a127feb8922538dc5fa6f674df6d63b2c51ecc", - "0x00a9226ab679d1fa7fddad4a15866812cb88b3a4c4b36c2026390fea5b69b389", - "0x006c9b8b90fa6126ec0aace713ba6b250b0667032cfddfca72b473d92a5007cd", - "0x00a0af11b05e1aa5560947d6c7addf8ca31018d34f2dc6d32b3d0ab074e63738", - "0x00db831fc2d3815776aaba48befcd028892967d4699164bd5074f8d157853d53", - "0x00cdbbff416de0f6e41582566437308ba8c076848019d74ad8b49627c51a4f73", - "0x008179ea3b56e7a97e80c54948dca87bfc121970837357339727f1620c444fee", - "0x00569197e1d57f2e55dc558445e60eb39874afa6398f62d7e5b13c7122f0920e", - "0x0033b1475d787c2328f268fa21ae15aa7f23c91f1807c4252b4af906b0a5017d", - "0x00ba222d8faab6bab3fe7924f542c42703a4532ec2b12db64941d6da94042baf", - "0x00440007981d35f9807cec4ab3c1fccb1a7663b4b519319a8ff702168148cedd", - "0x004b6a9db0814e8745b843820b311ef303424f7d59b36e8196b431eb4ad1b5e2", - "0x009974c2cf09239241ef41cc58a9876f8e139cb9901a4fd601661e61738effe7", - "0x00497d94e7ee3502f82e0372b6dcb2c7d6a6baae2806e8f33e1102b8b09b9a42", - "0x00caf15f143864b6d30bc45cf25e31b4e44d059e9ee5d3b680a0cefd653efe0d", - "0x00434f6eb2de9d610084a97a35db3c96eb243fd1c32f05c2838366978de98723", - "0x00c295e4bbdc97aa43b76749cc47e59454add92f808ffb8da24578bcfe3172d6", - "0x006f9d8f49484fbfce068b40e5a8a861c2f337bda1d4a9f2798b7b6930df2812", - "0x005bd671744dfe868cd0d6cb537aa55aa06384c9c6a996cb4c9ed464c7dd57e3", - "0x001c3d99745d675ba6ecd235d74dbfd695e266a4d81305f4b5657ad324874b27", - "0x00a2f2e6e5c4841bc4b10bdca84461f16fc075f1571b5755f05630cc92fa14e2", - "0x006b1592c2792f603b60674378f9497d74c510028b91e488de73febe4861ab07", - "0x00bd696fd25342d9857e95ed3ec8f9e98d115f47e6bb66036785e8883939987d", - "0x0015c4a748cadd901e0c9b8349b807c87b6831e006005fc9b413c8c9bd698fee", - "0x00e107f7e3ff4ecbc45df43d5d1cec06baa93f01d4b4615a9453414084f403a9", - "0x00efb6503304bcb43f887f3f0486c57dc0ff4e4e669e32687e889f3e5d46b9af", - "0x007a9dbf1a582cf78d81a3a40e932e2bc00ea172b755d780920034f5ea6e1b60", - "0x00e7eecf2c063dde782cd63eda3ba4b42f9827e68711d317e414949fe9cb0710", - "0x0008935dcb8e91efc2b9831d4bac1dc4e56b98a8159a40cd232c178d5fc5cfde", - "0x00cf1838d052786e8dfef6a7883190317f4a73357652d5d665202cca1429deb2", - "0x0010c3ddf277ebd93bb2d5fee0bc7d0edb843359e64c5dfe82c3b0d48efa873a", - "0x00c824a9533b66ab045697eedd253fa18cb1e95d850249d3f09c2a938dcae0d4", - "0x007156d6b02b018cba8760a0af3756a3b94144076ce812e11ea9b00d050c0efa", - "0x00b4d9bf8ede6d11f69b972edbf54e36e94707f49fdbb17300caff5b7a1d070a", - "0x00013d8a25340fedd8e15e8d25ccb630aedb822013524edb278818c9cfcaa81b", - "0x00394cd7963cd247252695b972c18ce9682a027a22a351d06181645c929e82d6", - "0x00de672f48d3d8eb72d64a03e3672b70f9239c913e3fe02eb0c35f722406e1ac", - "0x004508757a2c12e60f996b6848ca330fb8cf405e12865aab691bf974752ff42f", - "0x006d7f4d16aa07e6c931e737cc01a9415c9b02373acfca42f3dae9526f71fae2", - "0x004e7f67cc8442552e1c0e09d9f758a3e5a869e284fd3f8bbaec144c7e9a3bac", - "0x00afb991b35b029c85b0ce6acf7ea08c11e33a5e7fb6d92fcba5217e5ffd1a62", - "0x003f485ce8bf7b480c4c4734ead950995025911a1d48fbcbee5095fbccaecc0e", - "0x000d579c7b1e0ec1f4730f510b9c72f956117d17c8a3e6e5446feaf5b9d4a50f", - "0x004c890392d4210e246aa06c0053b88d0bd1a53f5e4f64bd3bab3f5d9ae99c82", - "0x00625cf279886246d867cd940c2b3bcc756668c95c8ed06025055e7d38c675a6", - "0x00b1d6b739b9d1b27a244adf9bb95e7de44f940729d73bc50928bbf4e7a075ad", - "0x0056dbd27a9debfc94f76a80513b02c16280ff7015f6231530bd24d860650416", - "0x00d25dac66eaa0d1bec2a3e5a4a477a4d5478d15c628f0c1ddbcbc1631bcc567", - "0x0063e82a55d1561156305314214f1ad41985feb85435f9a31dfdc7503446a8d8", - "0x005e83f1c176cc85d3196e495e6d2418374c83b2e945e632ac5ebcb51e5ba22b", - "0x00b82bd386fdeed319d28d5c0c7b979759b86cd6112475169a5dbd8c447743ae", - "0x0043f95a57b0747d61d6528638f74c23a9292bf01c68fa7c9a2ed646300605fd", - "0x00b6a28c85cfceaa33b6ff1e7b633844f464ea90fe4803ab8d6c70cf789ddd27", - "0x0061eba3447dccb6af71f4d2ee1a0a2b1c536e4e9719b034783e668ee4d22c93", - "0x00da3da7305e90e2470ad554f72c3fa39f0ab2ff4a027da47d6fa339eb54d458", - "0x009aa07e92693637da6b27b1a59b7269ddc3f6fde9c2f7f0b0757709ad5f10d9", - "0x0095e4e9ebc98e0fd1a463945051c4fad05fe8e7a40de7ba0955481c23246e5f", - "0x00786591f30ea8cca4d2e6cf5e8e167280fc88b492ba3d66a4e820c4b58ddf31", - "0x00d293eced477f1b512b571a896748fa28fd7b959de24a27d18931cdec7f95ca", - "0x00488fb8bebf5aa9a9bb8fb15d198700f164dc312c78b13d7a549bd7302093d7", - "0x00ece734a1714105e1efca2a23fa52b530221dfbc77068d6102ff528a2a5bcc0", - "0x0004dfd8541ee0983ee999f8fb3319729345ae2b3874e3dba25d9e1cb2a86136", - "0x0045f7705a9d879316b815a2168c2aa064bac071079da801743be070c219399d", - "0x00080b5740d36fe624daa440e93a2726b3c06d73f7fff4ee665a2fa7348b43d5", - "0x00d7ca72828209ef2e035b944b77626bf623f4d5a47efac129ddd51080dbfc3e", - "0x00a8532039dd04a051582395ccce3f4b0ca8aa0bd97a14ad5a596795bc55bab7", - "0x00d3b7dc8a994af1eb3b4cf640a038752d50e6b13ce2ab32ae9fa3c4094bda53", - "0x006cc4a20d6fec9047e3216c530863d6937f07a772545c8a5b0a6d7c440b1ea8", - "0x001ce20b88ba8332c8dd90f2b68f22cc0485ec1dedea804e2cacbc8678ad069c", - "0x0026104e7b5f85abd4de1a71197f15ad38742bd9e760914368c4b18670379c36", - "0x00b01e7c7738117af7cebe580cce6d7a7e612f682d56ec276cb1996eb8900d37", - "0x00f4485c9ef6dda339253649b1f9d67e09508c3bf3da93953a5fca7e6e3978bc", - "0x00793bcbe79176a6c421979524aa30b789772322ba10fae14225b629fe602a56", - "0x00ff6805402adc003952288a2353935c668264ab168c10ab655a1d77ce168d1d", - "0x0068cec87c83f4ba2cbbb2ec4dc16984e6d86261e02900d88e17f89b8a8eed7e", - "0x001d932cb122169859d58ec76cea9a7e93322ae34e59fdf0d69fe03731a23b1b", - "0x00c31104b882eabdb66a593989ba644f242cf5bd93bc558be98baf02f595946d", - "0x0073547358ef777cb56870a820a78f20697c40498b51d11e0dc34d6711f4e24e", - "0x000851cac7427e53b2f70000c0a2c7c96d31f80566f35986a22730f35a9fcf91", - "0x0035d7defd9d73f7a6bd058f93938e352e372f580d7098058b2d8751043f9b16", - "0x006a5adf37eeb382765b95f83ae4e95c9df07d89fb47481b299664aa254babc6", - "0x003980f4a613aa9dde7568b58f4a86c9c832cecf63d2800e6ce4466fa47a95c9", - "0x0010b01decd2829c49145c579cc8e6b8b1066ab168df17c7f2ae4b218c396225", - "0x007cf6b636072af9ac70356d3d42b567e39d1c0c725c1dea9a8dd2000185a4da", - "0x004dd769682eb9d81c506a8305de20847da1a6b6f1b0b62c9003ad4cafaa6a9e", - "0x007194cfe26ae27ce1aef7afe598369b3d08cddda1175f059174c81f391a9885", - "0x00322d54b321e759ff7d83d1e28aadb279abe9d4d1baeaa8de5ccdf42c2e0d16", - "0x00f3f115f2b7025c38ea32578820435340af0036dc7360d1a3cfa69979090872", - "0x001f7bee2bf91a6d0ea6a10496489f6aca2a383905803c545c7ff40f0f711142", - "0x0011a91dba977a45fbdaf8adfff1eb57b66b8f87e7db1de8b8d4c4eb9ccebe8f", - "0x001e57696e18d9a688cf0002eccdc684c15cad451e679215e8a65f862e3320e1", - "0x006421b1cb7bd2b13311a859c59da97fbc3d5d5bc25aefd900ad4e16b8b3b0cf", - "0x0026b17fc8bc48c88e047c8b528edb21835a18af2e0d874d381303aa904eff0f", - "0x00c1961652e30e94d73fda8d799e423d8bc764f6d97dd8ede1a19c6c5dc70464", - "0x004a6e001397659e7a0bb279be9b7903f532e7b44590f00b6848754bae009d42", - "0x008a9dc9489f4523e93daa72821dd65ffaaec5717b18598c93ec6ac079be3069", - "0x00da341e23397c124f0d53ac401cbcdac3c44747c1bac1096c6d98c0da183d5d", - "0x006c58a3f37c5df707e8d94c2972beb52f15e47355539b9addc0174d6c6be209", - "0x00cb187f0e15164cefa73998eb47927a9916aa3260c64b60a3d2d6f652904e21", - "0x00ba08f432383d58568473298f2de33e1f8ff2166a2c0ec30fa2f77c55d4a045", - "0x003462a547dae02a2afc2acabbc6bdd6d564c04cd3adc5ecfcee0851646d7e60", - "0x0004498ebc76965512143e2f787b1616d4f25a3dc0faff3e8683c587ee70d949", - "0x0021f3ce4afb60658b25454056f963f050534837c6ba9e4a7644623ca7f54783", - "0x006d6e9c5e2ea31cafffb24c503396b596cee93175fafdc93727e4e3e6c700f1", - "0x00ef307836469011447a855cb184a328141b2263b4cdc9b1e7414f7c419b801b", - "0x00390b4f404ecfff6e61d5ea37e9d75f30d3dfc700b2555495d1f31ac8341c8e", - "0x00b887045c4b1a3daaa05c483381500a4d462982b2ea46b255886f513fa8ccd1", - "0x005d616f0e3db7ee09628b2b5f553b7af1ed979b2c627b15feb2e2a3655c390d", - "0x008cb16a58c81f3ac9242693bea36dab1c50b074ef01ac832250d6a4302071a3", - "0x00e12fa70a8ecafaef84b55ba80724b6cacea2737fbe24cf88abddbb787ac08c", - "0x0009afb6dfdb9ffd01daafafb6286cfe2bac31f92985a50964163072902afef1", - "0x00a8bd1773264a1d771aaa2af0b6acd9123bae285aa5514f984b16723d012868", - "0x001416245c921a142996e804c835df3f152603640503b91e1695efbdaba4dc2b", - "0x00c918d3e883e038e1622256e0b92f6e2b483dc6d18c306efad62b49e82ae128", - "0x00f3b35c543b95d32e7bba0a9d40d8f2707e7761e25122b1641b028920750774", - "0x00b76f6e2559d53433fd0f7a199bf872490e516ee6cad92a6b5ba4cd3ae186c1", - "0x0089ba99c77ef9780b4d155011a2f4be68102064f5de3c9b7e2e301e40526dc0", - "0x00be2d0597949f9d9c9504d62cf42800915108f7874bdb80227ba6eac6ef21f9", - "0x004a2801a7cde7cc3f2832a3679272e0a3e5d8392b8e2ee39ea2af9e44c329ce", - "0x003a6669029fb7fdb889d5f2a61bed8afde5b92658cfb1b9790740b7709dc500", - "0x00744d53993651b565cf3ac0be186f072b57d58e01790106af3ea9adae1dd9fb", - "0x0072c624b81dd98e2341f99652ced6e5534b0a3f0c0ae34eb18f1eaedc384a5e", - "0x00a9ade86c9d45af0b9d462a5b73cc0fcf8d23948da0d8a879e5d319e0c466f5", - "0x0080b54ef2ded4dedbfd66ef0ba785c940d875fcfc8046d6376bf027f65b696b", - "0x00ce8285bff4f9bd5f1fd8871ee0cb94afa7495c6d23111b7269db4028a6c80c", - "0x004033d9de20b0a2adbf35cfc89a91148b1a3c0cfc810ae87e978f7ab158bdfa", - "0x00fb37db0763807dc792922432f401e2aa6f0b43b3b0d99f0fc505c41deacb9c", - "0x009042c835698764223756a75e4e754d7872882ec1b6487892dd40fe7e947581", - "0x0019469e129651a23956b741323800a8003ad1f154c82057536f1479fcbc8eb9", - "0x0085a7dd1da394824ebcd8c349512ab79109e2d69e120aca982a54e6253efad6", - "0x001654187a7ddf702ed68ff0314da3400e77c69f205d62f8d4c4829f9c0e4f7d", - "0x00b032c8a30c02ecfaff36a090c65c5ed0204d83a2508ec5b930ebf9ec3c2a94", - "0x002537946c16ad9446d343d31d6b3a6da11b522106b62da38fae227827ca4c61", - "0x00ee302398f310892e0dfd2c30dfe79895528ec3cbf6dc19b898c2970729ffff", - "0x00acc97dd23e719129e5990eedaf3d1e21da53ebbdc0385f7632ee42c28e8ed0", - "0x00266d99956b450493165e43a9bac9c75e2fecdfe698cde7198f9825a0307abb", - "0x00c0891aeb4aca038b55ead25ed2b2a6fd08d2e03617c0ba507869b5ffab3ec9", - "0x00661e6ba65aa316a460e18997db703d4f419e24fccb80e45c8ec5778d1068a8", - "0x00a9c9a8c5cf6fb7ad0407acbce39711c602305c9acd0ab571a4ae022aa1fbdc", - "0x006ca97c7f6f9b6e5e6ca99572bdb5ef6ea1ef1674ed72b0b65e860db70534c9", - "0x00f646a9d6393cb8a6d739fee207bdcee1e4ef5885e293e91f8837f2f9dfbce6", - "0x00409f54eaa65d9fde410ed788caf4328dc8c11c7da7fea0bc65e02543e32d09", - "0x0007f5c48dcd6dd9badabd9be9b0ae377d1235818ca2e7dd23869a4bc1d05a8d", - "0x0047e7238f9a0789b896bd145b1cd27d89615ff4e02f24b69c4df920970fdeb7", - "0x00b1870d17a845e1d321dbf9df2782a031ba2c1694ac17048ea39e3a279b32e4", - "0x0097ed075b27eda5a524bb0c33d1c16000aa42c945ace6a6b3f6cba29bd55486", - "0x0047e4a3c59ef42a2439c4054e2092f634d1e4be71edda6016a9e36c66b75818", - "0x00b6cba9846a1c443e1384be55cb8289a37de3e01ef6ea93338e615213ae71a5", - "0x0055c2809553071e3328238505be68c0f6b92943120e337930599823f072cbbf", - "0x00ea39ea4611fe1dfc8233d0c9c849ab55488df89dff6de6dfca46888ca192b8", - "0x00f0bdc36eb0e9dad5ff34bcc9f0b41bc48d07509698463a874bef497c861016", - "0x00217d4617657a01b0e5718bef2c24a9046f291f5472b19b43ee97852898e8d6", - "0x0032dac077fc4d8b956ce1317d9469ed367482415297e1e90b685b1fc43ff436", - "0x00b8711e7a071cb7b56a056ab9fd6177c38e671449c65cc4e6a9a8c3f23d038b", - "0x00561fff112ca35dc86d3324a8c34e951a9ed2d9805100c8c87d35241702681f", - "0x001672d552d381810c18254aa00e15ff776c5624bab1856437824b1c022392ce", - "0x00f60c036bd0d0f20d2c717cd667cd36f290048676938ca2eee79fa9acc28119", - "0x0080ed0fb199b0258cdfe5ce1bba69aeef285f775b497a30134f26bf3b218911", - "0x00484720db954a7287a71b3aafb3c309a20175e377529c70f8fe949492339e05", - "0x0028cf2c06b89102b18a48d58cf628e98487ebc4325fbeb78d9c0b39f7eb6236", - "0x00db83e1058527ef71062910be25fbe1244a6761d60cc2710ebfebb2531658c9", - "0x00cd66e2b6d3cc96966047f2a6d210628de71d4579116df407aa8713c5816f58", - "0x007210d79dd986fc766d83f84b26d47889394345fa0bdba93f4b1fc927924375", - "0x0078fbe505229973b34f50bc7d800eb5e54f38584ebf346075b4b91c6575eec3", - "0x00cfa6bda52b6b9b5260308cc6ef7673e7a816deb11240175bb24f3f44121255", - "0x0077d6ee969ace06ff026c4232e04b9a7d91ff661b4aa595984f78fc2fc647be", - "0x005c9a73b0dc3b552016b09f935c13851dcf923b38b0f9b565185e1322ee1049", - "0x007005acd61cc31a25bcb1c86f7fd494c96b2c6edb1bcff9c963e91c4f937c9a", - "0x0093f62703055f2acfb1ce64b01d997072503f2b6739225cf46f1b0b2fff76fc", - "0x004f95a24b9ec9b5debdeda93b837ec389825cc41b2b0d4ad99cbb9b34e1399a", - "0x008bbc99bb2931303f81974758301d3667bca9c61b7cff15b4e98d6c51a2d40b", - "0x0012d93de24b10defac6d8ab6cc14cf17099a58d55c74519efcd6db0cda04c2d", - "0x0012d2045aa8610ead37eb583bd8883b55ec25e97e07de162caa530676b24c4d", - "0x008948c810a65d05b43102985960cbabc1351bcafc9c57b005300e197e4b89ec", - "0x0065751b37243be79651133c8a9dafc3a434999bb33f82c743ca826ad40b7e24", - "0x006de73468028ec48414e25e31bb6154c4c9d71d7c40396b9a9dcceee76907e0", - "0x00d5fa9707a1c546be3dd8ed53c83c701e5ac9f5ae5efac8e6bbd98fb0d336eb", - "0x00a8edcda29f05d7fe0e83ec541e7d5e0650162decb4cb19623ff358f5be62f7", - "0x00a3d83bb966e0f8a72a78d4758432c19c77054980a8fc622cc826c885a5c219", - "0x00c5c2500b03d552f2ec0cf6b96247c38d3f96042376752832d93b895e3656d4", - "0x008a2d8206f35775723a2b8b7c0d7c6d5ddf0562d9e360db11857dc9e92b9fd8", - "0x008c3a1409f27172db6c7fc7adc05a6a3b693de2824648b36533e03543ab8181", - "0x009eaeafcea45fe3ea3919d8ae2f55e057779d4ca17f65b9e86b0e8e337a4b38", - "0x00a03033165e54784b15dc62c28eaaa7f1f4e2ff511e1729717e3045cbe83013", - "0x00998960de16b36ef856cb58a5076f93fc6778993b83220acf056c9d55f9a6b7", - "0x00a496017feb079dec75831874e7f10b7cde8df653af66c19984f534383943bb", - "0x00d2ddc484cd66a011147f0b759478413ffaeb2803d5ad9e3615d5d635fe7144", - "0x00dcf5b0287874dd87c97dceda2702f398087a25e3f5f0a5e0b9ed68e8d464bf", - "0x00f210ce35ab7693a0437187f16a7928dec107197d9430942875250080cee682", - "0x0005db2d6c79fd4fbd599a298b2c936ac244d283cf3814ff42d61a77da755364", - "0x00480de62399d8f975b616c06de7e5f89334051b1e35d91d5bdebccc2e2859fc", - "0x00afc8d62a7d2b953635e396ed755c2c8a9130827f6bc416a9676b2fb452d72e", - "0x000e595ce3aeea011114b7f0458bcf35dd112f5f84b65ac8b6d87e14a126da08", - "0x000fb0493b58d3a8541b39685a930a569118a285877a389664a54800dd8d0999", - "0x0048762dd339e3d7c2b2ffa7659ff832408439df6d6a12a7d74e805a64e9e437", - "0x00d596b111641be8ce5560ccb7909fa2d1396fcc014d0a1b85a7428ff86978a1", - "0x00f12241e3d6682392e65c7277353b477bf2a1db9cfa2be44065f63822dfc4e0", - "0x00aa8231b45f9c7e2fd0210affac698932fa89f78dda34a21c7690f119d0f4b5", - "0x00dfe4f32cd8929f7edfb45424ea5123054ff8b3cf3c0e1fb40a7bb7775b3d21", - "0x0059fb6fdd15b4c49a247816956ab5ccca31a7533bf6e4962f0b32ffb48be944", - "0x0038bf7726e4aabd1a6ee826ee8249a35bc792b134e848ac350efb9ec1d14c2f", - "0x0096ea99f28904f5059cd6ff82e80a9e99923053abb9148f04aca00ceb486aa8", - "0x006556e173193ae07fb43041162ef5e009e33433ae6bd7df4b20c9d7b372e71d", - "0x0095df3415298995a4087cd4f1582205efd7754f6ef946a1b73b7ac949eeb1ed", - "0x00b7eda6d48e90c26712b625efcbf9727e5aed6d36200d9e1a5833321ce3b5f6", - "0x0033c17c709b639e33b568dd4f60c7d2c71af4d28ff90570e6e193d26b5bdfba", - "0x0060153aeed79ca04c20b4070468dbc26faf5891a5df6c915843030620b5b614", - "0x0029c3bfc42b9cfc82e2bf4d52cb47670af49bf1028cad6e6894767813b2be1a", - "0x0014b72401d4bf7b31114d0c3c26b136937b13cd5843a394dad41fa778566d0a", - "0x00b7755c9458c686061f150fd48d240c9069794ec778db6cfedf61f1519643fa", - "0x005097979a6d857e9a1581f1ba3aa21acef7a3c765d47a37b6ddcb988fb52aaf", - "0x008498158549c70232c861894475c612daa5d64db078546396c50a166954d320", - "0x00102bf3372e5c28041ec1505e0a9678596fab9967ada6156b7546bf4066285a", - "0x00daaee3ad08ecf5b38e69a70d305b7bc96efc1cb4d99289f72d738b9e23eace", - "0x0090fab262a6059137abca96794e43feddd453f2ead489117ff739957eb6bba3", - "0x006049d41185c94b4ab6e0354a86719201c1aee19546cdf8493bd1e81c004fc5", - "0x00e7dbe10471ec8ad58060f4ef0eb17b25b002aa979ac08d6d03b0c417e60f77", - "0x0021b8d731ca7a24bd1c6e58d2291450fbb6a950bca4cbd8bbb4e63cec3c8ab1", - "0x00d9c607c5882fb21b92f570dfbf4c7b9525d3da2f5124acfeda662a54d2f464", - "0x002be5b4db952607075ba6ed781d38168fc27b412bb67fd9cbc19ff5066514f0", - "0x00a05524194f092d4412455321f096267654e21df7566c782c3d712f8bcfe1ca", - "0x006f4f7d2d3de4189b3fa02cf7f0cef266620c72611de4dca2dc8e18e2d763ef", - "0x0041022c77a6aa6c2d445ec2262e26745d58a409c0046bfea0a0525b0f748895", - "0x0092199f6538b4c0195ef48dba387c35351e88a1a3c030b888e21f4cb8323f05", - "0x00293645a899f76bc8a1fbd2c1c7efe5b4a9d507918502000992efbb51011f60", - "0x0074da5b7e2829d67bc4c79cf9b1e78f00f6ddcdc858051dd7ee4cc1f925ec18", - "0x007c9f970668b6578c805799b524a36e4f9d0bd59074163982b5fe4c733217cd", - "0x004162ce1a5b24b66a7de04543a98e40cd7642f6ac7017f4e189f6be8662ecdb", - "0x00b3d99610106ec1f812fe0f5231ba4cab4d1754f217071f3ff5f7b433969e48", - "0x009d7dc08d508ec044cf2586b0a5f215684e0407db7390e28af84955a3165e18", - "0x002a54af38f59bb7ad99cccf08157311064cd26cbc31d7a6f8a2050430cf12df", - "0x00634dfc782ce17d0c583528c670886ce70a555d3be42a0bf377db313de3410b", - "0x00f4fbd9fa0608dce992ef251b3d68ed912eeebd6a6756ca654d1e3bc6a3f39a", - "0x0055796fa0685090728af59d441704f74bd85f75e507bdc000e298b2fb342933", - "0x00ddcf0b29027616546167319dbb263747f91298f743bf7280fb1ce4c6cc5747", - "0x0097e9eb907fa16d3dfb810ced857ae805b6f36bf6e24a260aad068881440ee8", - "0x002b873d99eb62fca06c2e72bd872848c45f1d8f38bd05fa7fe396bb938a2e39", - "0x007505014763582dc3009f488b11f0f5a1f1e80ce370d6c279c818dbae21372b", - "0x004c0bc970105312e78d80cb1fb4ea0dedb06430058d6917efb0c16240fbbe92", - "0x0054792388230a394b7133c8dcb644ce477dec4975dd1f6a4e247eff6c32588e", - "0x00e1a0e351c1fdc95b88e2d3edc3cd88d15d714380099bb1dfa12067a04f5602", - "0x00cc933a196908e0f083e130c07528b094037b92c74bb0fc4fd6546192740edc", - "0x00eeb5cfba3f5d63989adc24f1dcf875a6af907a541f6809e62ce1a4dbbb1a11", - "0x0008a19c7933639087771172e8638a3675e33c6630b7fd901e115f5ab2251e42", - "0x00d4bf83c694e7ca5a63fc8bf89bb261d70c19cf495cfc33114f2396650ffe17", - "0x00a6ab05639fa4a4b634ba063da57fc9a6baef246d03673e7f3cf0d9fb16de1e", - "0x00699e3781d1a49af75590e48f3d4e6a7d81ecb5a78eb9bcd1fa80d25b5dc41d", - "0x003ef6de9b5c589d7a3b4f30aea1ea08a97fb6a6404bf37ec5504c5752b0f6a4", - "0x00f3ae3a93fbe0ebdebeefd121abbc0ce765950d40261063ba6117c1110d498f", - "0x0083d2cd99fcc40a4c7a2a742691bad197d4ad53e44920038b39c3e4924005d6", - "0x00fdd09bec815874e3a26848a3cc0b29225ff87419385b8f94f0d3a44fa0e089", - "0x00f923677e08cb610950bf7cc4d27df21c7d1fa14b969cd7392924a696b75a25", - "0x00ac51d27b8a8f459fca2eaa01ae85c814af4e0e548daaf3d5fe3f4a7a2020a0", - "0x0094701cd0b4ae19ab085afb2316d8f559eb8a8d81e9d342552ada721abe2799", - "0x0066365258465f584cec3e37ab0ebf3f9216d835f26123237013d19650a7ac36", - "0x00402032be6d26ea8fa1fdfe41f5205a71dc126cbd169d7ed5ecd0b01f2bd172", - "0x0077e181ba4e01ca49c8f08b6b63bd1c49a24818dd47315253ff67a7ff5c6fe0", - "0x00592a19fc5e00c50ec5c619279614d87928a6dcfa86a304eddc736fa12b25a9", - "0x00b72403bc8ddcf7095150079be551db86914a3b982a5e67709bebe3df291a6d", - "0x0027a666071c954b6ecbb1663a9683bbac38b0f10546c52dfa69997095a9c0d6", - "0x00390d4e8e1b28e498c8e4c160ac7d21e081e8375b301543320cfe51197cc406", - "0x005b2e7bfd08886719b2e673d65936d68655a034c9c4834282873474769fc854", - "0x0032420c144255fb4edb3e0d22fd59b35340d0a7a74039e281031d3b452d9800", - "0x001d050a728c649e7aec361f259e5e5757e0eef826182722ced6c5e122442ef4", - "0x0069a2279f8cc23cf9446b70d8ec025243f4278f7c6ea20402a6f6d27fc3ab5d", - "0x00c0b611a2224fc66b9890a4307bbd5a134d0a15a0c3fba75389e1b96577cf04", - "0x0032b94f760391c50624b626ccb74c2d72ff41ef56a45417388ff9daa3bbd547", - "0x00ef16974c80019ae0b0b631433f7ee5594b7e4e65eda02b01278f63b271eae7", - "0x00cc06ffa62b8cb12e1c9f0a79eb16eada591d8b8fa70f3396f90dda8bb4f2b6", - "0x0074c8c2c1d84c1d6202d2e20a05b62de79155dacb0fab4646e83daa84fd4c69", - "0x0038157f808bf17ee0a5bc8a8acda426b38fd5ca0ab80951782932c5d0c9c7e2", - "0x009059d0280983f24981e1a95de80c3664492b455c038c9be00f50749d632f11", - "0x0096559ba577aff2696028690877693dc52f07ca721a7d7553aacafd17393ef1", - "0x00bd7c6272b42ac7205dea4d5dd2d5874eb97e15d596f08866cebc5cec7f24c6", - "0x0041b812202d55296df7d47f1520934cbe378d60f9c0bbefca21bad1fb0335f2", - "0x0046cd913acc3cd16414ee1eae07777a489b4bf15a2820fd3097baa3de5da280", - "0x00f9c2ae9f3fff3d3bfe0761a682fd51eec42c9c1c33092f43621eacc6a68400", - "0x00a5e59d03936b14146cf70552ddd33290b2a892ade5cb2fe74389eee36c303d", - "0x0047be7b5eea3b502b91236ddfc93df72a8aeed993412a761b78b99e4648fc1d", - "0x0089eed3e596fe002301915e7251ac3907a14179a2e22e5555719d2c78af3af7", - "0x00f18ad1dbcffec3ba086e8dfb19c3f054f34dd5c62665497d3222fcac9c338f", - "0x00626b0d015e7cdd4d13a97d498059a4f341cd9169e8561f02a3746c15485f81", - "0x00e87174b78e5070f64b18deef4b4bed1507dfbc95ed53370fce13c6c42f25eb", - "0x00d6b0bc1959ce15124135490d2930047268a82e34cfc2910494c9171dabe191", - "0x004e5b3147d777a3bbf235d8fbcfffda62be7d41370c3e81c2dab75496721659", - "0x0089a4050e736bfc6ee6ae6dfd2ca19af625fb68e4686823ca901a556cc74b12", - "0x00b51c9b9ae4caf000ac8510c45be95fb3a985dfeca04f66babc054f12a8be6b", - "0x00c2418704a6d6d599b4167643be571e460c33b88aa7bda5526f810dc1062062", - "0x004212f364f8d0557b912336f78742d8220e85c4e82fe9e029da475161799b20", - "0x00e414e06f2aea7ac7f9447371477182e38cac663ee3d74ef8bd726766c1cde4", - "0x002b831cd0102a507a3a79e1a522d4a8f0ba947ecdc7b31e38c09783222bd099", - "0x002de598eb5b42a4e7a10d377638b6ded34d130cd59902fb490ed3bbfdf5402b", - "0x0072b51174bb9c421229e955394dd594f7c44600d701e80f47b20b473462b7a3", - "0x00dacd8c36027d4a1f712ed0500e5a93c46cb0326bca1486293bd235d63daa90", - "0x00e66a6d98dc335ee91f44fe54292bcc22baf95aaad1547200a88f9ba0932798", - "0x00f0b092c92f1848396e4f8b6fcb5a7650006bcd250fb61599e996c364ed6c28", - "0x00db5869cc1e5e3b594dd4e4250c4dd446d31c6344dfeafa1ff339827a2ac2e9", - "0x0082e0bbfb54d9326adfcf2040f650438e506498dc6b32f3b90584ef09305347", - "0x0058216aa87aa505adec13a4e9b4be40ca1452c4584ebe9f84fb1d2ce148b135", - "0x00192435918b999e569997f880b1c9eb9db98a8c580c99b0173d9b7e5bf84303", - "0x008dad1bb65f21c3ea82e6fe2623c550b4a3cfe8c6dfb79ef97b77efbd88c0f6", - "0x00f8a14e988d5e0a4285842523ff64f7cbdc8dde817b72a4072abff07d8539c4", - "0x007171252adf76eb3897a57e0f565dce28ebfbc3aad498031fafd58f5bb6a72e", - "0x00d3e1e3b900fad00c2c1be9fe63b39cb8958468f71c1523a5c7023079fda99a", - "0x0078442f2ce373a49f88417d921908ad1ab0863b9499aecd6a0edc6f6505a9d2", - "0x00e15eb6d09bb440400fe301159866d6add5f56c906a24916d90f860e05551e6", - "0x00c327250870ef6734c1dfe580302360cd235f5a0605aca9a1197e263e87c178", - "0x002b4d422f6844280324000bf44339c9b0a48598bd81f649a548205920c2adf6", - "0x00faab41f2cf26027730ac78dc444bdd6338de6ae5341b4406b3ba6d80cc2971", - "0x00dcba5deab25edb0ca6f5add9e9f4d36b88a4adaade4262a1d07f154ffb4bff", - "0x0020772efa3b24c42bc01ea949485bebfc6bf03c9be80d573cde650f9f359575", - "0x00eb785eef4ca0f66109f7913518c0cbed0e6e3585dbbb47dadf756fe79dddc2", - "0x0037fb1934311f1bd0268d61ecc312c5a54d2906bad5a8fe5e05802ddbb9b98a", - "0x002cc2a2fc86bc4299dc446eef84639c93dec0f438f33219a3b5af8912c61084", - "0x00b4091748714489ecb634c47cef630e1cbea1669f94fde6674fb9e19288ca0d", - "0x00968b1772eb98e304993437b5eb6654a5899671091cf6b8cac002b2150001a2", - "0x005e7dbdf94a95140f98db3128d42543526f0f6efc83b3ca22fe538c433bc5b1", - "0x002b6e6edb84dae70a5c0cccc64c3c8e1abc132ab9edd158ca5cf92ae59add34", - "0x0023b2e04f4af1ce58208cf9718bbb45cfae1950ee31aafac39ae6357feac75f", - "0x009973e488bedfad6ab93c33a975af8ac588f1e81df42d36dbcb593c679d89f1", - "0x000751599bd51fdd4b4a747d02f2eaf671d5c322193bcefd43f30a07d5432eb0", - "0x00eaf0b87a45431fb41aee5cacf4f7d266dc9a51bee21580e711941664a1b2d3", - "0x0035e4608811d77ad97fb20c283715bc8ac76196898cafcfb570ab294b7d2858", - "0x0055d5cf2a94d3cd98920f232d8fb3fa22c46437369c201b6de71032bb3ee3cc", - "0x0082f04ebd3baa6b6f9d0cc6fb0c92ea8f15cf5fc27ec9718f21a14f8eb09b63", - "0x00ae37fbe3459adce07b45fc35476e2b9c41d586acf0cd2a18cf509f3b3c08e6", - "0x00164540b3ae1688f379dd4f1873eec2b7ab6700230bd34962adbd7f4aa9ea8c", - "0x0027fddd235266b54c4f348ed59e70e6c1cffc14e743517a7eb07fd15b0431a2", - "0x00555c532a06d63e531df3de39b26a20c5f7ed54cc32b66ce5c6b673ac681f74", - "0x005d92bf45d9bfc85a1a8e7281631b8a4206464858d144392c157d3c5e0b5f01", - "0x009bc493067afe64a880b6da5fb5f1c3bb4d232ecceced74ddc15f069e441205", - "0x000b50dd3b1f0680f1b2d43c81a0a66f521ace5c6685fd9c13dee816e43f8e85", - "0x0007b54a7d55a84824b3c652d5cfbc1f252d337d9e27b681f2425859d0fcc90e", - "0x0029311bd6809b80124de04db0836b010207abb5a1c0c2e5639e29388c52eccb", - "0x00c42c757145ce367dcbd0e8bf1d7de81d873488096ea6ccd88b3953403d7eef", - "0x002d0b31be6716a7f533336800c1f7e6506a644696880a54f3da44f837c4b5ab", - "0x00ed205d788b03195a32416c9c93883d59644680cb88975032f8321e0b94fcc4", - "0x0017619cbcfa828629587488069dbc7ff205c84890823fa0c336fa52ecca3e5e", - "0x009ab0bfe81f5af6d1daeea6ced79e00574632607edb16f48aa84c5e96050b56", - "0x002981c4f4d4b85f6e2d65e01160555058b056bdd17e24b3934ffdd37a38af64", - "0x005f66ab0c33bacd650bc2c3f37457fb3aa8008bbd96105d6ac5fbc1b0ebafb4", - "0x00f623f102c60deba54e75e23f2193567bea7e0b8b572fb2196f3591bb5e89f1", - "0x006b88ea09650ae8e34b3e3e94dac4bde8595d1119105c461054d1f105b9aad4", - "0x00ea7d52ef74a94ec89b11bdbbd43f3616ccb5a5195f24fabd46579ab21ca6e9", - "0x009c0c2abba646d55471850556b0f45ee59d4c6f17fdb58440e654fa2f29659d", - "0x00ac034710d0eaacf1ce171ea0bf8e93342f3cf452bc0ba08d745673c314b917", - "0x000b5d43a8b74d3066fdb89793a12b4a205da8c7dd6f27a67bd5c7dc76c9f76f", - "0x0073b9aa68afe300d5739b6926719db7e3cb040a93621060a5ba76f74c7e9b6d", - "0x00a06235c58c0000064c210f15bf8ee1ae4384e1bad464258ae743e432d96ffe", - "0x000e3313fb5bb0775ef510c6c2b2a7562bcb91e5d3153d4121c3b2818504b9f1", - "0x00a5363dbcba0410a9256a96cebae752620b7483d3cb19365f7870155d0e95d5", - "0x006b6bb243779ea267ecdbe821a7e639fe925b5118fe74c9f58f86e3e7083c7e", - "0x0070b0028d3407b02eeaa816a6fd7ce6f89e515dd84101b33606b88d03a85c80", - "0x00a2f438bd7997a72155438a46e92aec6df5db9f8962cfc17dcf289b9b68d520", - "0x0040239249061450a0d8c77d7a604f8d633ee7bbac2a087b6884f1bc123558b6", - "0x003e36a893a8b911f2a18f7139f1cf22b01e3fe7ea2e38b67c1a43b55b8336ea", - "0x00978143ae5b309aebc7c97714878fdb5c4c7a6f859c6bfefbec2ea92598d0a0", - "0x00ec5f0f47a37c4b6935e7bae756405a449a4abf2902c48dd435eb2ece0c1d15", - "0x00cadbcb3c86719ca1427234c2f931f315e624c8f8756f691e546c501591916e", - "0x00fc72b00ccb764d6420a14bf31b0080e9e1cc38d02c3b3734f813ba179e63da", - "0x008e3c075b3b9116c6e21489b750a0aff10b0db87188aeffaca35d3f782357a3", - "0x008e466b9eb264e84d6ed99aff0206942e6b7283a5a88a7201bb5a89baac6b99", - "0x0043046a364960d0fa1a1cf43ecbc07f224767bdab8a8b323e540f302c4b8443", - "0x00a014111dfbca436cc249678fcf79ba14162fa9d28e42ac563c05046c782a69", - "0x0081c0be4228e6f18973ff864cd41bdd772a847b57cd106644ee70099cc7b596", - "0x009277b21e2b06988b271d0cb0af9624d994cb894e0444155b664f05b31feeb4", - "0x0029e268031faffe37dc6296b2b77f81508ce511d75a499d54da0d96369e0d3e", - "0x004103229ecda07f2fc9ef7e0ebe1b2c2fd99b4b875f9856dd5c5e35e72c93e3", - "0x00616312396b89125cbabc09e74d545f397789240c536ba4f39b226f0b467dd1", - "0x00679486beabf52631223dc04ed39d7b3ff26e9f56609b587d8bcb74bc0e13b7", - "0x00d93fc63692714cfb113e50c2bf10f0963344c2c9982686edbadc286ab137d1", - "0x00a4c8d59622580491ea4b07e1777c0a5b9c3c7d35cb5eef20c196df60e3687d", - "0x002dd063325975883a311bee3760f5814886fe2142b88f91a94869e82fb4cf9a", - "0x00b59bb79b5bfdb1b51e723e5e6dfe345e50d4e61102f770a356f371cca1cafd", - "0x0018a22cab9c4eca43f9a364ff22842e637fa0981c67755df11a134f278de900", - "0x0044cca4c37bc93c12fcad395862f29f9cd39cf050c7b8eff8be743369ae509a", - "0x00de40aff78eaa74e9f7ed6f1b7c7a06fa9df3938515631b5c30f978d2198300", - "0x00fb0298ac2468436c7cec5b0e9c25233dbc06c94134eda688c9a967fdcbc130", - "0x0087ca5125de8ce4b5ef973b1e0494adc5d41b703067ca4b1f6ba3228dd4ea88", - "0x0027ddde931a385c4c7f7b992125d3c0a209e71a36644970170db7b673b69aa5", - "0x0039f76dad1a2b49cc65cda1c97f996a21447b2320ac46e3cf8f7da852cc9026", - "0x002de34b3d6bc958035b2b57cd80ae5ffeb17534337d80c005728714de53de8e", - "0x00c4dfe4f22b613d29b5b0e28ebbcd016e84a43168da46b0521822bf2a257d14", - "0x0041e799d0c373d2b1ef6921be31d6f0827387e9e19220825e873da4dd9fbab8", - "0x0021a99eba035761bc4dd19fd87b8d5079c289497c942c9023d25973510b3742", - "0x00b0d37a0eb3735e6a55afc8c7e57f5e160dc30bd6468019788da2d27b96759b", - "0x00bf30f8b3563533737e4be28ec349e45e67fcd81318d4f8e53aafd2f2ad597c", - "0x0077d4990830670e3863d31db4f3ce62954ab950f6bc6737e2ed1aa66d85e300", - "0x00d997fa3f42f65892596ed49c1a7a5b77db1e816d61114a6f6e605e06a42ea7", - "0x00ed7af15e6c065e851baabc83b524ecfb032e77fb9ae63a005a2eb81fd33c99", - "0x00eb0a10582156270dfec4232dca2c28a683e3b3b5c3eb4ff1b005efc1d10f19", - "0x00d5fd441995b347391ebad406bc480a5b819c73af1989830f64e7d3397718f3", - "0x0068418a26b36dba791dc8c574f3f113552f692f501c5f195d2aa054e0a2a892", - "0x007518cf85e75ed95334fa55ee5ebf341ba4467692098f21465b39597d2cd35f", - "0x0033a2c8aa616b948579d426ee403f858f7cf4f893ff0f4dc10a39042ed34a2a", - "0x003fcf16ee44efe5bfbd419d4b0c437df93d209d29eb5f2784468dba39d52286", - "0x00cf14b3d06768a4f8e3d8c4a750a72b64a15b40361532a1d110b7539f84e135", - "0x00cd6e6d1df77609fd7fc8cb3192b94290725a064de6e8f3ddf67e1ac0edbaee", - "0x00e9b542e054c8ee647531621bca9c3cb1fd7229b7e78215206f556f45555a2f", - "0x009428a2e69910f4614badd58afc732edb8c1c828e33c9b928d19802b4827906", - "0x00802442282af8dcd3f2f4e307f78b6db0b1cdea4180b54875c7615f39025e80", - "0x00eac9f396cde654588fa3ddcd1c02fb67471d46fa6cf75a66d458c188614c8b", - "0x0043db2c78b98dc917c82f403acb6c7637d77f9b78ef35191ab65f5504896fe1", - "0x00f0932e30acc8d8554b496c09ad84dff13002b8cdae2fbb5307c8a6872e666c", - "0x00b5ac28c7aedca0a7f015d9a0fb4e33db30f278266fe07462470e6e873fddda", - "0x0078626f66518fd5b756a0bd154cf58a9a43b1b91da0bbf99bb0cea380b6c6ee", - "0x005cfe096407fd6a81066f14a495f77bfc7cab57eafd38f60717ea84b053ddac", - "0x0090f9bdd92b3c2ffa75a3ef70c163e2666b2012051fd303c976ac6fdadfa765", - "0x001ed3187603927a0d54e3b5f11cf1747025a64fd74f638835c2abc7636936c3", - "0x004f6b0e48d2e599114f46a4a7ca06bfc2b6d1a138abde15d5c0356648e0b620", - "0x000204006daa305aeffdd9c662614eb56236f772f55f84d54ac4b1fce77bca3e", - "0x00c947625d2e5a47d9ddc83caa8d08e7c15389122a9518d681fb77008007fd93", - "0x0057e0795f0fd63508b002328596534a0afe56df1c75d7907eb9a97cc9ffcf92", - "0x00e4dd42e02e368b789ed2e013b29f655acc73cdcd2152deb0a348f13bc52283", - "0x0042c1f3b8625af56499fa22f1cc9aa50857b665af9d59ade878b4ef5f4e30f9", - "0x00891c2dd8c837960a07146a93de27562eb06cc9ccf287f02377c62320274c36", - "0x00c1a1cc9361c0392c79007acef33fef59381622ceda07e715071bc260724b71", - "0x00974121c30b2f2b3f9572ea8fc358cde0a5bae6e8acba3e616262140e09c1f1", - "0x0060860f6a0562f7f15c2a3a31a2ca4e8438ee07eef3ebdda28074b76ddd7d2b", - "0x002683851b781cbb5505cb4dc28b03779303f214a0921ca431c018c1924d0e32", - "0x00c7930a4d3f0156cd33f7933fe069012a5018f4d7ae791bf78d73f2dd6d7530", - "0x00029c262085df0f677aa233a4cf69ebef7a75235f89dd0c1a3c950c9d2385ec", - "0x001db2937fd86c799fdc72eca9147e3550d1065585885f187ffdbb4eb33f2494", - "0x00f549a1d51c88bb1346ffcbbfe842f222a22a8dfa589038c72074a90eb64088", - "0x0078667e3d201a88c4e03e3983130b51474d42a58886478db9d621910067adc9", - "0x003423abca055983bb638b1d4c8266d4cdedab104161a807043ff8e6c0f3913d", - "0x0081ca1bc8681dc8401c096a8e00cc001a5d78ff4487bbe8cc123a4fb5905742", - "0x0051121b11a844b5b30d3ce7791f0d33c4e149f7e78a78d0e6cee8d80fb23dae", - "0x000660f87a3cdb53cad607700257662dc4ce7befb1e819f10daf04b8c28332ba", - "0x007c26bf786d1a9e283f6b93b4e656d234b9ed80c67f972fbea92145618e125b", - "0x003a1a96fcb937a7f3ffe3d11605cc8464fcad93990db68057c0988857874fa2", - "0x004968f1d37d38feb58a89ba3820e50a5a68df03efbdb182fe0c9ac4c85c2c53", - "0x00e3143eeb5e59b0cc30660c828ae84b9e5507cd92a53aff80ed2dee70a55042", - "0x005b7a1986caf5a8174886d8e487f9107a46ca078c5f348714428b124036e4f4", - "0x00562682977e9f57930b7b2f3130520332e76e890aa4a9e0128e9c6613b662a7", - "0x00b083cb8e8f1d64be69876b979cea8c154b9f667074f678b3d1a4a6eb31a214", - "0x002769239657f87ad773404a9f2549211c25412271dfb57b76059e5f8200f0c3", - "0x00aaba85ea5f87e0f47c13aa3cab5b8f7ee889a92059670b9f69379b41be65d0", - "0x00b36708702fdef91ac6454d6f09e232e2dfdb3ccc1c53f595ae7bb1ca378f8a", - "0x00fbb5b2164f6350f811a8510ceec2ffd3fdddbe426c1ef7b4324790c88dc3b5", - "0x0002e1d6c3ec5a8e9d5e1314812f914befabc338ae15bbf90ed669fdf570d117", - "0x00a1913ad8b715ced73cec8a960bc7ad127648632c6d64dc9a0e8b5cac5153bc", - "0x000be0b83f17294115c1a087ed035eb4a5bf18881296436cf4bf3b9f51a00104", - "0x00b773300ca26de7d001de1d3535787309b4139fb7442102ff07e3e0342dde67", - "0x00050fcf0c0876a27de926585694e0048ef14c6b8f4d1ee757c7aeaafeaf1e05", - "0x005d558bfc6603800e93d2524d1c4f1d22f3760e782514e9dcb81bef54792c90", - "0x004b64fa5da331fbb080f87e8bea5854e890bf6931d147a0d9d5a04c18bbdf95", - "0x008c1a857cc026c0ca5f2f3422d544d265f1be098c41d17acef13ac303ac6d2f", - "0x00bf9224ff41d297be8ed84bfc8b232f6ecbb48b2544cd7a644dd47200907625", - "0x00da65ff8f8f9d9bb5918a334f043b5e4f3b6eebc57bb6e544836afed2f013e9", - "0x009bff7b93d682e90dbfb1d74196ea0af7e157c2d22c16d2dde0fa3d3df45159", - "0x009ecf2ed51fd2f8ac15c9903a8efa25ad306311d0e92ec7b4d8fccd0254932d", - "0x0045d5b5b79528ab4518ea5f149a9d7a1a3ccb2d1db616925636d6feaef307cb", - "0x0045ed6221fec61f74467815059e3885331daca8c2931e661b86bb4a99e35067", - "0x0022a7bdeb9f9d56724caf6383a20ddc5d5d632f29e6ba24053850ec39bf6f15", - "0x008a2fb155f227684b21ac494a2c02836706a16b9ece517e39f1bea82d3a02a4", - "0x0000ba19fe5cf8dcc74671dd43bd2edbc15d0609914c2aa4afafabd345c5891e", - "0x007df6a50e24de48a49923d4d2c905cc616332722fcb663c61ff3712cbab9899", - "0x00c3f4f1206823e140b891f2a8747a33954a466cb7dd885c38ed6714cffe9fea", - "0x0004def546f9b959d77844d258b5ca5544f07474302da68795409f0928232b4d", - "0x00fde46a16c4242cfa6be47b87166a5b0023f785b41735234a83eb74fcd4621f", - "0x0051dbc245a2077947ba455ba1c3602160e3c59698fadeb0828e2ea3808d8fb1", - "0x00187c83f0a5cf18ca3970aae39323a750265faeee0c59d5715df646332cf8a4", - "0x00ea1d548c59f6981a65f1db95b508e5ceb3dfc9035adb5d0db3d04e0d8474e0", - "0x00844a72ab5ba8b394dbb5ce94837f6ecc7bb909b7ccde6233ad18fd121c605a", - "0x00769c67624ce4e153f531ea4293090a1f94f66671e99f99976eaf357f2c43d0", - "0x00841acd621b9dfb17422420b0fcd7f7a31313e837942d29488011d15f575b68", - "0x00bb4d793ab42a89af0496ce239f2c1c22de534ec7770195e3d5a28d700115e8", - "0x00bda74583737476b1bea6c1f92fdddb7d8e25877f6187be6b674ca09a9322b7", - "0x008d57020f8fdfe37aa0a9e525f1e1cba129333cc57ee42f4f5772928d2e9cf1", - "0x003e3d05c52d155c7c796da073ad7b7c82695b25c5c1fb9093e6ee5af9859f7d", - "0x00ca8cce459b3dd8a7df9eca756c1fa8a65bf100c16409cfe18df4e562b7b568", - "0x001d89155ca7d77451651fc23eef91ed7d266934195d637e868b9ffc5b77deef", - "0x00565cbf92785c3c08c4e88cab5913d1bd88dfcf6a06a521f80eff885485e47d", - "0x006a4130ae567e8eb72b9e21d3bb9637380e91f88010e3551fdec59e2785e165", - "0x00b70458a7572e33479b35bc8ccadd038b9d79f82a1f27c55e2c5f9bc12cb3fb", - "0x008df6c4b1b88f68bb018ddc8307eaeeb54e495c1f10a2921666feba14902a00", - "0x0009b11df1d5424ca4edd8eb435ec78d350830a11a0f247fe0082b404250e84a", - "0x00c4a45408ecd9f5ac8f5bfd10a1345add1ea5d394d7c5c9ea6460dfdce8600a", - "0x00267d2e825e33c5f1882ee182b4f3df95ad09e633c4d0e2b49f3b6d70d9fa8d", - "0x0037d310928e052b9fbe2066e0a06aca882578f14d8c82b3c56c51b706d616fc", - "0x00eb89ae35fadaa7d4d1d080abcd3b8c4b023b35cbf11deca059a7fe7b58c44a", - "0x006aa1d93af7df5d69c1e50c5beb369ecb695331493182314c55fb761e3aa6e4", - "0x000fce57d97ece79f17915bc01302d696f958df690d2b757c702dfa51b4839b8", - "0x002511a48492e8ad15d1c666020d80ec8640c09f4fea99e88ffdaf969e628053", - "0x007413ae919641dae994be0b87e33e130baecf81e5023cafd825ba96dcc9edb6", - "0x00660f3526dce6106c945c6638a87aa361e8c2d0ccd5c35697179140ceec93a7", - "0x00a1cdf1a125a41be0fbd0ca445f0c3a2daac605b8a4991df18c088b98500beb", - "0x00fcb4d25a3cf57254e1db5c78d62fa255f3fd0844bebc59bda17046233c8629", - "0x00e1854a7b4f2967d3e508c93b92479bd0517eb59165c815fb0121aae9012df3", - "0x00b4405618b66c8a5758fa196cd50337642b2308276f5a29530411aafabe2cdf", - "0x00821d31ff4bcc14d1329f88a0f733bc406c4b1ccf79709253e343dde797b720", - "0x00eb04e18aa1d62d0e51292102628f8ecf9bafe112e0f9ee5ecd3a68d738d2b8", - "0x009fb4e1d8665aa33dbd4f64bfef86da2cd0056a5cd3be3b7b111b74c0e8e8a8", - "0x00881163850e2be179bc8b6d4c62f69e6d09189c6c197b3231bd7ca80dfd7071", - "0x0050ef48a6150a6af7e5e78678037d02c535a60e5294ece5b79970f73e65ace7", - "0x001bc3798d16af8352692601754c1a13233084a384c296cc564e9523315e6af5", - "0x0093ca9274b2744c9e382d3d56ef14a0c94e43b0f14492de3296e576c085b92c", - "0x008110f3e7d41e155cb6a09320132afee984a532ae627acd686462cfa1e165ec", - "0x002d385599e108c576bfd30603ea300dbf355c692a5b720e8335b94e517c25cf", - "0x00fbbf5ccd869b16fa371ed0d1c694840d6c6ac178e76501b90429e9d3cf820f", - "0x004f080c1ae5ada8b995a8b2207f03af97479ee57a5ce4d564d24d12481bf9fc", - "0x007253bfcd5eda0c0e93a19084b2c650831f3ee8c179a3d86eb6a3b2953b5e7c", - "0x00079e83add6efb2cc092a9f5e874bcb7b04504cae964ce9be1831d3f2bb0e93", - "0x0051e8988555abbc8256410da0d3fbab806f5f4db6e705d88e8d4c3e5aaba1be", - "0x00ef49fedfb5f1f118006f0bf777a9b7d62a6756e4902fea42e031e01178a7fc", - "0x00d6d8ccded4358d89426596b475de2ccef482b48d3e5200643d86d7e14b09c9", - "0x005694b86e45c15ec9ad63f0c30dfdc23f2df4d81bc8170681180eee28e38b66", - "0x006bd217ca307b9cba3457a47e2eb7e8bab39d84adc8410668450905aa7b4d41", - "0x000f4ac8e7e588f614af6cbefffbfc7caeb6be747cbde622276167d80386b61a", - "0x00cab2bcf27dd054222508846bf4b1b0384dff0ce58ee0336e4ee13adc4d54bc", - "0x0077a6d2afe3f9ca9a885a479042a419dc6b8592ee6f4a289547c682b991680e", - "0x006505d1d65ea5f8fcfb80ff011a7cb2462e451af2fab2419c23c518b471026c", - "0x004d8139f1860984f71985a15e6f4ef1d970b0b4cf86779b5efc9aba46de1d28", - "0x00b18e088f7872e9814bd07f96bef095606f77e3624df06402e1e192fb5b9013", - "0x007a0e9b4f733e2526dcfb60e64abdae60400aca33301286898715544a11c52b", - "0x005d1f38940350ebaacb628c58d12b5a9dac466106f4438cb9fda29013c857d4", - "0x00f528e83f574274764dfec83d966e53b4b32711c2d01a381665fd28fac38c94", - "0x0020134f308f6940d72205c32f3c9e39cdb2a5da5ff596ea30b536b0eb0d1b86", - "0x00698d613ede794dc44ea9d6cb1950ce1da6bc32239a1405d83e3133ff8f65ec", - "0x0011569f18e732261cf03a4bce81ccc41a23907b783f42250dc87014666ce539", - "0x0002eda4482e8d6aefd45d9cf8ffd48fa0fdadf65b5f9f289222d887614e2f24", - "0x0043babadc76fdf6d848d6ae291530bddd3b856f3ba433feaaf23aa4808f7be2", - "0x0040ca1e1a2e1e35e31a87be6c3b132c2f523f15705d0b51afa5d83e1615f53a", - "0x00c2581b99c40b18026fe2c1aa73151b27e3e5bb6a7eee2d4ebdd46fb93b4903", - "0x00ae0ff13151f1596a0e1513b53ae1a162adaec65b06f3afe3f2559ef623b81f", - "0x005af7fcf3923934689b4ed32c9ff5678fefeae5a00f6710074af1bc11094375", - "0x0097629be6e0d24c2fbdafb63f9fdfa61a55ba222a47ddff5fb8f84fe390ec1d", - "0x001d526cf1844b746e2efe0ad40c6d4942989368184318654cac4323f1de9e9e", - "0x004ea1163d5815a29a0376d95dd7967c2a93dcf3abacea1b1ae40a6aff754c86", - "0x00fce018722147568a48ca40a7387ef5b9d0833d39ea4499d2543d1dd949504f", - "0x000e9e509471d4f4264d1baf7bf5f726ff6f3afbc556564b43ce625307f54f15", - "0x00b616cea2c205b5c3e3dc46dc365c7081d77081305333b0847628cae6456f28", - "0x00ed9f0c6759624dba966298eca85ec8d50d7e7f358ed1fea537e1a2813f7b24", - "0x00d7837b54b387f3f8b1c8ffb27f5085f2aadce030505e251bf2722f2ed26629", - "0x00a46811b7d25c81c7a1a150b3142fc694a9b6c8074e7fb7bb91b74a9b0aba41", - "0x009a38db52b18e04ac4a74217a7c4c9b5d0d8abe908b6add6f04368a55eef5f6", - "0x00f24efa8d47d8378bcfd3f920d9282a46bc6c98243dd3b0987bdaa40302d101", - "0x00c2a61cae149e3904cce8c64992f85aeb22262de76d599aa6356ac5e78075fc", - "0x0091a78300ed0bb40283ac5b92d3979bc396457f4578256271b45bb27e1bbbcf", - "0x0024cb7533fcbcd1244fb9b3c7215188b3775cf0e407d0ead993cc7853c59ca6", - "0x00eb84b959b39f4e0248f9e4074794358ad2af2ecf610bf1a600d3030207e151", - "0x0011c7774a5558df6cf5af4528a9510bcfabad823f0f0fc25a52b406d46e87db", - "0x001108e419d0c2f783a04b1b810f53f1a847b985216b05d2c211a16a2bd06f4b", - "0x00e7682a67068e1c0b703286090647e5e93977c1d3352f11959d1dff3747dc2d", - "0x009508f3904681212761b1eca71ce1758a6aed0f0a05733cb8267b82c125fec5", - "0x000444ff11be6f5178c7175ec10e22ae4f8005fe6896aca25fd122d91980c4fc", - "0x006f7e76aee4d71aafb29bb42fcb81412cf125b2f330bc939397255a7fd55090", - "0x00108f389ade9406ad815b88b15472278a0ba0409f6ffba2db1edaacba7f658a", - "0x002507e80c190ca339f34b25f7fc14c7c9ff623a6cd63c12e02a8af5abba5026", - "0x00ef327d6bea8fe33b13369691352277d384e9326847fc5287330a9f2165b219", - "0x00d84f41ac36fc58f0ba8f031c6da338658e7badb2924b8628ef4510d0591235", - "0x00cf1ebc675da03ca64b3d930e2bf62b92bc0eff12dab2f9478f17067cf2bb21", - "0x00145942979d2b8e05ec3745aa5306706a006cc7ae95f691231d0a362cbb6a68", - "0x0022db9841a92cf92677ac7bd26a9b8ed82d54b0190d99fa0cde0d810a25a8c1", - "0x006874c045f8330ea928f51b4ca6a069369a71ffd17ffd1d9679524077a1b35a", - "0x0068480397f24b760c9c98080a9ba8a8cbd25b0634ac117c323593745705d9be", - "0x00c92ae3ad1810ef0122cc330dea145a56bb0011136461da7cda1fc3b44a457c", - "0x0014596cc5a6baf93bdecf95fa3580752cf2ee4ea980fd32b49784f59800b5df", - "0x005c8ca8973c24d90e87692fe89f55497a4a37e356537a3ff01f12bdb90aa092", - "0x00dc188ed323c43894b1c81f2fd5a9c71602e67dba3356800ab4ac1e2c1d5918", - "0x0066518050366859b45629f72ba26016a9ea62535f02fa82b523651df0b5d753", - "0x007442188c7b459ae9027d62e0408111c70180cb38696e9bb469661fad8ab200", - "0x00aeda161fb36670d595671d2759cad450e43e994a571509b7307da2aa723f06", - "0x00a6f430f17193d4c08b9e2e89035ac4d8bfab8ab646bc7da15b1e57704bc5dd", - "0x004ca5ae172216d54669382ce121f3a275d3e5fc044ff1e82402e2a7840ae117", - "0x0000b160d73368b23cc6954b3ab36d6e3f5bc8b200c8b2ca3167c0f63921b6f3", - "0x00a2a638f8dc3c94034a02e4c4c26f252ab536e3e1899f853527a0c5f596d11b", - "0x0053ee06a92c6a39f18a30195bb14dee57199a888513afb5ed96c293930fea69", - "0x008913ee1dc9d441d193909fd3f142cb3d9118a7ce0c29fb4780c6fc2005c683", - "0x001d5c6ac837b53f43847b0bfda41a7fd10ec9ca240b4a14314b16d5c6db729b", - "0x00236ac2c2651d2152a66fecc752a16761f8d2cb03ff26e5c7d40c6ba8cd2cba", - "0x008c397f7b243fb6c624af787f85e023fa5f91e1d6fc5a4e611d64bbb7742d70", - "0x008e86d281851b5d65ef3a4d1e0adfe21b2350e8ed182f827f4eb96a29aaaed3", - "0x0024c02be87b6af706aab85764988814006115cf32368cc999e161486a7365c4", - "0x0050da706549c8e7d7261a34204ee3ac75bd5fd13467bc76cfe1de3a4874ac73", - "0x0097b3ffaa681883d2aa3e43ab6808d44f29efcf58b5c72051c308e0b6f6bce3", - "0x00f77183d76edd10d28dd53e043ff91864cc55e219a91b8e444d1fa9b5ec9b8b", - "0x008bda8621ccb9e6d7ad9d7452e7a15ed36fed3349fa68616c27b061430742a0", - "0x00494e0aa240d8a8cc98a44ec7fdcc692bebcd9c8c5553c3e9ebfffffed9bb62", - "0x00582a238d24f79658f70373187bfa961a0c97cb79413bb25772781ebede8c65", - "0x004e3b24dff1e3bd91cd6a680a369826443c2600580ad22896b326692704acdf", - "0x00d99f54580ab536eb9c83b6dc46b3aa59f841e7209ae6596cc439101bd2b876", - "0x009a18ab053ee8b9705411619a2819881964e3869d7395f69a167c6ad005f03b", - "0x00eabbc443eab6b5681b34624aecff8486f9f46f2ca3d2bd290d80476542f376", - "0x003735f74c28745ac427e6a4b0b7777db70f193741c4fb3a3ed8432ee4e03452", - "0x00dbacf84091bc52f3c07adb8bfffe12aaf8abc03f13a2d7408d0cf6d0b3fbd2", - "0x0055f1971b168819a50aee02f4b5b444cae85266d11d30f58cb78a1996c44d6c", - "0x00041c059acd7c464cda3bcc426fa783b01e48e43bd6805dd610243ef8596c14", - "0x00c7c64b53c75ae5820dcdd3f31a7f03067e387b1e0ee47467addbe8f95a6f94", - "0x0081d7d1b01a25933dd08901144e4d5e155945d65e9f3e9d25d5fa336ea52068", - "0x00cbcb6203fd77f6dff2004d30917ab260c2d5de1e60b523200950a027fa2d1d", - "0x00fd9a38b9cef8161f8248e0bfa1bba169d2f8f6e08bbd12f721cd3bd1383d4f", - "0x005256e541218a56543d1a428f35f80b4e223349782050868671676f0172f094", - "0x00834a7a5ca767845ed4779e6b84bb76744370221339959060cd3b002b79b9cc", - "0x00fc510acc2b43f9999f70f33c28f9328da1a32ad9f76ba78221673229f1186c", - "0x0070eead671aa7a870a66a5ebeda458d897988f9c2ca504ecee4b0a1211c7654", - "0x00102c397adc498b428ddde3bb934383425e0510d7caf05e748af3ec0828c822", - "0x00d7e2bb5fbab534626dcd8dc17c0534c60cdc84479b6ad6a567bd0d42c5ab01", - "0x007f966013ce0d62cfd26987a00ec5c6340223cde34421f2ceaadcb2e0c5f96b", - "0x00b46b50616ea709b7b9cedc3d9350bfccfd8389d7db3d0c61feb4704b018586", - "0x008e01bb301e44ea4b792a73add7c93fc75e2791b6e8b538323b2be76698775d", - "0x005088cad74a7ea673e509bd39785182f7dbde615702b9bf0c6b6d1caaaccb05", - "0x00119b894fc7cc06e38efdbef991d31506d9472f0255938e2de37058fb374ad4", - "0x00dd55d25ade2c9ecbe29a1b60cad71ab2238319991389cfaa686ce92df47e5e", - "0x00a2f2a419de3953a02c2acadab62a8c75ffc5c5ba591c1d86c90babf1069830", - "0x0075e268e9d735e820c988689b5c9365e5f8f4a9a13103a1ea6b0d74cbc6644d", - "0x004534f640677f1a003a02154d9c676b6f02d67e633d37176e9396072d2eeffe", - "0x002e0ad5a2d50f07c485fa43078f0bbc6199e19bf181b4433c6f3eb9f34b390f", - "0x0028f84491466af62395ac7f0eb47ad27aa55c7bfde503692f626906d91da08d", - "0x00e9538d2f6375dabe77cdd730f4577c30070f6d84405c4b11764025e5b63355", - "0x003a359adf80cdc0e8169aa6e5854191c4df8c40d21a937d8a3f8d47bffa4be8", - "0x0049fba612072f6a39ad502ab6adc2c4917464030c26c07187b94615b1f515b1", - "0x00ca07c016fdf1492d559c4355168c7a1094c30ea725f43d546a970ef28d160e", - "0x009190671b2c5b1a64db617bc69220c610d0bf5cea5d113440b9fc0722fcc333", - "0x0027e1becace65ef820a7b969198142cde22c8e8f9b49a9db6959192f26f3587", - "0x00ac7b19c39414a8e0ff70d9499c3a60edea3e81db33837e1084a75899dbb30b", - "0x00feca08240358a3d9cad5081facb5373d7b5a187e90519aa4dc368dc458a994", - "0x00664d0a856917e53f3ae86cff7a2f507494bd9eab92fb6ddf930332e43c345d", - "0x007628a341a1d9170a3d0603bb7df61f5d8c0f75c825a3072dc08cf1890bbbd6", - "0x002055907bceab4216899125f71b8f8e7ff6e11d3906a45c18ad2f8d337905ef", - "0x0057963ffd640cfedfbb1c461d4a56615454d52a0d4062f2f8dcf8301ba1adc0", - "0x000a2234f6fc2f28499f1473b00facd1c5eeee9fd8821ee5dbacb79d5e6e4ff1", - "0x0019da34095714ed53ad090eda2bc9cdf0833ecc9569fcec272eafc3ac2a1f33", - "0x0096295d0c45ede71b5504d02035c0bc05cd2c4f5b1eb909c96d0c8d2bf4142e", - "0x00e0f8cec46c24e6e925edea4b94d38f2d9c7f9233b9f76296b7a59c520514c1", - "0x00b60827f815e65224c33175ef0e6cc78d1d4b39f98b7a94e45f96c4db469fe4", - "0x0000217e3247f7164f41d694ddfabdb3cefb6d248d1cc583f5d3223b75284c02", - "0x00775107d20ae35064648a3727e8e2b9c18dd4fec982b45bc7de5b73923f731e", - "0x00e015078cd0975060d0742080729ef60e01d13359fa7fd17e4bf4ab9c5c8e56", - "0x004e928545a69e9fcdd60306aab358803cb84ab248aee8da7009254dde182a79", - "0x006486ef2803a83cc18ede6f2bc98213fcaa62046be3b08918c09b4cc12fe770", - "0x00b8303d1c8966136bf0219706678ae22cc84d6c42c8d6a3191308f79d34e65d", - "0x00c1799307023adb77d8dea967595753ad9090d0c512568f58bb87d48793aa43", - "0x0066652609deac8c8c4d580eb9d4d3d98d375e85038cff0c9892a8a5119c0cd8", - "0x008af6666f071d471afd3394939e5771d14b1daa2d98c896ccc7438c51f44d01", - "0x00c0b836e693463f32b049e5d31fc966cde21c13a05428d277b057383e10fd76", - "0x0000f4d52679f0cc5a1e7af23b753adc14dba05db147298736b4f3aab62cb7fd", - "0x003936b4500362d18767b18d0824d669c709e05bd78050119a9a5fa3ab3c84c0", - "0x006c7b28aab8de729dbc03189a411309454f66bf7142458077156027c08b850c", - "0x00c6a89a60751800c298a6bc18b2faed7b2df137e7a6793edd31e2e6ff985a74", - "0x00c803cdf490b23bd5b0ea67330c028b6fbe3ac35f8a9a318cd69aaa47cdc52a", - "0x003a5666dac52fc68269b27b44c8690eaa995c42f1d694702db632086d6af501", - "0x00849d0e9b252b8522322b034b27c2bb68e4528bfe0f75ba17709901f688b42a", - "0x00add646a69972cdd16b2290ec6fa12afc9c96bc7d99be37212d12f6cdb4a438", - "0x00381c5fb7a77e6388eb5f92909c7469af764f27d9ab901cbef45f6e843e6dd0", - "0x005a7139d01c8baa5528c7fc59157cb2c49c628baab9c3ef6422f1140b6ac1e2", - "0x00804ee8b0a27172613b0be8785881a068b92cce35accfabfad88210523f564e", - "0x00f252d1c48e479853877b30d8c06dc9a59e2aac0be9e245fce4e8542416b0a2", - "0x00674074e43964a3afe009a4e4de3fbbe767d27cb1727a8a5d330be16084e495", - "0x009409405870d94dde70e188869e989cf6212c62495a47f644763c7434fd8a58", - "0x00b7ca67d0b62ee847e8e545405ce1fcdec1883353ea54f0befe21e432fa5eb4", - "0x006f52663aec0e95fac70376485a933d51329f27de604f6db108161932a1ae58", - "0x001d8975e6875c47df6308000f9379d2afa5a1ccc5da3756cf8bb4c32d945c27", - "0x00d18d674a9b02b9cc50cac7793a5948966fa3e5b40be5ae6774dd810623e7ec", - "0x000f709230189dc3165cb5979210daad95a5b9fbb8539c9d8d71c46530d72a63", - "0x0093b773e6a5ca2219a6b3fed02e00e2184e70ba055bad491604c6d969c22f6c", - "0x001a323dd93e9fabcb8a0df96c457a57e8e2145d57780375aaf889c9d8a89dff", - "0x007459faddc443ea711f62209f6c45dca37ed52375d246e693aa1d08d6b30bcb", - "0x00210b104e1f8e0c99d61206a7ae4bd716bbf774b7eb27359407d32f92e83dfc", - "0x004b61b9dc37dc4f246aa2e0bda7f2646b39b83fa27e45442eba67ddc79ca3c2", - "0x0050db8fa088727c0ea1b8a24ef8f4020deadde169591739130f3ffe463a0033", - "0x001f8b0175d5b04905fe081a65231318395a5b52258d07fb0189beb369a502fd", - "0x0064ca66978c44296ac027233efe944902510a0362efd66c2ce7ee6a8be43c19", - "0x007dcaf373a162095c24ce0ad090fbc5b86e055c34b70fc6c65f3e2f60bb1bf8", - "0x00982c9b171906abd046984344676983226a3cf418838018ceedf1ffe3de9864", - "0x0077d8a006572b8813fab61ce6154f3d12f2ec61e6662888f2f5279fc602534c", - "0x004dfb4cdd14662226e67ac4f981e8a446cda79d82d65b3e7eeb47d787c054ac", - "0x008f41f49b193f56cfb4d5140aa35fe2d6c41797ce03b706fca0710c75790c09", - "0x00893edd2adc5c38a4544e952655f79c9b9b4f4ae56ac7df4363043d0a35a089", - "0x00ea0247b48d845e42fb81c474343e7be2a99e02e379c3da17e497d750326484", - "0x00f4f4df1e0ef9faf02c848d7cfcabc2226f8421d8f745fdda324685478afd4a", - "0x008c4de699acb61c402968419dac950645b1d5f0a8e576fbb372a4b4df6da80f", - "0x00461af7766e32fcfe292337fe236db3e3ed8d8ef6f2f258efeef8fdcf487d16", - "0x002ee8187d14337e5b45bda6314ac6438bd26709297ae68fbe333882be8a3b20", - "0x00ef68d89466cd293a450d344dbd754daec056a4c0fc8265cf1ed54d3a8bceaf", - "0x00c39d0d028504a7033d80ee254fa52de159692489833146bc2d6c99b7fbd11c", - "0x00cb540c434a2e196542c84ed38ae8196e379295e4016ad272549ae906b82723", - "0x009a6745fb1235e1c746dc401f041cb5bd2f059234d2d9fb8601e9ab589f4fff", - "0x00e523a13fe340ca2afbb8618e003557cc7e127d7cafe295571ec651600461d4", - "0x0008492b6e31978961f59d1d47a02ab4243d1bea425134b8e164abf9cb0efdd4", - "0x0064b2981bac1dfa5483b0cf4796c8d6ca125efad2f090024398ec847e69650c", - "0x0082fba81399d98989749ed130c02cad4a243cd54ff71eb23eadb7a6d31b25dc", - "0x0009ff9f87c691dccaedec33f12a25cd393d6f5005ad9d4a0a0e164f614848bb", - "0x0029badbce2d2faafd63c5aa9fe443748f0ed1894d8713c96fb2308f098c0b1b", - "0x00e39c969bf2e0dafb59c513f0ca05b5d9c68725c98467440dfcd936d60bb296", - "0x0064ca8a53c1dc473adcc757870589eb1becacb245ec8e062aee3c01fa0fdd38", - "0x00a8c990d0597ceaf0d5e73008aee34edafc7c2f99b552933e94ecf46059eea0", - "0x00023bbbdca7321968bd665fff8fe0f1580ae4da60a2e359b4289bd435fc37a5", - "0x00dec6d3ee43d8b8e48844ceab1d937c62d0da17badbb5d1ad0d024dc7c88409", - "0x00ef74463a8f764ae4cfc85d9d2da5ad0cfb83617dfb98dbaee4f60c1c37d331", - "0x00bd51917e184e968908cd28f93fcbde494be761658e468e12aa189a2d8001b6", - "0x007c0d8448a9a2a8768eb6bca937d785d80828f4c56990b36ac3ba8369e733f1", - "0x00b60e28ed5596f80d555e06a5255fb766ffad1944852c6b6cfad33f3acd091f", - "0x001ec7fc56d14cd79e184c42333217d20e3148b127690520e269b8287f4f413e", - "0x007c826b1188b3163f13e38235a298e26d549132560e7d5b9bb5c4cea154265f", - "0x0076763fe90ac659473c3fa10d658e1f6c3bd5963e7d3cc27f8776ded50b79d5", - "0x00afb7be07cc43887af184d9b2c1f98df9451bf2a8b6fa960dd207f71a32aeed", - "0x003822c11cc46d4165924199f0010fb461c6383c905a38212837e2c0a9dd3e00", - "0x00cf521401042b4d40348d1ff1f04c0e1204a75c0fd525ad783c3cc211031022", - "0x00cc79e40a73868006375cc886ed89f2d26178a2ce40ff252fd7b516e0fd5c3d", - "0x00cced604baa3e5786db1dae0a3aadb881ee69e16e74908dc1293a28c80f40c0", - "0x00c424e2f2b60c910d1ab552995745e328898a6bf89287412ab9665460e0ccb2", - "0x000c6ce6660302f9952613646d9b8fd127c7eacc536c4876c95023ef8e199caf", - "0x00f5ebf18400e5a138d6410064d533796a887211a38f2b32802380380ac0fd7e", - "0x00c0f9ad51f1fce3d154d38ebc56304f79175b69f6cf912bdac2eea1d5a2b7c2", - "0x00325f617a66b3f16b4268b3f4095a91566d2f1626c284837f5fe4056d893883", - "0x000427a812fde4eb87de7e80787802d793dbe7d761e62aa3e6d0443ec795cd6f", - "0x00bb01ac2279f454ded47b4f886f24c8bf6a3b4c5d4bd91a9ddd494a1c63d4b5", - "0x006f81d775a51df76a45ee6e4dc946b8887244305eeeec6aad84c718a03f273d", - "0x0042abe0d13bf2896c9f19b62fcde90703ad9e18be7faf72e0507bc5ab787340", - "0x002d7a27fb528704810b11ab4bb3cd6d33debb8ab1e94cf6ddf7f5446ccbec02", - "0x00dd93ab4627aa895d4ef096b7685ed741a2b901f6a138ee4b3cecd704eb0f48", - "0x007ea2dd17102df4a4610295ccf474ab601dee62c5bf3a4362fbb51d8d0dcb24", - "0x0067dda7130b167c0e8db85b71f9d4f884d9d769d1d80ebf010d180d79a5b55f", - "0x001d9c1a1acbb3e9acaff6421ad9880f7c85eeb052bcc1e91692fd8fe7a3dd68", - "0x00dbc455870a1849973dc66bff013e147e2d774c7b707cc64c2ef084b82c851b", - "0x0047b5fe61cd7b6b4f51e6c2bd8cd4bfebaa7155afb368aef0471a4184fa0bf1", - "0x0079bd71992f76162423cab5d7b02258c0c5a1477f832a41c08cfb6b9fa9233e", - "0x004a8bd86f3e6e31e6ffd125dad1b9ffa27d5dfd14f85ce9ca1d926693cdab6c", - "0x00055c188c89250af43ded608cbb34f4b5b8de45993fdd8be5c5f92c45935f4e", - "0x00f201664a8e76bff376b62a6d46ee4e1451fd32c2288f6dcbc216829297f1b9", - "0x009035391ae3c7c35f8639f35a9135c50bd13a5ab2b15eb81e7472d718c85ac1", - "0x00cdebf25966caebeebeab624d4ba3d7b3d68e6806ec9f515c7066f52b49a82a", - "0x00240965252fce3f76048fc610c0e5d79242deaedc1e9e30d783480ba51d3c50", - "0x00edf5cb5bfe7161d54b8167e590177353d923d4c20ff3671ddc41d2014457f2", - "0x00674cae373b064d834f36edfb05f12c74d9f7a25814fe91ece47169e75d9a39", - "0x0071ad9ffe21b9ca1343629a502fdb90b3ed53ae6cb2fe5a81e5516bcf1306ab", - "0x00917e5999953767a18e196a80fae79ae4fef3bb9fce342de81945f898a04749", - "0x006f27b1281cf6e6b0e5ec12a6339f7c1b3acb039d38a5bc4c9cae67d691bf89", - "0x00a18ff97605ea633c60a4fa6763efe411737606ea3f7a8d9e01445e087f0b24", - "0x00a5185c2e0e3339eba8ff51e09b675c1ab7c5ace7a98e33e5ffce2605d24aeb", - "0x00cea2b81b4df3390d78771a9de9426b2cbac5f33bd3f983ecdd08680be8cf4f", - "0x00a3f28fc651ad7614a36d5b08b9a6e8d8229f2f337905ff13e9ac235f4709ff", - "0x00fefc822d08c83273c6582432c171dcf5265a22496097e66b33ee68779ab400", - "0x0024c393fc7a3f523b33a34411909ce7929e0333f8b807adf471a70a0bfb50a2", - "0x0085d2445ebfdff44d4c2cd8e07f55d0ec993d34c3efb25aeb704c73f01c09f6", - "0x004d683331014d99ac2725a9d993d0b4059ea223b7e31d74af3813bffcbb3130", - "0x00f41b4cf36d3208e99621ce733d354a006a7ae7ecb4c0968d073dbadbb6fe7d", - "0x00478a2f7b7cb66040b958d016432afb638f3d8fcd32f9d408c88e8c2d7df648", - "0x00ce7d3ba45022039c48fae4afd18cdb36e299c45cafa764328c38d3e0a0ef9c", - "0x003a12fab23caada924fd3d6c019ef1259c9cc304ab02dcb3dd072ed3a1662d5", - "0x006a80fbc35c26bbf6ed6df2f810f9bd44b4ee0b8076f48b4ea5d2eeae00f3ba", - "0x001b0d41f959428f337aa0b50c4e24e534e52a83a4b096092eca5873d70bc6d2", - "0x00f497ec2e2258557795bcff5c2df277e6251ec4905f0017e2b41642c1d2addc", - "0x0071cd93c85ab2dfab79298ed35454be48e9a3a345ba5e24954744b7a87b1a92", - "0x0072512b56f373b8ccb05d86998997bbd47c14c8c2377bdd67c44133123c6883", - "0x0094794ca3a4246c0e6047135b7e41438ed077f16fef9b7b96518ba834d37950", - "0x00a95f9e79854c280aea8e9f9417e2943ec2762a646dfed73c72bcafef5194a1", - "0x0029dccbf8157a663c2c4e736ec8b7f524fb2158e620e6a34a52496f37585e84", - "0x0063b903262eebbecc0df8747c6bf3ca4ba8641116868a6d2afaa987eb2ec965", - "0x009e0bdfe6e49dfc32f9c9c7e7993cd3fb8f6be6190a38fad20e64db2997cd4b", - "0x00460e501c7564af3e1717d76200a7d98fe2b347778f0d4e479878d893ea3b82", - "0x00a5d52737d0f50e88e25681ed0bb6f3e703c1537856ae7ecc18fa16fa84adb5", - "0x005225656c6cd4a61aa51d2d72cc2de7e92778db0457bc11fd16823d05d1adf4", - "0x0000d571ef44c866096d9706a5c4c2082a156c5aded42980f3ab3faf9573118c", - "0x00cd9acb959fa7c5eba13e45ad849e473894d1b810976ce65bccc7bdf7618694", - "0x009583c849a267b0661f3043abf775c315b5feac5975fc33381cbde33cac496d", - "0x0085d6ccc2f950949e87b4b3a76f5546742380347422be1b78e0844db3792fd1", - "0x0033944e00247a5a2712226c5067fb43f396f96218fcfa79553a1fd16106601b", - "0x00d433dc8fbc3fdf0d98b9bbd39ff30cf78eba28b2671bba8feac5f0725cc1a0", - "0x00521b4bb5c5d5675ffccf4d134c4d2c61b34bb48f50e7d9ed0248fffb5d250a", - "0x00de20e5083c57afdad62274b8a61f653d17203ca3b3978796bb8a5fc419fc39", - "0x008c02e3549140ed04aa5a80c47bf257f8b120c6e11f3e207d5a0462d6b8d136", - "0x004a5efa0b570bc3101d3f395ea473c58f1337c9f965efee56f01ee366ebb4d9", - "0x0017a8e4340c45fc07313f8b1d879618cf3c6929e076e72ddca28ff30728c527", - "0x00076e324f29cd5f138e9dd030e07cda9096e17208a3fd24f56fcd36376de916", - "0x00d067615a678881766faf0cf0f1061e6e0950638d7e83f61cb749f997925f1f", - "0x009f5a78e33e4d2b1ae65e8efd8dde16b9c57cb9b757a76597c8418fbb755952", - "0x001255b42490b7576e5c4e7d45742e557e8e0632b126439096819bceb83a6f67", - "0x00ce056f6c2ce1aa2846099beef049d0fe7194857a77dc6c53b15e3874b6b0ea", - "0x00328789d08f890c6ddb568b460a23372dda56fb30c4397622123c902f3b0deb", - "0x009f18f74cfb3987b2e49f1b685bf90fb0268a4c91c01ffbd9ef1935ebbc6ea6", - "0x00b440dc28c5f36ec86f47a99d2c62cfe59d80efca93f0ffc14e27df8d22902b", - "0x000c6a77b74bddd3ee6d8a4da66dbafd46671de68c48e372a1ab579f15be9ae7", - "0x0086a67d462288424cfbd79ca8b4478a74ab1c9b213388c3abf16dd732b25e01", - "0x0059293d1940c9b34b751a16746984ff27f12c853af142b997a973dbd0c37a96", - "0x00df07f6dff6d0b9ba69e2c38c7aa0cc48ba7761965d5b53e5cb0085bbb62ec5", - "0x009203893b6c573ce30925349a6e4ae86eaa576854391ee123c798a8f6fc0c9d", - "0x00b82067799880e173140291dfd8462b375381c698da9958d6c8cbdc0f14f6bb", - "0x00a80239dbcb4f5697149d83172c3abf04849a76637c1ebb2f0473228c6fd440", - "0x00ff27a0cbd5aa22bafdb4fc8937ff815a34b401708fa6ab21af96802dec7652", - "0x0035ac2ccbc1bc48a606f69a7b04e86e5575cc857b876df5b715c0b6936da828", - "0x00f4d3a2bb1ba0eb8bfacb451b4aa395dc91407a413430e168a30bcb417a46d9", - "0x00987a8d90f196ba2d3703f736c063fd2dd7afe3aeafe6077cf7e7d9768c14cc", - "0x00c761384c384407bb9cc03ee4730883b7a90652cbe148d568d3bbf46c06e59e", - "0x00390eb58be8348057c816fd69146603f4446d38119059c4f3be314decef985b", - "0x0032c102042079cb329e90a71abf160a2936716e129a4252ab2c9dfeaea86d35", - "0x005bccf7ac0055e048ba2554840c6fa949e9fde33fb429e45e50ebffa12640e2", - "0x00eeb1af7d16dd99b1de776ad3aba50827429382485766fa0f7901d472115d6e", - "0x00e94d64d74e248a84eb00621ee86e21af7a2e961e09460c0dbb8681e4f92c2b", - "0x00ec7c5dcd849b1c90081a0801570080a301c88089f10e083779fbb14a8996b9", - "0x004bba0512c20c49a6710d76868780612ffbee35374d8001d79425e7cc5ed0b4", - "0x008f33fa89948e107eaa55adb6de704198b6f981534be89baee435f196565057", - "0x00e6ab12712bae9e6dc657971003f8523df152e6c3e904d08f4e549df89e8631", - "0x0075f3a4c15b6b6a31ceb5a7af49f1ada67f2ea5665ced8e2ad65162d004caa9", + "0x007d4c350290ce080782b8df309e6d966b6707d7bca644cdb2e1eab1f6be829b", + "0x004eb46e52cde07e75275c3eac9c36ff80305dc23b033e04eb66a1aba6953edd", + "0x00c030f1a3c027b9dee7e2bcfaf66e774deb9fa160c19c38f236f89d6d73b67c", + "0x00e53fe1af6845e6c85d0f99449a325d7d52c1f3196e8cb0469cb2949c73d69d", + "0x0029f6d518c6737178e7a822dc04b764c5bea0d4a5071daf82d55389ceedb006", + "0x00dea295dc562134e14066d8d5b152e72152f704493558da2ca893ce008500c5", + "0x00169625683b52dd332d3c9acfce479568a7af47da70607b1d5ed18931f8d501", + "0x001166cc3aa049b128b95475a3e0ad5b1dd3f3c1bf80c2bfbb26e8b64852f300", + "0x0074e2ed414e9f69b92e9bc0b8df05494fd5505fa68f07e9641cdfaf4f115130", + "0x00f5099c2295dbfda7553d53d073f805bc7a1eaa08fb428b4f1ceefe6dfb9347", + "0x006827e5969cfd1ef73ac82915583b4b9417ce69a2f9a2082bc7d73ac632c0a3", + "0x00545ee0f328fab293da995b4234b96812fe4e1e79d6bd4d02d1c86d29f873b8", + "0x008ffb6bf5277b8fb9c4f2d791f7498e024b02204bf09adbec4e7cc7863e6d0d", + "0x00efddf0dcb1864ca0b7de9487cc62ea21fc578ca0ca9151b7ced13f521c642d", + "0x00dc3344dab8b5c6a8004f953f92a5035dde2a3117c99c60e2f24116f682b860", + "0x00b50ece81291e05af0c07af0dcf563f60b6821ea6b2b6ac5f4bde4964f2ddfc", + "0x00926bbb3c64c9eaab1b1e41fad8c6c1977dc1214ae455094aefcfa4fa4a89f3", + "0x0087c1510d1366729d942273bc7656e5408fa6b3a0501812e42848330d3ea3db", + "0x009b08bbd604ab0014666a293dfc625c1d402970921eda8e61be75e03c8c7cbc", + "0x0050524e7c3d132c783656c44e286d90ec2ea1f49d077b678a727b6c41f71a5d", + "0x00c8457e047228479660060958015adf1cb59d695babd8554357dbadd6154414", + "0x0063364530fb4ad4a8f9f3b28f88288251c4910d5c0ccf0343a09b064d9b01f3", + "0x00595a9e6eb1d13879b759bbaf9383be693ab7c3b72c935ab16dd8311c3137fc", + "0x00e6692615875331c250974476a7b86e49572441eec7696b350114b9694664ae", + "0x00f1615a1e4fc0445dd33aff836d33dcc40ea1399dc196f5ef89c6ae42985fb9", + "0x00d5f755e622968e8c425e47f9ec64c9bdd5c7ee595fdb71408b9f913b0e0fc5", + "0x0008f9bae3defa2bc889f4621783178f89135cc30dd87e8b64940109ee6541f7", + "0x000520190d11d37acb513a248a63209638fd40b0aad273159792a63cefca2df2", + "0x00004f443e9b832f7130557bfc5ad43b2c529667671cd4245131bcfc3841ecda", + "0x00f41f43d11df24a574914ea74b8b3ca3ac16058e21e674042102ca0692abeb5", + "0x006a2b73c88e95c8aaad90d772484728b3a38ddf27c970bcd50a96e7e9f0efaa", + "0x00bbf572ae728c13f68b457e8188b8b0fd27cbd25b3feb25774dabe8cfd07da7", + "0x00f6d1d60e1a2d464c842176378874030db5caa98c1d441360ba6467b5107796", + "0x00b187897002e8fd900356c92e9787e2243e83e1ad21dd947190b0a335762820", + "0x006db8334f9530b094c301336d60e0f25a86b16a2f68dba521befd123308cb47", + "0x00c5c2ad3109397dfddb1ac2a016b1d834781d94d6533e583a50761b41553f2c", + "0x006bae60e4f1ecb1a0b37cba4393c47cf5bbaf449f12cf37ab8b062a31a00920", + "0x002d2ddbb30f8b8df93d2100ab40d3c4c2a8b9de0c574ecb77a6ee8f93cbc1fd", + "0x00e8284fb6d44d0ffecb6159a8215a66b8126b512875c4c0d379830306742a09", + "0x008b9e2c60b4e657447e7c1b1e0c96e09f4e40d676bbbce768a6895aa1b71bbf", + "0x00fbb9915b994c04db08f324e6ea09dabbc874ed65f88bbfff0e9f054550a618", + "0x0026fb3579977f38c226fc912cf685a87e0d7f4b11595c58fa45ce9a8d1df718", + "0x0064ff736324cc1ad913b02f3e2f42d5af4552f198934a2961b7f65136e70f8b", + "0x0029d304ae464c61540c1d455688ddf3925a0262c7d20619e5eb2fd738d5ee57", + "0x00c3b198353ea6a269059eb440a25e0df3d1575ea867f8c7effbc7d01551a607", + "0x009e05e63b73b76f620a99884a3b662344950ad513a400cb022700cea68e76e3", + "0x0095981d2fd9a9b6a12f1a1af6193c4a7c84d828ad01ec9b52210fb2e8ba5372", + "0x00dc31722a7ce442848a32de0bf5e096da66591721f22448f0ceea399ab98db9", + "0x00c92fe12467331ba9b33e0e24fa4a25b056cd8cc3d3a72a5aa5d48289b9c7b6", + "0x007317f45c0d586dab10fb40d791ada49233e7f81c5f59285ef31486763bb8c2", + "0x00d78e48dd8c9abe20c7d896e53f88bdd8dc07d93b535b77a24f76e2372dbea7", + "0x004550d9ed91207b46270e89740877c420a9675a6c67011bab1efbf61de1d730", + "0x0009b0066379e533326bd64310984d9c7ed3f3c74b38501f90a51a0bdfb73166", + "0x00c95a8c67007f5b7ced7c18eefa5438f6289a7830ce666ef00aa66eae8be192", + "0x003af58d5733741789039d0253f7332373c059e58dd08b38f2ce4425759e43e6", + "0x0003a980dc22973557637f0d76fca975bca2abcfd3cd0c4c376b0517a0959553", + "0x0036119d5ac8c214b6b8e5577f80f90f9428b55408bdae1f5fabec5ededd4c32", + "0x00c41cb68788a4c4a7bfd8e59631fed1f01cae414ae5a27bf710d2c3b5176513", + "0x008c44ef2b3b989e634a5809acec6180fa135a912a6760e559a68fc86db31e9d", + "0x005e9af38419f256642a0835b0c59d549e6e20ab11b869e45fb49b5866be778b", + "0x00cb66590d38837964898564511c7e443266d890edecde9f50625da0636669fb", + "0x008ae542d4d31eb35d26ceffdeb28941299c6b00c6dc5b56c23eb1490f6b8c70", + "0x0014a9efe3ca38665a90c715456c7d51f89694759eb3673aa1ae49e17b422f50", + "0x006e349ff30d17e6ecff32fa0831ea642398c93eda299f4a67167ea0d1f50d5c", + "0x00039c7f05c394a4b87b51f2e1a5c2561601f0550c7fdcb9b6c39167837f3c79", + "0x00f23191869029469166d43488befde9c6a0a8140506435f1be8762d883a3ceb", + "0x006de0560200fa6fb36c4e57e0a0f947bd4108dfbf4c9eda66d7d3d39ef41a43", + "0x003a06053734f94dfe93948913b833231fced15c7779325d603b3cc6c41e3146", + "0x00e31f779ba1dc3f7df024c5145c761701d5e9a87e8ae856d2226e6dc825c366", + "0x00936beac7f3db269262acbb5801324f0cc33a996152294cea357dbb2425a67d", + "0x00af0c32e6b1e502e6b15de392b936d6e646320223dbbeb882cbef613f849df5", + "0x00458fd205fd04cbe9798468c93b2c112a11bc1a6fdc55122c0a2a2cc714467a", + "0x000892266cdf6050359ec4def16fe7072455524460df395b582888bac4410834", + "0x00ee9a0fd8f8221addccd9b48ef896b9e3db84d0671bf88ac2098394662d84c4", + "0x00adbd76cc1b6601bf3cc184aa84c4211dc1660ae7fb19880ea344986aa00e6b", + "0x00706e080372170f349a866d8900714e7cd5a210fb5145ed6d334d13918df1d6", + "0x0011bfb05c7ef570913b79a6fbf9be5a0d62d22eb58a484e865529dd150d28bb", + "0x00a4cd60ca9770862e85cf28a0bbc67d83c3ce123412baad83b6caa18f9e7f37", + "0x00f55dbbd64bfa7e38a86783acba1550e807c6056d0c11bce9544facb6cdb817", + "0x004a7808cf82bf913a896a55fe286cc8a329e02bcb6157e04c9b91e7d6a3d508", + "0x0097b81d76a9929468981a2b9e1b189e5cd3e809f81ff11dc970864c8fdc5e1f", + "0x00be6903430284bd9de2496e17d51630aad2c00e0137cc9834d90a4de20a45a2", + "0x00cbcde7c221da959673d96eb13da16a6542a6db57fee343b616ef56bc506bee", + "0x00031ce67e6ef48a5a3b272ac872d6e9ced05980716f41c7752604dfcfc8e5fc", + "0x0003362f35312c15cff1c638bfe0529bf225d891a423aae2eaa7ecdc06ddc98d", + "0x00774a076d627bc6e5a6b6ff8bf0d6593bcf8133367edf7005ce1d42c2614a8e", + "0x003fe310c3da115f120d6f9afd1a5486939562561cf6db09e5a092d8ff62144e", + "0x004f6e24c7cde6b4a825986553bc274417790415e6c8b24de86a9191e8b2baec", + "0x00b9e6c26f034f43aac458f11bcc6dbcbd7f7560e2dc4f77d1a9fbc4246514c6", + "0x0051ecf9febd9a4b7beecef92462d3efd9957818f5438f103d5fbbc849959f0c", + "0x00e4dc0c9404a2bfdc7aaf517a911ba432874d93b074e801445704d98def5dff", + "0x00bdde2b661b5a371957fc3a8caccb4767de9a131006b92c10bbba9b39b1692a", + "0x0048227be6fe23a861c85972355ad279e1820e42ed3fe67b87e4902a90d5edc1", + "0x000b4d0293c159908f560ad1855ed062b3e50a2af604b4d2aa57102194730ce9", + "0x008cc4feb7958d551fdbf62c2e716e42d8109fc8b99d7335ebe8a94dafc25fd0", + "0x00a9f676ea6db8c27235263f06adeab607aa43090454c970582751e899573196", + "0x007165c116b472c352b345b9592126973c2be3737d3b06b1d1329bfde84ecb56", + "0x004af3dd81d7cc969a792d62894d42a5abe0df5056fdbbfb1331888eaa1bb579", + "0x00109a2a91d465fd2882ab815fec737da5704a7ac7f8aad79bd970694a09b474", + "0x005afc71434fbf26abe9fe5c9516d3bb378289c1878117347d6bd0022a9e68d6", + "0x0075b791a95ca33db52691d74130121da0f9026c22b665816bcb9b61353e0c1f", + "0x0040d31d91b135907c2989f5aea44e66fef497a184b6850d9b8e2897d42b44d7", + "0x00b2c23abe643f9e15018d3db88b93bc5730fc4aa0135bac0bba92b5e562a536", + "0x004fabe582207cd7287884e20b28c874b9fff82de7329cbcdcbc2f7b3a23facc", + "0x00b6f9daf2dca47175591b4cf4e1d7785d93522cfb92dc07acd3764cd1abcbec", + "0x00c75d362b1fc78ace71835980dce4c64a6620720ef444fd45950d03fb77a617", + "0x00c5ad3d0a47b61a90f8c5d44ab6b43d34acb667d7908e86d58a2239fa4dc0a1", + "0x00ab2565e78b31861aaac5c5548c6934782ae6103654fdc20a1f85892ed0e66b", + "0x00b124d7a15da2f972b1ada65a29919ddeaa6fed44496202dfb1a2cfedb72cb4", + "0x007b9bbd50d68c1c0a32c6f1309cced9b2835bd632550e754c05d9c040c40b9a", + "0x008f6c0a2565c4df9e7a72a7dbe42f5c2892491eb10f2d9307871202d7d0bedf", + "0x00bc68c3b340d220092354a5079144d45166c51f72ebfc81341423810659535e", + "0x00d02cf1cfaba238c2c0a990a742d1b34eb4ba4422f080cc0788f8b52a9c5f2f", + "0x00daf3df7bb5e6ef40c288355f6eba31c7c36e51d678f26849480b9779008ddb", + "0x002eb9ccb0f02285c9f257c35f9471fe7511e9d4a98f6829d2833ceda22bfa81", + "0x005f7bb409ab0bec3afa25cf43ce0f1e78f10ac998b0a3e2e42efbd8a8eb5309", + "0x0064c02c1cd5fd902eb97556ae4f1117a1bfa9bb148e2146c16e063c009df514", + "0x0035af56f34748a5e43fef27debd12bd165f70b2b52580505677a1b421c3ae25", + "0x0030f835c50ae1062d5876c1ac40172489d8bf4f11783fca66e0c0c3eba1d6e4", + "0x0048efa3d46b2a73112ee614629cfe00bab0dec3cf0b2e659e40b001b236cb40", + "0x00c1b75e5f57f7f2b5a87ab069bfaada8f7e62b2aadef8490a518bd1639d9a2e", + "0x00ba4ad775d5d0d4d924d1c6cf7a01d6a4e0de0f846241530dc8750f02617a68", + "0x00e6dc103421800d7300c19924f2e09415ccce97b2b8296d2c5290dcf77cb248", + "0x00f1593a4304dbb46fdb979560694f11f1ddc56bdbbb0822b77f2258790ffa63", + "0x00bb45d2147c0397dc051c376fde7ac371f2764cc5727e034768846d0438564d", + "0x00285352bbe326a5d6b2e866e141e53c7077b0bada6ca6e19a6e12434b683c8b", + "0x00d3067ddfb247bcab267b68e363dedda5e57fcb93a8c38323d342cba83f5864", + "0x009eeb671d930c87aab6541bdfe800a4e31994b5bcc6c32f261bb67a9404cba0", + "0x0034813c2c5a4ef0261c2695c42105444e60f65d1ab9861cc8067f22961e7fc8", + "0x0030b52bb9dde61db14cc0efd2f8b082e6882b86a9b248a1e0cdeeb695e86523", + "0x00240ca40f8348e6dcbe3dbeec51ce98ff1bb45b385b616201102111c9441583", + "0x007cfa2add34da220f8089f0e4e1dbcc9cfaee03294dddece095496316c82cd5", + "0x0056824e29f8e0ed528d852c172c4496ddd0612e00affc7aa11102699acb2921", + "0x0022c499aedf19a277aa23476497334dcde3289f953a8a657b870c4435d24d75", + "0x001d665f539c4aa90a4e5d3cf580be95dfc3e423c580c7da241ddd5bec1f1813", + "0x00fed6161c54f93400fb3829960cbf2825650c7ffb1d27274989e4a1d941a430", + "0x002ba8255af9a2f77bf4e8937538debe781674526924bd16546b8252c39acef5", + "0x006c62aead2513eed9115301a29dffc6bb8e69b2e527ded38011c6836be942e8", + "0x00d14d982911f04e126815710102093d5fccaf2f156c189d421022d83ac0d444", + "0x0082c8aab9fa338d81d19678e3ed23c30593b3d35437c6ed8e5a705022b84090", + "0x0028fe2311ed48529cbcc31b25f53e7ad1b619e68ca5432156cfd262252b3041", + "0x003098b1280c6e8c4df38a2e22988fd0a7f918ce47f7761021fca4246c2fa2da", + "0x00af91a8ffc86db814703baf0a7baf34c46a6a65306cd865d7654cb606340377", + "0x0037a8f285f4b022d1b06bfdc80e117e8b7b9616a3ea78626aaa121781337960", + "0x0084669cc57b4795bb4f7e9f168fc30c203158ff08332cb6581dbfb31dc72ebe", + "0x00f5f5814510ddf361bc116cb0229222b97c38fab2debdbdd596d3e502a647fa", + "0x00c4840ace5cd53427d3d29b512c1e2f8192b27735efb1049e69c6113e06f197", + "0x00244b438bc64674c1ac7d49841a63a60985c832c5bad0e943cacb7601527714", + "0x00c2fba33e3b85e39d7d1bd10d11f102ba2fba01e92fe918433c8805ba8868b5", + "0x003944ae2edaf528387fe9c99da91d0d38b893415a70f6ce6444fcdcc87ce851", + "0x00e7d22cc9426bb734f94296fb5e0148a1f7344d3da82dd9181bf12c01577dc9", + "0x0017c5625b20b440c477b8bda8e596d1b3b3a5d5639890f1960577376c0ebd90", + "0x0021c15e0227757a8712d4eba3ee4ceb42b82269ff4dc00e4e4a2b1626143e03", + "0x00274ca61ee185005f1b2e93db830a1d16c305cd07298f165e0f4f9a872e86d9", + "0x00d93092d40cf7cca1d4a9e2f23a152961d53b4b50d846ab515effaf5d5305c9", + "0x00b82fc47887ed5cd81f3f440c1e5014086bee08af7672e3807c243ee58fc666", + "0x00552f11c534a785c268d12b543d9bd07bcd21ef1bdc592d43ec3cbaaeb6e900", + "0x00c921bd34cc14aef0fc4d2ac8a645d65a6857004d98516b13858952c1e46514", + "0x00be7561c396dcbac281051bfa7866ad72bc2567a0fcf37464688a981358f406", + "0x00f98349a37757d414bdbf8e518ba51edc3f63ea23e8a76d54dbaeaa7790c785", + "0x00e089efea3de5870230dbc0de282b11c1954121cf053c75143bdeeff393da2b", + "0x00f7460b36e271efa1035f10867df5eacc0df1f992ffaf80284983e995c1eb61", + "0x009d0661f9501ef9b95509e4a2ae8532245801867bf4b08232f4a4aa22dc0f4f", + "0x00b7a20d6eafc4d63c5968b7c6c8e132e2810f2b26d9f60d9e073c4d3cf698bb", + "0x008c038d5a0c6ec1e7ae696a83f4458a7fb63a26227c10e49bd9506c7d57f184", + "0x0033bafe1bedb83f84ada7c6e470099cefc0f2b6f9e3ddb0f4e5a90c0a0e1d3b", + "0x00a8fa798be12f0a52f67674251e14f2fb0cabc137015b983e08137d0b84d9d5", + "0x0044d68d9506eaae03335b663ebc5a27ff9e8d2167fe77d3bb51f14f01301e8a", + "0x00d8eab4b95a5384df8b5ceafc6ea5b451264d61733ddae9af9c018dc8a54ae8", + "0x00e6f34c1aa52832c733feee42f98c939d37d750dcc80cb1bf1ccaa1681aa4a0", + "0x001d5f4e144b870b166de8dd2db10c791657ceeba574939d4cf57cd691f51cbb", + "0x00c4e35b0444ac813d5509e6ae745f445183a530ac067e7607f4acb4c95c083f", + "0x0098a83bbab61a84f7211efbe8a1f04d57735c9327672a625b73943d66557634", + "0x009e44bd61cea09a4079bc610d0b7d48f0d445ca9f912fc58942c8813be687b7", + "0x0015504b687af45b16faa6e9f01647c381f4cd6a58dc50d9bde29bfd6f75594a", + "0x003d4fc6dd5fa349751935a423063e762dc413897d279f3cf5d3954636cc44f5", + "0x00dadbb10c85b87a1ac3a0fb4253920dd0d721d37126548835ff8b7a8b5b1d64", + "0x005d855e91eff3916901c90861dd515ee0e780ad9e2601de8c44566f6ed3e3c0", + "0x002763c2beb931e44f0372bbfcc99968d0dc0a33ef028b4cd15c27e452801317", + "0x000e4b3fbb4b6eeffb6ca25e2092779b039a08cb8d3c38345f685385ca7dccdd", + "0x00c3a0e43345f558aed555b37bba38d76f587be4ad704afd05365c709a0b9218", + "0x0012ca59fdfdbd5f5e48a51f94676909fbe59c1c74c6af7190456a6da1fb079a", + "0x00e958f7961ef632fcc7b8418b81d0551938f6d9b7bbad8e0cad0d7d58e7070a", + "0x00eac6823795a9694409e5e984890a420f3e4658aa9e340769cf701703e1c979", + "0x0003a66cb1511fa4704a17eee4551c5e3979cd078f636169233d2ce374122ef8", + "0x009826c35410a18413ccbeef9368288ca18be9a1a965ad592a58b5e470f66cab", + "0x0042bb1c6ec6f6c7cd66fa76c01f1afc862129dd0a45db859b11efae85bec49a", + "0x00a825f42dbc74413e18618f5e8c6b618d99ac3d0a7f0d27d79ac2fe07ba9eaa", + "0x00e9c1d42889f105208705cf4f58085e92d675989ab0a7730abc0be043882878", + "0x00c0b0539474b1d7a9440ee1d1104119a17d00e9193fc5b9e4ff3a85e7d9c1b3", + "0x002e7c68e2a709c574d898d66d9d0eea05130b3875704bd1e8efc3fcefe264ba", + "0x006507d3c2b23b063ead9bbe6b1e340e7f8b6f56a6ceea7a29b2f896ecaa01da", + "0x00718c31e8d4b9b3653c06b96c2693c9d80ff9090ead6b5c501d9fed2a308133", + "0x0083f991081be61a21723c3faacc2aa38b76f27a560290a70855818bd557e149", + "0x00a138b03c921e0bba778613a391a17330ced7aa01e027255ab8ddc97847a141", + "0x00596baf11a2b3e3cf1ff67de391aec2a63d079ce1d657eff2d90c1c480144bd", + "0x00f26811253e54dd6a62f830cc44f0a11efe08eb311252dcaadfb4b5bd50141f", + "0x007c6b18ea3647e2cf7361826ff790ac8cc15e7dff822c55fb2719a0715f15a4", + "0x002011b1356e9957bc8dc7d0a4b7e6a5311d6fb0cd961c0169437649558d95a8", + "0x00f147797d835b5f7e486d4e38d762c381204caec01d1794a809ae3ceccdf4ad", + "0x005d2d1ddd037bd14eab17cc13734fc50f0706393b3505134213548707e8cede", + "0x00ebe488e8a1dd9fc5a08c304fb7a4eccd572a3bb3c79aebc91c495d7d495c4a", + "0x00ac5b2c28729aee8a484b6b5d7eab30fda9959b3ab7ef136b1839045c377bcc", + "0x008f990bc963c25180fc4a8ae85d339f6710ccf5eda06eddb289bb04844f70f5", + "0x0028f1d04612de6c1405266e8a7c7f9cb42f5b37c580e40804acbbd73c89a957", + "0x006b8dd00db25b8b64625db5e072703e394ac6a86607242b8ef8d5137246503a", + "0x00b2e1f88c22842193da0891e3322bfd80d6bbd946b32b81c5a9061fd7ab7802", + "0x00f1de46901360d6d3bdce441ce817b0ffc34e7bc698abb75836d63d54abf696", + "0x0074dfd1d442c34f9cd88b39172a1e48c522fb413eb5aa03347d30ded37eb535", + "0x00abd6d849dbd1f2c79cdad14eb79b2590af1b7d1bc733459825f9763615e391", + "0x00a75a284fc1901b8d8e1dd74aed7b22431da052686d347b8db8367107628e0f", + "0x00346237c38ef6cda38ae6cb0f074ffd3c7cb83fce01a4ba1ba22ca50481ed44", + "0x0011150761d5158c059916de4c5c96b9aa24700419d81a55911fc89e1add7c09", + "0x00f35562028c68eceee97132ca3e9fb29fad29331b72245e1a056820781411c2", + "0x001f7c65394d5dbcde9d8bc4510dee29183a6c395538ca11f13325b620e3b4d9", + "0x007f8e96658663826739a4be1e5aa9f339fb36a7e61944db528dd87740405c3b", + "0x00cee430d41471d07f14755f5a9d570772f5b07df220a21955eb2bcac33d8222", + "0x005a899661051c3ec2ae4d777b1ccc7c0c367420a5b10c56b0f729c33420cb9b", + "0x00f481774c54073207847d87b9b87a1d14c36f85e5cd2572b14ee88ed10597c1", + "0x0034a4ce5542948b7c39cd6ebb85ed1cd35119ca37c8db32abfed72453c2ff4f", + "0x004119354e3404717d6e89e656282a3a93c4be34ebc5f2b213684632c8123803", + "0x00659397c3860ec13a5001966f35c68aebc2703f89e30df2b46e101ca94d8ede", + "0x0086dcc4d71ccde06beb061f4ef066a67cca713e06c9f9697185b364aa4c9018", + "0x002d34928689fa4ab953d2ab31c98a3dc3703ceeee2db22cffb93b86c7ffca9c", + "0x00b8d5e3b4ee529f75b79f996f0cf3c6b09267161b48a46ff4de1989dc21b18e", + "0x001389c273ab59771b0d809f7cfd870eb615f86163722c9d65f2e6843924b924", + "0x000db8f9de2ac83e309ce89b2e2a1bdf2ba0e912dcc76ce86375d861abb0fe81", + "0x008b2f15caac316c26f078d56d429fbd831630c03335fca594fd3b62f6754188", + "0x001b5a4f2f4f9761a725564252c9ca87fa7f17870d8538a7b12efd0ece428099", + "0x003db8e493c0ca744206392fd04866843af1923cb1a64f18f024697a94b11e62", + "0x00d8c606d70c939ee95f8a0a60cc9a07a63265e4e65660e584dc15fe166e7f36", + "0x008858160c24f23ab827a4ece8f83ae8b5a1a9dcd3f6314e77cf893be0609491", + "0x0087ec875df7e7f00b7c75756dbc1aeb28423dfc76867c826daaf370906f155c", + "0x005dc464b31322d34556d1b947ee13544671424d1db9cc27f14dd3d0c961fe1e", + "0x00d2c24178f0207ce5aad8d9ca894a18340714568d4ceb090eaaa6ebc338a2cf", + "0x00ac3b63048a1bded70b9617856c09080f06020fb0f4063ff19de5c55ee84642", + "0x00baf079759ccdb25c2fbc3d4d4e1fcdab5bb9c918db9f432c39857d5097684e", + "0x00273c19acfdcf312bb769a81f9b6800867c29ab8cb59d7b6f0037eb4f740650", + "0x00172938cc1a9c224611786e6f5df1a451f2ff57a4b9772e6c879dd602a798bb", + "0x0002c00f4e0ceb3727d8920c96a82e138d33eaa5c35bee01f8541b06540aa239", + "0x003b7b5a1b2fb3ba44db5c298b17f5f12e47c773f45e144fb37d1583b9097832", + "0x00740fcb171aac54214d88e186a4d7afb33d60b43fe26d35150b4252091e901b", + "0x000b2ab4256c9324b59f738b29b5b3576c47f10b65e4ae872dd7b68f8ec65f64", + "0x00f9f7a388718fb7a990428517f13b89de6f4065428d26663f2eb64422fd816b", + "0x00d9e29541a05cfd231906a6e7a8126f5e9c6c5431988077a487fdc098201d5a", + "0x00c8a9e9e1066739843dbafc880fd76693d3ec73cf07449ec8d99763af0cd7f5", + "0x00b87a37cd38120707eb1da91784e403bf7c72ede47e930492bc31a257a83d40", + "0x00e129a9b4348520413fa9399fe0b59c687ea8f49ffafd30a3475f001703a2f6", + "0x007914c6670741e9997c050f6ac3503ff38d9581fefcc0f2b5052db85ba0fa1b", + "0x00debdccc69ad9eb482ee48f4dd5493aac1b0dbcea55f4ab084610cd4cc8fbdd", + "0x0043b1036737039b4133e428f08b1d1c2dc392b886e66db380cec68aa7233f12", + "0x000061e2b50b17b4dfd2d0563ab7154e9de4d07d565a28f838d4602e96c6ef5a", + "0x00069c3da40ff80214235863bf4926ea85239ed5008fd0f9d71285be54f26865", + "0x00eb8e11a8e8afc7612de77a2d1d9d514a9e5276467d9b84fa631af2c492dd0b", + "0x00f1bc9ec7bc2d5ccdd0eebfb2a9e5c7a8b197b8fbe26d4dd01c6a5e1762f372", + "0x006716c2650d278fe9cceeef038100415c0571b972e2c37a878dc6d12103187a", + "0x00200db92f5b9de9e2b154b030d058d3d6976448165d463003423ea47161fce2", + "0x00d50da1010862c72a67f42302d09de6bf910f62f4100dd8322d88c0a4ba43aa", + "0x00483d86ebbb6d8b0b72e1d902bb86e783263391f48e0d01ac6f912550793fd2", + "0x00ba77adcc1ed34d7514cfa092823f1d10a567e3117ae87981719505ee04d20e", + "0x00a09661bb4a0a1faae599bb06b923c839648f7720ba15dd29e1a123bf658230", + "0x003ff6898ff8116db9b67b06bd58e343c344913c5db35803436210b17297ee33", + "0x0050282a8cc8b8d3583988165456c65f508e0697d0cb693867a424444c6e9da1", + "0x0032978da231cf050db59fdff5c744bc9d0003313926b755686b3955db53a557", + "0x00d6d09401964eae3f7bcacd4f640c60b4a9d73993ada5db53b54218c5964132", + "0x00c498a0172d4515b1e4728861001ed912a90643d363655954c03663bab6314c", + "0x00b9e625869bd3d1fa14641c9e877f79fa5476b5d566b0a2c528cb7280051e66", + "0x00b9ceceea9ce5cf0c97ed888b45131b3ba438b2ac77ae722af503e60b4d386b", + "0x003a1c9a7be74c79f3fb9da29e8aa4b847b05b8f859ddd835397dc3496dc8791", + "0x0075e26d382f7281bb53e47af102766ed22e1d898f66f310a932fb31898aee08", + "0x0095b64ae0a7d0ab8ccc1a950ab1eb6221b538974ef6c85158c11961730987b5", + "0x00acafc532440a7f144f179c99146ffc049aa9e95be2ed57351e31d6667957df", + "0x008d3e52108a4af4e66b5123b38a858a785baff2e3ba97474cce653d10ae6944", + "0x000ecd4c867cf3b097d3dd1d6f4a643bb5f78c423c9a5ac8f4f191d046d14103", + "0x00b1473e67289d9b53881da65d266d3404e66b77f2b099a28301a4c331f0b818", + "0x006d3357439ee0195b9767ae6860b1b7fb0c9fa7d6e5ce2a2c384b933e83e1b3", + "0x00ad1b7ba993b96039af2ad5c205665bbb6b54ba8d0870e86af9d2b10d0dd47d", + "0x00cb38c9be97240266815bda2452a82b2c03de2c4b597c98ff1bfd5779b0db2f", + "0x0062a7b048b61c9c38e7e057dcb000fec42a83f680218e5c3e025c1730426a6b", + "0x006359482ff0bf162fd7dacd5927ea6afc35b862959fab86072047e4e1a349c8", + "0x0012c20d5888f974a1a2cb72a816941486f5476bab3e684f6d3bf9beae51ac97", + "0x00c6cbedf93ad4caae7bdea34a3d54143037f3a57e19c951d31801fb9aa2d7f0", + "0x0093f2627b00b5886f5f793bda1179658e1b976a80266b4d0e89db309b014c72", + "0x00688e1d7465900ebc36d5fb74935e335351199a4d93bc6bb6d2dcb2d8b5dd08", + "0x0046b4559da2b062fd2a8c8528086a22b4634b21859869f4782e2156373f1365", + "0x003bdb5acf0d9ae84b09ff0342905b9cab7ee4b61aa988f1b357d3ef0646093d", + "0x008ab21627565967508d22f5a97ddb80dbbbd30996876cee41dde8e7e3d3b768", + "0x0059c9b093925736598b47ad83e24c2349e124444c5af47a964094adc851008f", + "0x00ffee82869cf12131e64edeebdea9b83c9e8d895ccbcf103824d2bdb72f0890", + "0x00353a205694692f01f28255b9b996d548c98919836bc783336d3a4cb3895c4c", + "0x004672d0f6183cf26cc8c1e68ef19c37aa81698df7c10378fd5f08f5528bdb09", + "0x00f603e52d7f7c5a2ac2a9d607ee8c1390ffe2e37761dbc34e44d49c92c4339c", + "0x00a7a6c3d707564c9d64ed4ebd3d07d64f50f0da69901112b25b0364ca254658", + "0x009cc05ee6d4a63c30e508cbbcdcdaeed5a92ee722ca62e06941f58670f5aaa8", + "0x0012ce03d47940a151fb6d03fa32c782cec38972d0d8c7362e58b894efbf174f", + "0x00c89182d687ae49c5d1a29a61769fd0650182638675201600118f8497ddf8d9", + "0x009f1587dfe4f203e9a5d21b8c8b1575f6509e9b3ad5a1dff1787a47bbff02a9", + "0x0052fbc03951ddae00023de95db39564b9dbb1e0dcc8ff82c8eb1e9953068b2b", + "0x0091fe7b61465d976137f200ae6d359c67d51c16e8daaed024706a9fada8ca79", + "0x00659e70ce8d6d20f968415ddba786dfe8237fa3d4bf280199c8c3f4eeda9537", + "0x00366aad48922753891c2796dcf21d9674426e62c186d402ea4724d13879e4c3", + "0x0016059cbdb1fcbe0460a17d6570fc21a6d0046ebe3b4d9cea42c7358dd68798", + "0x0034ad88b01157f2f9bd73e08a1b688e0df057a552b10a5b0ee4313cf6118a3a", + "0x00b0dd69ec5a1c2bf70e1485051317cd4f672a773e2ee12f9d7b764bf50eab2d", + "0x00d29d56a034ff6a885847830ec3b725512eddc97429fdcd18028b04348276be", + "0x00caf4119f836ad771d4b1bd231b9c47f460aa6f745796e92d37b0a076a2d87c", + "0x00f225e062fc55fba056ce4ee125ac6f8b11b3550042323a21e42abb4fcd6e1a", + "0x0046af97fcf056495bc16838b9608174647a96e822496d29e1f1cb0a47e9025e", + "0x00af33f852394a08fd37a6806ce2aa8710bd8e73627c67b95028e5918a7bab84", + "0x00ef68cbb361b6fa9e2e6482aab5c863be67fdc4a5acc53297af36420da6cff8", + "0x0099c8bbe15f85c1c07fbe69758cfd1fb985bb02c07a1179e2304aefd2c0233e", + "0x00919aa495cb32822014ef7133bd274a0b3cc62c7d23568082417ebd90c5228d", + "0x005f806bbf51458332182bc208aa356f95eb2218ecd0f4deb93ba5528fcb8791", + "0x005f354ce252f487352f5f9ed276c16cccb79c7e553e699496a16a1fcd66fedb", + "0x0065613629e2160bbea731bc33485ff8416cefc43723111625780600c8b63380", + "0x005a4ac7e28c2fc8298160a3e2521192a0108d1bbe0b93490b94412573f70456", + "0x00c79511b72774a80317228e3800c186315c44acfcace369722fa31fc02be2f5", + "0x003b0267d9bda413455e8a5dd63ace8e4aa71f4d3ea43f518220ff27b1903472", + "0x0062b8a5e60fa6e40dd2e4a67cc06a2a7934a47fc52f92f02cfb99f98108be69", + "0x003aab0643462e5ef07327db96c1405f849a70c908b030f1c5157930a93089b3", + "0x00c312a4d7ec71202972601d26606f697c3b32623db3f99ba78badf417c1ce25", + "0x00246b4a0c75cd4c9cebe4a7b407a9d2dde7b026e8ef719003aea0fd98f5a153", + "0x000d83f94e18077b93691403ffa005e8ac61d5cadb0ff774953aa80df6bf67e8", + "0x004ca8be7e92a02e2aff36145ed666f8a4e3e6ac74f441314e20559525820c75", + "0x00e56fcd9cff1cb8f57caa547678db6de11f2d16d663fc071ca40b54f7cb10cf", + "0x0006c59558c3731de09a982f6aee31cbc8bea1fd6e023eefdbe44d35131a72fb", + "0x009be192a58580daa2542a089ea4d5e5f1acdbc152eb87a63f779757eec69944", + "0x00f4c1c242d731eea3fb28b97b07d8c02d27d90e4c6170bfed0d95dec2e8b6cb", + "0x000b36cf26963489d4f88d732af6e25bf6931a9550f13be688924dae9191fc43", + "0x0054e81f2b75ae2de79c21f4fc8c736256dd904214eb0b82b0f23ab51b44c048", + "0x004a3ab8e5d3ec9219bef1676a2683769dd7d5c56ae6cb70c0dd7da78978bcf4", + "0x00e6704e668830bb91cd14a21e43c17b24a9b78e47679d50c5cf4ef8063518cf", + "0x00a9603a28362ed8bb6454d02f87f7e4d52a19193327038eb368ea51bdb7056c", + "0x007b581ec75ddaed364ff63ed3fc8396ed50927c6b965b3fa099d9ad4f2428dd", + "0x00b58f4ffbb9e08d40968eb42c4b73407d659dd2ab2e34623c3396bae549afc4", + "0x00a691fc18f276f7a1a7c2c03aa58711a7aac1f739c4d51eac92cab2b27ae833", + "0x00acd9cb43cb43b7f71c210c6d5e1b6fd09c7abd6bf6123eee63734cf5ff710f", + "0x002b3e897e4af2cf5de8987eec8a7e74c6421e6833046aa007f1b475bbffd681", + "0x00e7858229fbf64651c721c82d4c928d8bab600ded13b575595334ee2573a68c", + "0x0053f0a8549c73abb0d167c3393660d312df8c49552216433e918351ea7f1e4f", + "0x0031e7807664300d9204746d0951ed870606d66d0c38fb82e6bd95e763c91444", + "0x00895c804a2d28f457c5df30f94daf979ac772a1361852322154fe63e500d67d", + "0x008bf53fbf54f744c3698f6dfd8423e2dfe92efc1581d76c67623679f5dada74", + "0x009d30e2317694e2226f73340ca18a7c0bf11bd83cfc6ca3c11badbfea4de72f", + "0x00f69eefa81dfdcf5a5854fe309b82d6652a0384d5306a627e7f328aed1a0dad", + "0x0002342d56ff42d0b7f27074aff8f2c3cce432d74b369e0d56323cf3a5d28a82", + "0x005d4c467bf57ccd3070e68d9ff882e32183a1fb7d987530b927e36cc50e814f", + "0x0011bfe92c87485726474e93760196bfb41e39c9fd059e6828b399220425bc6f", + "0x001d614fa85775cf4604e46ced721ff3dea85c16c313fec986c06225949f726e", + "0x00682cf086fbf7bae6a822edeefd87f9de02c17418731f3accf8d1ca430e64c7", + "0x009375681a08171c850b3b1438c77193c79239ee7633571501e9eefb895797bf", + "0x00d1b853d268dd4d34d888783aa76b4f5e877546576be9d595a0a32d30e3e101", + "0x006d44f42c8b36fc19cf618e2d6c9f2b7bc21517d434b63185bb488b7aecb14b", + "0x0097879ee22b593d763e8795d11983cc8d4a257ac334000df055cc98a7feb0cf", + "0x009b1fe093ce4c0646d9dcc4204ba6927321bec697a639a73a1b68f7cccd6d80", + "0x00fb44950688cf1861e3debdf190453625ec1822639e06cb09035636d0061eb6", + "0x0031846d2542181e4cbe5f81b83775b8034bb2f0d5c4883ecc3b9b435aa97ac1", + "0x00cf54c5618c393dc1da816893bd3e5c3977974df9c91d53f251075786b56a15", + "0x007a2e602d005fa43db026408eb70d698f791445a59c27b9f6e5c312e1d22865", + "0x0044ef39f57a94ef4d36d2b6ec54a7e53bd0ed3a4a49ab6edeca22c2671bfd38", + "0x0046be3680a78a3a362e9f065e653aca671fc8f1441bdd0c30165ad091e68971", + "0x0008e10380ed4cbe5305772418f16118dc8b774ac38e16dac7078f54dfa34b5a", + "0x0027b934aa46a1f45f114c1f74ad066f2aafc0d8799711a4613a912b03706e59", + "0x00d91ea80a2d2b390f2fbb5fb968ac5045dd74dd666901c52aea99e713d86045", + "0x0064664e3bbc00bfcc5b52fc28d12f3cf84f04c5808a056bfd03658c037761d2", + "0x009756552817155ea6a2cf36890f07f52f2ad51924d01a744b10f24732bb6223", + "0x00ea9c3044f570e0bb4011a9ff4ccea8cf8ddd953f3ddb98c5161b9f1a903684", + "0x00a7fc6d18f15d6e2029359d629fcc5c649355b829473a7f3a6266bad59c49b6", + "0x0053cecada22081d9fef1686acf52a1669cdf0567edb7e1b627e98236d076c59", + "0x00f7dff069625bffb01ccaf1bb2c69e93e3d0af6dff26e040aca5f8be7fb215e", + "0x00444bc549b011b58b89ff08905ff77cb938b0b701448901cc6ae24b5e02e1d0", + "0x0007672210b5480431cfcb39d079a99ad4989f1575830ac18c2b0aefa24b36f1", + "0x004367ef682beeb588f6aab55d863db87fb9f71cd5fbd3f0c970432bc47dd30c", + "0x008cbfcab5f4ce5432f1e1f8b847c42f20c673c863b952165c8bc72b068dbb81", + "0x00f1f3ddc197e6601a4d014a825cf761493bf7aca35c1f067690b33626d5f19b", + "0x0083cc8e8c60f6e38be34c0fc18baa585e45523d3324b899d6137bce29ef5254", + "0x00b1f42b08ab9487dd8f9fb718d8348ef73c9e8c276d160e780dfe34dffebf1b", + "0x009d01117f66e9025549bfce86921799fbcc7773550e22c70c1dd52b0430ed89", + "0x00f57455dcbc1a1ba29c49edd4f5b39035d1027618324d170cdc5ef701a3d81d", + "0x000d417c2a7dd25cd689052bd8614f0d2f756f8d7931be3142d7f172284031a3", + "0x0081fb2321af8e2e9924fe24cf5e07245f2fbbf3e71a446ff4890084214e887c", + "0x008258fe59b3591e0767837f506b5923af6a4ad158595bc3780be67a558f5f42", + "0x00a2ab01230306d1e31a7d9e0cea83949c6815c8b13cf1bd51acbc9f4fbd2ace", + "0x00871d86dfdfd6e0674c42cff2f7211cac260fa9eca458f538a28588894b5492", + "0x00a64044e3b8e80dd6d036e61027ed712e4ccf670588f7611cd3efa2af889c07", + "0x00a9acbf9b03eb0d0ff8aa3a480803cf0f8ac807a071afdb22b71acc79e1a81e", + "0x008ed4839ebe91dc8f2d59af88460db13041830c9901287cdefc486b843adc4c", + "0x003565858986942fda1364045c562c451642e2c3b88bb403b82002de19b2b746", + "0x0025ee6fd1cd2fdc9efffd3491f5d97b5bb5a3a4e01b8d96951ac516ac9ede99", + "0x00734fab5a06f6d0c41988be360f03b1e612820c65775fb219054bd2dabccf59", + "0x0003fc67c31ce160537240d7fd0a0cf2ad8adfc73e6d0b3b2ebbae7dce7419c7", + "0x008e2f3ebea619e653b2186006ff7b68de7eff8d8761ad0c866aab4735ee070f", + "0x003a43e8fcf98002d18b448fe9aaf2ff4b4485ab7e7cd7d5e1def524009f4cb6", + "0x0082b8609486d5375a879312595cf5362d635b717583f55b751abc872f6d996c", + "0x005347f23b631b37eeadf4f2fbec364a3ef2ca4e7e843799ed416c7a1d7549c6", + "0x0091e80da50a6359ae4103d6dda8891ba6fde4d4ede34f0b62d8672aa1fdf209", + "0x009d14e1c5b2a9c516693c4d28f1c477b878b33a8108af6c89d9da44bed73ff0", + "0x00fa7d1404be5993b26973c378f2194d276346b6cd3de9da0b52a9ee67e86b9e", + "0x007ca2e742cacaf6a2b89543e5fab1aadecf881dd619849c4a2ad405bfb48ab3", + "0x00886692d67ff694c7762c4593b65f5c818f4520d0937025a415779d16fe7c44", + "0x00bbdf9493fb21b42066c0464eba58282e59a3126cf816f1f64225eb2ebf8fb7", + "0x00de22e755628ea0d7db6f37c8397a39e9110c9932fc011e539975ca3157230f", + "0x00de36ff193e9d8b329e4c00931d93b51399ef5ff20da06f6c1d45ee64109dfc", + "0x00418b6f8f3d7bf373a950eba2591f9bdf5b8767e9c3683901e663f9da15b517", + "0x000b89e2ee452869bb417f72abbd8e7d4591aedecbd40a9d56db52e5b73dc1a3", + "0x00142bdc1823e9755426bc792751697070681e78793fb38b74fca03eff370072", + "0x0031091ab63e74ba33e9aa37496bcd6edb401e6c4ab962505b98b829311ee079", + "0x005fb01e4e3cbe3960d0ee7232ac90c43d7fbecde937f6b535543ce7fc73d478", + "0x0004dc31b0aac10682a7ed0ed00a08412cbc7b714408c55457e5e9f1cdd0d38b", + "0x0091cd594574c532b4b6cae08893f5bdd93f8d00d61b83f0faa4f5b685c1041c", + "0x00a3b25a3bc42b17bce00b9266f609641b42f0c56a29e4cbe4a5cbb606bbfe82", + "0x00a7923e12a6f6ea135d77d6916ab133d7fce54d9121e76d69e3157c54b7f34b", + "0x005e0d6f8fac0fc79264a4b4979c730a6be54a5d03b7cf7cef49667e322c21e1", + "0x0075e707b29077ee8335ae32bdefae3fa0a1092e2b2573229aa02b18c8494fb6", + "0x0092cd7208cb13064590e996fdf559921e491712eb79efc2f2aee62bd840f032", + "0x00e41b59268dc85d5a8417ba62a2e2cd60713b103da642ef31229cdb8aeb4637", + "0x00a231875b5cd661240b080d431795b4f8b6f7846708bfcd3e9f29fe8891112e", + "0x00785026f1406da1218bac833b37ac41de72c65f4a068d6d6fc3fc7118ea8da4", + "0x005842f8275057bb382df54d2f850e3ee81ace759eb0c251995c2fc2b5c1246a", + "0x00ac7cf4900812a1ac489ecc849968a31077970233b7151a14252468eaccfd44", + "0x00d492b7b617469c0b5ac41c26d09102bb6d90274ddf19e83c71187ef7224715", + "0x006f1bfd8aa9dc79eb7317c75ba65761df427da88370ca64ef7818daa24dab01", + "0x00fde70b070f72e61ca2cfcb63e01c4f3b0ed7ec23cf7ca0f43f49ea208c1cbe", + "0x00d2e232f75eabe6783926d219dc1fd2835e8f9ef8a8e0a4b96763228cbeb647", + "0x00ae82b311160c8dd8523171fd583e25f53790f845b6a3b741d30a37949bb04b", + "0x0026c7a9aad567d7ba53c38ebf0e8988c290454f272005dd38b64e7dd9b1f447", + "0x00ada56e2b2b832abaebbcc76179d7df41ec0131bedbca6b2f8bda4635e2d0f8", + "0x00cd789db0a014bb63a1dadbcff270789b4f71a9ba9e8937721faadac0024979", + "0x000474ba2967ecb473a91e4eb5129afe0b2b778541ff898fe4dc3b64d11f6eb5", + "0x002205929e2da504c5643fc3af69f137b267b817dcf261ccd7d4b47b441a477f", + "0x0061b446112347c5bbf6468a311a339cb6d823c166b44cfa0f7a68385de4a451", + "0x001686cd8dc9a7f1df69f033e13b8d85aaed7f8e84fc5893a0b3ddd10e53d574", + "0x00efe45212c31628a498a5cfa2cf82fd815661167aba137e69a202f8b94a8f61", + "0x00a3cd237c51c6f776d8410adefbd320397150dda4121fe8ddd64673fd9157d8", + "0x00f8bcf8a597d1a171c22d58b18b2c30dac1ffba5e6ea98434c2233a0b6aa1f7", + "0x0076916b64a6b83139a5033902ce7435dbfaa6a21890da93cab65af2d51a8a70", + "0x00d56eae038c7f5147d5e9882a6340a1867a604792acf8c5fd3855f8a4476408", + "0x005a0fe620ec4f3bc310860036806588b045f937c1b6eb5e09dcd1255addbd8f", + "0x003e7d9ddf7f881ba4bc9370db8354cfec5d474356837d7a9eca894610eb2229", + "0x005cd93555df94aa55a098aad11ec9481bb2740479510e89d3498a4c5cc216e3", + "0x00dbac506abfc9b23675dcf1bdf5043feafa0abed59173e77c65732538837a35", + "0x0066187b3c32b32bcd2fda3fd084f7c13d5e2250672e54f384b320f18b8d4ffa", + "0x00afcaf41ee26c9b2ff8ee209aa03810ca1d973387c3910a0f10bd668e25df91", + "0x0050ea812e20dc2e09f98ee867c2f78b55eb2a48ddacda89f35ddca25fa15305", + "0x00002aff435e62aed84020161ef16c001f24948a183a6c7335fbef7e6a0a9d91", + "0x00fadd00dc1b1a9d28e616ec8da4b09d7ab5014830cbc1777f22a39f21cfc551", + "0x00c7815a92599c4e90b742657f00c6b937cd80e2e137f33adbd24a440518a9c3", + "0x00fecd6e7f68dca505f32ba71c561974ba594e8847ce1065ecd4cbd85b3ec5c4", + "0x0060c6bea4ade41de26daf7a4ac3cee5b9c6d5373e977c98129aa37119a039eb", + "0x005f6415f643c02ed5afdaa670d639e7d53a071575db547432384baf5f20c5de", + "0x007fa62c20a3a385c133c3604d4fabd562e9d6f8d0e4a65104b968ddc5e21ac7", + "0x009a7806a99d6c4bb8d70a2e87314c6cc1decae6a51b7b77e518325f22f52a77", + "0x00015f4c3f0f6e619cfc1e5d154b3572096071d034677a27cc4cc9dad3913154", + "0x007e6eac46598ca003503caa3b935cfec26ef4730fdab2794ff791bc50974510", + "0x00be55ed0fe84943799486089076f52d6182aaa5f556b3519841e012c4904929", + "0x0093f18ee1c3d48728220408af58aaef47c7273eeac6967f48b607102a305ff2", + "0x00207406ad1816bab1125f1395fcd7545c30bbd6612691ccf7cbda1999a596e2", + "0x00f633d03ce56f4a39a419f8befbf0c87ef9af8b44ab9fd0ec5463a4212b5002", + "0x002eb719243acc84f2e90e0da7db622edccf418c5c0ccaee3cabfaaf5541f124", + "0x00f487b8317d38304fb9a8d2d05a6604ffbf3a9956b8b37d6fe018b205bb17be", + "0x00961effba22f503e68d9eb628892d4d465b472023bb76b0aaaebc738a06d64b", + "0x00fbd2049fd3cb6dd4008d73d7617d30834b441c5dc8673eb1f55598c3fb336e", + "0x00944bcee6583e3206675040848042922bbea1f4fb08a4877439d11038c42118", + "0x00447402cd774241ea5715d718a72c5e7678e527d6f8afef333eb57e2105e482", + "0x004d8be13349426bbc0382332c46a9c90d6b1d240179a01ffb0cc04f2f7ef0b8", + "0x00bd03e3ef61823a30064a62ad1a40eddc5de99467d3a0210a5509fc8303d65d", + "0x005344593483ec4a3ebaf6dace4f45d42db2fcd4312a180ba6256b939e8d1d27", + "0x007f4170ef9eb4c101297f922eb8781f99e020495805ca1454d06310a1e76d22", + "0x00336a29f2c80c49ebc215312db3577b95b228d848effd089fb9652ba50e97b6", + "0x0064ef2b06e5965659511970c42c2b8271e56b4caba73c253d324636b8c5f5d4", + "0x00355350f19de2a5f89a3ceab825e79b25522c3dbca3988a88fbb68af2ce038d", + "0x00505d758929c7fc0a816c133aa27edcebc7c08f896b91b8a9fd021325388da7", + "0x0070f29a552f491e6520cc33fe022798aad607dad5c0de094032772dbb2587b7", + "0x00c66c0883fb0c74b18404ba7ca22119a5e457e7e17519bdd7507cc1745f1361", + "0x0047268203492b3635614da28afe3269167b89fe83b6c7deac65d4900a3b6fc4", + "0x00e80f11e04f452092559fb278208e59995b4d8c7e9307189bbfaefc23e7ad4f", + "0x00c1114d67c808eca05bb381dafd49406a0063695445508dfa56042d627e0c3d", + "0x00e257e1d18cfdb0b4db49827d9d609c18550d66fe1e29af03718f68cb3874d4", + "0x00a34bec005b5b60285e17b552d19dd0414b49f620bdf76f1197f5132adac80f", + "0x002b65bf5edb9e57353b8e554b353d8f75db199b6acf55fbb98ad65f641a3bbb", + "0x00e4ebe606a4c28fba1ac2613bc9e19a3422c06b85c5c1285aafbcecfaeced06", + "0x00590c17e1a913e86b2b01341f5a2709f7cdecbc80a39cce30feca105941d5d8", + "0x00dd0bad74735a5b96a4bc5c760a4cb44e616cd0c41cdda1321f8662fb97b58b", + "0x00cf4467154a18d750a381e1d05391c6f6148f85544df12ebbe424a35bcb8319", + "0x00f2a2f1f427c0cb7eef5df769bb3843da48b49bcc2f07261f4cd2db1f7407b5", + "0x007cdeeb0d60bb2d6f604ae386eb76f9af3146da42daaf25574f71870eaa7fa1", + "0x006d35214225cf3d3beff76984839379ea4b170b0b096ef2ccd4f0664b025334", + "0x007324ce5c6e8fc2062819abc77fa8f26f5659923bd1383615f55975bc8afc47", + "0x004b1d06a85e29617a8457127154ee52e146d02e06b87dde7fb464c1eecaa903", + "0x00b30abdf900574986cb2c3a4ee2882123f4aa281c4f5c4e008ba1e43384f14b", + "0x0027a06c2c63516e00e33f7114f98ae903c2bdb229c8c408b12f145cd36a7016", + "0x00e0965a1b9b09aaba12f8aca3a1fb5d2cf248668381e4ed9f082ffdbf4c57fc", + "0x00eaf07994bdbe91ed512aa163dbde0b34b49593c2bb51635870443d820e2bb8", + "0x000bcaf7ab89b593b5555ec044f8966c897b47758f1b36dac13df0438b05ff10", + "0x0006db4bb658e9d0d0cf578126803c59238f97f1c61ccd9fe5c411a30e4a4eb2", + "0x00ea79e7a29b30d71597fd33a84a2762b3f3d36cc187d53c72be605dc3d5a5b9", + "0x00248a7b94dbb1066a16053095a707e4ca91a4473e554748c4d55c9da9971c33", + "0x00050233612c2e7ab804fc4b80c1d1ea6c9563a334b8767988a084f2d88a8403", + "0x0001747261f5ae6496689de4f2ad2abb6dccf732106ecd8f1b7c25932975710a", + "0x00d539465785a17f00f4d512c4dfdb1a6e3aa57a792e580bf4b819a1f8d1a5f4", + "0x0026f72d14af23a636f05d3ec3aaec0956b8995e82969e6b54abc90b49a7e4c2", + "0x008845b0a7d5dc77d4a9292140a91a56d9ce3638cc1ced30d974a38a3273e2cb", + "0x00d4654d2434492f73a61c97bc137b41a92e440f440982651b49760f136a0106", + "0x005a273026f08666daf770b905738e7a4b2c54f195a9151618bf629bbd094724", + "0x004bb886f88c9e7a9741056c887212b66bd615c9af50da2c74304c0aa4a9a87b", + "0x000df52edcedc8843497d3258fd13974035ac76050c2f3fedff9c631f909eece", + "0x003e05b10bbf2b46cd59389b099c65c9ee7b196ac9649f128dcdceca2bcce802", + "0x001b0e3407ec28e862c81353ac7a5053eda2d104dc17299cb3723f5de7d8f86f", + "0x00e35a37154da3c2b80f5cad7e088b4d9f01c27a732d8c19e5a74195b95cba90", + "0x008edb78308f253e8a54af5e263049a2090d4ca9b33c4873b3b1986d34665345", + "0x008540b2134a97a1834134f028a1acbe0988434c1efe61688da9a7729c12dff9", + "0x00d72ac0a2676b88ebfdbeb044c267fda939b66742fad8e17ef5e68b6d770563", + "0x00a41d99fba0bccd11c197d39d17bbe68e0ca1c3fb57fe10ef1cdc28760e7ab0", + "0x001aadde874076128715d22ce1e4a9dff84df43fa055ec938c12f2841809796b", + "0x006fbdb5d84b987b49a2901bf67ffe4d002eafdcda0c947d2b38229ac9913a00", + "0x00dbf4df53cd2d573b683854cc2da575c7c948e96e3cdac1d9242cb78943d36c", + "0x00809d310e7df7d6946b6dc2ba5c633976db0e2dfac2861c9348fe5ab86df063", + "0x000039e5d5a00265b56cd904c4a635710c3dda10f07efb1ffe73e560ffe7361b", + "0x00f2b67b32311c2e4f46476d80233c53c9e5f111e22d143c5d1a8be1eac43e50", + "0x00f09ecb348556767cd7ffcc91d7c14cb76e37e89b841ef18230b5c16a6ec213", + "0x001bf27dee5b990e884c6a318bd2dbff6656382a3ac22d937db21c01ee07dcee", + "0x00b50aaa06081379e0ee20ba1fb6fdc8883a11af3d1184696c18c289c1b59b62", + "0x00f8ba87297e0d23b20bb39f8c1d7c5e296ad945c7f5424309f5f845c98d3c22", + "0x000441e8cd0ef999152b5a688a9fd9678ce2dc9459cf8f26710af25ac00f7d1f", + "0x0001f5a228f06fa016264d85568e7421997147c1ba7cd30d2d53748b50fb79dc", + "0x00c103cc1f6474ebb90cb634b95df3600b73b9c6e129364ff40589689223100e", + "0x0060c8cd39b67dd5fa8f5882061e407468d16773f35df458e57dcadc988a24c7", + "0x005bc404482b86c4dfb11a004b09141b3c7279fc4ad0322a47119c5d52a020ad", + "0x006b01932b929008870f4b9b887b027efc4d337b8d7d2eee14aa59d6c7c6ccea", + "0x008c1c4aa8d1c3c1a635402b0cbf792128b365ff78074e024579c1ad93eb69c3", + "0x004c2a1065564c476a40c16c372add92f20530028f0ca70ef629d3e2286ae051", + "0x0061e55d5ed99763d1bd98666931f75726193e5b20a15298f07316ab56e01d14", + "0x0008dc94c4bc6ba24cf13c4d665f27faa1b78ae8f1a148257666e9e41ee6642f", + "0x00b09c990f3baa05de821adb704ac56d57e3ae4087686720aad8cca2a91a8a7f", + "0x005e454e28f4d53e17e58e474d5c9ea2c84ae5bc49923d3a477f875474df29d9", + "0x0079c9e7ea406cb9e684c4227b90b9204175761d2ba96a6759e7644945ed5940", + "0x00ec7ec6f999a642223643d2e119a7fb74d4c4cea5907cdc0c612bfd3e435c88", + "0x007df4172079fb2153be27674b57ed45a51eb85b761ff543adac30b207461985", + "0x005dcf998b032ee3a0fd94f704bcbad3e019e539ce8e8654a9e16e46ac95bab3", + "0x00fa6e5fbe1b6836590bab75e5c5dc74b8e400e1d94ffa2091963bd01fbaec02", + "0x0046e27590c93867e40778cb6f561d91ad5a26ca96e7444a2b62665d4a0ccb74", + "0x008710ef88a4373367075c8755841568b4a3969e0794c50b5eb99296205aed97", + "0x009bd991911cd80d023927d7ff0ff9e45a7090f03f7bb64b2fa98bef47e04309", + "0x00a644b55adb3a3b0769c7dcdfc518ca11672339221679a132fc38355cbff9d0", + "0x00ce13215b619474482dd82429c7c5e82615b5bbe0e9e35671dd7b5139fc5f8f", + "0x002a2a8b331189602598d343658535e77d5f1cff8d530a2149a04bb732fd4672", + "0x003b94ac3ff2f21568c2c4095d4ed3d148f18692cc165891efaa325b07ecaaa2", + "0x00d1094d6c7870142d9c824616e5bf950fd2628fc9f8fc0ea8915eb3ff79a852", + "0x00bb8c52e844b9f7c87dbfabcba6a227329398e4d6f73d29f4558a2a6bda7e8d", + "0x00b3946a109724f59e691562d7eeb7465c0620e730063233a3ced5a9d6a712f2", + "0x004dab849980a99651bda0783589ee11b9d50cd6d5376b7156d845307147ff4a", + "0x0079db9373901959e0d60f2c8669a9a642178097d1c5cd1e745fc59244eb22e5", + "0x0095ad66b9908c22c40ad06fe72fb7a92f3749b788c50a4044e4e8e8b2c066cb", + "0x0058b86e842a533f52f6315dac48cf386692779079af7af9482fc451cbe02209", + "0x009d00f2330263e701401953074fca6aa31d76236494e148e83be9e424555bdd", + "0x00ef697a6aa7f260d71c44623627dc76b599dd283be5b3e40c050a5cd78ec382", + "0x00c6bb8dcc3ca281b0a5689d329be337b07804f9643305cdc6642d51530fde4c", + "0x006e8724558717b26d23e9e1fd2eebb89899e444d4b8dcb94d7b89d46200a79f", + "0x00f5b5ecf124b9491afe398522b06d657484ae180a4d600dfed751e765e497e3", + "0x0051665f3d03f5e70dbd3e15226c54fbe1e45ff04b2a59783f215ef842240fa4", + "0x004a2a3b1a885f874583bf0b7dfe9b940b8b6c75461526354a476a69e762ba06", + "0x00c4098c0660073538b1517ed4c8e93c810c20f58bf8201a60765f8f56a48775", + "0x0080a6f3fdcd677766ea9fa6228f033845c6a81cf64c0149d668b97386ea921f", + "0x00dbcd24f987157ac8ff8fae42d5162765a5a488fa8cba53606a5ad269b7296d", + "0x009b0a81bedca4e32dae48eabd188f71968138a6b37e66311b9b9c42951d66cc", + "0x00aa91f9eebb0f019280baec4af2c79644988d4cc50dc472646a97150d58890b", + "0x006d1521236ba6424fba5f5f90acf774eef0e4a01df257a8d2b705662444d1cc", + "0x008ed05a1ea74a5abd18587ee86051e98d0b41d1f21f5f7c33ba52650d804a8a", + "0x0057b65b6466f70e168ec26c78f5af6607f5f27d56a7fb5d124119418ab8db81", + "0x00b2286cede8d666684ee4a114950879c5acc0726612d2b41f3f6a0fd839a58e", + "0x006088d38c66b13bc3980d2ca753cf1388b2576d3fe2f9ecd42c4a8fb7fd1f7e", + "0x00066b00e16b3a37257c567edec1f436d54ccf0c42c3925b8f02827daea0aaa4", + "0x007e1deac9140ff9fd29daf98a960b915e5495561fa17deaceb51dbbf33f5a6c", + "0x0014a38f9ec3b9ebfe865b4265287eb0ca92ba60463fe2f4aaeeecd393b9fdf8", + "0x00ac0dc06ac888d7a931eca045ad10697089610fad73d10dba58a154d87a9ead", + "0x002f21ec151d6e4e0edf4969ce8b71368d4982c6dee5999913676aec0df569fb", + "0x0094e15fce2968e52ebfefa617e6aa45ea628983f87e1f44f0948ffea350b769", + "0x0073c41a09b4a3d0a62620cd6703b27371b69420e90e6980bfb53f14591e1471", + "0x00f801950a7ccfa2267b06b74e7c5793a2ffb5722fdfbdde5d0be9dbe2604e35", + "0x00470e3312dc5f0391b5ef2c3f8c647d1c8ec908567fce07c9757ca3f644bc49", + "0x001a88a5835c86a3e1a016b4b3c5b8e3bc45acc8a9301098a275931a87260eab", + "0x00b57de84020ac5cb6a6d96cd67f6898e0f607d2eba36005423560a4dd44082b", + "0x00d7b3b544af61a2b8b030eb7bca84cd908194136484443f8fdc8bcb074977da", + "0x007d69279709682b5dc73c449cd7359a625973aa862af23fcda653424e78b502", + "0x00b2dae4d6691cefb8212816d7588a5246e522cdd48a9cad723e1964130b6b3c", + "0x00ac5300e15bf6a88ef54e6f5c6a53f97d0ff3f2c0f31a8f888642c73c0cf039", + "0x005b6753ece5400e0049433b08e253108f46ff1a277e4ddba4db640e8b181b03", + "0x00997f5699eb292e52792ff0e843e6ad5ba78a42a2f71953d1eab51b33ade858", + "0x00f56d1f4af278d5b0cff765bbed79724b7ff5a51fd357dfd0015af049a1a3fe", + "0x00b78980fbaa80fc0de189d7a8a76ac50c8eadec40878b1b60e81a7822463b81", + "0x002085192fed4b59f2ed68af2e9882cad2734e1eda318cbda201cf37def07754", + "0x001790c7a29fda7c84fca277ae573eda40f8778288fab350bd9e5a681b6d6875", + "0x00ac5d916aca1610c57319028265d779805aa1bdbeb5f51e6eebbc6fa39c45d1", + "0x00803eab65413eeed716c82576b562fe1fd5bd1b165dbc27a5b6c19a3409fdab", + "0x00c307ec7c72ebc8fd14d42ad1b24a1b1b5da6e1a8a5ea59600920479b616d0a", + "0x00abbac1c5e9f1f8e1285a77bddf7d97db4e546f6683d6eacbdcb57e67ac3a26", + "0x000a7ffa3c12ff39faeb5e2e243785f0d333785924d9ddad79845df160a96728", + "0x002da1b45e15b87ca7477483e1f9293a5978925a5bd659fc36306e95b290cca2", + "0x001f016069b1e32cc539c24715ccfd91e76afacb6c12a727f54314cbd2e54872", + "0x00e1cd49227fe1f4c664bc9b16bd6a102f2f784675989f6018265262563c00ea", + "0x00c7e1394900f424a937108deb0e0a5ee4b9eeebbbb39586feb4ce4c0793d4b2", + "0x00cbcdfa4a42809fbf3c8fcbc9ca810f742bfa1b04e292bb8dfa047a6d3b9311", + "0x0012a8ddde7787431d866255cdf46aa448edf095e041fa52cd3f2bf37549d8f7", + "0x00c09ceb59bc154af68ad2f304f2863d987a00cbffeaf52eec179503bfd3885f", + "0x005060937d4145d5d1211118cfba0d17aa0b311353745ff4983771b5419caca6", + "0x00a1a05f64e82349c31b008d9d84d9173cf244bfd6544b091ea53bd52dc55760", + "0x001da38a6cc1368a99e21533e980a7c005511bf2db2dcabf47a0f39f1de579c8", + "0x0040e9a303102a4cc4f7f87407b7f8bfa7b0bc8953e4c5f9d3f956955efed141", + "0x00e28d6cda92c2b8991b9d8a352b235cd2fbd2807356a38ac7cbda1930d47c71", + "0x0050366e820caa40167de288c1d88b04e3d7636387e426b58bcd286a0372014c", + "0x00471abe15519506319d78c2d68957b099776075a8644b0791dee13b2d9bdddc", + "0x00ede16942d1a83e8001a5a669b1be978631739c5ac151744c50b10c95be6f08", + "0x00c8e32ae25385a2d243ac66cd0f191c18eb61237bb4a2ff5690b4d9a9f70f04", + "0x0090602ea8334111b52972bf9e3a827f91f04d47bafa7bc0978d7fb5473bdea9", + "0x005d869ce78f851ecd5ed05121013c7966adcd6f64f4ed6781f749c331aec7b5", + "0x00af2a93f37f67205b394230a0689f05ee7ed2060873791ea4f636c31f89a7e3", + "0x0022fd95307ba823983af942f15fd8a48b8141deff8d2ea6582549e484ec8f2d", + "0x00622ee561e7ad5e873ec217a4b783fa4c866465c728437ba69ba4eaadc02242", + "0x00f99bc00f4237e87d3bca73f31f805ee8ea565259d9d463ec74f7194b48a6c2", + "0x00854935bea2fc4423efc1697df062deb258b0dd68940477c1e58aadcd73a21f", + "0x00711bc47c51422ab3b309bfacac738e210514408a3460f3592e7a78412230e8", + "0x008a83d61799eaea5fb06876fdbe5ed6f0db26ad8d0e730477f3c331fdc099f1", + "0x00de5677f7fab865726cdc163f2d8726545073ce4852e7e524c44825161378d8", + "0x004be7a91d48d1f594d9bc38557db5a808e67ccab250ba8943c627916b8c94d0", + "0x0086132836a3fe925ea7388aa3bdef656bf84e744e43d466d2fa1fc90b5f1898", + "0x00d2b482db069c788c93725f0273dfc147521109a39cd127982cf57ffa0be02e", + "0x00d1b914d9ac5aa2f5d678f5d754d584d5fca16b9197eab4b1777ee5d4ad9fcb", + "0x00b2abbf2c750b6e81d02695b1effbc92a9ac7d8a5ad9cda3618eeb2bf843228", + "0x009b263d85f5d8a3544db01c62d9c0d4f86bf4578d4662ef06e62806434d379a", + "0x0068c199a529e110be043ec17fa9afeb066f4097d80e005009c1b1d0e3906e6d", + "0x00b1399af50fbf45a55e5a22b2b0f4726ef822caa33d8ca1442e0156b7e0975c", + "0x001b84dc88af7474d6cf13f903d97baff412a6357fc5fc16630a4b6bd4dcdb49", + "0x0023d8fc09c941822a5dcf30faa2a937c948b6262151d7b5d925abcfab772cc0", + "0x004cb9ff67fe37821a1602024938e1af51dfee823b995a075b17655886095954", + "0x00a489e6afb83c1ad1ac0232a6094ca2e83eed2a537ab6e0690c8e368d8f531b", + "0x00fd82fd1179b6f0536633d5a9061a433ba761eb11e8771064ea771c5bc2184b", + "0x000723f5ffb553c5b26c7f0bf2fbd68905f8bdc58b70a97d523ddf0210551943", + "0x003b1dd03b3ba0d91994f985452b6c1cc84771ae777c8d6cee826ce88af9fc87", + "0x0053a00a6a747950ddea90ef43e8adcdb62a8a2b7ec2a0e8bbb9ea1d264f31fb", + "0x00e18aca9fabada59060c22164fa94de05c223e752cb28a2119482a954f3bbf9", + "0x00af5fe22d801b69e41393484f75062a4ad72783779861773452c530a78a3e06", + "0x00ae6ba7a54a70699e709484bd390c9d4197bae3d848eddab873e36dcc6faa0c", + "0x00c5d6fbcd8717c18cad5cbc7f0ca66fea7d8fc9dd73afb067d3ea9e7b7aa466", + "0x00b5376c8e2ca00a90e5a72fb2a1d759831a32a3e841970a0a2e02fd0ce47795", + "0x00ff5e362cdc973ef833baf18217941f56af2cf125cde7869e4a546d176b52b5", + "0x00c5e1bdee8f3929fbc79120e3104259a7efcf595eca2e8a15adb9c3df5f5f4e", + "0x00961fb99ce2534f4a5824f7b5433643e182f22031892211cad23bd34add04e9", + "0x0053f424b5647e1f81426cb90e6f36d08eb8995fa8966457485a8a7bf7501ff7", + "0x005987657d0f0ac6876f4e40be8a70aaf4ad7d5d1bdbbb459ba4c136272e10da", + "0x00b9a06ce81f6de4859df8c1e3703aa34dde8d98f0f107258c7878a5fb45e3e9", + "0x00c1bc84e83a6a1ec20921b3f5d4f9e505b2793bfdd64827eb9056f24d644ee2", + "0x0061d849c526582afb01d93a117b3e90bd63942a1b1a83acb9a217de3bac25cc", + "0x00b2bf8e2f08581d048f766b8f9f6990b3f64d0cc63f15b8735f7e085c1e690e", + "0x0004c21b65efba34b1a100a977a0dfb15b773916cef88291fc2290f3fa0c2124", + "0x00916659f8bdc696a53eede9bf93af8b16372e0e9e02f455f466726176b959c1", + "0x0038be7fdf7c0ba4fd9ac8813ecf21c1c6cdac8d724fb716a49e763756191bb8", + "0x006f4c77917ff128fec577265010e81917f1fea0c21aa8b1c89644a40bd30b2f", + "0x0030a92297b858fb647c49ebed3240812a541013527c0d909738cb8ed8db8731", + "0x002e5936be2fa9e0d3567ef3b29f8730b1ab6e77dd205cec6b7f13a101c73637", + "0x005a6a21dbc38881199eefe6e27f91593b0290e0819486a57b21811ee3bbe76f", + "0x0001026906c6ed2179baf95c22fc5a046be2b536f07287909797a728433dfa3e", + "0x00339fd1db692a178f1d166940f5bb668eaa7677972e057a750481c15ac26add", + "0x00e331ded8fae6f3251bac0eba1a06fdcd45f6f0740a2e66ee1403efa57b5845", + "0x002d50dbd8fbf54109cf3cf0c7b18747172e61397732320be770aba20dfe740b", + "0x001bf88c92f686985f07782d3db50f7983dcbeaaef426cd9afc3d41fa84b6261", + "0x002ebc0edbd103d912d50ff188c463bed00d3024a85671b4b525f225755ba409", + "0x00e2229d96b5d4bff42ec4588334b7428d4e8aaf448a515811391b114ee71e11", + "0x00bcadf8ab6632eae7f161a7f029239bc303d4a9f2d80ed945c4c8cb74eaa33e", + "0x00d53a883f5b968f569913adc5b16c37b33f404813cb710e6d5805aa20465fb2", + "0x00e383b6e38e78428a495867207b9947b8e60d45d266dccbbe73bc17d812a7bb", + "0x001d340cb39cf01da01104504cec33108bb8bfda83a44d9ffbcfdc9b2fbe40cf", + "0x001e8f2f91463c85fbdf9d9d9bdf978af8d3fe7c937912dbf3e146b345c4a183", + "0x004e060520e9d59b77c4f4e93d8650a629cabe52ceb1e238f83cf039fdc6fbbe", + "0x0064b0bd51c91aba9ba5811010254df6976c8db152de37898cea6f06087a0ef6", + "0x001380aa300b01474b3f3005404b9a7ae3a88be753dc00e31ff43caec158366c", + "0x002e7db338a435a5b2927390769bd71a876b718d5879cf437102933956e9cb48", + "0x000835b512ea7ad8d2f4bec209cbf6aba63eab3cba4472d820753f809ccd731e", + "0x008fbdfa6aeb4b8ea4f5c38e20710409f6e8cfb27698cd0cc2051f282021fa7c", + "0x005c9204a682a0faeff5cf94978d1c97a77eef30054b926d9f176631fecf82af", + "0x00ca1a10175c3fcd9be67ab60539bb44f24f72535437430e0055ede4eb9c6d0c", + "0x00796722e949cee392cf4401ba03cb83b7e63a590d8e353b03e27140bb1e631e", + "0x000eb111cc32507d4767be680ce94b016974b6a57d1f2fc954faf8bbf393c8c4", + "0x006790170902a3e31e6c6f5a0e1b5286cbbc3dab07c8e8a997d0e62bbdb23c92", + "0x000e7f0d8361f28446f57a1c2013e7a05cc14e5760144302f23eec57725aa822", + "0x005c5fcc3b8c196266ea0cb3612a18141442437d2cc92e97509449b4c739dd9a", + "0x00072ec4c7cd66f850cae7909feea37539704d39ab4b05d01efac114cffd4efc", + "0x00e00d706193496b29ab06bc5d609968a27c58dc422c3a98c8b9573d92162b5e", + "0x0044bc96ba3eb8ce3e72405dc99d5b7909853db1ee5a157c266cc833938d4e71", + "0x00f54ecd37c091f9ab4f6b1a76578058ccd241413d80939c6176818964ea0a08", + "0x0044cb0092b838f281a886bbd4e1858bea13c3ac1bdfba237ec220877ae70fb9", + "0x00698e50e052c094812627359c23f19e677fbafca30a7b93033dd6b12773b97e", + "0x009f3c334f78d8bdb8051a6413d5b8041088a0eb84f6981d535fa70319af59ac", + "0x00448707c36d449e1b986a77644a67db72b8e18d05a3250080cbbe823352284a", + "0x00fc71c099ac89ba6a377bc8dc99d7e8cc5d87caef6232080a1fd78727aacef8", + "0x0060e293ac6eddddf2b0d201cdbe98505f2cdce7b95864193a0359035b3968a2", + "0x00c56b009c7210adfa5ad2a9bfafe16f4004b0a9fa788eabb9dec47c76168b70", + "0x0033b6a52bd75626e39dd0777991bbd0b8c547b2b439e207f691977dc0171c8f", + "0x00967c21a65882373f8192868ec152f971b6c077413bdc4e9c205fe8e6c457da", + "0x00ccbfd0b578fbf3e5496d876e227596d6fb1e9ac21031249cd5b0aa6ad6e5fb", + "0x00934d6ebfd9d70860f45cff5c1000ca449e95ffb008d221da9743cefff19ed7", + "0x00b61f78fcf0175510d7c8d3533d24a5eae23f7455573e424709c7475861d736", + "0x00dfcf8f96bdbfe464479e695c9eb662ac6c065405c7eec522acea0c0b65a19d", + "0x002d85d927434935b650de6b027aa5abf17fb243b73e5448cfe17fca62bab16f", + "0x00ea8282600f6e48d001b57d67ded11507d6fadd04d26d0b53628468668c5cfb", + "0x00ff92411d292ec1448c1f0da5f9b91c9402ecf09f45359795f0cf4ba90cb0a6", + "0x0023bc7e8f29a4e3fc17079b8881736e3410076536cf4a073917e7bba1923ddd", + "0x002e833f1d780e000221a269dba2fb8f776a0d506e7451854c1d7f3f1b5bd601", + "0x004b23287f3d900d177c66b06283a9e12679f9781852aa3f2fbf1501fc6bd8b9", + "0x00c8620616ffa49b9f0c1b3e2d57128b7bf691eff23f5e1aadd051c7ccb4157b", + "0x007df45faa0aed024b2cc95449dbd3c10243ff1e981200be14f617e151badfc3", + "0x00b90ece445b375194d5fbea5a8f97f5637d9ba569c63cdddc59bd7aaf111618", + "0x00b30dd4dc8de0f2a20f49b0e66711fe5b54d0ce80da680929d13cf9e5bc77e4", + "0x00e9881e745ff570c7fedc1f6329936a875c1c45f4ecd7377b685c47e25f83db", + "0x00831977d37d6fd0fb00bed8d50fa9c02baeaf056df225edb4c02993af545b16", + "0x0036d19ce233dfedc27d99e30f048ef43f5d1dcc08cfc2bb76273d123cd1aba8", + "0x005382b22b8ab7b93ceddd2b15819a6901c4f843bcc6b7ed515d2dd6262d04b2", + "0x0067a48695618e1c25fb63df96b367d9caa72b983fefc82f80de6f3eb0901427", + "0x00ada9d6b2bf69411d87da47feac29715b22e0009cc005885b5163526f37a3aa", + "0x00312b2b0b2c4e14a1ec11bfbeeef9d7a876d9ab768b375bdc47ec0e549cea85", + "0x00d25648d0ab43673667a9f16af5fba4fca451bd1694faadb2f9f28f754702b9", + "0x005b405afbe8221b8408bc832abaa72487fa29dcfa55fd92a024b81fd9f1087e", + "0x00c018cf8ffeaf681c5b542a8d492f8146ef6a8022ef43e68f1b3801f7a1e1c3", + "0x009214e3bd37ac00900cbfa928013dc9ab54ed20407ca6393d930e96d79ee441", + "0x002f952250889d25bf113db76f0fe7ca3aafb913ab58fe2a9e4ea780b5e0c726", + "0x0014305bb8b024981073be038cc02083e15a5428c4a184c4f88b5cf1a9272c64", + "0x001a14c530af7797a30b6a41889c7e06364e39b85370b582a8b743d49474c325", + "0x00d274002916f6d89ba631d06e172266114ffb601a6ed9f0391d08885f9338b8", + "0x00c6ccbb5d9b05326c4c0e00d4bd7bac5f7793ebde940548ef7dfa1654b9b4cd", + "0x00a9aea66e7b999252ac1d039cba9d75fdb4b2bfc1c5a966d0d344dd8422e7d7", + "0x009db7e325349512be689658342283f208ff37b820c08c99f944814141aaaa48", + "0x00488055f13446b133f78d280f798e2777b492c5a11a8b81346210e68ec9e0c1", + "0x004c359b7900134f2a9afc22082c7962c1bf0c73ab3bfab5ca4e50d5fa541ec2", + "0x00530957e8e3906a72969fca2f10cf99c6cfe6482b4cb7edd12aa384bf0f29b4", + "0x0099de066d0ac390e63a5462d1dc2b2ce556b84e79059884bee20afbc893d450", + "0x005ec6759ca20acf0b89b43fe9bca319a3877116f8db14bb6dbf60f4d32c16e5", + "0x003a53aeac9f9c08c84465e2111401750f596d8c67d8e1a87525ab06d708622b", + "0x006298ff9d0ccf80d0a6d66b4446b004bbd371e138e15ad17e637346c6cc8bcd", + "0x00c9f309e6be7bfd7157ebd907820b953bf61057f63daf200afc703476d40ade", + "0x00c6ad37d1a777d4ccca0aa1023ed53e2cdd446a711adb86cf03870e56f026c8", + "0x008c511027d532adb417970edc4ea88b75aa930718c5b5f5f4f8342474355abc", + "0x008c38302e2ccf5addcbf02a7d4c44e69c23359f2bf088d810d519423c338224", + "0x00d5aac7b2564d66f2eb646c5f3a4a58f254318ca09ce4830899685d765e7082", + "0x00cf1d04c528f21eb260d05b52067add4406606fd92b1e84c39cbfc6183847aa", + "0x0090d7468a47c9359990e49ab6322d037d9d28879b33da49af0661022bef30ba", + "0x00087cef2411f260aaf54ba1c1baf0d2767cd2a86b93502c9cc4d0562b8fac29", + "0x00f740eabd374d149a93840c904ed0bb01fe4b2e245a590283d37f767e25489a", + "0x00c555dfd899dacddd8adb94f1e1d9149fc1cab0ce8721f6847b0d9e715706e2", + "0x0046bded07fe118115881ee51ec7bc275c61a370119b3dea32dae2dbd269f667", + "0x001e8bab1d22f0d2e23ab9d3e9301f94d7567bedc6a649e670d404d49104c85e", + "0x00038f3654c462a70c36ce6bfc8b7d31cb4835aced4d3ff43a4745f5cfe70d01", + "0x002ad4ce3371739fc629c039f68da29ea4f79c93cbff1e8df5b4aa9505e338f3", + "0x0087332a25ae8ed86723ac652cb2e66cda302ed577fac78184e4050ff9abaaf1", + "0x005b6d6eb37cb4300e8cdd6fff2e5712f34db9627bccf340af758bce259834fc", + "0x00015557ef17d8873051efa6e77bec300d7fb178f28d5ea2a191da10d94fffd3", + "0x0033bdff4f77326f4a373206383cd342fc1f85569f171c82b7a05447815f1102", + "0x00d056477d241c45d38f12d3162e4be8447e65d00e884ce6685304b2c0708cff", + "0x006fac2f78f1eb42ab871fc5b1327dab34ba9c06395e57b6d11655734e2186f5", + "0x00b76af19cfbb92ff4d9ce88e9ce1645a238b76c28a03ed41c5882705e0e6445", + "0x00fd76da00b0a0478454841c82d4a64203486fbac31fa6d1a6c8d709364ac7d8", + "0x00475dcd92436d00d1c7cc3ccfd0db0933288262718fd71022e9636e235b1d1a", + "0x006539bda1d66a331b2f74d8674b00854b38083203fac7d44f8b293ed399b6d1", + "0x008d24897b70d630715f331182cdbbe51633e075e6637b016f9fdd09f87ac67f", + "0x001d756eddd84086abc69d7b77090f9a9fbbd609245548907affc8f0c91779cf", + "0x0080fdc9a0154c59c3a8e4b20cd502181c5b76eb1e51a4178e790d0f0573434c", + "0x00db4d93f671c9c9a6a625c2ad12c878e916c394659d03e4dce35ef946f42a91", + "0x000e1a91679f2b7bcbeb3bb3611485312bfc4fdb13840c0474923fe36e094607", + "0x00a74e3b03a2c182fe1e2260c0918111e761de3c2e631c3ce0c67a1de4328be1", + "0x00f27e752624baa3a89d97e262b667e4f90d5bb1897274f36cdb449893cec2c1", + "0x00405339af93a0f6c28da295d989f4af8dd4b3260fd95e51b9f9c2d871f98d46", + "0x009b1b072ccb33aea5a74cce9296d573cdb20486f2889da2e134ef7f89372f4e", + "0x00b86682c0327fd660ed1aa282598582db5026fb7d2916cd1624f3b7557d6504", + "0x00ddcde2b5073ff37b60f904a8dcc136b279d977fe5b4393a4e169a734054ef1", + "0x00b6ec301888aecea5a60be0754271d17631aed1d8229f6bfcefbea5f0b0bfad", + "0x00285588a2d129dfc90cad219a1153ad12b20784864a4ce6d5e4e604091ceb9f", + "0x0088eabfe59a74f91b495497de6e9ac33370d49505797d8004d714c8019fec6a", + "0x0087a1b2b9705a12dd7f688e3ced3405eef94e65f871a373d30fc7ee2a36efc9", + "0x00dfbccb2485e16525fabd3dc9f48b7e65cf8295723ba31beef0a5c2316ab742", + "0x0017e248fbc331e1d65d2cc3c3866c15e87a0c14f6f812b5796b47e70975ec8b", + "0x000209e4d28c6021db3ef577f5c8c6d3c4f72d8945034a6d73f506a718711ec6", + "0x0000ca8dca3354268703e2364e0ff5ddea3c137ddbe37b38ffffcb3a1965898d", + "0x00ae9090f1dacc8568967de567aee982ee4101abce041373370fc651426dc7d7", + "0x00a489457602f100a9ed15a52b75bebfd05f4ce9ca3a3bb82611697cfd52c97d", + "0x007d9f51b25b3a612d471f6f2f89cf622792672bbeb80b0b81a790612df7586c", + "0x00b2c4fb07e8fa804a56a2ba4b2362941ddbd2e317f777fd21e21282dcc0c9d5", + "0x000d0aaf34cb22395dfdc7fe9e23e1d902379bb6e3818b021e9700e1a528ed37", + "0x00a31a2cfd6f7c7a9249018d020b5f72cce539f8c979019ca07a24c8f1b35fda", + "0x00981251ba910b9563e5fb8987664473952392e2d69ce9a334c4a08eee6dd491", + "0x00769af65bf39f4cb0af6f11eed970643a6611a6fbf3f5e4c1c9a61bb9d06a0d", + "0x00fe001d88c7cecdb356208e763097661d6941a72da7c8bce85928e202eee3a3", + "0x00f31e1b2b9ba358ab9bf6e07dddc0ad224353210ddb3e20f1f8a55bd938fd0c", + "0x00df551dcc8e324329f5536593d0cc0e4a48579626610a6874094bad4bef0930", + "0x00cd6b63c959754f21446a211251dc47071ef8b0a184fead523708c094c2a081", + "0x00b54f5e0dbb93483b1acf8148f7b788fa212be7c591526d218f2b094019eb6e", + "0x00c2b29b500fde3c3cd1a62b20452a191a7f3fa3c11101cdd2dd34e0370fe447", + "0x009e0b0728ba6ab523ac8823aa75be6707196c8f36d14c07ee4ffdbea19c3aab", + "0x006b1ba34c40e75d12db2b91f9b1149e5609e88eb229d2627dc80a927ec79745", + "0x00cb0cea0ffa06816e36b87b6008fc158b052fc965bb171215e7dea80a846255", + "0x006e230a2b4fa25e6a91ab8d05c8f0deb877ba0485264437cd698e87a0e9c20f", + "0x0061b2b7bb4c3a72cb39562ad92864545169754f03e0a4c8e215c1e09ff97546", + "0x008e34b6203fe504cc3b752ae09cec9faf1cd728359f4b3121528a1ecf8475ab", + "0x001b052eab47f0c80740cc8765348264543cae4e28beb8008f79eb5d563d383d", + "0x00beec101691e0b35e079f7a2ffb645fa2d4c30143c0d9642fab642671922c37", + "0x00e32a1c7b6d8e39e574221288017c74581efe62bfccf642cfc9bd48f99cabfd", + "0x0027677ded02816e35270d5908cef827de06dbb7b5011cdabeb4d7c9eacc9576", + "0x001bff2ff07a26bfb6a420b12c2eb1f594a581d8afa52773398809564fa64f49", + "0x00586531b6e81dc22baaa8685c65b40faacf8d9ba8fbfb49d201b8c9184e17e2", + "0x006cb9310dc30add1eeb53e0805d2881a197643b53a16fe9abd51d2463a732ca", + "0x00b2173e885496c2635bd8d01c2a656d550593e58ac42c01f6ae3143b00b917b", + "0x00b8d31703b9cecee688e9b8269528494d4356278049cb728387a6db4dd63cd8", + "0x00ad6874ec8e9e7c4fcfae2c9a1ac789e4fa2b157d961425e71b94f7e3767738", + "0x00006a1fc25a6724437743bf347ba1df58419a424a8a7fce6a80d1b67ef17360", + "0x008a4bfc34379f159d5849916a6bd5153f7a6b96a4e4b353c729727e3cb99ca6", + "0x00c5ceaba079daf27e46e2e8531f9dd486ec668cf2eeb79c0674f47ad419e12d", + "0x00ae629e19c91d527d4891af3c6975704ebcb9fddbe50759f8890556ebd40a43", + "0x002c6f39b505592722d68e8b6ac3554983017b5a11df946f422d6e75daf7b138", + "0x001f06b40d2e638626daadeaf3737ba8553e4053fa124291ab14215cec48c6aa", + "0x000620a81184590c6e525dc06ccc23e6765871d941fd0dc1d11dc7740e22abac", + "0x005de301b0cb9e77b31ea0b67386b8d1413f0f67cf53ef07ebcc12986111e156", + "0x0062ac1b4410554040b033c48578a99ba9e77413bca43ad7ae9f7c6293dd45a7", + "0x00d89333a512c2228060b91276bf31b7e090f785b18f0fadbc76641c49768ad4", + "0x006c35b8c87b3d2de51aa39f62cfa3f61f0dc7237472842a9c35e42da507a0a3", + "0x0041eb7e2fb820ff7129a68ed576f81139d043627dc2fe587178187bfc6b39c1", + "0x00caafd573446300dfa8363770fdac40cbd411eb0f1ceb10a9a557640a2b14a2", + "0x00ac1845436877413ccc20c763bb727f44e2e3b4479fa50622d64086cd5f6305", + "0x00bddb6cee590cd581ddd144707fca36a9c26352b75236d61dc0e2dd665a36a5", + "0x00ef63be5e9707779ea5e3d77bb559fd3c2281e205020701df747a3579bcfecd", + "0x004354711a13ac522b38f3ab7bcaa41f689d8d7dc56e8107543ce90fa2f5926c", + "0x002f33e0bc635fa1fffbba3693f2db59c300364c3407aac653f8a1d790f5841d", + "0x00434faa78e29c55098e5ed9c3b5d194347055b1ba606348ba6e31632ee9efba", + "0x00a53fba83042b054bc83c60069658b6cc7e72c95b8d88561d89e4c82256a1e6", + "0x00e962091c8544bbf9ffc785d7b33170ddced5b466825d2676e79ae00b71c275", + "0x00aea054af359a5837d7786c23db0ed406f646a3acaa66a94e6dc6bca3f53b2c", + "0x005caf66daf63f8050beca7a3e473370061d13bfbac582b11d6b53f897be3af0", + "0x00115ee7df2c1382450ea7cb63ac99e1f0a1af107cc2ecc9f39a872f70032163", + "0x004476f2bced609be719a13a4630826ae056ed8de010d66478fd6a0022b3c398", + "0x008891004fccd0a419820f797c9f99c63595b9395a8a32e8f3f3788bfa0f5386", + "0x00721613c245764685110c337f294c5b5ccded895b54c25e5b5b924cc0fe5bf8", + "0x00ecfd633e8364cdd38d2d6649a0423e30a1e3634008619cda51486f1d3aec9c", + "0x004151ebb6a2db8f240e090eaef8dc12f815ec51c972eda59ed95983102fe3a3", + "0x00a90632ec38914ecc9569bcca915ec6bc46dfbb06fd1ee8abe4409721de5471", + "0x007a61c5b8776bf4a9e867d0dde4cece96d005b577860513affa3a9a2f64e8c1", + "0x00dfdbb4093d092464e2abd2ba8c954246e1bfdb08cd89088acaac1c2d739c68", + "0x005fb59f1034d6d127ddc65116dce921fe5457dcd7b81cf67c0eaf9b1430d922", + "0x00d01e006eb82d83ecbfccbb40ac71b176d20aad78d5674968965c04357eb09a", + "0x00b15c9674698504f7385704076f7b261887b2ca46bd167c25ba9240086aa674", + "0x008f99b06f74780c408bdce64abe0bfe12490a116145edc0f2b86fc27e764a69", + "0x0056a44287ad1dfb17987969529904e6258fbe1d754f4f872eb2607de0a89a07", + "0x00d4a7cb9eda5358979fc4f086b8cacbe3648a528f9a617534fa771d975061eb", + "0x00728e221b96ab80081096c49ee89616edc1fee56a652b408c8189876ab19f79", + "0x005ddd95eafe8e196373450d52b5d1aab1621bd07f5cce6199a6f7f2e6f0f53c", + "0x00b1c0aa3b24ee685c79761909723d13946d89ab1315c5210fc157fb1c637ece", + "0x003e961bc97ed5989ed496066d5e48660897b85acbe65155b78899ea525389af", + "0x00d204dafb9a2cd8ce5e43f58401bb949c098560762a6d269505d2eb3ca537f7", + "0x00fe5bc89d30cfc3589ba485528006f4d2f58dc01821aae324b50823f33b582a", + "0x0011a24f90722b591defd2fc80be4ab02903a0f16b41dab56ef967fdccecbb5b", + "0x0032e95bc36885c4c40e68bf3720172be430c291fa22cb93bd22efed4c08ebcd", + "0x00845a0c95840685c90b0047f2096e919a979871d807f17a9c658beac41df778", + "0x0048297e61cf741150eab50e033f0951d5338e4b4811bf2661d95c07454019e3", + "0x00e641b7327e44ea8f4aad49887f369f99fe4a4b69871f659353f5028609c5a4", + "0x00e0e664c76a4edd0a8af92168f28cb4af2837e21a6d2aa4453df69882f0fe58", + "0x009a7b5945c673cb7cdb0952e11cfeeae7f5d9ba7049c2fce35825c0f3cde426", + "0x0050fce2f12d4ca7558f53645fb987ac3df2834832835b3b32dc5badd5a9e7eb", + "0x004c87566ecadb2f15476574c39daaec99a7a0c965e5bfe08b320c607edaf483", + "0x0051fb33b674ba21a8df9e986a46ef617ac886bd6256de5ce37631c9b74f7c47", + "0x004ef84767e3d851d668c04d3304ac4575bc7c784b7a1736655b17370482b2cc", + "0x00b4f67771320551b772b96636c0428f52e2aa96e589486f7b54ad6df6395f14", + "0x0073510c188a3e6ae21e6705ca3b04624043ba63cca9e68bfe77da2302b90729", + "0x00484c80a46e40b57998315e57e5424c3abc77e69f7a0fc22cd24c6390a3f05a", + "0x00a846102854faa667f63cbde301ad567e37b2922e82144ff6a0def2cafd0037", + "0x0040841233870523089ee9139a9fa7d829719349502a2cabc1a0d89a49a58e2c", + "0x0003915e004fbb90684e185e4451ba5439b2f55b3b15a8e185aae8811c55a3cb", + "0x00969801b21acd6a89b31ad6d098e528eea984905ad6d8c1297d0a91b2501960", + "0x00e80d9134ea309fa9f42b989812b005ff517f4615c04de0ebc796b444f4511b", + "0x0044d9a01a607fdde7b0041f4e7e46340da1081cd5b7c59e8398277a605df02e", + "0x00f01a83fac9a5c8a6ce678190c3904c564bd4fc6ba772cff8f15a1175e2a67a", + "0x00a0b3144b16c925bbe845d3b080c584059abdfa5b9c963a3d74f21c6c4ec28f", + "0x00e7801f97e492051d05c73ab7941242d713da089d36e880fa75a66bb5f57108", + "0x005aa6c46ebd8b271753ba38cbe0123a836f2713a4fcc122082e9426efd1e59e", + "0x001129e4bd75951aabffc4177369b63710fa6d05719a02bf7a9fb4e0ddd53c6d", + "0x00862efb5ee0e7dcc5317d1246eabdf09dc5e609231f96acc44b8153c4f52132", + "0x00dd8f8e5b1e27a6b3e5d194edb6b2edf48dfacdda5bc891fa163e1dff764675", + "0x00436baa2a22215a0471a79334ad550437fa41741d0c8ca570217d375c32e493", + "0x0009ed645eda8d1cf136499ae42cd61f5df1622241df9b126c1e88379ff4cee2", + "0x00babaf104ed6677e4faed72fb09f093fbfb4c701236696afcee9fa1ee99709e", + "0x0062035111e29f0f923e230b9a5f5387bdb63679e1281ea4b6bab345e2c67cc1", + "0x009042e41512b99f7e38e8b190b8ebc5fdfa86fdae8669d025d95631aeddac2e", + "0x00b2916abc52a5790145dcd7b6d4fd3d2c16f546b38576494966dc05b9c8a04f", + "0x004f22bb606ccbcc9d5ae68af1deb72998ff3cdc6ce7bce5283455de704ff121", + "0x00c1dc0b460cff590c6af64e413c8fa478a617ade4a05f7d10c000d599278b71", + "0x00e7c57e55dc2ddc08258b9728a4bd85dcc589fb460b9bbce7476ba0b0573a27", + "0x002d94f46ce658d24c94af2fc0690983e677640f5ee47f7ac9fab1c00e5a06b8", + "0x001ed36997a8ab718a6e94083ad636af0810fba7978495717c05095c9b7bb338", + "0x007bd25adf7c2e508d2604761c675b7c93c84b224c7403db0b992d34f0d2d667", + "0x00b8284cef6d206e5ade1aac14998cdfbd39b96e1ab2bc55355d8e9ac41b13fd", + "0x0026c8933013bb6e3ae94bc0fbd3d41a4d67ff9e58d6bfbd3f8eacd9a39d1275", + "0x00b371c959b47fd4cee87fd237a5229538f56e25a6422f4c07060d11479ff30e", + "0x00f679259869c99adb48be9497a6fcb664c9fc04750f7768e90e6493d2f41a6c", + "0x008b168da266198021793eec6752772d32f27ddac1ad2e7d55eb15ce7a1b974e", + "0x00431779c711849c65ca7744bed3925a1e2a002fb853a3beef835adfc7af1545", + "0x006a33d46592d24e2285d944ad1a55a4fafe01f137bff4ca1a93d4d1c507933e", + "0x00eea70bff50db17a50ab5fc2729cb11c3d9cf8bcf83637ebc915583fc94e03b", + "0x00b4da57268a34a4acd5c191f61655482fc50cb77860943c3951d20ba589f806", + "0x008d51fc9222eacecf4cd78ea393fbb6a153a7162a6fbf4ce55200082a66f504", + "0x004a5b04450c3d9262aabd4edaebb24c4367dd937b196f2b614f68dc6ae7ff6e", + "0x003023fe0ee6233071a61272306adeb6ad9951ecb5472bbafb2e6c1946de2ef5", + "0x005137ec32df713374cb6b7a36fa4dbe17f574f0cd00cd2e0d040817bbf3b9a1", + "0x00d39c64d1354b0947712c7c02c02ba22d4a3de0e61fdeb46f60170d360bd328", + "0x003515b41dc1d52d020b28bfd9ca3839c4eb01d56f45364df00da25b706978b4", + "0x001c7a6f9eca999cbf6a83d0090ef0bbdf7a129dc0cf3087cc9c8c3844a8fe9c", + "0x007d26dcf8ad62ac688fca21291a3ad17c2de9d5a60b423f6542221c41902165", + "0x001e7e727d45b7b5873726eaa511a5346eea73d82bbaa633e4c83f0d623859e4", + "0x0011cd589cc19d779a2ffb845f65fada6723d63ef35104ab5de67e77e42e21c9", + "0x008c984f39bd0880c690b370e6c54e22609e3caa39702b6cef4444a021470d92", + "0x0094b92d67850fef04822b62eaa134b1fe9595e5f79de38c2170d5379c61727d", + "0x0003fa017942130aaf7f4a55649f076a361c70f93a1e852f29716d511863f990", + "0x00faf69315843071dad92c67fc8fec73ce60311066ccaa86feaa65fe868691f1", + "0x00036da60be48d0dd1c3be859efba52f8f2e8d4a55e223f021fe63a0b9fb23c6", + "0x00c7bdcd3cd1150394659d0c42326aa0b64460df97ee7c834164645b5e8ca6d3", + "0x00f72ea560651454cea14232f57fa5c78033a8981de5af19a6679ff06357b40e", + "0x007245ac7eba04a45ac00c687b4e284fcaa2057eca5363eb8aef409e17e1de31", + "0x00b2ea4799ad851d14f07383372764e266359586beba456113673b9256b5d340", + "0x004c74090957222edb4902e12dbee162fa080831df7b26bb7412027b549a0f24", + "0x00554f29bf47193a12514a3e4d06018077d94d961a4a86ad04e19307d957ebf3", + "0x00cbfd46f46f581ad75df1b9791aeb448a05c2ff4ae4546efadae36f1c5bd76c", + "0x0003053bdfb6a3bfd7ce83fd3244e123387c53589a31576098fd17e74a49098d", + "0x00296ddbcbf9273deaaaa67751e3cbe6652b5815aa6bd872e55c51ebbda18df0", + "0x00321cd4b43a72754288bb7eb7b6e90145a5a114b702a32385268fdbd78efdf0", + "0x00ef7102763fb830838474b42a7d5d1033a4448a03f69e388fbfc47d5e3ca592", + "0x00a652eb5297bc8c5fdcb00e3890bd09d20a261fcaecf163b3795f6475f2ab53", + "0x008dd79022b793f55e18caacb7a50dd12b3bc28936d856df2fb16e3dd2873804", + "0x004c888889019ae1f88ce86a3831fa0e0154642ac1dc71055298cbb137ece17f", + "0x00750ecd695fd62c1f1d1b1c78734c14d646b084cee7bbecbf95f121f75fda4d", + "0x00c36d725240d9dfc7fae79cbbc0230b8ea438de42df96acb0e6be5b847f44ff", + "0x0080643dd477354b892a9ea535e5b3fde9efe11116a7a0f82728266c2f0ece89", + "0x000a23b15fd196d7c451501c8f2607109da4214866a70bffdb7ac2ffed2b231b", + "0x0075e953e50dee5d0577ed07737f22e8a3296f4b1122558b3be75008c28ee0dd", + "0x006737f161fb2296dc53fdb0094e4f79415622d4e5627745e0d13cb786bec265", + "0x00f309772e113c415cd58e64ee4ae4e9a61481b968179b3e0aac330ff604f75d", + "0x00fae7f6b8f95d06798f53a10a8b8f15f49d56affbe8a24fe370ce8ba5ff5dac", + "0x0036963088cb3587cc55ac50b1206b92e66415e11bb8a15d1912ea439bd9bc87", + "0x00e5f53d600b4ecb307dad2386df65b2765b95b77901236af0c026e7580b2059", + "0x00dc32bc274a0d246c50fb7de9e9e9391cf5e9c07484cb060e4598cf00050874", + "0x0028397dbaa85c85b413f2a0bce8c599c0b83d3eafa5f481579cc0d5626e5e5f", + "0x00f528c2a1ecbfb171f2b0dac378d390e9f270a74399612f41cbe9560177c3f7", + "0x00404ca7a34539876f75934bba47747a6cb8af7ca44c69f7c18cf8c6b574ecad", + "0x0051951c9700e6f1110d48b08694ad03b700df7ad99df994356458817eca3fd9", + "0x00583104ec7e4cb4f7f22807b4a34f048c19722e5c209ea84f77792af91b4bc3", + "0x00c13b203d2c1badd388d7b1e1555b607fc052657d91c597533e44632b22ef52", + "0x00839ced1892dcce1474b66444b64570a79019b3992aa35d85eb8ac64e3fba0d", + "0x00247c6fc8bf29e00869035883a72288024dad977d3aad0217fb13fa2e8077e6", + "0x003d02bc8f863217ae020ac467a3b9d783557876846b33438bcd022a4775dc08", + "0x00a2f5e36889d3812d9c82b6cdf0cfb9842a5d7a195516ad3d30c1cbc34ce08d", + "0x00ee7ee68028a8b0fc227aee7fc88f4dd4deeabe498db68ea1c2d6929d219dcf", + "0x002b68ab03a17a32d67c179e1185eeea7976658fbee800883fa766d488c8a555", + "0x00b0af6172134ddc6563d84ae0447f96d022432d4bf81bda589c9eca4e796008", + "0x00ff6607afc7e6438142451daab4a7f818f4a709f3b09a29f9be53d2683118df", + "0x006c0e98cbb7889ac0ebd0d730a92d6b33880bffe1bbdd893e5e6962f19a47d5", + "0x00fec12ea755363f08e15cd7d1d5c6e05d4692a04bbd8a73f0c27cd3396033d6", + "0x00fca451ddc0d2c92d48f767508f4033f8a50716b42a6e7a1937a08b2ac23c10", + "0x0081885b4da148bb0db8c713cc4e8ad6dc15b31a1b6e6e32ae51acac3b4e03fc", + "0x005444f751fc47c7365b000fdd986a31ccd93ad83df7cb932aedbd3ecda7bb87", + "0x008ae7014fc62820b696d0cbe0d582b58d55b483a18b0004f9b7a660252e4353", + "0x00a81999aa44537536a5603b920ef3ed29047a85b516bf30789adf17e4e4eb45", + "0x00e58500177da6587f2648b4949de0342289af1f702e5e2614a5378e365dd9bc", + "0x00c0bca1e6d67ca9172bd497c5a249a51e9bbfb803a3c6f721a07fd959f4b1d9", + "0x00319a0a90f968b92e4564289ad2060c72528e6fcbf45a55cb900308454ea63c", + "0x0091f21306f7909d385fdcc21d6f7bd86196d9e4e4ce91b7020a4ba9b9e1acfc", + "0x0070118bd2667edcec6c23f936d469d8f427e837f741403c88a9fcb44d14345d", + "0x0036a9fea5a59667bfbf729f0f98736aca9f38aac024c772c53c236c08ff1695", + "0x0036839b26863e8ccc7dee03486b2e47889e50920ffb34926179e60df4774170", + "0x00ef57bbad2af1007b2c5349daa2a203395b9b8197a8ecbd75207f363f121d1b", + "0x009af1e81e5fdb99a96fb920d51e5d5587d626f42f83dfccda39c74be2062206", + "0x0097854cc8c33c438610beda5588632ad12e59762ce03a557f9ba3e511912c37", + "0x001f92206bc0ceb894f6589a88233c0677f7f1480ce4f9b636651fd5bce00f02", + "0x00b77e4646758fc540dec5ae613f64880937d118150c328a954b73a264f41132", + "0x00922e73fe6cfc178dc276f16ccea9da38ff10ec3efe8063f198536be8193158", + "0x0006113e75071a2f0188b538cd0c03a7a3ab7cd2e52d4dc6426195ddcf071b90", + "0x00340c3cbb8006856bc78029e135f204cdea4e99ac10cb2eb8ba241cf9dd8208", + "0x001c34e3a30dfc6857c60e7dcaa034f326f2b1f0875979daf39aac47ff4dafeb", + "0x006abc60cbefc680037ebb435a3335b745ade4c71a7c42c17923996d94bd175f", + "0x001534347c66871490bd2604b7a2b7853c5eb9a896605a10401172c0b2a38d42", + "0x005f15eaa8cdeec9f8c67035de78ec997bb7984bd48321f9c285040f60ca0a19", + "0x009e998f54a269c7f6dc104d685df3b505c04efa483a4c191c04f5b2627a3714", + "0x00c78eafc584fbbc5ac18057c89e2482b6b9774fc1076e6f8a8ea9e96dd55a0c", + "0x002cb21696cb993e409cbce0482918ce9e4f8a3277e5e0f4e3467fe52a396e98", + "0x00c72b8764818a48e11211ee7f639f73c05038954408d1e040d9dcb0b159892e", + "0x00e2e6f69f68ce2019c43a5e47fd7c230297e46c12aaeb1943162cd506f71781", + "0x00bd2ff704bffa6809604d02bbd6df9afae46f36d17216a63df2e961855ce5a4", + "0x0006082282da1eb16e36e031af2b34f73c63279dd22ccb0bfac4b2e91d36fbcc", + "0x001ba7cc79cbca71d842516cb6ba80488e422b3676092d8a7909c8b1e25f526c", + "0x005c0e475aec20823089dffaebcc2329f0d83d9dc3cc35560d41e5f8fb62fbf3", + "0x004d08a0c5eef2c65f97a7c1bbe7ff37ebe2dc4f75c2d1f2db4ec37a0149970f", + "0x00f83943243874dde0c3cac1d34e2537069539b56788c3ba46dd690ad14f0e86", + "0x00b07b575732834b3ce2d8fc04694ad0cd69947da060176fc5e3ebe7efb4857f", + "0x00ed1eca61c56532f040110d9dd39cc8a7d9107295a77305d58bb757596b478b", + "0x00abf8c17c0ca8f15682bebd1e38900c2f3a37943aa05b6c9660ecfd9e213f79", + "0x00d5da12fc976140e90a1aa08790bede4f8e89bcbc05e511fa141dda17e2379a", + "0x002d4b7d144a63604a8b816bfb0fb142e25ee5849407a2c894df32af75eb3299", + "0x005277a9e1285ef327f7577990da26ecfb8b2343fb89cf2c0c24ec989e66fccb", + "0x00adb040e4e2de639a7551063232f450eccffa03f5db687c83721932904a9f93", + "0x00279dfc8176ccff7577ad95894f31192f8ffb80d6f37c4f26bf18f160f6c056", + "0x00b7b0829d3c1d068f6f54b6c260fc711763c5cfda470b05333dfff6b6b5e809", + "0x00989a361aded29cecf9c69914c7859da0d7e7b2aac02ef4b2a5851392eba387", + "0x009e2ecba49d539d25e67d2e3044882ed575519ec2acb20e386b17b8391ec9d6", + "0x00e7c9598442c2dd19039b84fddbdb24772c2c737b18c4bad473dd96fb76bbdf", + "0x00c22f77bfd8cea02eace4215216290cd8f97108475d9d5d2bbd9784020d8245", + "0x00de2bfb14e75d9dc9a9579b1a4fe7bfb1875448e6038c6683aafd0482b8421f", + "0x004c9a5d6b0685b8d8577151364368116c1868d5949d162c74e7b9c544c16d40", + "0x00a087f61a18cb188498b6fcdcb87e8b478f1de6ffeaf3b0eb971014c431a630", + "0x00f4b453f26bf46dd067f82308b800a9eb612d039014668f34f7b2133a269e79", + "0x0016d38bb6bc247b8cebc612834963bbf450773593dee31b286a286546bc689d", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4413,19 +4413,19 @@ contract_class_log_fields = [ ] [inputs.hiding_kernel_proof_data.public_inputs] - expiration_timestamp = "0x0000000000000000000000000000000000000000000000000000000069ff1b30" + expiration_timestamp = "0x000000000000000000000000000000000000000000000000000000006a076ebb" [inputs.hiding_kernel_proof_data.public_inputs.constants] - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" - protocol_contracts_hash = "0x0333160f082dfc02e255c756febac14dc42c4c88b882e0403d44710c1f0bb80f" + vk_tree_root = "0x115e00fed9b96e899daa4210aaf690c52c3fb9024f12ecfa6295969410d246a4" + protocol_contracts_hash = "0x10a32ead90905324604efd0afce0bd841a58c34206040eb4e259be5fe8b90de8" [inputs.hiding_kernel_proof_data.public_inputs.constants.anchor_block_header] - sponge_blob_hash = "0x13a1bf44c19e7c2eb7fc1a96527d072cf424bc99c760e392f4abcecc1fc597f8" + sponge_blob_hash = "0x0405650bcd6c8190a8745e3e230bacee32b200a3c78499712d0dbdc506b253b2" total_fees = "0x00000000000000000000000000000000000000000000000002b26ec5db7a7140" total_mana_used = "0x00000000000000000000000000000000000000000000000000000000000a3979" [inputs.hiding_kernel_proof_data.public_inputs.constants.anchor_block_header.last_archive] - root = "0x0d18996e508e8c1e51f6a56652cc5d71169450ff16c25de9af7f79af5385e334" + root = "0x1b254f482c3705906ac7ecb9fe7fd9ba918b9b9acabaea00de4c87f1ec9979c1" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000008" [inputs.hiding_kernel_proof_data.public_inputs.constants.anchor_block_header.state.l1_to_l2_message_tree] @@ -4433,26 +4433,26 @@ root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002000" [inputs.hiding_kernel_proof_data.public_inputs.constants.anchor_block_header.state.partial.note_hash_tree] -root = "0x1c223e428d6faa36822890e3b99417ddf73ffb069bf4c44b6ae9d7fc741733f6" +root = "0x0f62c40044b4da1bfaccdde9657a757e4f3389eca2f84f4e2b03d9e245d11d12" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000200" [inputs.hiding_kernel_proof_data.public_inputs.constants.anchor_block_header.state.partial.nullifier_tree] -root = "0x01c778a6b3dcb1245bb0aee174252dd95256e67309f952e5d2f8cbafffe20d0f" +root = "0x1c481d97b30d497993eba6f833bf868c9e78d745d674d7cfd4f498b78eb52ea9" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000280" [inputs.hiding_kernel_proof_data.public_inputs.constants.anchor_block_header.state.partial.public_data_tree] -root = "0x134e44df49ddb89525046d19bcfc2734c78e419994de9d6f7467eb84d02d1060" +root = "0x2cbd590d7f3ee096291de2bc3204f1072faba175a7a17368c5e2c384b470c61f" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [inputs.hiding_kernel_proof_data.public_inputs.constants.anchor_block_header.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x000000000000000000000000000000000000000000000000000000008cdefce3" block_number = "0x0000000000000000000000000000000000000000000000000000000000000008" slot_number = "0x0000000000000000000000000000000000000000000000000000000000000022" - timestamp = "0x0000000000000000000000000000000000000000000000000000000069fdd7c0" + timestamp = "0x000000000000000000000000000000000000000000000000000000006a062b4b" [inputs.hiding_kernel_proof_data.public_inputs.constants.anchor_block_header.global_variables.coinbase] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000003d0220de6fd33ed3481276c1954065244b2fa8d5" [inputs.hiding_kernel_proof_data.public_inputs.constants.anchor_block_header.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -4463,7 +4463,7 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.hiding_kernel_proof_data.public_inputs.constants.tx_context] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x000000000000000000000000000000000000000000000000000000008cdefce3" [inputs.hiding_kernel_proof_data.public_inputs.constants.tx_context.gas_settings.gas_limits] da_gas = "0x0000000000000000000000000000000000000000000000000000000000030000" @@ -4483,8 +4483,8 @@ fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000000000 [inputs.hiding_kernel_proof_data.public_inputs.end] note_hashes = [ - "0x2295fa9f079bf362a4f01c3b07d9f912f9b484e5ee527ad7a528025a165b9352", - "0x27f0738f58cf7f88e6845175913245e6f82475f464578de70619eceaff66402e", + "0x1f86d1e868030bc9ccf0465ea675d7dbaa99a296dab9a2407f5283b6f16f5c3f", + "0x0b58ce1ad0e046b142d2eed948abb7268753a6d7013159af59109b832189a0fe", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4549,9 +4549,9 @@ fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000000000 "0x0000000000000000000000000000000000000000000000000000000000000000" ] nullifiers = [ - "0x282b555a2f009837bd02f744ae119250934c991464481b5613f7f2112a615f7c", - "0x1567c8c1ff81dda9727361df23c92849c46772567aa0bf3723db03c3751e9d2e", - "0x1cb96ed0bfe97ed05e23f013062425e5ce6599fb6430b162e69edfc317d5bf82", + "0x0dc13cb16dbb5efc680f1b3795abd333ea2ea29dc746578d446e00e61f5a6996", + "0x18e242dbf19cf1d73b6df44bc2cb0f966b4f90fc85edacd4e5eddaacd781c52f", + "0x0e431d69bf2a57b8472d1a5def22c7435f4f209283d12e4fec21e4a42b0ace57", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4697,64 +4697,64 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [[inputs.hiding_kernel_proof_data.public_inputs.end.private_logs]] fields = [ - "0x2c3715409dc4762ec9a9a602d199ea9932d61edd3fd32c9891fe5ea5a722acde", - "0x10433733db106ed8336b9b799ec2debee9fe2da75f114f567eefde5abf9f74d3", - "0x17440c522b009a136c2207db86790b05464774690523c7fbf949ad381664d0ea", - "0x0a5e8928a4d74ad3256e8a697cfdf84b7baae32abad67b2de7c36ffd67acb665", - "0x0b1200621e156c6d79f463e17e81b96f11d18d716ca5222e7276e07d45845a26", - "0x04b2b64d09e487d10d557106046a94a97f2c40f4316e6667a2c2d9a99db05385", - "0x193da3d713c24b85e1c8f22dd8ef575e88d19c6732f8fd17e370cf64e65b3e04", - "0x08569203e8f3d028234ed200df77bca848c9b4b015ad8797c37669a5e5d1ee0c", - "0x13a9b2003409ad3d4f38caba797acc77092ddd431af25a955a83dc6f5b92cc93", - "0x16fece01bc0b0205bcbaca2904d5674d10573bfef038f94d3e5d526596da2ae9", - "0x0a438177a05071eaeb1862f154b187315de4dc804e275b0f2258baf4700c6d64", - "0x0959244a76e5e861ce5b8833101b91e19d758109d68cc174a6f9eec9c7afa008", - "0x03533d18a1c3ebcf22f820a243be161c9798ea59a506572e32e125c53b7aee7e", - "0x1e2b22ea302597bfcbcfdefcda48b60e35fce9c70f46c6cb90fa6db6e8d4dc6d", - "0x28fab93b8cd28d8d2a993badc3d1a080902feecfab019dc7c00af0ea9f6f403d", - "0x104c4c81c135af94af35a1eeb49b1262e5c53e25ee513731ddeb9f6496eea2ab" + "0x2b30819027606c83d38ed8186c9a5a5cab236ebe9ef9d9ff5a34e7c2dcecd97f", + "0x1aa7fd9c63e65f09668f80ac94b787d7971299eea34223c61cad5b52453ff891", + "0x0d9a68e365acae285fef93416045353a0f0a4602ec7fa602b6cd3e5d20e01231", + "0x105260a403e285c2087ffb282a0fad6a59f62607f189516f3196a1ef5911ff2e", + "0x22727637b94845ae480dfddb2224f479e164ea07c800d0ac850c36ec154a8875", + "0x2322397df354ebe1cd7385f4c7cbfddd427349fcc710a3a1107d190a848390e4", + "0x0e691b433e817cd7f8579e986a95ae19068398ca2fd38ea07e5d0349e375c0d1", + "0x1a3e6e39d30dc1841025609cb692a887fb30f436a25e2395018a5e472dfe2f47", + "0x10908074ff1c198d6dbf8c42439887a10d3eca94b4ca924359b3b58268223574", + "0x231a37810f081c28943041cb8025f054fefc43587ac431b3ddb57cb4f8f813a8", + "0x1389f79cd620064179359a113159aafbb6de31e9ebd2076e8c88a5964df14d80", + "0x1738f0845c729616685559a13832b44086a917e7cfb78466a743fba6c434897d", + "0x16bb7e7eb11ae0cfae88df7db19fea02febf23c2e3c18eff5b0b5d81beac1c88", + "0x09f77579231de67ac7fcbfa43d37922bd9207d688d760b9bb69353201cc022ca", + "0x18934f7f41f208034962d6bf8e9e7a139ee7944dad0cea0d3a3f13742d6bc341", + "0x2aa5c235875015d037be0d8ee1529224c629f6723481f56c4f93256759853d73" ] length = "0x0000000000000000000000000000000000000000000000000000000000000010" [[inputs.hiding_kernel_proof_data.public_inputs.end.private_logs]] fields = [ - "0x1b7f52b7a346b47077bab6835a0810e5d75e977fc3f3fbb0436055bcdaa167ee", - "0x2320e89fb76918e7dc48b13861302dbf78af5ba8d5a20da77d19781ac32b9bc2", - "0x2a99619c0d4d380dbc3d53d03ed35011aa9c296a507fabcf712f43a0e5a10850", - "0x02e5d98e7dfbe7653dafb14afddd7e00f403b5a60816d7ab961823bd3cc4b628", - "0x223b37d6caffe87e91cddafdf65c4f641a609ff13350d02654b0fed1443088ab", - "0x2846b9aa4544f8f8851554f5d0c189c188756d734112e1eedd6840c8aeb0e66f", - "0x21cda3f228d55fb1b37f2b7c7a5d42066007143db17645669521ff58956fa7bf", - "0x1d8d79951d7389e5f9dfa963f93e399aebaa346e9ce3b3a5da1b45e4600a1553", - "0x15eabc8ed921f60621fa4fa35214748a7593f1c06a1e66b76092f789b4960bc5", - "0x16babb28d68725cb64d6d7558d49fb921c480359488fcdfb5292019239a50563", - "0x015e561b49da425d081b87bac01336defa1e29ee50d01b7be798ac28e05b24d6", - "0x04bf1a23807cb0711511a6140caf195df55fcf029842652243034ae2ca740648", - "0x2789cc422a86395739004c513cf6a15024e3adf5f2e238b18e1b4f1211a9383a", - "0x00c4e950cfe804e8a3623fe768c82b7340b0216f93c00351c53e2144364cfb51", - "0x2fd9827b4118b7ef401dff1727785e46fdd31947d2e733f4b39076f43652c18a", - "0x158ca7fba6e7fa7b3eb7c062751182d93b4e36b5c77d2e609e246b810650e59e" + "0x1491868e5b7d0c470aee8a3d4dc5b192d231c40177afacd77baa611235262171", + "0x125714bea6f9dce352c199679a8b5a26f29a446843ab0d2d27638e53dc7fa3d9", + "0x13f6548984f27a2359c3fb9425ecd544745203c7e8210b7c647da3181c112ea8", + "0x2fb0acce009caf570ddae31423b79c1a5fd4de750fb069483cfe6cef92551ccb", + "0x02bcf57bf5ae43e2f4cba86050542f4af40b53a0816ae4ad547d95d927d4ebae", + "0x1c8d75c0eeaaa3dcedc92000a72ca5fe6e36ed1a7c5d224d90a3588260834ab3", + "0x0fe0a678a4a889c77f4c5c1acd98885aac6a054ab88fe3a82379ee1247bfc912", + "0x0c0102b88c3484da6c5bf4e816d1b149c29ef216dc369ca99e6710a053bf11ea", + "0x1adcf045ce496a50e160809678659311ba38a05976d598d6600d37144af5f69d", + "0x2e78fe47d01bd0483d9bdf32c773ecfe381b960cb3e18df875c176934092f61a", + "0x0e2bb7123f637b39c25b78343fffff4bff9d27ad9385b336044bca1ab9e0233a", + "0x055921bdf7bc041204b620ae9a35a450e1c30caf9c74c76c570710968ef42c37", + "0x25905c96c6c4fb1cc220d5d9c2dce2c8f962844fcc1f1e3598eb6acfe9eb5961", + "0x2fe9b256e86e2d83b8534d9160095d9c3aff177b8725655274dd9ce7658a0ece", + "0x17060a3c6d31a72f59d76deb26b409534db35c1b3923cef6c391605882176440", + "0x1f04bccaefa4b15b6d70befd3166133e3e931992bdcf8be80cf5d27cf273c325" ] length = "0x0000000000000000000000000000000000000000000000000000000000000010" [[inputs.hiding_kernel_proof_data.public_inputs.end.private_logs]] fields = [ - "0x07d20bd951900d3094f2894e3c76c117114e3150dc3197e9e325e42b4487c6e2", - "0x127157561e774918ba656738fb61ad37f92086431bd4f1e4842ab11928b0f8d2", - "0x2e5cf59c8f2eee7a06d14cdedb8fe58945357cb16f4c792094325909a12924b2", - "0x0e29376c31f2aa7a156c6ce6d1fc9529998251d8500604658f173ff86adffa98", - "0x20761b8be9a186cf6a1730b8a1e99049a07e45c005e66d27b6e0ef15a2833e2f", - "0x1adf679b2441cf3535241924a35164cf8309256721e3f9fcb860bc2acc462b46", - "0x06a613741497b7b7ee978a495bfed7d19bbf76c462d268cee17a3920b1b1abe0", - "0x10ade06e253c1cfd65f24246211fb703c157fd9b563ffaf6ab01b6fba4635155", - "0x2311c6b104555d4d9afc7d66be6b47a41f8aa96eb77f613a75fc952da5975ccf", - "0x08431c3838d7ad6198c1d33ff138953ace3520551bd95b69692609ee11ded216", - "0x1822c33cf8097138c896bb9f7aad7def909a6859d5e640919fd16ebcf153a0db", - "0x11203b31ef49d39fb85a5ea474116c334c156091ab468493a480f13ad1ec1849", - "0x207a4712bacadd2f631fe253cb62932a7acb586dd6dd1b10e0fbe733f61a8f11", - "0x2c862b0eb14b1325a0ca63dda4570f718541d998fb4aba96339b7913b80757c9", - "0x1bf17ee7d3cf2487dcf1eb7a3647b0920c9e68aacc0a33c9a424d4ee6601ded3", - "0x2c70c9b7da7d7df78fcae182d124d7041209070f76d920e5d5c2d7590c385ea1" + "0x0f50d61a2a0fe5665f1c283c34a4531710c1e000b1f383411a99859ee1ee4d53", + "0x13f26c630553de5906836b206accc8cf000329dc18088423a112235d96dbc3c9", + "0x2b120c9b4aaf7c91853ba9c2b8b7ed0d5b56822af2b7b8e56ca2d129237919e2", + "0x16d17b09f6a894b3121de46e0a2597d69dbd38dee282972f6414e12d9042e7a3", + "0x1b64dd0997d9fcd6b5f1a11aec27a3346079bd950fb8a0a25ff71eae435a2f54", + "0x2418ac619a391c7402e38eae1bec620f3bcd8dceff8d1d31649604ae0321878e", + "0x0f234f67156c5ab7b862153bb1da37312c17408ca8f7ba132847aeea3669a8b8", + "0x1051f1366644fd12a2c43a1322d54c2a6f68a8bc11109632974c9af81ad569f2", + "0x0e4fe72cf1dd72edfadb546476b086c7de9af10e9c156884b723ee287befda5b", + "0x0b1de4fab7bbbcf69b9e3bdb063ea9a65ceb1d90fcfc7c218e7934b804554883", + "0x102c2b2cd9cbb1318e810bb39247f640bae7d9be5a0ed0b2884f04f0cbc4bc2a", + "0x05b64dcdfb7475e9a898e8c1a07bf77e5598832b98d6518cd6c1d517d971cc7b", + "0x265a8fcf129a9525f28b2890191fd1efd04226615824e81820804b2cd999886c", + "0x0c5ae02353286e01a3e8ec3f6eefe1268c76d4c699e875d925930285e67a7de2", + "0x14a85a06e89b58306e221ae28d90f0a92764cb0ff669c9253e96476833d9bc34", + "0x2e3e4be4d0a1a7bebca612ae27855c4e31b9df05460d65ac5b664ee9dcf87e5e" ] length = "0x0000000000000000000000000000000000000000000000000000000000000010" @@ -6052,18 +6052,18 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" l2_gas = "0x000000000000000000000000000000000000000000000000000000000007d76c" [inputs.hiding_kernel_proof_data.public_inputs.fee_payer] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x004093295436e1581085b446326dceb0678c0fdee4aec1d441b23d0c941a4f2a" [inputs.hiding_kernel_proof_data.vk_data] leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000004" sibling_path = [ "0x242211eb4067563a1667c912cfa2492c7b8bcf5e2b97fde4d26fd9bef12ee5f8", - "0x0e20194c2fc70cf5d2006345608c9f5abc7cdaf2cebe11870301359962bf326e", - "0x08c3364c5142d8fe956b12902940b54a7be36a42ce00cfc5831385a9d55cbe99", - "0x166399703d23a5c22febc6185f8eb93c72b65906eefef226e643c35fa0022adb", - "0x25f6f5fc25ee815cef59a1889f1e39db3d431d01b01ee1554f9492afec9d41d6", - "0x28650667b92be48b116289119fa4794a5fe8fe5792a49d89b9977feae7f685a6", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x0bd0a68a914cc9453fa207323a819e6b1f4f432a1ea1e3185a55ef85fd1d4e68", + "0x1c2bf5a9784f1f42a51fc18be111cd39fc4416194bd722b4f81882c0fb823488", + "0x1f148ac97029402992c6a1b1ae1b5e0805e49ea6242bc44f8880501e5455593e", + "0x08e506e1b4afdb0e6492d582e7f7da14da78cdb5d35cddc587855ffb03aaecf1", + "0x0ea386a780cf0f70cf258740f800f4788e20b555a155c2ad9cd01dd4c0b649a5", + "0x10f050f0394d228b26baefadb2f029bd889b21a3e7e17efe6d9ef92fef9af70e" ] [inputs.hiding_kernel_proof_data.vk_data.vk] @@ -6215,15 +6215,15 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" hash = "0x0adf07f9ae6efe161812ba23ef36c864880bc3b0a8461ffaf756f4400c7e9f80" [inputs.start_tree_snapshots.note_hash_tree] -root = "0x1c223e428d6faa36822890e3b99417ddf73ffb069bf4c44b6ae9d7fc741733f6" +root = "0x0f62c40044b4da1bfaccdde9657a757e4f3389eca2f84f4e2b03d9e245d11d12" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000200" [inputs.start_tree_snapshots.nullifier_tree] -root = "0x01c778a6b3dcb1245bb0aee174252dd95256e67309f952e5d2f8cbafffe20d0f" +root = "0x1c481d97b30d497993eba6f833bf868c9e78d745d674d7cfd4f498b78eb52ea9" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000280" [inputs.start_tree_snapshots.public_data_tree] -root = "0x134e44df49ddb89525046d19bcfc2734c78e419994de9d6f7467eb84d02d1060" +root = "0x2cbd590d7f3ee096291de2bc3204f1072faba175a7a17368c5e2c384b470c61f" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [inputs.start_sponge_blob] @@ -6249,7 +6249,7 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x119f56a2e8423a7feaab49b9b5dcbadec0648dfa4096b61b6774ea33ae29dc7f", "0x221cf368938c74e4fced9dfb2a8e37cd8a6c57d21385c249f0b5c2412341287f", "0x2c5214dfc4d70d2619fce2a7e02ddcf380576dca42b66c9215c7d8d1ec154116", - "0x1b250005eb96ff625256d16bb83fedca81f8952f06c2d3031636c0e1d8c9fecd", + "0x1be904fe81d505b047f13679cde091c5e917234f2f2d30eb727d8673805c455e", "0x0d04c63f36bd168215c9b09a227c7e8d3ad48e2f11b8202fd07c524bd30ee88f", "0x042c72d0ca208f0631ed947050258333518c26059f0a2ef041e933b1b2a6d8ad", "0x00c21235cdc5d4241fab782680421cdd99c088a3b48a740d8289d0e67b2ee5da", @@ -6284,9 +6284,9 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x08c286d5f8584ac20b64b63f763d4ec37d3fa13244234a3280f34bbc70a32d53" ] sorted_nullifiers = [ - "0x282b555a2f009837bd02f744ae119250934c991464481b5613f7f2112a615f7c", - "0x1cb96ed0bfe97ed05e23f013062425e5ce6599fb6430b162e69edfc317d5bf82", - "0x1567c8c1ff81dda9727361df23c92849c46772567aa0bf3723db03c3751e9d2e", + "0x18e242dbf19cf1d73b6df44bc2cb0f966b4f90fc85edacd4e5eddaacd781c52f", + "0x0e431d69bf2a57b8472d1a5def22c7435f4f209283d12e4fec21e4a42b0ace57", + "0x0dc13cb16dbb5efc680f1b3795abd333ea2ea29dc746578d446e00e61f5a6996", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -6350,9 +6350,9 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x0000000000000000000000000000000000000000000000000000000000000000" ] sorted_nullifier_indexes = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000003", "0x0000000000000000000000000000000000000000000000000000000000000004", "0x0000000000000000000000000000000000000000000000000000000000000005", @@ -6417,9 +6417,9 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 ] nullifier_subtree_root_sibling_path = [ "0x09166b559c0f096e897bb202971954b6c576adc978e55de25b96e97269f0e461", - "0x0362ef192033d8dd7561fb3d5599ffef50988df3dfb2d2a62db522b4dd468396", + "0x0d3047a8a5f57d3ffe2a0a0a1ef43232cb2735b608408a72fdbc6dd00a75817d", "0x2e5d15ff444e6868f293419113070aae8ce133e2ab4d2705a6a696caf2a17e21", - "0x11b6672806903af07ce5206700433633952804bd3668e15fac8868f0695bed72", + "0x17064de07c57e9386c1b457f8b73787bd3b12530c842bb16e5978f5a0e641f41", "0x2842a7e5a723d69a6f6c088fcc7b2e289173ca583987359c712c15ee44806960", "0x2bc8d89815dcd02215ab5a89956f9743a205a7fd71e002096d7c250ffc3544bf", "0x01d2012039a4d9492bb83367eead0282083ff9011b9c3884c96022f90dcf7432", @@ -6455,19 +6455,19 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 ] [[inputs.tree_snapshot_diff_hints.nullifier_predecessor_preimages]] - nullifier = "0x20847724d5be09ca0af6e9b36ec5ce1147d557c6a4a2c61bb2aa4d62bdc08e66" - next_nullifier = "0x2bd24d9521cfcd8b14bb5f749a761545f4fe94dcc56618d57bcfea385a5db168" - next_index = "0x0000000000000000000000000000000000000000000000000000000000000145" + nullifier = "0x18aad1f21664f40682a16a7d1e0a2e9b80e670c036022b09534fcc45254a48f3" + next_nullifier = "0x22ea1382ed7dee86fb9681200a3c4f91a32c226e21db5baa326684ab2a6c31a2" + next_index = "0x0000000000000000000000000000000000000000000000000000000000000180" [[inputs.tree_snapshot_diff_hints.nullifier_predecessor_preimages]] - nullifier = "0x1b292354acb3ba526050467dbc93d2d505c80e73a41b7d2fb0c09cd32d03875f" - next_nullifier = "0x1ceec3511b2489568c8344be81e970a769044dd97be95562536c6867e09b8677" - next_index = "0x00000000000000000000000000000000000000000000000000000000000000c1" + nullifier = "0x0bdffa348395f1db27bdba3192f5f17810fe18775c915a5350da541ba267c00e" + next_nullifier = "0x0e9afba73ffb4a57c9965750d08111dbe6df318c74dc7a93ed1d74707bf0b00c" + next_index = "0x0000000000000000000000000000000000000000000000000000000000000142" [[inputs.tree_snapshot_diff_hints.nullifier_predecessor_preimages]] - nullifier = "0x1546bc72fd1c9f595cc29ec322397f0c1306a17f5de02a12ae937e48b30f316d" - next_nullifier = "0x16c07a80d3d164d5d8082a5dda9fb5d5f0de35fc2bc4ac2fa36182ed91ce381f" - next_index = "0x0000000000000000000000000000000000000000000000000000000000000146" + nullifier = "0x0bdffa348395f1db27bdba3192f5f17810fe18775c915a5350da541ba267c00e" + next_nullifier = "0x0e431d69bf2a57b8472d1a5def22c7435f4f209283d12e4fec21e4a42b0ace57" + next_index = "0x0000000000000000000000000000000000000000000000000000000000000282" [[inputs.tree_snapshot_diff_hints.nullifier_predecessor_preimages]] nullifier = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -6777,16 +6777,16 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [[inputs.tree_snapshot_diff_hints.nullifier_predecessor_membership_witnesses]] leaf_index = "449" sibling_path = [ - "0x2941a7272bf49125b7e5c8f9c8a06939064d366f933f8ebfcbe4257716243dad", + "0x24c49aca0d00f88e44af8748d07c2acef16f079560133ef4e4f42cd2d18cb94d", "0x19b8970c3845d2244da0851d0f9b631fae6156a9846a5598a0216fb537fb37d9", "0x1fca8e5d48b8e1a70cb333a4f5ca28a3355ec77b582acf926a4a17d42c31f776", "0x218d6b91b3a210e878d135aab2560fb2801db442dbd439ff2efd1fdfdfeeaad0", "0x0b926aa38fc854f094d02c0b719a75e50a7d4a0ef11685217c6568095b41fccc", "0x09c18d449a07bd072b1eb2b042e466fde1f82f740d57ab0ecb3ff368b3868abd", - "0x0df0ef1adc3691e5553b5304a971c203841eabef3423142e2e3c0bb4cfb01a82", - "0x233e166aa2a44dc5f9bcfbba514493bab8b8a00e3dd56e0d813888f5d06203f8", - "0x24bd80edafc13493c1edb17a018f34698eca5bed3b768dee95961dc577560e4e", - "0x29dbd0f2b5aec42761b1d801d1f899352dbb3b8c358abbf17c97069b6827de9e", + "0x0f0747812ab0cd2e9d0803fee9b70a5206c207ca0b5fdefb2a5a004d02eb0875", + "0x24056a302c8cadb859e0655ed258fb280aa6cb4e9d786d654acd0643c3ffb08e", + "0x290daf5ff6f00f407cc8b25d69f26a83c0fac8e22f8e080362bb3b3d68328700", + "0x046d4a4f80993d0a52868335a4e20b71c7f704ef061318ccbd0938e6f0429e97", "0x2842a7e5a723d69a6f6c088fcc7b2e289173ca583987359c712c15ee44806960", "0x2bc8d89815dcd02215ab5a89956f9743a205a7fd71e002096d7c250ffc3544bf", "0x01d2012039a4d9492bb83367eead0282083ff9011b9c3884c96022f90dcf7432", @@ -6822,18 +6822,18 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 ] [[inputs.tree_snapshot_diff_hints.nullifier_predecessor_membership_witnesses]] - leaf_index = "327" + leaf_index = "320" sibling_path = [ - "0x10ef06a0c859785e8d7fcbbf7d1a624f045c1544816d195838405eaacd740010", - "0x2573a0e9cf295372545c619b8c9329e46b01b7ab974cec3bd12def9098d16620", - "0x08db730f7a5e1eed62556f1a919321b5e4f5ab9cf68cd8982fd80e1cadc6369f", + "0x23e6c52ad4957067ac4056008becfba73b60982a92d14544620daf68eb41416b", + "0x1e1fc3438608eb4ee914aec54b6b222c83206ee8e4a2bedfb048ff9b97722830", + "0x10f0f8862cf0ec2f344217ea9de07714296d2b024301d020a0162c1f6ba4e5c6", "0x218d6b91b3a210e878d135aab2560fb2801db442dbd439ff2efd1fdfdfeeaad0", "0x0b926aa38fc854f094d02c0b719a75e50a7d4a0ef11685217c6568095b41fccc", "0x09c18d449a07bd072b1eb2b042e466fde1f82f740d57ab0ecb3ff368b3868abd", - "0x259490a13493a82580afd12e91ff42f23d398b46827e29d819e2a64dfa907c47", - "0x20b151f51c25e2fbf0e6eb3c22eddd39b87ca1836592ed50d5d8fd3b489ee69d", - "0x24bd80edafc13493c1edb17a018f34698eca5bed3b768dee95961dc577560e4e", - "0x29dbd0f2b5aec42761b1d801d1f899352dbb3b8c358abbf17c97069b6827de9e", + "0x10dfe8b6df45815637de632db6c659d54455f242a09e111069265cb270a12598", + "0x27680d00a691b288eaa962cd278f9b99f7f61028c872cfd7278a87b1d939c343", + "0x290daf5ff6f00f407cc8b25d69f26a83c0fac8e22f8e080362bb3b3d68328700", + "0x046d4a4f80993d0a52868335a4e20b71c7f704ef061318ccbd0938e6f0429e97", "0x2842a7e5a723d69a6f6c088fcc7b2e289173ca583987359c712c15ee44806960", "0x2bc8d89815dcd02215ab5a89956f9743a205a7fd71e002096d7c250ffc3544bf", "0x01d2012039a4d9492bb83367eead0282083ff9011b9c3884c96022f90dcf7432", @@ -6869,18 +6869,18 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 ] [[inputs.tree_snapshot_diff_hints.nullifier_predecessor_membership_witnesses]] - leaf_index = "448" + leaf_index = "320" sibling_path = [ - "0x09828dd1f15420f5ae235412b7e16ecbce1b932812b73b7564e762bfd566f9a5", - "0x19b8970c3845d2244da0851d0f9b631fae6156a9846a5598a0216fb537fb37d9", - "0x1fca8e5d48b8e1a70cb333a4f5ca28a3355ec77b582acf926a4a17d42c31f776", + "0x23e6c52ad4957067ac4056008becfba73b60982a92d14544620daf68eb41416b", + "0x1e1fc3438608eb4ee914aec54b6b222c83206ee8e4a2bedfb048ff9b97722830", + "0x10f0f8862cf0ec2f344217ea9de07714296d2b024301d020a0162c1f6ba4e5c6", "0x218d6b91b3a210e878d135aab2560fb2801db442dbd439ff2efd1fdfdfeeaad0", "0x0b926aa38fc854f094d02c0b719a75e50a7d4a0ef11685217c6568095b41fccc", "0x09c18d449a07bd072b1eb2b042e466fde1f82f740d57ab0ecb3ff368b3868abd", - "0x0df0ef1adc3691e5553b5304a971c203841eabef3423142e2e3c0bb4cfb01a82", - "0x1cf8e3ee3a38d1b5aa62577b1820cc6a13b2bd9af440383c958fb833e05e831a", - "0x24bd80edafc13493c1edb17a018f34698eca5bed3b768dee95961dc577560e4e", - "0x29dbd0f2b5aec42761b1d801d1f899352dbb3b8c358abbf17c97069b6827de9e", + "0x10dfe8b6df45815637de632db6c659d54455f242a09e111069265cb270a12598", + "0x27680d00a691b288eaa962cd278f9b99f7f61028c872cfd7278a87b1d939c343", + "0x290daf5ff6f00f407cc8b25d69f26a83c0fac8e22f8e080362bb3b3d68328700", + "0x046d4a4f80993d0a52868335a4e20b71c7f704ef061318ccbd0938e6f0429e97", "0x2842a7e5a723d69a6f6c088fcc7b2e289173ca583987359c712c15ee44806960", "0x2bc8d89815dcd02215ab5a89956f9743a205a7fd71e002096d7c250ffc3544bf", "0x01d2012039a4d9492bb83367eead0282083ff9011b9c3884c96022f90dcf7432", @@ -9783,16 +9783,16 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 ] [inputs.tree_snapshot_diff_hints.fee_payer_balance_membership_witness] - leaf_index = "120" + leaf_index = "125" sibling_path = [ - "0x13d5c2f78d433c774b2f9be7bb5d666fb8fd80452d0896af987365d04f9f681b", - "0x25f3536c3eb76fd96d5ccdde3cbbe50f5548e23683bf9f2cbad67f53d10537bc", - "0x2835a744c1a26d89fca8be670b7b8d7a2473a3eb7fd72bf533a007d6cc443772", - "0x2d0726c97dd7add62ef5c3e71e02ff90e76079e2650f2217ec0fe5e678b0bb8c", + "0x1c4e88141fbcfaad4200f11f0eb42e1018273544e69a0ea4cb6420ebc6f54aba", + "0x2e71c2e2d53a6c2bcab1bce1e684834d99b89122fe39e3bc9aec8a10781d738d", + "0x17e01774a08a53a35ca7880eb98be0ca11f5e4d202e64baaf8e321b509ef4981", + "0x1bcaa2b99d7876873c5c1986eee0a6697705913ff000b148eae3ce81fe2dc771", "0x2edd4e68944dac758244213037fbe9d622c7c28d6070f16862b3e8986090bee4", "0x1d5ea1a288ff1ff4cabceaaa2f93eda378a5fb0a2a55423f4d4d205969181931", "0x23b80d0ef13d744a52faabf5651164d28f7faf902653e41a35472eea87936e6e", - "0x27c696ad87d2ae17e4005225c67d015eaca8a9c6e97dec181f97f15e2c1ff894", + "0x2d4d61a79e80405cee3942de4a1007a09f7b28e82528cc044e22e8a8f51c0c55", "0x16c8aff52f0422f4bfc502620fe15dd6a4de67637563b7a8175f2d5727d268a4", "0x1c76b6744bc3d6b1cd4b53459a08b4959643c0768fde657299fcc82e2732f744", "0x12a6fac0fdfbd7897d8fe955f454cdb309ce8597d647ebfd0ba614c4eb215581", @@ -9828,18 +9828,18 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 ] [inputs.fee_payer_balance_leaf_preimage] - slot = "0x12d1296a2643b832fbd1d6d3ed3678833fce770084efd75adfd517de8214ccf3" + slot = "0x21f429ce5edf30ad48f624c6480af649eda3c8526611ceef694b12809e260c17" value = "0x00000000000000000000000000000000000000000000021e01deb310ea6e1140" - next_slot = "0x133d35b9030a815b221f9205ef080f220fd8ba968e9bd88b60033b4854e100ad" - next_index = "0x0000000000000000000000000000000000000000000000000000000000000085" + next_slot = "0x2639c5669268e3ee96c1743e32be00a4cd80fd1b46e014b209f59dc1e8894c29" + next_index = "0x000000000000000000000000000000000000000000000000000000000000007e" [inputs.constants] - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" - protocol_contracts_hash = "0x0333160f082dfc02e255c756febac14dc42c4c88b882e0403d44710c1f0bb80f" + vk_tree_root = "0x115e00fed9b96e899daa4210aaf690c52c3fb9024f12ecfa6295969410d246a4" + protocol_contracts_hash = "0x10a32ead90905324604efd0afce0bd841a58c34206040eb4e259be5fe8b90de8" prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.constants.last_archive] - root = "0x00f30d99838de8d9e0b40bb5f19c53ebd2cea2e4e324a6b48a4db2655906ad63" + root = "0x2bf1efe3477d3c5010706892741cefaa2fff9bc64817298e29c4e3a418ab6e60" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000009" [inputs.constants.l1_to_l2_tree_snapshot] @@ -9848,13 +9848,13 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.constants.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x000000000000000000000000000000000000000000000000000000008cdefce3" block_number = "0x0000000000000000000000000000000000000000000000000000000000000009" slot_number = "0x0000000000000000000000000000000000000000000000000000000000000041" - timestamp = "0x0000000000000000000000000000000000000000000000000000000069fde078" + timestamp = "0x000000000000000000000000000000000000000000000000000000006a063403" [inputs.constants.global_variables.coinbase] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000003d0220de6fd33ed3481276c1954065244b2fa8d5" [inputs.constants.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-tx-base-public/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-tx-base-public/Prover.toml index d2414328ae1d..d08706bbeae5 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-tx-base-public/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-tx-base-public/Prover.toml @@ -1,9 +1,9 @@ [inputs] anchor_block_archive_sibling_path = [ - "0x1444237c68ff756b5bcab6ef4b010657fbc4911b8a806638579f1df27f6e43f0", - "0x048c76bde3b9047f9f34f7fe8811109eafa422f663c1825d2399df06f4f11689", + "0x29e9c6496070cf8c994ab41081148ff233f0c29c2f21f4e3e29fb8f8d049614c", + "0x2094bcac7682f9b3fbb5e07c1553d52e1c5cd28253bd31fc567a3924247d889e", "0x14e4b977b2203b70e6ee1c2456eb7114d090fe4b907f631eecd0919fed432e7d", - "0x2b3b2f80ea4227dfe7ab4edec33942ff08b95b023d6d15efb0abde90594c993b", + "0x2e970ecab0b8bea180ad841965d9373e3f872b11a0a6f897427f164f517f7030", "0x1e20ad4181460cbfdc74ca773502c59b890f184efe300ebad895956d318422da", "0x1434e6e2d5db1053ab8a3be58704509c799ee17e109c77f441f7bf1755400249", "0x119f56a2e8423a7feaab49b9b5dcbadec0648dfa4096b61b6774ea33ae29dc7f", @@ -3547,19 +3547,19 @@ contract_class_log_fields = [ prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail] - expiration_timestamp = "0x0000000000000000000000000000000000000000000000000000000069ff1b30" + expiration_timestamp = "0x000000000000000000000000000000000000000000000000000000006a076ebb" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.constants] - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" - protocol_contracts_hash = "0x0333160f082dfc02e255c756febac14dc42c4c88b882e0403d44710c1f0bb80f" + vk_tree_root = "0x115e00fed9b96e899daa4210aaf690c52c3fb9024f12ecfa6295969410d246a4" + protocol_contracts_hash = "0x10a32ead90905324604efd0afce0bd841a58c34206040eb4e259be5fe8b90de8" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.constants.anchor_block_header] - sponge_blob_hash = "0x13a1bf44c19e7c2eb7fc1a96527d072cf424bc99c760e392f4abcecc1fc597f8" + sponge_blob_hash = "0x0405650bcd6c8190a8745e3e230bacee32b200a3c78499712d0dbdc506b253b2" total_fees = "0x00000000000000000000000000000000000000000000000002b26ec5db7a7140" total_mana_used = "0x00000000000000000000000000000000000000000000000000000000000a3979" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.constants.anchor_block_header.last_archive] - root = "0x0d18996e508e8c1e51f6a56652cc5d71169450ff16c25de9af7f79af5385e334" + root = "0x1b254f482c3705906ac7ecb9fe7fd9ba918b9b9acabaea00de4c87f1ec9979c1" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000008" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.constants.anchor_block_header.state.l1_to_l2_message_tree] @@ -3567,26 +3567,26 @@ root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002000" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.constants.anchor_block_header.state.partial.note_hash_tree] -root = "0x1c223e428d6faa36822890e3b99417ddf73ffb069bf4c44b6ae9d7fc741733f6" +root = "0x0f62c40044b4da1bfaccdde9657a757e4f3389eca2f84f4e2b03d9e245d11d12" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000200" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.constants.anchor_block_header.state.partial.nullifier_tree] -root = "0x01c778a6b3dcb1245bb0aee174252dd95256e67309f952e5d2f8cbafffe20d0f" +root = "0x1c481d97b30d497993eba6f833bf868c9e78d745d674d7cfd4f498b78eb52ea9" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000280" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.constants.anchor_block_header.state.partial.public_data_tree] -root = "0x134e44df49ddb89525046d19bcfc2734c78e419994de9d6f7467eb84d02d1060" +root = "0x2cbd590d7f3ee096291de2bc3204f1072faba175a7a17368c5e2c384b470c61f" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.constants.anchor_block_header.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x000000000000000000000000000000000000000000000000000000008cdefce3" block_number = "0x0000000000000000000000000000000000000000000000000000000000000008" slot_number = "0x0000000000000000000000000000000000000000000000000000000000000022" - timestamp = "0x0000000000000000000000000000000000000000000000000000000069fdd7c0" + timestamp = "0x000000000000000000000000000000000000000000000000000000006a062b4b" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.constants.anchor_block_header.global_variables.coinbase] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000003d0220de6fd33ed3481276c1954065244b2fa8d5" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.constants.anchor_block_header.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -3597,7 +3597,7 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.constants.tx_context] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x000000000000000000000000000000000000000000000000000000008cdefce3" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.constants.tx_context.gas_settings.gas_limits] da_gas = "0x0000000000000000000000000000000000000000000000000000000000030000" @@ -3683,7 +3683,7 @@ fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000000000 "0x0000000000000000000000000000000000000000000000000000000000000000" ] nullifiers = [ - "0x09fac458f9e079d0117ef63746c55ce66b3e5d95c8420974d9c69f369b0d77ef", + "0x13adb1d6054fb22ca3aa5d15d174af958294a4c864af64472cfb0bd66d609b12", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -7069,13 +7069,13 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [[inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.revertible_accumulated_data.public_call_requests]] is_static_call = false - calldata_hash = "0x16acf8ee72d77f214e5286307ed2710fda25445374c38debbef546a746b679ce" + calldata_hash = "0x117bceb62698b59bcb974cb6da609cfb60dd5a53668a4e172fdd4a4eff9a229f" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.revertible_accumulated_data.public_call_requests.msg_sender] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x004093295436e1581085b446326dceb0678c0fdee4aec1d441b23d0c941a4f2a" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.revertible_accumulated_data.public_call_requests.contract_address] - inner = "0x16fc6ad8c94527d45832bb8631b0c1dedf3218fe7c3ca04e01850a3eff6a511a" + inner = "0x2e3993e7e67d16bc61a3a09f9def235ab7ae477cdc581290c66576f115047af2" [[inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.revertible_accumulated_data.public_call_requests]] is_static_call = false @@ -7402,18 +7402,18 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" l2_gas = "0x00000000000000000000000000000000000000000000000000000000000903d0" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.fee_payer] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x004093295436e1581085b446326dceb0678c0fdee4aec1d441b23d0c941a4f2a" [inputs.public_chonk_verifier_proof_data.vk_data] leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000006" sibling_path = [ - "0x1b3bb563a5febae9302424bc9b80841523b8773b3e521fb20de577a64e78bc9e", + "0x0a7fb889325f39bec13ee8f853c529ad8458c39c703cf4277c5b066d8d2eee15", "0x0a2d5d1c88992fa153310bc96af4c750c81353526f8c7dfe2b069ed57136e696", - "0x08c3364c5142d8fe956b12902940b54a7be36a42ce00cfc5831385a9d55cbe99", - "0x166399703d23a5c22febc6185f8eb93c72b65906eefef226e643c35fa0022adb", - "0x25f6f5fc25ee815cef59a1889f1e39db3d431d01b01ee1554f9492afec9d41d6", - "0x28650667b92be48b116289119fa4794a5fe8fe5792a49d89b9977feae7f685a6", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x1c2bf5a9784f1f42a51fc18be111cd39fc4416194bd722b4f81882c0fb823488", + "0x1f148ac97029402992c6a1b1ae1b5e0805e49ea6242bc44f8880501e5455593e", + "0x08e506e1b4afdb0e6492d582e7f7da14da78cdb5d35cddc587855ffb03aaecf1", + "0x0ea386a780cf0f70cf258740f800f4788e20b555a155c2ad9cd01dd4c0b649a5", + "0x10f050f0394d228b26baefadb2f029bd889b21a3e7e17efe6d9ef92fef9af70e" ] [inputs.public_chonk_verifier_proof_data.vk_data.vk] @@ -7421,94 +7421,94 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" "0x0000000000000000000000000000000000000000000000000000000000000015", "0x0000000000000000000000000000000000000000000000000000000000000aef", "0x0000000000000000000000000000000000000000000000000000000000000005", - "0x0000000000000000000000000000001a8ea793d4cdae748667e6cdeb797ade65", - "0x00000000000000000000000000000000001cdf44a19565682df1db9105c2cd50", - "0x0000000000000000000000000000007d45bf53693d1e5f8c726b3b9090a3bdba", - "0x00000000000000000000000000000000002ddd08200eb9544a216dd19a8b59c9", - "0x00000000000000000000000000000096b0edfeb3ee3338c818b6e462ae496f95", - "0x00000000000000000000000000000000001bb979e3cd7d8111d021237de30bb7", - "0x000000000000000000000000000000e785a70c5bc29de6993bcd63514b5b856f", - "0x00000000000000000000000000000000001b6701a1a9de0c4e25c2eee81fbfc5", - "0x000000000000000000000000000000ccad5e1b43ec3cad430d126196ed4b784f", - "0x000000000000000000000000000000000026c8cfeea88730a069f9f8aae45eff", - "0x000000000000000000000000000000f25307bf7ae8166628fb8ca2aa186d80cc", - "0x000000000000000000000000000000000022a312b7a1b12f670d059924fde061", - "0x000000000000000000000000000000cfa8bf07d4dd07bd309194ad43dcf460aa", - "0x0000000000000000000000000000000000167ca0ccc32845025c5a76273b1b08", - "0x0000000000000000000000000000002a2f6be8e93ea920cd14a7b043ef6ed5d1", - "0x0000000000000000000000000000000000277ea66800e42f0b7078688718305a", - "0x0000000000000000000000000000007f88f1687491d3f3326c737061282c2e20", - "0x000000000000000000000000000000000019f0c295284fc42024aacbd46f9ae9", - "0x0000000000000000000000000000008a6e059479dbef05407682d018e1d7fd0d", - "0x0000000000000000000000000000000000276f6c02388d41b068d36f0e4082b0", - "0x0000000000000000000000000000006fe39d9df6859556bc04a2847a62aad7ff", - "0x00000000000000000000000000000000000faecf34f51e503f9c5bdf6f57aca8", - "0x0000000000000000000000000000004b4587deb70388b513862ba57de24e4596", - "0x0000000000000000000000000000000000167c35f16800e5924b66b6c395c2e1", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000000000351e060c59f2f13ceb5c631381e110552b", - "0x00000000000000000000000000000000002eeb2d2cba09260a9e138d0d24555c", - "0x000000000000000000000000000000d3bae05ebcb86c7b4921f00e4c579e9c5f", - "0x00000000000000000000000000000000002d4be8ae9ebbf085739d2c52d2ab93", - "0x000000000000000000000000000000940377e34f17c5ad22102cca865bb574a1", - "0x00000000000000000000000000000000000a723717bfcee9dcb71e21b6de10f8", - "0x000000000000000000000000000000991a4b02291df9c14b77e2473315d673b3", - "0x00000000000000000000000000000000001e89b95cf6b2ad2506d684fc7b7a30", - "0x0000000000000000000000000000004022b331528bfac4bdb04464fc89ff83fb", - "0x0000000000000000000000000000000000196330867786a8c08738881b739ce0", - "0x0000000000000000000000000000009df8b221819ebf22dc413d730b0c8a1e31", - "0x0000000000000000000000000000000000276ed9c7e725f586bf3b0f7d5f1594", - "0x0000000000000000000000000000008eb30c526734ef3a740aea96282908f962", - "0x00000000000000000000000000000000001624f456603c219b9f79b39960c61b", - "0x000000000000000000000000000000b9e9ead3a80d73be248eb82b65a23dbaf9", - "0x000000000000000000000000000000000022e03caaedc42d8b4b100610f33723", - "0x00000000000000000000000000000004914aab219c2e5c1388d1c5b276006436", - "0x00000000000000000000000000000000002426e1277a7907df8ec2e0e609f0a6", - "0x000000000000000000000000000000508e79b26489525bf5386a5c910dca5a5d", - "0x00000000000000000000000000000000003063b87ddf8ff817e547fe4ac149dc", - "0x000000000000000000000000000000f106fc4afe6bda7761c0d4ed7ded72ce1c", - "0x00000000000000000000000000000000002547059f6e3ae71ef9efe2be7dc5c0", - "0x0000000000000000000000000000001c8589cec2b200eed912f3e76cf5562b2b", - "0x0000000000000000000000000000000000154c96e49bb18fdd1aed7abd315822", - "0x0000000000000000000000000000009c4fcdf6541a1a4fd3d01630e1bba3fad8", - "0x00000000000000000000000000000000000e2b7c9dabb30e63d6cb909551d6d8", - "0x0000000000000000000000000000003e17757fa84eda964303f6fea5cca55ef1", - "0x00000000000000000000000000000000001efc4c896804eb95a3b76060ee5db8", - "0x000000000000000000000000000000514fabf9f6c618a2c084e1e9e64393459d", - "0x00000000000000000000000000000000000e851da603a179ea88a694100ed72e", - "0x00000000000000000000000000000081c7f92e6390c9fbe0627a879ecbd8f8e4", - "0x00000000000000000000000000000000002378d597dead1c2952534dc50aa04f", - "0x00000000000000000000000000000033435458f18b0436847ac2652e1aab3a81", - "0x000000000000000000000000000000000010f0f995d2e1ddfc2e2820abac64f5", - "0x000000000000000000000000000000cdc9c148beeb2652667b2a4be097432e98", - "0x00000000000000000000000000000000001790fa444ce77b0f17ced05ac77644", - "0x000000000000000000000000000000b4e0fa181577e0fce2a73e33cb1c7ef76a", - "0x00000000000000000000000000000000001248979a0b4c713d52467ef1091214", - "0x00000000000000000000000000000078b68a818812e294d27ed5173181eca67b", - "0x00000000000000000000000000000000001202f015e527e07bc8aa3b29bfc68a", - "0x0000000000000000000000000000002e37c769468f1d3bd64860032eeec60c95", - "0x000000000000000000000000000000000013a9a82892cb1b4ba982fa96f6fe5f", - "0x000000000000000000000000000000a4f97445c3ce77b60a4f89e090ed25f90d", - "0x00000000000000000000000000000000001bfe48767b9d9852929fd6c6ef7489", - "0x000000000000000000000000000000009788ffc458269e32c68d8529122209c6", - "0x00000000000000000000000000000000001ad94133da104b491b0533c283058d", - "0x00000000000000000000000000000082943f7e3e8277c5573c7bc01ee756e08e", - "0x0000000000000000000000000000000000093e0b3b3b286763d72202e7d89bd3", - "0x000000000000000000000000000000661e1803122d810a714ede90be3cff69ed", - "0x00000000000000000000000000000000000d11450f56fe63fe8dc9c9bcf5e0cd", - "0x0000000000000000000000000000003bbb3abba3a132e8d8f45f371281a8162a", - "0x000000000000000000000000000000000022484ddb85caad7259d40a2feaf9f0", - "0x000000000000000000000000000000d5c60aad9d3206ac85c01b2bbe07bb882c", - "0x0000000000000000000000000000000000064dbab19fabf630e0a01c9c644f28", - "0x0000000000000000000000000000000c6d39a6cc1814cb9c474639a2c85d7696", - "0x0000000000000000000000000000000000052e9746024ad3039b28344dff0160", - "0x00000000000000000000000000000082d5e3a922fab44e31d4948721b4c26f6a", - "0x00000000000000000000000000000000000209322634f0a5d2a3bd73f1e3eefa", - "0x000000000000000000000000000000ae542b5e28179ea83bd48b32d82857e6ce", - "0x00000000000000000000000000000000002e46a1b641046cc74f095ebc925043", + "0x000000000000000000000000000000b684f3822d696c3ecf484a7fe34791f63b", + "0x00000000000000000000000000000000002e9cd7590551679f2745acc9a6166b", + "0x000000000000000000000000000000c0fa18a8ea0c5477840072169c70c27083", + "0x000000000000000000000000000000000006fed68edbd8843dd0ab879a772fc6", + "0x00000000000000000000000000000026e7b1ee3942c1a107eb829a4a1fa2804d", + "0x000000000000000000000000000000000009789bf7546013a4f03234c7cf7806", + "0x00000000000000000000000000000008b9a37ec6fc3442e0c17c53d3e10b0b85", + "0x00000000000000000000000000000000001ec5dc87962d6200825abf3d662edc", + "0x0000000000000000000000000000007d544b6605780427b276080dcba2d3a6b1", + "0x00000000000000000000000000000000000e462e18915af1093432e4b54d56b5", + "0x0000000000000000000000000000002d05ce754d8790322afa554bb538c82ce7", + "0x0000000000000000000000000000000000217fb463fb96af6e79b1a94df4de2b", + "0x000000000000000000000000000000988e396bb90b6bb7bdbf004d58ee206dc7", + "0x00000000000000000000000000000000000ba1855ea83b7c95ca53b8080e4d9a", + "0x0000000000000000000000000000000542d08371517becedf53f97ab311ed352", + "0x00000000000000000000000000000000001da797344377e013d7ace7bd0b582a", + "0x00000000000000000000000000000020166ea9997b1c239d34547f165b8d5982", + "0x00000000000000000000000000000000001850619eba2054f9f41324786599c0", + "0x0000000000000000000000000000007b9e1bf48be054d6a7281d9aef57fa66c6", + "0x00000000000000000000000000000000002a965ef9ba89270efb7a138db9f3a5", + "0x000000000000000000000000000000b8eaa90b65a792f984baa676b46045473b", + "0x00000000000000000000000000000000002bdf1ff1c21dbc118d6b878d504e6d", + "0x0000000000000000000000000000001ff7882b2fdd2ca32c857c77a380501a10", + "0x000000000000000000000000000000000005d51203c3526df0478a7275d46c7b", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000000000598c8acc7fbfa779ed23372aba38bee64e", + "0x000000000000000000000000000000000001984ff4c3c19be7573bd5bb20b210", + "0x000000000000000000000000000000cd57f43bdf29875704dbb8e152f13aa037", + "0x00000000000000000000000000000000000dd55c58c84f3d5e854644f37177e4", + "0x0000000000000000000000000000001f02ca88c525a96b8563b48a7aabfc6b24", + "0x000000000000000000000000000000000002c93e0923d1b6d1e60d43a3928487", + "0x0000000000000000000000000000003c44cb74e2b6818ca4c75759ea23191cdb", + "0x00000000000000000000000000000000000e4db22c7616ee8c3c75b705bc7668", + "0x000000000000000000000000000000cabb69affcf99d1cc46c03c4140cb33f47", + "0x00000000000000000000000000000000001c15d7c93bbec9b2c897220b1c1420", + "0x000000000000000000000000000000090d5378c110fa9fd29af632a34cf84470", + "0x00000000000000000000000000000000001c8f5e33fd9b7841bda781b9a1a2af", + "0x000000000000000000000000000000b268933977ad81d4b2a90d89d86fef1cd6", + "0x00000000000000000000000000000000002f05ee0ba26ee4625875220a4e9f51", + "0x000000000000000000000000000000b79359439c800d1ff8759390cf8e9877b8", + "0x00000000000000000000000000000000000907e60e1332a9c7d1543b5429af59", + "0x00000000000000000000000000000084be3aaaa5d4b2ce869b94d84b180886c8", + "0x00000000000000000000000000000000002bf2641799eea22ca7c17fcd0170bd", + "0x000000000000000000000000000000ffd7944bc577de67a10fa61e563e39a199", + "0x000000000000000000000000000000000018ee5274d9d59c7a4e6ea4e9086857", + "0x000000000000000000000000000000913cedb17e467b5ec128fcd30a5d8f45a4", + "0x00000000000000000000000000000000000c36352a17ffaa1baa9f6f4ab990f0", + "0x000000000000000000000000000000d1d15826519e7557e9252e25cca7b68234", + "0x00000000000000000000000000000000002d8d82a0d2a2dafaa5c30e4fd0beca", + "0x000000000000000000000000000000f366069eb603ece7d5dbe351d3a7f8cb99", + "0x00000000000000000000000000000000000119a645221fedcdd2f0ccc55659aa", + "0x000000000000000000000000000000d4c5aa8f13dc73d1efb124730021df3c0d", + "0x0000000000000000000000000000000000173a91d164168b2a104f8a445923e3", + "0x0000000000000000000000000000001e0da0a289c24c20d61d63757e40d52e9e", + "0x00000000000000000000000000000000000873f2a70e71f36a677fac98b0f223", + "0x0000000000000000000000000000006363e418625d1a87b6c793a3fa67b62c8a", + "0x00000000000000000000000000000000001ad07fff2f60d183c6bbb52a88a076", + "0x000000000000000000000000000000602ed6d6e8441b84b20d5cf2eefe2b5730", + "0x0000000000000000000000000000000000011db44c3dd41d17fd5a5da5841ab1", + "0x000000000000000000000000000000ef6dbd36e70930ca9ecea70731b3ae2952", + "0x000000000000000000000000000000000012198e0151358cf72269f25d98a7d6", + "0x000000000000000000000000000000a9c62bc5e4859d84a6b71f0eb9ae002076", + "0x0000000000000000000000000000000000146b4d83228248fb4daeceb484a5cf", + "0x00000000000000000000000000000024272119fa5ea3659f5cc93e6906346041", + "0x00000000000000000000000000000000000e6f203351dc3d501e96deeacd1745", + "0x00000000000000000000000000000042723ba67f449f887a257cff0077f60df2", + "0x00000000000000000000000000000000000d5d772ba32d8ea22a4a0ca387da7c", + "0x0000000000000000000000000000008768ff19c1d3a20e9d334a1dfc81d182a6", + "0x00000000000000000000000000000000001f094f6d1eb8ebb46d7095f5cc262d", + "0x0000000000000000000000000000000efeb2b7db33a990c506e101c73afeed1c", + "0x00000000000000000000000000000000001381f886e9f8fd1aaf0824301d7f8e", + "0x00000000000000000000000000000026555700b99ad174e75f4fb2d54779813b", + "0x00000000000000000000000000000000001c184192b5ddd9b083ea27a2d01025", + "0x000000000000000000000000000000182a4013ec7ec4cabe96b2bd1a6ab6430f", + "0x0000000000000000000000000000000000266cf97a9846e58c82026b73f6be09", + "0x000000000000000000000000000000a0520688f4f47af3d195d4177dea4f6e70", + "0x000000000000000000000000000000000006dc9cef5b50392a5b25ffcd69e751", + "0x000000000000000000000000000000527d7c6049997c4de9bee2ace160dfd14a", + "0x000000000000000000000000000000000015e9a964515f16d454fb7d7e2e565e", + "0x000000000000000000000000000000cbf8b366a6c9c4395540c30f766a303cb9", + "0x00000000000000000000000000000000000fbb75e876fd119e954d22ceeea95c", + "0x000000000000000000000000000000922cfb797e0ee95d7bb31ceeeeb4d433c7", + "0x00000000000000000000000000000000000f2223f49c2f01718041ba6c8ff4e5", + "0x000000000000000000000000000000a0d4ea1e1c31cb33177efc4f9a6e1652ca", + "0x000000000000000000000000000000000017d878dd102598b8a90d658d650bba", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -7529,12 +7529,12 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" "0x00000000000000000000000000000000002a56ce41f6b0be13b9c26747621b82", "0x000000000000000000000000000000d5827d6338c78656c0d12ca1aea6ef2c7c", "0x00000000000000000000000000000000001aa98f2de3ddda547d8f6de4e725de", - "0x000000000000000000000000000000b2cda22d682b80465a610820a455ccfe00", - "0x000000000000000000000000000000000014dbf65b57cd412e5a4e51e2e8fcb1", - "0x0000000000000000000000000000009324a599f7e39fa876752e4178e66cf056", - "0x000000000000000000000000000000000012a5445413899397985b2de3535efa" + "0x000000000000000000000000000000a353727eecbeb2708a0ba7438c9f67ac9f", + "0x000000000000000000000000000000000016d8906c48c640faac59aa0947b8bd", + "0x000000000000000000000000000000c14d66a59de329aabcfb5715846504a4e4", + "0x000000000000000000000000000000000009a577481460dded82d652c6abc7f8" ] - hash = "0x0c77683b8fb3dbb3c652ec7c75c7edab0f9597a4763fa388ed23a1a7dc7d4ba0" + hash = "0x1ef80142d10a45fb61f3a4192d352f1d813530777b10ca6db9613ccf5d025640" [inputs.avm_proof_data] proof = [ @@ -23942,37 +23942,37 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.avm_proof_data.public_inputs] prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" - transaction_fee = "0x0000000000000000000000000000000000000000000000000022e452ad469ea0" + transaction_fee = "0x0000000000000000000000000000000000000000000000000022e44313545d00" reverted = false [inputs.avm_proof_data.public_inputs.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x000000000000000000000000000000000000000000000000000000008cdefce3" block_number = "0x000000000000000000000000000000000000000000000000000000000000000b" slot_number = "0x0000000000000000000000000000000000000000000000000000000000000043" - timestamp = "0x0000000000000000000000000000000000000000000000000000000069fde108" + timestamp = "0x000000000000000000000000000000000000000000000000000000006a063493" [inputs.avm_proof_data.public_inputs.global_variables.coinbase] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000003d0220de6fd33ed3481276c1954065244b2fa8d5" [inputs.avm_proof_data.public_inputs.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.avm_proof_data.public_inputs.global_variables.gas_fees] fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" - fee_per_l2_gas = "0x00000000000000000000000000000000000000000000000000000003699e8ba0" + fee_per_l2_gas = "0x00000000000000000000000000000000000000000000000000000003699d0500" [[inputs.avm_proof_data.public_inputs.protocol_contracts.derived_addresses]] -inner = "0x1520f4bb11a3a1d2248a03d8472e9af4bb8324eb1d2d8c83bce61894383464b9" +inner = "0x2912f9783016adf7fdf369db240edfcd44b2020430c231cbad6e025feb6f0156" [[inputs.avm_proof_data.public_inputs.protocol_contracts.derived_addresses]] -inner = "0x26a43bf066852a7b1ec3c5b454f41735fea12e2ffbefed471058124b91d94018" +inner = "0x12e6d1296cc8a232b0cd04bc902425bd660d1c33f367054658565b895dd02792" [[inputs.avm_proof_data.public_inputs.protocol_contracts.derived_addresses]] inner = "0x1bd26c6831ebc53674b13ac69a0c534563c37e46c2cbb36f2deca107a26515fa" [[inputs.avm_proof_data.public_inputs.protocol_contracts.derived_addresses]] -inner = "0x06870c63132d2a4e3356a76d773240efe729e7d9b9380a7a3cf1798fc9031aed" +inner = "0x1a6c91c4f8e806d987e3cbaa9220bade6e1ac8c9e74aad593fb75a31ece44f0c" [[inputs.avm_proof_data.public_inputs.protocol_contracts.derived_addresses]] inner = "0x0083c4dfb922796f1086d399f8f3d021159d1a87ba3b833dcdf9863c630ba643" @@ -24000,15 +24000,15 @@ root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002c00" [inputs.avm_proof_data.public_inputs.start_tree_snapshots.note_hash_tree] -root = "0x2126a6e400b3fae90b44b74482d5b59dc707ba8f044c90a5f0e06ff48029f19f" +root = "0x030a54533f369d5052ba4ce15c7da3210e0702a11d806b82a8e44d3d04c0fa88" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000300" [inputs.avm_proof_data.public_inputs.start_tree_snapshots.nullifier_tree] -root = "0x0e8d32952999631ff527d706426177bdb3208db1d3b8dd4e74ba883610dc37e5" +root = "0x19f673ade24c464385eacee9ea0676ea9f790fb73c0aa31ee1b7b332bd2dd75d" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000380" [inputs.avm_proof_data.public_inputs.start_tree_snapshots.public_data_tree] -root = "0x0d21d4944ca04ad548057c7362ba76b7370e29929fe9cdd32ec1d04c07e21179" +root = "0x1c1874a7fa2daf7453bc043f63e00780db5d24e354bff2f38741eea0d43f60de" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [inputs.avm_proof_data.public_inputs.start_gas_used] @@ -24033,10 +24033,10 @@ fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000000000 [inputs.avm_proof_data.public_inputs.effective_gas_fees] fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" - fee_per_l2_gas = "0x00000000000000000000000000000000000000000000000000000003699e8ba0" + fee_per_l2_gas = "0x00000000000000000000000000000000000000000000000000000003699d0500" [inputs.avm_proof_data.public_inputs.fee_payer] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x004093295436e1581085b446326dceb0678c0fdee4aec1d441b23d0c941a4f2a" [inputs.avm_proof_data.public_inputs.public_call_request_array_lengths] setup_calls = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -24365,13 +24365,13 @@ fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000000000 [[inputs.avm_proof_data.public_inputs.public_app_logic_call_requests]] is_static_call = false - calldata_hash = "0x16acf8ee72d77f214e5286307ed2710fda25445374c38debbef546a746b679ce" + calldata_hash = "0x117bceb62698b59bcb974cb6da609cfb60dd5a53668a4e172fdd4a4eff9a229f" [inputs.avm_proof_data.public_inputs.public_app_logic_call_requests.msg_sender] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x004093295436e1581085b446326dceb0678c0fdee4aec1d441b23d0c941a4f2a" [inputs.avm_proof_data.public_inputs.public_app_logic_call_requests.contract_address] - inner = "0x16fc6ad8c94527d45832bb8631b0c1dedf3218fe7c3ca04e01850a3eff6a511a" + inner = "0x2e3993e7e67d16bc61a3a09f9def235ab7ae477cdc581290c66576f115047af2" [[inputs.avm_proof_data.public_inputs.public_app_logic_call_requests]] is_static_call = false @@ -24771,7 +24771,7 @@ fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000000000 "0x0000000000000000000000000000000000000000000000000000000000000000" ] nullifiers = [ - "0x09fac458f9e079d0117ef63746c55ce66b3e5d95c8420974d9c69f369b0d77ef", + "0x13adb1d6054fb22ca3aa5d15d174af958294a4c864af64472cfb0bd66d609b12", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -25136,15 +25136,15 @@ root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002c00" [inputs.avm_proof_data.public_inputs.end_tree_snapshots.note_hash_tree] -root = "0x2126a6e400b3fae90b44b74482d5b59dc707ba8f044c90a5f0e06ff48029f19f" +root = "0x030a54533f369d5052ba4ce15c7da3210e0702a11d806b82a8e44d3d04c0fa88" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000340" [inputs.avm_proof_data.public_inputs.end_tree_snapshots.nullifier_tree] -root = "0x28f8d2b1f0315d8539c1e4ff651e2eaac034de0a2271cd6f198f557ecf449cb1" +root = "0x1f4f6e04c64c90f15666d84e6fceb3e11a472bea6ff9e72f35d51d7d524180da" next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000003c0" [inputs.avm_proof_data.public_inputs.end_tree_snapshots.public_data_tree] -root = "0x1a010e7a4312757d9349e0058c907064764c9836de016199dbd957ca46fefc3b" +root = "0x0bd76b84155a240fba8f4540ae13003c1801bbfc6604dd6b33b4be5ac62c4623" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [inputs.avm_proof_data.public_inputs.end_gas_used] @@ -25225,7 +25225,7 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x0000000000000000000000000000000000000000000000000000000000000000" ] nullifiers = [ - "0x09fac458f9e079d0117ef63746c55ce66b3e5d95c8420974d9c69f369b0d77ef", + "0x13adb1d6054fb22ca3aa5d15d174af958294a4c864af64472cfb0bd66d609b12", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -29473,16 +29473,16 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" ] [[inputs.avm_proof_data.public_inputs.accumulated_data.public_data_writes]] - leaf_slot = "0x2935995b8343928a25acdb09654bdc27aeef345ec185caa48fb0048bd475fbcb" + leaf_slot = "0x034eb80881eccbf6a1615935975eba42c6c588b86791713b62dbf4fcc56dbbff" value = "0x0000000000000000000000000000000000000000000000000000000000001c20" [[inputs.avm_proof_data.public_inputs.accumulated_data.public_data_writes]] - leaf_slot = "0x0dc02e099550676b3dcfd522010d4db9d2c47a4556dfa28aa20a4a0eb35c54a4" + leaf_slot = "0x303cc082eba5247b6b42b1ea4b08c8b1207feddecdf4b5568b98e0d22a37d5ee" value = "0x0000000000000000000000000000000000000000000000000000000000000af0" [[inputs.avm_proof_data.public_inputs.accumulated_data.public_data_writes]] - leaf_slot = "0x12d1296a2643b832fbd1d6d3ed3678833fce770084efd75adfd517de8214ccf3" - value = "0x00000000000000000000000000000000000000000000021e00afaeb15ed67ca0" + leaf_slot = "0x21f429ce5edf30ad48f624c6480af649eda3c8526611ceef694b12809e260c17" + value = "0x00000000000000000000000000000000000000000000021e00afaec0f8c8be40" [[inputs.avm_proof_data.public_inputs.accumulated_data.public_data_writes]] leaf_slot = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -29747,5 +29747,5 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" squeeze_mode = false [inputs.last_archive] - root = "0x24f3d6261780561e8ede638edf15d34d9f93372572631856307c57a08dfb9cb1" + root = "0x2b2cc76a06e0d9171534d99a1f1cfbd6eb033d5712af9b8fef977ea3e2d30e82" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000b" diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr b/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr index ce4e62575d0a..c09eaedb6eeb 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr @@ -301,7 +301,7 @@ pub global GAS_SETTINGS_LENGTH: u32 = GAS_LENGTH /* gas_limits */ + GAS_FEES_LENGTH /* max_fees_per_gas */ + GAS_FEES_LENGTH /* max_priority_fees_per_gas */; pub global CALL_CONTEXT_LENGTH: u32 = 4; -pub global CONTRACT_INSTANCE_LENGTH: u32 = 16; +pub global CONTRACT_INSTANCE_LENGTH: u32 = 17; pub global CONTRACT_STORAGE_READ_LENGTH: u32 = 3; pub global CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH: u32 = 3; pub global ETH_ADDRESS_LENGTH: u32 = 1; diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/contract_instance.nr b/noir-projects/noir-protocol-circuits/crates/types/src/contract_instance.nr index fa2ce232d0a3..90e658fdd4c7 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/contract_instance.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/contract_instance.nr @@ -12,6 +12,7 @@ pub struct ContractInstance { pub deployer: AztecAddress, pub contract_class_id: ContractClassId, pub initialization_hash: Field, + pub immutables_hash: Field, pub public_keys: PublicKeys, } @@ -52,6 +53,7 @@ mod test { deployer: AztecAddress::from_field(12), contract_class_id: ContractClassId::from_field(13), initialization_hash: 156, + immutables_hash: 789, public_keys: PublicKeys::default(), }; diff --git a/yarn-project/aztec.js/src/deployment/publish_instance.ts b/yarn-project/aztec.js/src/deployment/publish_instance.ts index bb6db197f49c..69801363ed91 100644 --- a/yarn-project/aztec.js/src/deployment/publish_instance.ts +++ b/yarn-project/aztec.js/src/deployment/publish_instance.ts @@ -17,6 +17,7 @@ export function publishInstance(wallet: Wallet, instance: ContractInstanceWithAd salt, contractClassId, instance.initializationHash, + instance.immutablesHash, publicKeys, isUniversalDeploy, ); diff --git a/yarn-project/aztec.js/src/wallet/wallet.test.ts b/yarn-project/aztec.js/src/wallet/wallet.test.ts index cf96c2231cc2..344747a28a29 100644 --- a/yarn-project/aztec.js/src/wallet/wallet.test.ts +++ b/yarn-project/aztec.js/src/wallet/wallet.test.ts @@ -136,12 +136,13 @@ describe('WalletSchema', () => { }; const mockInstance: ContractInstanceWithAddress = { address: await AztecAddress.random(), - version: 1, + version: 2, salt: Fr.random(), deployer: await AztecAddress.random(), currentContractClassId: Fr.random(), originalContractClassId: Fr.random(), initializationHash: Fr.random(), + immutablesHash: Fr.random(), publicKeys: PublicKeys.default(), }; const result = await context.client.registerContract(mockInstance, mockArtifact, Fr.random()); @@ -150,10 +151,11 @@ describe('WalletSchema', () => { currentContractClassId: expect.any(Fr), deployer: expect.any(AztecAddress), initializationHash: expect.any(Fr), + immutablesHash: expect.any(Fr), originalContractClassId: expect.any(Fr), publicKeys: expect.any(PublicKeys), salt: expect.any(Fr), - version: 1, + version: 2, }); }); @@ -335,12 +337,13 @@ describe('WalletSchema', () => { const mockInstance: ContractInstanceWithAddress = { address: address2, - version: 1, + version: 2, salt: Fr.random(), deployer: await AztecAddress.random(), currentContractClassId: Fr.random(), originalContractClassId: Fr.random(), initializationHash: Fr.random(), + immutablesHash: Fr.random(), publicKeys: PublicKeys.default(), }; @@ -470,11 +473,12 @@ class MockWallet implements Wallet { async registerContract(_instanceData: any, _artifact?: any, _secretKey?: Fr): Promise { return { - version: 1, + version: 2, address: await AztecAddress.random(), currentContractClassId: Fr.random(), deployer: await AztecAddress.random(), initializationHash: Fr.random(), + immutablesHash: Fr.random(), originalContractClassId: Fr.random(), publicKeys: await PublicKeys.random(), salt: Fr.random(), diff --git a/yarn-project/constants/src/constants.gen.ts b/yarn-project/constants/src/constants.gen.ts index 9e88cba9461b..c06d52ecf25c 100644 --- a/yarn-project/constants/src/constants.gen.ts +++ b/yarn-project/constants/src/constants.gen.ts @@ -141,7 +141,7 @@ export const GAS_FEES_LENGTH = 2; export const GAS_LENGTH = 2; export const GAS_SETTINGS_LENGTH = 8; export const CALL_CONTEXT_LENGTH = 4; -export const CONTRACT_INSTANCE_LENGTH = 16; +export const CONTRACT_INSTANCE_LENGTH = 17; export const CONTRACT_STORAGE_READ_LENGTH = 3; export const CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH = 3; export const ETH_ADDRESS_LENGTH = 1; diff --git a/yarn-project/end-to-end/src/e2e_deploy_contract/contract_class_registration.test.ts b/yarn-project/end-to-end/src/e2e_deploy_contract/contract_class_registration.test.ts index cb0a5b7cb54b..eef45cd0e792 100644 --- a/yarn-project/end-to-end/src/e2e_deploy_contract/contract_class_registration.test.ts +++ b/yarn-project/end-to-end/src/e2e_deploy_contract/contract_class_registration.test.ts @@ -142,6 +142,7 @@ describe('e2e_deploy_contract contract class registration', () => { expect(deployed!.address).toEqual(instance.address); expect(deployed!.currentContractClassId).toEqual(contractClass.id); expect(deployed!.initializationHash).toEqual(instance.initializationHash); + expect(deployed!.immutablesHash).toEqual(instance.immutablesHash); expect(deployed!.publicKeys).toEqual(instance.publicKeys); expect(deployed!.salt).toEqual(instance.salt); expect(deployed!.deployer).toEqual(instance.deployer); diff --git a/yarn-project/noir-protocol-circuits-types/src/noir_test_gen.test.ts b/yarn-project/noir-protocol-circuits-types/src/noir_test_gen.test.ts index b5b9b31845f8..ee13d4afb7d3 100644 --- a/yarn-project/noir-protocol-circuits-types/src/noir_test_gen.test.ts +++ b/yarn-project/noir-protocol-circuits-types/src/noir_test_gen.test.ts @@ -20,7 +20,7 @@ describe('Data generation for noir tests', () => { setupCustomSnapshotSerializers(expect); type FixtureContractData = Omit & - Pick & + Pick & Pick & { toString: () => string }; const defaultContract: FixtureContractData = { @@ -28,6 +28,7 @@ describe('Data generation for noir tests', () => { packedBytecode: Buffer.from([3, 4, 5, 6, 7]), publicKeys: PublicKeys.default(), salt: new Fr(56789), + immutablesHash: new Fr(7890), privateFunctions: [ { selector: FunctionSelector.fromField(new Fr(1010101)), vkHash: new Fr(123123) }, { selector: FunctionSelector.fromField(new Fr(2020202)), vkHash: new Fr(456456) }, @@ -40,6 +41,7 @@ describe('Data generation for noir tests', () => { packedBytecode: Buffer.from([3, 4, 3, 4]), publicKeys: PublicKeys.default(), salt: new Fr(5656), + immutablesHash: new Fr(7890), privateFunctions: [{ selector: FunctionSelector.fromField(new Fr(334455)), vkHash: new Fr(789789) }], toString: () => 'parentContract', }; @@ -49,6 +51,7 @@ describe('Data generation for noir tests', () => { packedBytecode: Buffer.from([5, 6, 7, 8, 9, 0]), publicKeys: PublicKeys.default(), salt: new Fr(789), + immutablesHash: new Fr(7890), privateFunctions: [ { selector: FunctionSelector.fromField(new Fr(1010101)), vkHash: new Fr(7788) }, { selector: FunctionSelector.fromField(new Fr(2020202)), vkHash: new Fr(9900) }, @@ -78,7 +81,7 @@ describe('Data generation for noir tests', () => { const deployer = AztecAddress.ZERO; const instance: ContractInstance = { ...contract, - version: 1, + version: 2, initializationHash, currentContractClassId: contractClassId, originalContractClassId: contractClassId, diff --git a/yarn-project/p2p/src/msg_validators/tx_validator/contract_instance_validator.test.ts b/yarn-project/p2p/src/msg_validators/tx_validator/contract_instance_validator.test.ts index e3f01949139a..a2db257d7e8c 100644 --- a/yarn-project/p2p/src/msg_validators/tx_validator/contract_instance_validator.test.ts +++ b/yarn-project/p2p/src/msg_validators/tx_validator/contract_instance_validator.test.ts @@ -32,7 +32,7 @@ describe('ContractInstanceTxValidator', () => { /** * Builds a PrivateLog encoding a ContractInstancePublishedEvent. - * Layout: [tag, address, version, salt, contractClassId, initializationHash, ...publicKeys(8 fields), deployer] + * Layout: [tag, address, version, salt, contractClassId, initializationHash, immutablesHash, ...publicKeys(8 fields), deployer] */ async function buildContractInstanceLog(opts?: { address?: AztecAddress }): Promise { const salt = Fr.random(); @@ -40,13 +40,15 @@ describe('ContractInstanceTxValidator', () => { const initializationHash = Fr.random(); const publicKeys = await PublicKeys.random(); const deployer = await AztecAddress.random(); + const immutablesHash = Fr.random(); const instance = { - version: 1 as const, + version: 2 as const, salt, currentContractClassId: contractClassId, originalContractClassId: contractClassId, initializationHash, + immutablesHash, publicKeys, deployer, }; @@ -66,10 +68,11 @@ describe('ContractInstanceTxValidator', () => { const emittedFields: Fr[] = [ CONTRACT_INSTANCE_PUBLISHED_EVENT_TAG, address.toField(), - new Fr(1), // version + new Fr(2), // version salt, contractClassId, initializationHash, + immutablesHash, ...publicKeysFields, deployer.toField(), ]; diff --git a/yarn-project/protocol-contracts/fixtures/ContractClassPublishedEventData.hex b/yarn-project/protocol-contracts/fixtures/ContractClassPublishedEventData.hex index 6619699e7cb2..9a174ef1abf6 100644 --- a/yarn-project/protocol-contracts/fixtures/ContractClassPublishedEventData.hex +++ b/yarn-project/protocol-contracts/fixtures/ContractClassPublishedEventData.hex @@ -1 +1 @@ -000000000000000000000000000000000000000000000000000000000000000320f5895a4e837356c2d551743df6bf642756dcd93cd31cbd37c556c90bf7f2441c2459719688b73599862bb4192cf567006eaf1fd7382d84f842a6f3616b326c0000000000000000000000000000000000000000000000000000000000000001237dfcd925241181677bde88f3ea51653dd144811eda2d9f208eee7c6b42f50a07be998ba5208ae3c3c9329157a2c586b26d7489a3e4be5af66e6a1b70e4357a0000000000000000000000000000000000000000000000000000000000000e04002700020401280000010480472700000447250000004127020304012702040400001f0a0003000400462d0846022500000075270202044727020304003b0e00000300022c0000430030644e72e131a029b85045b68181585d2833e84879b970009143e1f593f00000002900004404ffffffff2700450403262902000300324d00e62f0a2a02030427020504002702070403002a0507062d080103000801060100270303040100220302062d0e050600220602062d0e05062702060403002a030006052702050401270206040227020704002702080101270209010027020a0000002902000b00c732f9772b02000c0000000000000000020000000000000000002b02000d00000000000000000300000000000000002902000e00d9b5157824000200040000012323000006202d08010427020f04030008010f01270304040100002204020f1f3a00060005000f002a04050f2d0b0f0f002a0406102d0b1010001e020004001e020011001e020011002d080112270213040300080113012703001204010022120213360e0011001300002a1205132d0b1313002a1206142d0b0014141c0a131200042a12141524020013000001b027021204003c0612012d080001122702130403000801130127031204010022120213360e0011001302002a001205112d0b1111002a1206132d0b13131c0a111200042a1213142402001100000001fc27021204003c0612012d0801112702120402000801120127031104010000221102121f3a000500070012002a1105122d0b12121c0a1213041c0a131100002d08011227021304030008011301270312040100221202131f3a00060005000013002a1205132d0b1313002a1206162d0b16162902001200d52de36b2d0800011727021804050008011801270317040100221702182d0a18192d0e12190000221902192d0e131900221902192d0e161900221902192d0e0d192d08011227000213040500080113012703120401002217021300221202163f0f0013001600002a1205132d0b1313290200120016f8af272d0801162702170405000801170100270316040100221602172d0a17182d0e121800221802182d0e11180022180200182d0e131800221802182d0e0d182d08011127021204050008011201270311000401002216021200221102133f0f00120013002a1105122d0b12120a2a1412001124020011000003532500000d540a2a150a111e020012010a22124313160a0013141c0a141600042a1612140a2a130912240200120000038627021604003c000616010a2a151412122a111213240200130000039d2500000d662d0801112700021204040008011201270311040100221102122d0a12132d0e0e130022130200132d0e0f1300221302132d0e1013002211020f390320004400440004004500000f200200042102000f2d080111270210040000221102132d0b1313270214040003002a111412223a000f000700122d0a0f13270311040100221102142d0e13001400221402142d0e13142702150403002a131514000801140127021404002d000a131506221502150a2a1014162d0a1510240200160000045a2d0a10102402000016000004740a2a10151724020017000004742500000d782402000400000400aa23000004812d0b110400220402042d0e0411002211020f2d0b0f0f270212000403002a1112043c0e0f0423000004aa0a2a10070424020004000004c02702000f04003c060f011e020004002d08010f2702100403000801100127030f04010000220f0210360e0004001002002a0f05102d0b1010002a0f06112d0b11111c000a100f00042a0f1112240200100000051127020f04003c060f012902000f0000ede022762d08011027021104050008011101270310040100221002112d0a1100132d0e0f1300221302132d0e041300221302132d0e121300221302132d0e0d00132d08010427020f04050008010f012703040401002210020f00220402113f000f000f0011002a04050f2d0b0f0f3402000f1e020004002d08010f270210040005000801100127030f040100220f02102d0a10112d0e0b1100221102112d0e00041100221102112d0e0a1100221102112d0e0c112d0801042702100405000800011001270304040100220f021000220402113f0f00100011002a04050f2d0b000f0f3402000f2d0b030400220402042d0e0403002203020f2d0b0f0f270210000403002a0310043b0e000f0004230000062029020004005bd9f2da0a2a0204000f27020400022902001000ef52534d2402000f00000649230000083a2d0801000f2702110403000801110127030f040100220f02111f3a000600050011002a000f05112d0b1111002a0f06122d0b12121e02000f001e02000f001e02000f00002d08011327021404050008011401270313040100221302142d0a14152d0e0b001500221502152d0e0f1500221502152d0e0a1500221502152d0e0c152d0801000f2702140405000801140127030f0401002213021400220f02153f0f0014000015002a0f05132d0b13131e02000f002902001400036d527f2d0801152702160004050008011601270315040100221502162d0a16172d0e141700221702172d000e0f1700221702172d0e131700221702172d0e0d172d08010f270213040500000801130127030f0401002215021300220f02143f0f00130014002a0f05132d000b1313330a0013000f2402000f000007792500000d8a2d08010f270213040500000801130127030f040100220f02132d0a13142d0e101400221402142d0e04001400221402142d0e111400221402142d0e0d142d0801112702130405000801001301270311040100220f021300221102143f0f00130014002a11050f2d0b0f000f0a2a0f0a110a2a11091324020013000007f72500000d9c1e020011002f2a00000f00110013002a131211300a0011000f2d0b030f00220f020f2d0e0f030000220302112d0b11112702120403002a03120f3b0e0011000f230000083a0a2a00020e0f2402000f0000084c23000009492d08010e27020f04030008010f012700030e040100220e020f1f3a00060005000f002a0e050f2d0b0f0f002a0e0611002d0b11111e020006001e020006002d08010627020e04050008010e01270306000401002206020e2d0a0e122d0e101200221202122d0e041200221202122d0e000f1200221202122d0e0d122d08010e27020f04050008010f0127030e040100002206020f00220e02123f0f000f0012002a0e05062d0b06060a2a060a0e0a2a000e090f2402000f000009062500000d9c1e02000e002f2a0006000e000f002a000f110e300a000e00062d0b030600220602062d0e0603002203020e2d0b0e0e0027020f0403002a030f063b0e000e000623000009492902000600bb19097e0a002a02060e2402000e000009642300000a932d08010627020e04020008010e01002703060401002206020e1f3a00050005000e002a06050e2d0b0e0e1e02000600001e020006001e0200060924020006000009a92500000dae2d08010627020f0004050008010f012703060401002206020f2d0a0f112d0e101100221102112d000e041100221102112d0e0e1100221102112d0e0d112d08010427020d0405000008010d012703040401002206020d002204020e3f0f000d000e002a0405062d000b06060a2a060a040a2a04090d2402000d00000a272500000d9c1e02000400002f2a00060004000d270206040127020f0403002a060f0e2d0801040008010e00012703040401002204020e2d0e060e00220e020e2d0e060e27020e0403002a00040e062d0a060e2d0e0d0e002204020d2d0b0d0d27020e0403002a040e063b000e000d00062300000a932902000400ee21e57b0a2a0204062402000600000a00ae2300000b8e1e020004010a22044306160a060d1c0a0d0e00042a0e040d0a002a0609042402000400000adc27020e04003c060e011e020004000a2a0d0406002402000600000af32500000dc01e020004002d08010627020d04050008010d00012703060401002206020d2d0a0d0e2d0e0b0e00220e020e2d0e040e00220e00020e2d0e0a0e00220e020e2d0e0c0e2d08010427020a04050008010a01270300040401002206020a002204020b3f0f000a000b002a0405062d0b060634020000062d0b030400220402042d0e040300220302052d0b05052702060403002a030006043b0e000500042300000b8e2702030255270204026e270205026b27020600026f270207027727020a022027020b027327020c026527020d026c27020e02006327020f02742702100272270211027b270212027d2d080113270214041c000008011401270313040100221302142d0a14152d0e031500221502152d0e04150000221502152d0e051500221502152d0e041500221502152d0e06150022150200152d0e071500221502152d0e041500221502152d0e0a1500221502152d0e0b001500221502152d0e0c1500221502152d0e0d1500221502152d0e0c150022150002152d0e0e1500221502152d0e0f1500221502152d0e061500221502152d0e00101500221502152d0e0a1500221502152d0e111500221502152d0e0b150022001502152d0e0c1500221502152d0e0d1500221502152d0e0c1500221502152d000e0e1500221502152d0e0f1500221502152d0e061500221502152d0e10150000221502152d0e121527020300010a2a0908042402000400000d54270205041e002d080106270207041e00080107012d0a06072a030007059b5bbff74a5bff19000022070207002213020a27020b041b2d020a032d0207042d020b052500000d00d227020a041b002a070a072d0e030700220702072d0e020700220702073c0e0005062a010001058a553a2c2b67c8ef3c040201262a01000105c80d73736ecd00b4e13c040201262a0100010575fef108377c8a4f3c040201262a010001050600613b3d0b9dbd333c040201262a01000105babb21d7823318643c040201262a0001000105c5cc62b50ed35c303c040201262a010001052ab9ecbeb3430ae13c000402012600000305072d0003082d0004092300000df62d0108062d04060900000008020800000902090c0008070a2400000a00000de42600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007a \ No newline at end of file +000000000000000000000000000000000000000000000000000000000000000320f5895a4e837356c2d551743df6bf642756dcd93cd31cbd37c556c90bf7f24420e4c2b3c8d6e6037459a9fc71fb8888df4d9719a5dbe500c8f518458d59a6a400000000000000000000000000000000000000000000000000000000000000012e661ce4a5a48e1fc698bc0bd018bb79dc41c0724c07f7d612d26cc1cd8982501d1a2b3e603c3869d30f0efa2c1d528960f1fdaa2d2ffee642b9a3e49c5e81ad0000000000000000000000000000000000000000000000000000000000000e1c0027000204012800000104804d270000044d250000004127020304012702040400001f0a00030004004c2d084c0225000000b7270202044d27020304003b0e00000300022c0000430030644e72e131a029b85045b68181585d2833e84879b970009143e1f593f00000002900004404ffffffff2700450403270046000027004700010127004804012900004900c732f9772b00004a0000000000000000020000000000000000002b00004b000000000000000003000000000000000026290200000300324de62f0a2a02030427020504002702070403002a0507062d080103000008010601270303040100220302062d0e050600220602062d0e0506270206040003002a0306052702050402270206040027020701002902000800d9b5157824000200040000012323000006202d0801042702090403000801090127030404010000220402091f3200050048000900220448092d0b0909002a04050a2d0b0a0a001e020004001e02000b001e02000b002d08010c27020d04030008010d012703000c040100220c020d360e000b000d0000220c480d2d0b0d0d002a0c050e2d0b000e0e1c0a0d0c00042a0c0e0f2402000d000001b027020c04003c060c012d0800010c27020d04030008010d0127030c040100220c020d360e000b000d020022000c480b2d0b0b0b002a0c050d2d0b0d0d1c0a0b0c00042a0c0d0e2402000b00000001fc27020c04003c060c012d08010b27020c04020008010c0127030b04010000220b020c1f3800480006000c00220b480c2d0b0c0c1c0a0c0d041c0a0d0b00002d08010c27020d04030008010d0127030c040100220c020d1f320005004800000d00220c480d2d0b0d0d002a0c05102d0b10102902000c00d52de36b2d0800011127021204050008011201270311040100221102122d0a12132d0e0c130000221302132d0e0d1300221302132d0e101300221302132d0c4b132d08010c2700020d04050008010d0127030c0401002211020d00220c02103f0f000d00100000220c480d2d0b0d0d2902000c0016f8af272d0801102702110405000801110100270310040100221002112d0a11122d0e0c1200221202122d0e0b120022120200122d0e0d1200221202122d0c4b122d08010b27020c04050008010c0127030b000401002210020c00220b020d3f0f000c000d00220b480c2d0b0c0c0a2a0e0c000b2402000b000003532500000c770a220f460b1e02000c010a220c430d160a000d0e1c0a0e1000042a100c0e0a2a0d070c2402000c0000038627021004003c000610010a2a0f0e0c122a0b0c0d2402000d0000039d2500000c892d08010b2700020c04040008010c0127030b040100220b020c2d0a0c0d2d0e080d00220d02000d2d0e090d00220d020d2d0e0a0d00220b0209390320004400440004004500000920020004210200092d08010b27020a040000220b020d2d0b0d0d27020e040003002a0b0e0c223a00090006000c2d0a090d27030b040100220b020e2d0e0d000e00220e020e2d0e0d0e27020f0403002a0d0f0e0008010e0127020e04002d000a0d0f06220f020f0a2a0a0e102d0a0f0a240200100000045a2d0a0a0a2402000010000004740a2a0a0f1124020011000004742500000c9b2402000400000400aa23000004812d0b0b0400220402042d0e040b00220b02092d0b090927020c000403002a0b0c043c0e090423000004aa0a2a0a060424020004000004c02702000904003c0609011e020004002d08010927020a04030008010a01270309040100002209020a360e0004000a02002209480a2d0b0a0a002a09050b2d0b0b0b1c000a0a0900042a090b0c2402000a0000051127020904003c060901290200090000ede022762d08010a27020b04050008010b0127030a040100220a020b2d0a0b000d2d0e090d00220d020d2d0e040d00220d020d2d0e0c0d00220d020d2d0c4b000d2d08010427020904050008010901270304040100220a0209002204020b3f000f0009000b00220448092d0b0909340200091e020004002d08010927020a0400050008010a012703090401002209020a2d0a0a0b2d0c490b00220b020b2d0e00040b00220b020b2d0c460b00220b020b2d0c4a0b2d08010427020a0405000800010a012703040401002209020a002204020b3f0f000a000b00220448092d0b000909340200092d0b030400220402042d0e040300220302092d0b090927020a000403002a030a043b0e00090004230000062029020004005bd9f2da0a2a0204000927020400022902000a00ef52534d2402000900000649230000075d2d0801000927020b04030008010b012703090401002209020b1f3200050048000b00220009480b2d0b0b0b002a09050c2d0b0c0c1e020009001e02000900270209040d002d08000d00080009002500000cad2d0200002d08010927020d04050008010d00012703090401002209020d2d0a0d0e2d0e0a0e00220e020e2d0e040e00220e00020e2d0e0b0e00220e020e2d0c4b0e2d08010b27020d04050008010d012703000b0401002209020d00220b020e3f0f000d000e00220b48092d0b09090a220900460b0a2a0b070d2402000d0000071a2500000da21e02000b002f2a0009000b00000d002a0d0c0b300a000b00092d0b030900220902092d0e0903002203020b002d0b0b0b27020c0403002a030c093b0e000b0009230000075d0a2a02080924000200090000076f230000086c2d0801082702090403000801090127030804010000220802091f3200050048000900220848092d0b0909002a08050b2d0b0b0b001e020005001e020005002d0801052702080405000801080127030504010022000502082d0a080c2d0e0a0c00220c020c2d0e040c00220c020c2d0e090c0022000c020c2d0c4b0c2d080108270209040500080109012703080401002205020900002208020c3f0f0009000c00220848052d0b05050a220546080a2a0807092400020009000008292500000da21e020008002f2a000500080009002a090b0830000a000800052d0b030500220502052d0e050300220302082d0b0808270209040003002a0309053b0e00080005230000086c2902000500bb19097e0a2a02050800240200080000088723000009b62d0801052702080402000801080127030504000100220502081f3000480048000800220548082d0b08081e020005001e02000005001e0200050924020005000008cc2500000db42d0801052702090405000800010901270305040100220502092d0a090b2d0e0a0b00220b020b2d0e040b0000220b020b2d0e080b00220b020b2d0c4b0b2d08010427020804050008010801002703040401002205020800220402093f0f0008000900220448052d0b05050a00220546040a2a040708240200080000094a2500000da21e020004002f2a00050000040008270205040127020a0403002a050a092d080104000801090127030400040100220402092d0e050900220902092d0e05092702090403002a0409052d000a05092d0e080900220402082d0b08082702090403002a0409053b0e000800000523000009b62902000400ee21e57b0a2a02040524020005000009d1230000000ab11e020004010a22044305160a05081c0a080900042a0904080a2a0507040024020004000009ff27020904003c0609011e020004000a2a080405240200050000000a162500000dc61e020004002d0801052702080405000801080127030500040100220502082d0a08092d0c490900220902092d0e040900220902092d0c00460900220902092d0c4a092d08010427020804050008010801270304040100002205020800220402093f0f0008000900220448052d0b0505340200052d0b03000400220402042d0e040300220302052d0b05052702080403002a0308043b0e00000500042300000ab12702030255270204026e270205026b270206026f270200080277270209022027020a027327020b026527020c026c27020d026327020e00027427020f0272270210027b270211027d2d080112270213041c000801130100270312040100221202132d0a13142d0e031400221402142d0e04140022140200142d0e051400221402142d0e041400221402142d0e061400221402142d0e08001400221402142d0e041400221402142d0e091400221402142d0e0a140022140002142d0e0b1400221402142d0e0c1400221402142d0e0b1400221402142d0e000d1400221402142d0e0e1400221402142d0e061400221402142d0e0f140022001402142d0e091400221402142d0e101400221402142d0e0a1400221402142d000e0b1400221402142d0e0c1400221402142d0e0b1400221402142d0e0d140000221402142d0e0e1400221402142d0e061400221402142d0e0f140022140214002d0e111427020300010a220747042402000400000c77270205041e2d08010600270208041e00080108012d0a06082a030008059b5bbff74a5bff19002208020008002212020927020a041b2d0209032d0208042d020a052500000dd827020900041b002a0809082d0e030800220802082d0e020800220802083c0e05062a01000001058a553a2c2b67c8ef3c040201262a01000105c80d73736ecdb4e13c04000201262a0100010575fef108377c8a4f3c040201261e020002002d0801032700020404050008010401270303040100220302042d0a04052d0c49050022050200052d0e020500220502052d0c460500220502052d0c4a052d08010227020404000500080104012703020401002203020400220202053f0f000400050022024800032d0b03031e020002002902000400036d527f2d0801052702060405000801000601270305040100220502062d0a06072d0e040700220702072d0e02070022000702072d0e030700220702072d0c4b072d08010227020304050008010301270003020401002205020300220202043f0f0003000400220248032d0b0303330a00000300022402000200000da12500000e0a262a01000105babb21d782331864003c040201262a01000105c5cc62b50ed35c303c040201262a010001052ab9ec00beb3430ae13c0402012600000305072d0003082d0004092300000dfc2d010800062d040609000008020800000902090c0008070a2400000a00000dea262a010000010506613b3d0b9dbd333c04020126000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b \ No newline at end of file diff --git a/yarn-project/protocol-contracts/fixtures/ContractInstancePublishedEventData.hex b/yarn-project/protocol-contracts/fixtures/ContractInstancePublishedEventData.hex index 91be7f65a8fd..bdb53dd9ccdf 100644 --- a/yarn-project/protocol-contracts/fixtures/ContractInstancePublishedEventData.hex +++ b/yarn-project/protocol-contracts/fixtures/ContractInstancePublishedEventData.hex @@ -1 +1 @@ -1a7e1badb79abdd38c684b3c8306ffe7ecb33c69e3380d9855730aaaa83a21a821e212810f887382b564c453919235ecc04ff03f9c5127ac9a630a3fc62cfbbb0000000000000000000000000000000000000000000000000000000000000001108abf493e0af91750b53cd462defc3373f1a522e982af55b0c8ec7d20cf03931c2459719688b73599862bb4192cf567006eaf1fd7382d84f842a6f3616b326c0fb36d433fc86c98e17d214b1024303def3bb1e8fa412bc6e796eb1366b5f55b1366c504bbb3b3bb5d7246d9e082468eae37d93c38705b9eb4ef8bb76dc9b98005c6d6a962e4d7a458aa232dab86841ebcfe4d342556f270f6b2452fd87581bb1e415b163a4af0578cf70ab19e836504a74de9ea3e0c94373ca781436155bfc31fe218da6de686b7a39b092364894c6c2246fee50d0ff9832294cd6b792b8f421aa402e7eafa5c5d6ed9454c794e744eabf3b0c5ed84a35567fbe7509552181808afab9b331786e21a60f1f237a7a0f5457ce547160b82ace9a58a800b170fc1289752f4904779a603001cd6fab021079a04e18f0740eb0e1009088199178d1f26814d31374c3e5c551e28a5467feb67155bb2be160d80ca851babfa60501e61000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f \ No newline at end of file +1a7e1badb79abdd38c684b3c8306ffe7ecb33c69e3380d9855730aaaa83a21a82bb66eecb55d0bedc419a4e64aed5abeade190ae14e2389d1a1e48557c3ca198000000000000000000000000000000000000000000000000000000000000000202f0a6e3da584ea3692fe2a2751ff5e7b0124bea3c707c649747b543fe0fa38a08362e21dff8d231f5f32dbb916c8678d1af578362b3b6c42100cb86b701315e0e262f35d3a2042eafab58c04c02bc2e5d197cabad610b57468d8979dac35e2b0000000000000000000000000000000000000000000000000000000000000000062dde7d04277d872d2ed897a4b030b94103aa29ee1a21315a7d5be1e63f5d332043a22dd03b6f5af765ac9659613582530dea9995a11b59e7a41a55aae675f41ac862ba6831bc9cd0978435cbed95ef2c5f3f40f3a79c1da890d0aac611333a09fda70ea850221f661151b876121a6a535e2965c1a36ecfb349cce03fb64e871896d678640fd7a14df0e2f9ce47eda4b60220371f1150a3f0a798b6c6bff2f802282762f0b1e4bfe0d9af06e4863bdd4ebe1e7d842fd6014fd7359d7986cd041531ed18f020e636fa7dcdb319ed39c11c206a03a17fdc49ffedac2534bf16a62c17960bf273be0f74f78d6d2eead430b8f3d77e3462de2d248492c8af9d2c12000000000000000000000000000000000000000000000000000000000000000000000010 \ No newline at end of file diff --git a/yarn-project/protocol-contracts/src/class-registry/__snapshots__/contract_class_published_event.test.ts.snap b/yarn-project/protocol-contracts/src/class-registry/__snapshots__/contract_class_published_event.test.ts.snap index 82c511c761eb..0bfc6f6cbda2 100644 --- a/yarn-project/protocol-contracts/src/class-registry/__snapshots__/contract_class_published_event.test.ts.snap +++ b/yarn-project/protocol-contracts/src/class-registry/__snapshots__/contract_class_published_event.test.ts.snap @@ -2,10 +2,10 @@ exports[`ContractClassPublishedEvent parses an event as emitted by the ContractClassRegistry 1`] = ` ContractClassPublishedEvent { - "artifactHash": Fr<0x237dfcd925241181677bde88f3ea51653dd144811eda2d9f208eee7c6b42f50a>, - "contractClassId": Fr<0x1c2459719688b73599862bb4192cf567006eaf1fd7382d84f842a6f3616b326c>, - "packedPublicBytecode": Buffer<0x27000204012800000104804727000004472500000041270203040127020404001f0a0003000400462d0846022500000075270202044727020304003b0e000300022c0000430030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002900004404ffffffff2700450403262902000300324de62f0a2a02030427020504002702070403002a0507062d0801030008010601270303040100220302062d0e050600220602062d0e05062702060403002a0306052702050401270206040227020704002702080101270209010027020a00002902000b00c732f9772b02000c00000000000000000200000000000000002b02000d00000000000000000300000000000000002902000e00d9b51578240200040000012323000006202d08010427020f04030008010f012703040401002204020f1f3a00060005000f002a04050f2d0b0f0f002a0406102d0b10101e020004001e020011001e020011002d0801122702130403000801130127031204010022120213360e0011001300002a1205132d0b1313002a1206142d0b14141c0a131200042a12141524020013000001b027021204003c0612012d0801122702130403000801130127031204010022120213360e0011001302002a1205112d0b1111002a1206132d0b13131c0a111200042a12131424020011000001fc27021204003c0612012d08011127021204020008011201270311040100221102121f3a000500070012002a1105122d0b12121c0a1213041c0a1311002d08011227021304030008011301270312040100221202131f3a000600050013002a1205132d0b1313002a1206162d0b16162902001200d52de36b2d08011727021804050008011801270317040100221702182d0a18192d0e121900221902192d0e131900221902192d0e161900221902192d0e0d192d080112270213040500080113012703120401002217021300221202163f0f00130016002a1205132d0b1313290200120016f8af272d08011627021704050008011701270316040100221602172d0a17182d0e121800221802182d0e111800221802182d0e131800221802182d0e0d182d080111270212040500080112012703110401002216021200221102133f0f00120013002a1105122d0b12120a2a14121124020011000003532500000d540a2a150a111e020012010a22124313160a13141c0a141600042a1612140a2a130912240200120000038627021604003c0616010a2a151412122a111213240200130000039d2500000d662d08011127021204040008011201270311040100221102122d0a12132d0e0e1300221302132d0e0f1300221302132d0e1013002211020f3903200044004400040045000f200200042102000f2d080111270210040000221102132d0b13132702140403002a111412223a000f000700122d0a0f13270311040100221102142d0e131400221402142d0e13142702150403002a131514000801140127021404002d0a131506221502150a2a1014162d0a1510240200160000045a2d0a101024020016000004740a2a10151724020017000004742500000d7824020004000004aa23000004812d0b110400220402042d0e0411002211020f2d0b0f0f2702120403002a1112043c0e0f0423000004aa0a2a10070424020004000004c027020f04003c060f011e020004002d08010f2702100403000801100127030f040100220f0210360e0004001002002a0f05102d0b1010002a0f06112d0b11111c0a100f00042a0f1112240200100000051127020f04003c060f012902000f00ede022762d08011027021104050008011101270310040100221002112d0a11132d0e0f1300221302132d0e041300221302132d0e121300221302132d0e0d132d08010427020f04050008010f012703040401002210020f00220402113f0f000f0011002a04050f2d0b0f0f3402000f1e020004002d08010f2702100405000801100127030f040100220f02102d0a10112d0e0b1100221102112d0e041100221102112d0e0a1100221102112d0e0c112d08010427021004050008011001270304040100220f021000220402113f0f00100011002a04050f2d0b0f0f3402000f2d0b030400220402042d0e0403002203020f2d0b0f0f2702100403002a0310043b0e000f0004230000062029020004005bd9f2da0a2a02040f27020400022902001000ef52534d2402000f00000649230000083a2d08010f2702110403000801110127030f040100220f02111f3a000600050011002a0f05112d0b1111002a0f06122d0b12121e02000f001e02000f001e02000f002d08011327021404050008011401270313040100221302142d0a14152d0e0b1500221502152d0e0f1500221502152d0e0a1500221502152d0e0c152d08010f2702140405000801140127030f0401002213021400220f02153f0f00140015002a0f05132d0b13131e02000f002902001400036d527f2d08011527021604050008011601270315040100221502162d0a16172d0e141700221702172d0e0f1700221702172d0e131700221702172d0e0d172d08010f2702130405000801130127030f0401002215021300220f02143f0f00130014002a0f05132d0b1313330a0013000f2402000f000007792500000d8a2d08010f2702130405000801130127030f040100220f02132d0a13142d0e101400221402142d0e041400221402142d0e111400221402142d0e0d142d08011127021304050008011301270311040100220f021300221102143f0f00130014002a11050f2d0b0f0f0a2a0f0a110a2a11091324020013000007f72500000d9c1e020011002f2a000f00110013002a131211300a0011000f2d0b030f00220f020f2d0e0f0300220302112d0b11112702120403002a03120f3b0e0011000f230000083a0a2a020e0f2402000f0000084c23000009492d08010e27020f04030008010f0127030e040100220e020f1f3a00060005000f002a0e050f2d0b0f0f002a0e06112d0b11111e020006001e020006002d08010627020e04050008010e012703060401002206020e2d0a0e122d0e101200221202122d0e041200221202122d0e0f1200221202122d0e0d122d08010e27020f04050008010f0127030e0401002206020f00220e02123f0f000f0012002a0e05062d0b06060a2a060a0e0a2a0e090f2402000f000009062500000d9c1e02000e002f2a0006000e000f002a0f110e300a000e00062d0b030600220602062d0e0603002203020e2d0b0e0e27020f0403002a030f063b0e000e000623000009492902000600bb19097e0a2a02060e2402000e000009642300000a932d08010627020e04020008010e012703060401002206020e1f3a00050005000e002a06050e2d0b0e0e1e020006001e020006001e0200060924020006000009a92500000dae2d08010627020f04050008010f012703060401002206020f2d0a0f112d0e101100221102112d0e041100221102112d0e0e1100221102112d0e0d112d08010427020d04050008010d012703040401002206020d002204020e3f0f000d000e002a0405062d0b06060a2a060a040a2a04090d2402000d00000a272500000d9c1e020004002f2a00060004000d270206040127020f0403002a060f0e2d0801040008010e012703040401002204020e2d0e060e00220e020e2d0e060e27020e0403002a040e062d0a060e2d0e0d0e002204020d2d0b0d0d27020e0403002a040e063b0e000d00062300000a932902000400ee21e57b0a2a0204062402000600000aae2300000b8e1e020004010a22044306160a060d1c0a0d0e00042a0e040d0a2a0609042402000400000adc27020e04003c060e011e020004000a2a0d04062402000600000af32500000dc01e020004002d08010627020d04050008010d012703060401002206020d2d0a0d0e2d0e0b0e00220e020e2d0e040e00220e020e2d0e0a0e00220e020e2d0e0c0e2d08010427020a04050008010a012703040401002206020a002204020b3f0f000a000b002a0405062d0b0606340200062d0b030400220402042d0e040300220302052d0b05052702060403002a0306043b0e000500042300000b8e2702030255270204026e270205026b270206026f270207027727020a022027020b027327020c026527020d026c27020e026327020f02742702100272270211027b270212027d2d080113270214041c0008011401270313040100221302142d0a14152d0e031500221502152d0e041500221502152d0e051500221502152d0e041500221502152d0e061500221502152d0e071500221502152d0e041500221502152d0e0a1500221502152d0e0b1500221502152d0e0c1500221502152d0e0d1500221502152d0e0c1500221502152d0e0e1500221502152d0e0f1500221502152d0e061500221502152d0e101500221502152d0e0a1500221502152d0e111500221502152d0e0b1500221502152d0e0c1500221502152d0e0d1500221502152d0e0c1500221502152d0e0e1500221502152d0e0f1500221502152d0e061500221502152d0e101500221502152d0e121527020300010a2a0908042402000400000d54270205041e2d080106270207041e00080107012d0a06072a030007059b5bbff74a5bff190022070207002213020a27020b041b2d020a032d0207042d020b052500000dd227020a041b002a070a072d0e030700220702072d0e020700220702073c0e05062a010001058a553a2c2b67c8ef3c040201262a01000105c80d73736ecdb4e13c040201262a0100010575fef108377c8a4f3c040201262a0100010506613b3d0b9dbd333c040201262a01000105babb21d7823318643c040201262a01000105c5cc62b50ed35c303c040201262a010001052ab9ecbeb3430ae13c0402012600000305072d0003082d0004092300000df62d0108062d040609000008020800000902090c0008070a2400000a00000de426>, - "privateFunctionsRoot": Fr<0x07be998ba5208ae3c3c9329157a2c586b26d7489a3e4be5af66e6a1b70e4357a>, + "artifactHash": Fr<0x2e661ce4a5a48e1fc698bc0bd018bb79dc41c0724c07f7d612d26cc1cd898250>, + "contractClassId": Fr<0x20e4c2b3c8d6e6037459a9fc71fb8888df4d9719a5dbe500c8f518458d59a6a4>, + "packedPublicBytecode": Buffer<0x27000204012800000104804d270000044d2500000041270203040127020404001f0a00030004004c2d084c0225000000b7270202044d27020304003b0e000300022c0000430030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002900004404ffffffff27004504032700460000270047010127004804012900004900c732f9772b00004a00000000000000000200000000000000002b00004b0000000000000000030000000000000000262902000300324de62f0a2a02030427020504002702070403002a0507062d0801030008010601270303040100220302062d0e050600220602062d0e05062702060403002a0306052702050402270206040027020701002902000800d9b51578240200040000012323000006202d08010427020904030008010901270304040100220402091f3200050048000900220448092d0b0909002a04050a2d0b0a0a1e020004001e02000b001e02000b002d08010c27020d04030008010d0127030c040100220c020d360e000b000d0000220c480d2d0b0d0d002a0c050e2d0b0e0e1c0a0d0c00042a0c0e0f2402000d000001b027020c04003c060c012d08010c27020d04030008010d0127030c040100220c020d360e000b000d0200220c480b2d0b0b0b002a0c050d2d0b0d0d1c0a0b0c00042a0c0d0e2402000b000001fc27020c04003c060c012d08010b27020c04020008010c0127030b040100220b020c1f3800480006000c00220b480c2d0b0c0c1c0a0c0d041c0a0d0b002d08010c27020d04030008010d0127030c040100220c020d1f3200050048000d00220c480d2d0b0d0d002a0c05102d0b10102902000c00d52de36b2d08011127021204050008011201270311040100221102122d0a12132d0e0c1300221302132d0e0d1300221302132d0e101300221302132d0c4b132d08010c27020d04050008010d0127030c0401002211020d00220c02103f0f000d001000220c480d2d0b0d0d2902000c0016f8af272d08011027021104050008011101270310040100221002112d0a11122d0e0c1200221202122d0e0b1200221202122d0e0d1200221202122d0c4b122d08010b27020c04050008010c0127030b0401002210020c00220b020d3f0f000c000d00220b480c2d0b0c0c0a2a0e0c0b2402000b000003532500000c770a220f460b1e02000c010a220c430d160a0d0e1c0a0e1000042a100c0e0a2a0d070c2402000c0000038627021004003c0610010a2a0f0e0c122a0b0c0d2402000d0000039d2500000c892d08010b27020c04040008010c0127030b040100220b020c2d0a0c0d2d0e080d00220d020d2d0e090d00220d020d2d0e0a0d00220b02093903200044004400040045000920020004210200092d08010b27020a040000220b020d2d0b0d0d27020e0403002a0b0e0c223a00090006000c2d0a090d27030b040100220b020e2d0e0d0e00220e020e2d0e0d0e27020f0403002a0d0f0e0008010e0127020e04002d0a0d0f06220f020f0a2a0a0e102d0a0f0a240200100000045a2d0a0a0a24020010000004740a2a0a0f1124020011000004742500000c9b24020004000004aa23000004812d0b0b0400220402042d0e040b00220b02092d0b090927020c0403002a0b0c043c0e090423000004aa0a2a0a060424020004000004c027020904003c0609011e020004002d08010927020a04030008010a012703090401002209020a360e0004000a02002209480a2d0b0a0a002a09050b2d0b0b0b1c0a0a0900042a090b0c2402000a0000051127020904003c0609012902000900ede022762d08010a27020b04050008010b0127030a040100220a020b2d0a0b0d2d0e090d00220d020d2d0e040d00220d020d2d0e0c0d00220d020d2d0c4b0d2d08010427020904050008010901270304040100220a0209002204020b3f0f0009000b00220448092d0b0909340200091e020004002d08010927020a04050008010a012703090401002209020a2d0a0a0b2d0c490b00220b020b2d0e040b00220b020b2d0c460b00220b020b2d0c4a0b2d08010427020a04050008010a012703040401002209020a002204020b3f0f000a000b00220448092d0b0909340200092d0b030400220402042d0e040300220302092d0b090927020a0403002a030a043b0e00090004230000062029020004005bd9f2da0a2a02040927020400022902000a00ef52534d2402000900000649230000075d2d08010927020b04030008010b012703090401002209020b1f3200050048000b002209480b2d0b0b0b002a09050c2d0b0c0c1e020009001e02000900270209040d2d08000d00080009002500000cad2d0200002d08010927020d04050008010d012703090401002209020d2d0a0d0e2d0e0a0e00220e020e2d0e040e00220e020e2d0e0b0e00220e020e2d0c4b0e2d08010b27020d04050008010d0127030b0401002209020d00220b020e3f0f000d000e00220b48092d0b09090a2209460b0a2a0b070d2402000d0000071a2500000da21e02000b002f2a0009000b000d002a0d0c0b300a000b00092d0b030900220902092d0e0903002203020b2d0b0b0b27020c0403002a030c093b0e000b0009230000075d0a2a020809240200090000076f230000086c2d08010827020904030008010901270308040100220802091f3200050048000900220848092d0b0909002a08050b2d0b0b0b1e020005001e020005002d08010527020804050008010801270305040100220502082d0a080c2d0e0a0c00220c020c2d0e040c00220c020c2d0e090c00220c020c2d0c4b0c2d0801082702090405000801090127030804010022050209002208020c3f0f0009000c00220848052d0b05050a220546080a2a08070924020009000008292500000da21e020008002f2a000500080009002a090b08300a000800052d0b030500220502052d0e050300220302082d0b08082702090403002a0309053b0e00080005230000086c2902000500bb19097e0a2a020508240200080000088723000009b62d08010527020804020008010801270305040100220502081f3000480048000800220548082d0b08081e020005001e020005001e0200050924020005000008cc2500000db42d08010527020904050008010901270305040100220502092d0a090b2d0e0a0b00220b020b2d0e040b00220b020b2d0e080b00220b020b2d0c4b0b2d080104270208040500080108012703040401002205020800220402093f0f0008000900220448052d0b05050a220546040a2a040708240200080000094a2500000da21e020004002f2a000500040008270205040127020a0403002a050a092d0801040008010901270304040100220402092d0e050900220902092d0e05092702090403002a0409052d0a05092d0e080900220402082d0b08082702090403002a0409053b0e0008000523000009b62902000400ee21e57b0a2a02040524020005000009d12300000ab11e020004010a22044305160a05081c0a080900042a0904080a2a05070424020004000009ff27020904003c0609011e020004000a2a0804052402000500000a162500000dc61e020004002d08010527020804050008010801270305040100220502082d0a08092d0c490900220902092d0e040900220902092d0c460900220902092d0c4a092d080104270208040500080108012703040401002205020800220402093f0f0008000900220448052d0b0505340200052d0b030400220402042d0e040300220302052d0b05052702080403002a0308043b0e000500042300000ab12702030255270204026e270205026b270206026f2702080277270209022027020a027327020b026527020c026c27020d026327020e027427020f0272270210027b270211027d2d080112270213041c0008011301270312040100221202132d0a13142d0e031400221402142d0e041400221402142d0e051400221402142d0e041400221402142d0e061400221402142d0e081400221402142d0e041400221402142d0e091400221402142d0e0a1400221402142d0e0b1400221402142d0e0c1400221402142d0e0b1400221402142d0e0d1400221402142d0e0e1400221402142d0e061400221402142d0e0f1400221402142d0e091400221402142d0e101400221402142d0e0a1400221402142d0e0b1400221402142d0e0c1400221402142d0e0b1400221402142d0e0d1400221402142d0e0e1400221402142d0e061400221402142d0e0f1400221402142d0e111427020300010a220747042402000400000c77270205041e2d080106270208041e00080108012d0a06082a030008059b5bbff74a5bff190022080208002212020927020a041b2d0209032d0208042d020a052500000dd8270209041b002a0809082d0e030800220802082d0e020800220802083c0e05062a010001058a553a2c2b67c8ef3c040201262a01000105c80d73736ecdb4e13c040201262a0100010575fef108377c8a4f3c040201261e020002002d08010327020404050008010401270303040100220302042d0a04052d0c490500220502052d0e020500220502052d0c460500220502052d0c4a052d080102270204040500080104012703020401002203020400220202053f0f0004000500220248032d0b03031e020002002902000400036d527f2d08010527020604050008010601270305040100220502062d0a06072d0e040700220702072d0e020700220702072d0e030700220702072d0c4b072d080102270203040500080103012703020401002205020300220202043f0f0003000400220248032d0b0303330a000300022402000200000da12500000e0a262a01000105babb21d7823318643c040201262a01000105c5cc62b50ed35c303c040201262a010001052ab9ecbeb3430ae13c0402012600000305072d0003082d0004092300000dfc2d0108062d040609000008020800000902090c0008070a2400000a00000dea262a0100010506613b3d0b9dbd333c04020126>, + "privateFunctionsRoot": Fr<0x1d1a2b3e603c3869d30f0efa2c1d528960f1fdaa2d2ffee642b9a3e49c5e81ad>, "version": 1, } `; diff --git a/yarn-project/protocol-contracts/src/instance-registry/__snapshots__/contract_instance_published_event.test.ts.snap b/yarn-project/protocol-contracts/src/instance-registry/__snapshots__/contract_instance_published_event.test.ts.snap index f74640794bf0..5cfd374ef8c2 100644 --- a/yarn-project/protocol-contracts/src/instance-registry/__snapshots__/contract_instance_published_event.test.ts.snap +++ b/yarn-project/protocol-contracts/src/instance-registry/__snapshots__/contract_instance_published_event.test.ts.snap @@ -2,17 +2,18 @@ exports[`ContractInstancePublishedEvent parses an event as emitted by the ClassInstanceRegistry 1`] = ` ContractInstancePublishedEvent { - "address": "0x21e212810f887382b564c453919235ecc04ff03f9c5127ac9a630a3fc62cfbbb", - "contractClassId": "0x1c2459719688b73599862bb4192cf567006eaf1fd7382d84f842a6f3616b326c", + "address": "0x2bb66eecb55d0bedc419a4e64aed5abeade190ae14e2389d1a1e48557c3ca198", + "contractClassId": "0x08362e21dff8d231f5f32dbb916c8678d1af578362b3b6c42100cb86b701315e", "deployer": "0x0000000000000000000000000000000000000000000000000000000000000000", - "initializationHash": "0x0fb36d433fc86c98e17d214b1024303def3bb1e8fa412bc6e796eb1366b5f55b", + "immutablesHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "initializationHash": "0x0e262f35d3a2042eafab58c04c02bc2e5d197cabad610b57468d8979dac35e2b", "publicKeys": PublicKeys { - "masterIncomingViewingPublicKey": "0x1e415b163a4af0578cf70ab19e836504a74de9ea3e0c94373ca781436155bfc31fe218da6de686b7a39b092364894c6c2246fee50d0ff9832294cd6b792b8f42", - "masterNullifierPublicKey": "0x1366c504bbb3b3bb5d7246d9e082468eae37d93c38705b9eb4ef8bb76dc9b98005c6d6a962e4d7a458aa232dab86841ebcfe4d342556f270f6b2452fd87581bb", - "masterOutgoingViewingPublicKey": "0x1aa402e7eafa5c5d6ed9454c794e744eabf3b0c5ed84a35567fbe7509552181808afab9b331786e21a60f1f237a7a0f5457ce547160b82ace9a58a800b170fc1", - "masterTaggingPublicKey": "0x289752f4904779a603001cd6fab021079a04e18f0740eb0e1009088199178d1f26814d31374c3e5c551e28a5467feb67155bb2be160d80ca851babfa60501e61", + "masterIncomingViewingPublicKey": "0x1ac862ba6831bc9cd0978435cbed95ef2c5f3f40f3a79c1da890d0aac611333a09fda70ea850221f661151b876121a6a535e2965c1a36ecfb349cce03fb64e87", + "masterNullifierPublicKey": "0x062dde7d04277d872d2ed897a4b030b94103aa29ee1a21315a7d5be1e63f5d332043a22dd03b6f5af765ac9659613582530dea9995a11b59e7a41a55aae675f4", + "masterOutgoingViewingPublicKey": "0x1896d678640fd7a14df0e2f9ce47eda4b60220371f1150a3f0a798b6c6bff2f802282762f0b1e4bfe0d9af06e4863bdd4ebe1e7d842fd6014fd7359d7986cd04", + "masterTaggingPublicKey": "0x1531ed18f020e636fa7dcdb319ed39c11c206a03a17fdc49ffedac2534bf16a62c17960bf273be0f74f78d6d2eead430b8f3d77e3462de2d248492c8af9d2c12", }, - "salt": "0x108abf493e0af91750b53cd462defc3373f1a522e982af55b0c8ec7d20cf0393", - "version": 1, + "salt": "0x02f0a6e3da584ea3692fe2a2751ff5e7b0124bea3c707c649747b543fe0fa38a", + "version": 2, } `; diff --git a/yarn-project/protocol-contracts/src/instance-registry/contract_instance_published_event.ts b/yarn-project/protocol-contracts/src/instance-registry/contract_instance_published_event.ts index 35857a0f852b..d69ae3c2b683 100644 --- a/yarn-project/protocol-contracts/src/instance-registry/contract_instance_published_event.ts +++ b/yarn-project/protocol-contracts/src/instance-registry/contract_instance_published_event.ts @@ -15,6 +15,7 @@ export class ContractInstancePublishedEvent { public readonly salt: Fr, public readonly contractClassId: Fr, public readonly initializationHash: Fr, + public readonly immutablesHash: Fr, public readonly publicKeys: PublicKeys, public readonly deployer: AztecAddress, ) {} @@ -31,6 +32,7 @@ export class ContractInstancePublishedEvent { const salt = reader.readObject(Fr); const contractClassId = reader.readObject(Fr); const initializationHash = reader.readObject(Fr); + const immutablesHash = reader.readObject(Fr); const publicKeys = reader.readObject(PublicKeys); const deployer = reader.readObject(AztecAddress); @@ -40,13 +42,14 @@ export class ContractInstancePublishedEvent { salt, contractClassId, initializationHash, + immutablesHash, publicKeys, deployer, ); } toContractInstance(): ContractInstanceWithAddress { - if (this.version !== 1) { + if (this.version !== 2) { throw new Error(`Unexpected contract instance version ${this.version}`); } @@ -56,6 +59,7 @@ export class ContractInstancePublishedEvent { currentContractClassId: this.contractClassId, originalContractClassId: this.contractClassId, initializationHash: this.initializationHash, + immutablesHash: this.immutablesHash, publicKeys: this.publicKeys, salt: this.salt, deployer: this.deployer, diff --git a/yarn-project/protocol-contracts/src/make_protocol_contract.ts b/yarn-project/protocol-contracts/src/make_protocol_contract.ts index 87215bcb3c20..d921be733ef2 100644 --- a/yarn-project/protocol-contracts/src/make_protocol_contract.ts +++ b/yarn-project/protocol-contracts/src/make_protocol_contract.ts @@ -1,3 +1,4 @@ +import { Fr } from '@aztec/foundation/curves/bn254'; import type { ContractArtifact } from '@aztec/stdlib/abi'; import { PublicKeys } from '@aztec/stdlib/keys'; @@ -34,10 +35,11 @@ export function makeProtocolContract(name: ProtocolContractName, artifact: Contr }; const instance = { - version: 1 as const, + version: 2 as const, currentContractClassId: classId, originalContractClassId: classId, initializationHash, + immutablesHash: Fr.ZERO, // Protocol Contracts Have No Immutables publicKeys: PublicKeys.default(), salt, deployer: address, diff --git a/yarn-project/protocol-contracts/src/scripts/generate_data.ts b/yarn-project/protocol-contracts/src/scripts/generate_data.ts index 58b8d8aa14c7..9bd43ff78210 100644 --- a/yarn-project/protocol-contracts/src/scripts/generate_data.ts +++ b/yarn-project/protocol-contracts/src/scripts/generate_data.ts @@ -89,10 +89,11 @@ async function computeContractData(artifact: NoirCompiledContract, deployer: Azt const constructorArtifact = loaded.functions.find(f => f.name === 'constructor'); const initializationHash = await computeInitializationHash(constructorArtifact, []); const instance = { - version: 1 as const, + version: 2 as const, currentContractClassId: contractClass.id, originalContractClassId: contractClass.id, initializationHash, + immutablesHash: Fr.ZERO, // Protocol Contracts Have No Immutables publicKeys: PublicKeys.default(), salt, deployer, diff --git a/yarn-project/pxe/src/contract_function_simulator/oracle/oracle.ts b/yarn-project/pxe/src/contract_function_simulator/oracle/oracle.ts index f325f1f49f1a..f9d83b9495fd 100644 --- a/yarn-project/pxe/src/contract_function_simulator/oracle/oracle.ts +++ b/yarn-project/pxe/src/contract_function_simulator/oracle/oracle.ts @@ -229,6 +229,7 @@ export class Oracle { instance.deployer, instance.currentContractClassId, instance.initializationHash, + instance.immutablesHash, ...instance.publicKeys.toFields(), ].map(toACVMField); } diff --git a/yarn-project/pxe/src/contract_function_simulator/oracle/utility_execution.test.ts b/yarn-project/pxe/src/contract_function_simulator/oracle/utility_execution.test.ts index 5c28ee5b59b5..fa3f586c754a 100644 --- a/yarn-project/pxe/src/contract_function_simulator/oracle/utility_execution.test.ts +++ b/yarn-project/pxe/src/contract_function_simulator/oracle/utility_execution.test.ts @@ -150,12 +150,13 @@ describe('Utility Execution test suite', () => { // The initializer nullifier check requires the instance to be a valid preimage of the contract address, so we // can't use a random contract address here. const instanceFields = { - version: 1 as const, + version: 2 as const, salt: Fr.random(), deployer: await AztecAddress.random(), currentContractClassId: new Fr(42), originalContractClassId: new Fr(42), initializationHash: Fr.random(), + immutablesHash: Fr.random(), publicKeys: await PublicKeys.random(), }; const contractAddress = await computeContractAddressFromInstance(instanceFields); @@ -242,12 +243,13 @@ describe('Utility Execution test suite', () => { const expectedSum = new Fr(9); const instanceFields = { - version: 1 as const, + version: 2 as const, salt: Fr.random(), deployer: await AztecAddress.random(), currentContractClassId: new Fr(42), originalContractClassId: new Fr(42), initializationHash: Fr.random(), + immutablesHash: Fr.random(), publicKeys: await PublicKeys.random(), }; const contractAddress = await computeContractAddressFromInstance(instanceFields); diff --git a/yarn-project/pxe/src/private_kernel/private_kernel_execution_prover.test.ts b/yarn-project/pxe/src/private_kernel/private_kernel_execution_prover.test.ts index e16dab33ec23..a44bab2ad2fc 100644 --- a/yarn-project/pxe/src/private_kernel/private_kernel_execution_prover.test.ts +++ b/yarn-project/pxe/src/private_kernel/private_kernel_execution_prover.test.ts @@ -130,12 +130,13 @@ describe('Private Kernel Sequencer', () => { oracle.getMasterSecretKey.mockResolvedValue(Fr.random() as any); oracle.getContractAddressPreimage.mockResolvedValue({ - version: 1 as const, + version: 2 as const, salt: Fr.random(), deployer: await AztecAddress.random(), currentContractClassId: Fr.random(), originalContractClassId: Fr.random(), initializationHash: Fr.random(), + immutablesHash: Fr.random(), publicKeys: await PublicKeys.random(), address: await AztecAddress.random(), saltedInitializationHash: Fr.random(), diff --git a/yarn-project/pxe/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json b/yarn-project/pxe/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json index 6de71bb8c2e4..14ec966ea332 100644 --- a/yarn-project/pxe/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json +++ b/yarn-project/pxe/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json @@ -22,7 +22,7 @@ "contracts_instances": [ { "key": "utf8:0x0000000000000000000000000000000000000000000000000000000000000065", - "value": "010000000000000000000000000000000000000000000000000000000000000049000000000000000000000000000000000000000000000000000000000000004f0000000000000000000000000000000000000000000000000000000000000053000000000000000000000000000000000000000000000000000000000000005900000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002f0000000000000000000000000000000000000000000000000000000000000035000000000000000000000000000000000000000000000000000000000000003b000000000000000000000000000000000000000000000000000000000000003d00000000000000000000000000000000000000000000000000000000000000430000000000000000000000000000000000000000000000000000000000000047" + "value": "020000000000000000000000000000000000000000000000000000000000000049000000000000000000000000000000000000000000000000000000000000004f00000000000000000000000000000000000000000000000000000000000000530000000000000000000000000000000000000000000000000000000000000059000000000000000000000000000000000000000000000000000000000000006100000000000000000000000000000000000000000000000000000000000000670000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002f0000000000000000000000000000000000000000000000000000000000000035000000000000000000000000000000000000000000000000000000000000003b000000000000000000000000000000000000000000000000000000000000003d00000000000000000000000000000000000000000000000000000000000000430000000000000000000000000000000000000000000000000000000000000047" } ] } diff --git a/yarn-project/pxe/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json b/yarn-project/pxe/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json index 2ee17beb3c62..8a55a9c4c66f 100644 --- a/yarn-project/pxe/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +++ b/yarn-project/pxe/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json @@ -1,5 +1,5 @@ { - "schemaVersion": 5, + "schemaVersion": 6, "stores": [ { "name": "address_book", diff --git a/yarn-project/pxe/src/storage/backwards_compatibility_tests/schema_tests.ts b/yarn-project/pxe/src/storage/backwards_compatibility_tests/schema_tests.ts index 91b2c2d90ef1..5e89218453d9 100644 --- a/yarn-project/pxe/src/storage/backwards_compatibility_tests/schema_tests.ts +++ b/yarn-project/pxe/src/storage/backwards_compatibility_tests/schema_tests.ts @@ -187,12 +187,13 @@ export const SCHEMA_TESTS: readonly SchemaTest[] = [ await contractStore.addContractInstance( new SerializableContractInstance({ - version: 1, + version: 2, salt: new Fr(73n), deployer: AztecAddress.fromBigInt(79n), currentContractClassId: new Fr(83n), originalContractClassId: new Fr(89n), initializationHash: new Fr(97n), + immutablesHash: new Fr(103n), publicKeys: new PublicKeys( new Point(new Fr(41n), new Fr(43n), false), new Point(new Fr(47n), new Fr(53n), false), diff --git a/yarn-project/pxe/src/storage/metadata.ts b/yarn-project/pxe/src/storage/metadata.ts index aa63404894b5..b828fac62539 100644 --- a/yarn-project/pxe/src/storage/metadata.ts +++ b/yarn-project/pxe/src/storage/metadata.ts @@ -1 +1 @@ -export const PXE_DATA_SCHEMA_VERSION = 5; +export const PXE_DATA_SCHEMA_VERSION = 6; diff --git a/yarn-project/simulator/src/public/avm/avm_simulator.test.ts b/yarn-project/simulator/src/public/avm/avm_simulator.test.ts index a9354bfe30bf..d283902c5a6c 100644 --- a/yarn-project/simulator/src/public/avm/avm_simulator.test.ts +++ b/yarn-project/simulator/src/public/avm/avm_simulator.test.ts @@ -914,12 +914,13 @@ describe('AVM simulator: transpiled Noir contracts', () => { const context = createContext(calldata); // Contract instance must match noir const contractInstance = new SerializableContractInstance({ - version: 1 as const, + version: 2 as const, salt: new Fr(0x123), deployer: AztecAddress.fromBigInt(0x456n), currentContractClassId: new Fr(0x789), originalContractClassId: new Fr(0x789), initializationHash: new Fr(0x101112), + immutablesHash: new Fr(0x202221), publicKeys: new PublicKeys( new Point(new Fr(0x131415), new Fr(0x161718), false), new Point(new Fr(0x192021), new Fr(0x222324), false), diff --git a/yarn-project/simulator/src/public/avm/fixtures/utils.ts b/yarn-project/simulator/src/public/avm/fixtures/utils.ts index b9034b629890..382fdd2a9764 100644 --- a/yarn-project/simulator/src/public/avm/fixtures/utils.ts +++ b/yarn-project/simulator/src/public/avm/fixtures/utils.ts @@ -128,17 +128,20 @@ export async function createContractClassAndInstance( const constructorAbi = getContractFunctionAbi('constructor', contractArtifact); const { publicKeys } = await deriveKeys(new Fr(seed)); const initializationHash = await computeInitializationHash(constructorAbi, constructorArgs); + const immutablesHash = new Fr(seed + 1); const contractInstance = originalContractClassId === undefined ? await makeContractInstanceFromClassId(contractClass.id, seed, { deployer, initializationHash, + immutablesHash, publicKeys, }) : await makeContractInstanceFromClassId(originalContractClassId, seed, { deployer, initializationHash, currentClassId: contractClass.id, + immutablesHash, publicKeys, }); diff --git a/yarn-project/simulator/src/public/fixtures/utils.ts b/yarn-project/simulator/src/public/fixtures/utils.ts index 2c0a5a275b79..dfe8b6d4d57f 100644 --- a/yarn-project/simulator/src/public/fixtures/utils.ts +++ b/yarn-project/simulator/src/public/fixtures/utils.ts @@ -252,6 +252,7 @@ export async function addNewContractInstanceToTx( new Fr(contractInstance.salt), contractInstance.currentContractClassId, contractInstance.initializationHash, + contractInstance.immutablesHash, ...publicKeysAsFields, contractInstance.deployer.toField(), ]; diff --git a/yarn-project/simulator/src/public/hinting_db_sources.ts b/yarn-project/simulator/src/public/hinting_db_sources.ts index 85f8ab422ccf..71c7a99c9239 100644 --- a/yarn-project/simulator/src/public/hinting_db_sources.ts +++ b/yarn-project/simulator/src/public/hinting_db_sources.ts @@ -83,6 +83,7 @@ export class HintingPublicContractsDB implements PublicContractsDBInterface { instance.currentContractClassId, instance.originalContractClassId, instance.initializationHash, + instance.immutablesHash, instance.publicKeys, ), ); diff --git a/yarn-project/stdlib/src/avm/avm.ts b/yarn-project/stdlib/src/avm/avm.ts index 339fe4271467..a5f2a4963bf3 100644 --- a/yarn-project/stdlib/src/avm/avm.ts +++ b/yarn-project/stdlib/src/avm/avm.ts @@ -130,6 +130,7 @@ export class AvmContractInstanceHint { public readonly currentContractClassId: Fr, public readonly originalContractClassId: Fr, public readonly initializationHash: Fr, + public readonly immutablesHash: Fr, public readonly publicKeys: PublicKeys, ) {} @@ -143,6 +144,7 @@ export class AvmContractInstanceHint { currentContractClassId: schemas.Fr, originalContractClassId: schemas.Fr, initializationHash: schemas.Fr, + immutablesHash: schemas.Fr, publicKeys: PublicKeys.schema, }) .transform( @@ -154,6 +156,7 @@ export class AvmContractInstanceHint { currentContractClassId, originalContractClassId, initializationHash, + immutablesHash, publicKeys, }) => new AvmContractInstanceHint( @@ -164,6 +167,7 @@ export class AvmContractInstanceHint { currentContractClassId, originalContractClassId, initializationHash, + immutablesHash, publicKeys, ), ); @@ -188,6 +192,7 @@ export class AvmContractInstanceHint { Fr.fromPlainObject(obj.currentContractClassId), Fr.fromPlainObject(obj.originalContractClassId), Fr.fromPlainObject(obj.initializationHash), + Fr.fromPlainObject(obj.immutablesHash), PublicKeys.fromPlainObject(obj.publicKeys), ); } diff --git a/yarn-project/stdlib/src/contract/contract_address.test.ts b/yarn-project/stdlib/src/contract/contract_address.test.ts index def2ccb6bac6..2b92e5f5c968 100644 --- a/yarn-project/stdlib/src/contract/contract_address.test.ts +++ b/yarn-project/stdlib/src/contract/contract_address.test.ts @@ -64,6 +64,7 @@ describe('ContractAddress', () => { const salt = new Fr(3n); const contractClassId = new Fr(4n); const initializationHash = new Fr(5n); + const immutablesHash = new Fr(6n); const deployer = AztecAddress.fromField(new Fr(7)); const publicKeys = (await deriveKeys(secretKey)).publicKeys; const instance = { @@ -73,7 +74,8 @@ describe('ContractAddress', () => { currentContractClassId: contractClassId, initializationHash, deployer, - version: 1 as const, + immutablesHash, + version: 2 as const, }; const [ms, address] = await elapsed(computeContractAddressFromInstance(instance)); diff --git a/yarn-project/stdlib/src/contract/contract_instance.ts b/yarn-project/stdlib/src/contract/contract_instance.ts index d3dcb4b79f8c..2a944f019fad 100644 --- a/yarn-project/stdlib/src/contract/contract_instance.ts +++ b/yarn-project/stdlib/src/contract/contract_instance.ts @@ -20,7 +20,7 @@ import { } from './contract_address.js'; import type { ContractInstance, ContractInstanceWithAddress } from './interfaces/contract_instance.js'; -const VERSION = 1 as const; +const VERSION = 2 as const; export type ContractInstantiationData = { constructorArtifact?: FunctionAbi | string; @@ -38,6 +38,7 @@ export class SerializableContractInstance { public readonly currentContractClassId: Fr; public readonly originalContractClassId: Fr; public readonly initializationHash: Fr; + public readonly immutablesHash: Fr; public readonly publicKeys: PublicKeys; constructor(instance: ContractInstance) { @@ -49,6 +50,7 @@ export class SerializableContractInstance { this.currentContractClassId = instance.currentContractClassId; this.originalContractClassId = instance.originalContractClassId; this.initializationHash = instance.initializationHash; + this.immutablesHash = instance.immutablesHash; this.publicKeys = instance.publicKeys; } @@ -60,6 +62,7 @@ export class SerializableContractInstance { this.currentContractClassId, this.originalContractClassId, this.initializationHash, + this.immutablesHash, this.publicKeys, ); } @@ -78,6 +81,7 @@ export class SerializableContractInstance { currentContractClassId: reader.readObject(Fr), originalContractClassId: reader.readObject(Fr), initializationHash: reader.readObject(Fr), + immutablesHash: reader.readObject(Fr), publicKeys: reader.readObject(PublicKeys), }); } @@ -90,6 +94,7 @@ export class SerializableContractInstance { currentContractClassId: Fr.random(), originalContractClassId: Fr.random(), initializationHash: Fr.random(), + immutablesHash: Fr.random(), publicKeys: await PublicKeys.random(), ...opts, }); @@ -103,6 +108,7 @@ export class SerializableContractInstance { currentContractClassId: Fr.zero(), originalContractClassId: Fr.zero(), initializationHash: Fr.zero(), + immutablesHash: Fr.zero(), publicKeys: PublicKeys.default(), }); } @@ -135,10 +141,11 @@ export async function getContractInstanceFromInstantiationParams( currentContractClassId: contractClass.id, originalContractClassId: contractClass.id, initializationHash, + immutablesHash: Fr.ZERO, // Default to zero until immutables exposed in ContractInstantiationData publicKeys, salt: opts.salt, deployer, - version: 1, + version: 2, }; return { ...instance, address: await computeContractAddressFromInstance(instance) }; diff --git a/yarn-project/stdlib/src/contract/interfaces/contract_instance.ts b/yarn-project/stdlib/src/contract/interfaces/contract_instance.ts index 6e7f986b1ce1..2d992dbac99c 100644 --- a/yarn-project/stdlib/src/contract/interfaces/contract_instance.ts +++ b/yarn-project/stdlib/src/contract/interfaces/contract_instance.ts @@ -6,7 +6,7 @@ import { AztecAddress } from '../../aztec-address/index.js'; import { PublicKeys } from '../../keys/public_keys.js'; import { schemas, zodFor } from '../../schemas/index.js'; -const VERSION = 1 as const; +const VERSION = 2 as const; /** * A contract instance is a concrete deployment of a contract class. It always references a contract class, @@ -26,6 +26,8 @@ export interface ContractInstance { originalContractClassId: Fr; /** Hash of the selector and arguments to the constructor. */ initializationHash: Fr; + /** Hash of Immutables Values the contract is deployed with. */ + immutablesHash: Fr; /** Public keys associated with this instance. */ publicKeys: PublicKeys; } @@ -40,6 +42,7 @@ export const ContractInstanceSchema = zodFor()( currentContractClassId: schemas.Fr, originalContractClassId: schemas.Fr, initializationHash: schemas.Fr, + immutablesHash: schemas.Fr, publicKeys: PublicKeys.schema, }), ); @@ -54,12 +57,13 @@ export const ContractInstanceWithAddressSchema = zodFor { originalContractClassId: expect.any(Fr), deployer: expect.any(AztecAddress), initializationHash: expect.any(Fr), + immutablesHash: expect.any(Fr), publicKeys: expect.any(PublicKeys), salt: expect.any(Fr), - version: 1, + version: 2, }); }); @@ -554,9 +555,10 @@ class MockArchiver implements ArchiverApi { originalContractClassId: Fr.random(), deployer: await AztecAddress.random(), initializationHash: Fr.random(), + immutablesHash: Fr.random(), publicKeys: await PublicKeys.random(), salt: Fr.random(), - version: 1, + version: 2, }; } getContractClassIds(): Promise { diff --git a/yarn-project/stdlib/src/interfaces/aztec-node.test.ts b/yarn-project/stdlib/src/interfaces/aztec-node.test.ts index d007587d1790..a425766ee482 100644 --- a/yarn-project/stdlib/src/interfaces/aztec-node.test.ts +++ b/yarn-project/stdlib/src/interfaces/aztec-node.test.ts @@ -477,9 +477,10 @@ describe('AztecNodeApiSchema', () => { originalContractClassId: expect.any(Fr), deployer: expect.any(AztecAddress), initializationHash: expect.any(Fr), + immutablesHash: expect.any(Fr), publicKeys: expect.any(PublicKeys), salt: expect.any(Fr), - version: 1, + version: 2, }); }); @@ -817,11 +818,12 @@ class MockAztecNode implements AztecNode { async getContract(address: AztecAddress): Promise { expect(address).toBeInstanceOf(AztecAddress); const instance = { - version: 1 as const, + version: 2 as const, currentContractClassId: Fr.random(), originalContractClassId: Fr.random(), deployer: await AztecAddress.random(), initializationHash: Fr.random(), + immutablesHash: Fr.random(), publicKeys: await PublicKeys.random(), salt: Fr.random(), address: await AztecAddress.random(), diff --git a/yarn-project/stdlib/src/tests/factories.ts b/yarn-project/stdlib/src/tests/factories.ts index d0cfe8c90bc8..e821f65c8126 100644 --- a/yarn-project/stdlib/src/tests/factories.ts +++ b/yarn-project/stdlib/src/tests/factories.ts @@ -1240,6 +1240,7 @@ export async function makeContractInstanceFromClassId( overrides?: { deployer?: AztecAddress; initializationHash?: Fr; + immutablesHash?: Fr; publicKeys?: PublicKeys; currentClassId?: Fr; }, @@ -1248,6 +1249,7 @@ export async function makeContractInstanceFromClassId( const initializationHash = overrides?.initializationHash ?? new Fr(seed + 1); const deployer = overrides?.deployer ?? new AztecAddress(new Fr(seed + 2)); const publicKeys = overrides?.publicKeys ?? (await makePublicKeys(seed + 3)); + const immutablesHash = overrides?.immutablesHash ?? new Fr(seed + 4); const partialAddress = await computePartialAddress({ originalContractClassId: classId, @@ -1257,12 +1259,13 @@ export async function makeContractInstanceFromClassId( }); const address = await computeAddress(publicKeys, partialAddress); return new SerializableContractInstance({ - version: 1, + version: 2, salt, deployer, currentContractClassId: overrides?.currentClassId ?? classId, originalContractClassId: classId, initializationHash, + immutablesHash, publicKeys, }).withAddress(address); } @@ -1440,6 +1443,7 @@ export function makeAvmContractInstanceHint(seed = 0): AvmContractInstanceHint { new Fr(seed + 0x4), new Fr(seed + 0x5), new Fr(seed + 0x6), + new Fr(seed + 0x7), new PublicKeys( new Point(new Fr(seed + 0x7), new Fr(seed + 0x8), false), new Point(new Fr(seed + 0x9), new Fr(seed + 0x10), false), diff --git a/yarn-project/txe/src/rpc_translator.ts b/yarn-project/txe/src/rpc_translator.ts index 78fb5f2c3545..521798a31abf 100644 --- a/yarn-project/txe/src/rpc_translator.ts +++ b/yarn-project/txe/src/rpc_translator.ts @@ -227,6 +227,7 @@ export class RPCTranslator { instance.deployer.toField(), instance.currentContractClassId, instance.initializationHash, + instance.immutablesHash, ...instance.publicKeys.toFields(), ]), ]); @@ -652,6 +653,7 @@ export class RPCTranslator { instance.deployer.toField(), instance.currentContractClassId, instance.initializationHash, + instance.immutablesHash, ...instance.publicKeys.toFields(), ].map(toSingle), );