@aztec/noir-protocol-circuits-types 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/README.md +1 -0
  2. package/dest/index.d.ts +69 -0
  3. package/dest/index.d.ts.map +1 -0
  4. package/dest/index.js +268 -0
  5. package/dest/scripts/generate_ts_from_abi.d.ts +2 -0
  6. package/dest/scripts/generate_ts_from_abi.d.ts.map +1 -0
  7. package/dest/scripts/generate_ts_from_abi.js +180 -0
  8. package/dest/target/private_kernel_init.json +1 -0
  9. package/dest/target/private_kernel_init_simulated.json +1 -0
  10. package/dest/target/private_kernel_inner.json +1 -0
  11. package/dest/target/private_kernel_inner_simulated.json +1 -0
  12. package/dest/target/private_kernel_tail.json +1 -0
  13. package/dest/target/private_kernel_tail_simulated.json +1 -0
  14. package/dest/target/public_kernel_app_logic.json +1 -0
  15. package/dest/target/public_kernel_app_logic_simulated.json +1 -0
  16. package/dest/target/public_kernel_setup.json +1 -0
  17. package/dest/target/public_kernel_setup_simulated.json +1 -0
  18. package/dest/target/rollup_base.json +1 -0
  19. package/dest/target/rollup_base_simulated.json +1 -0
  20. package/dest/target/rollup_merge.json +1 -0
  21. package/dest/target/rollup_root.json +1 -0
  22. package/dest/type_conversion.d.ts +574 -0
  23. package/dest/type_conversion.d.ts.map +1 -0
  24. package/dest/type_conversion.js +1115 -0
  25. package/dest/types/private_kernel_init_types.d.ts +232 -0
  26. package/dest/types/private_kernel_init_types.d.ts.map +1 -0
  27. package/dest/types/private_kernel_init_types.js +3 -0
  28. package/dest/types/private_kernel_inner_types.d.ts +233 -0
  29. package/dest/types/private_kernel_inner_types.d.ts.map +1 -0
  30. package/dest/types/private_kernel_inner_types.js +3 -0
  31. package/dest/types/private_kernel_tail_types.d.ts +182 -0
  32. package/dest/types/private_kernel_tail_types.d.ts.map +1 -0
  33. package/dest/types/private_kernel_tail_types.js +3 -0
  34. package/dest/types/public_kernel_app_logic_types.d.ts +212 -0
  35. package/dest/types/public_kernel_app_logic_types.d.ts.map +1 -0
  36. package/dest/types/public_kernel_app_logic_types.js +3 -0
  37. package/dest/types/public_kernel_setup_types.d.ts +212 -0
  38. package/dest/types/public_kernel_setup_types.d.ts.map +1 -0
  39. package/dest/types/public_kernel_setup_types.js +3 -0
  40. package/dest/types/rollup_base_types.d.ts +220 -0
  41. package/dest/types/rollup_base_types.d.ts.map +1 -0
  42. package/dest/types/rollup_base_types.js +3 -0
  43. package/dest/types/rollup_merge_types.d.ts +71 -0
  44. package/dest/types/rollup_merge_types.d.ts.map +1 -0
  45. package/dest/types/rollup_merge_types.js +3 -0
  46. package/dest/types/rollup_root_types.d.ts +92 -0
  47. package/dest/types/rollup_root_types.d.ts.map +1 -0
  48. package/dest/types/rollup_root_types.js +3 -0
  49. package/package.json +60 -0
  50. package/src/fixtures/nested-call-private-kernel-init.hex +1 -0
  51. package/src/fixtures/nested-call-private-kernel-inner.hex +1 -0
  52. package/src/fixtures/nested-call-private-kernel-ordering.hex +1 -0
  53. package/src/index.ts +438 -0
  54. package/src/scripts/generate_ts_from_abi.ts +233 -0
  55. package/src/target/private_kernel_init.json +1 -0
  56. package/src/target/private_kernel_init_simulated.json +1 -0
  57. package/src/target/private_kernel_inner.json +1 -0
  58. package/src/target/private_kernel_inner_simulated.json +1 -0
  59. package/src/target/private_kernel_tail.json +1 -0
  60. package/src/target/private_kernel_tail_simulated.json +1 -0
  61. package/src/target/public_kernel_app_logic.json +1 -0
  62. package/src/target/public_kernel_app_logic_simulated.json +1 -0
  63. package/src/target/public_kernel_setup.json +1 -0
  64. package/src/target/public_kernel_setup_simulated.json +1 -0
  65. package/src/target/rollup_base.json +1 -0
  66. package/src/target/rollup_base_simulated.json +1 -0
  67. package/src/target/rollup_merge.json +1 -0
  68. package/src/target/rollup_root.json +1 -0
  69. package/src/type_conversion.ts +1673 -0
  70. package/src/types/private_kernel_init_types.ts +272 -0
  71. package/src/types/private_kernel_inner_types.ts +273 -0
  72. package/src/types/private_kernel_tail_types.ts +214 -0
  73. package/src/types/public_kernel_app_logic_types.ts +250 -0
  74. package/src/types/public_kernel_setup_types.ts +250 -0
  75. package/src/types/rollup_base_types.ts +259 -0
  76. package/src/types/rollup_merge_types.ts +85 -0
  77. package/src/types/rollup_root_types.ts +109 -0
@@ -0,0 +1 @@
1
+ {"noir_version":"0.23.0+5f5843e35052b9d3599b8ab4f7633db0a225e82f","hash":17264089210840180863,"abi":{"parameters":[{"name":"input","type":{"kind":"struct","path":"public_kernel_lib::public_kernel_app_logic::PublicKernelAppLogicCircuitPrivateInputs","fields":[{"name":"previous_kernel","type":{"kind":"struct","path":"public_kernel_lib::types::abis::kernel_data::PublicKernelData","fields":[{"name":"public_inputs","type":{"kind":"struct","path":"public_kernel_lib::types::abis::kernel_circuit_public_inputs::PublicKernelCircuitPublicInputs","fields":[{"name":"aggregation_object","type":{"kind":"struct","path":"public_kernel_lib::types::mocked::AggregationObject","fields":[]}},{"name":"end_non_revertible","type":{"kind":"struct","path":"public_kernel_lib::types::abis::combined_accumulated_data::AccumulatedNonRevertibleData","fields":[{"name":"new_commitments","type":{"kind":"array","length":8,"type":{"kind":"struct","path":"public_kernel_lib::types::abis::side_effect::SideEffect","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"new_nullifiers","type":{"kind":"array","length":8,"type":{"kind":"struct","path":"public_kernel_lib::types::abis::side_effect::SideEffectLinkedToNoteHash","fields":[{"name":"value","type":{"kind":"field"}},{"name":"note_hash","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"public_call_stack","type":{"kind":"array","length":2,"type":{"kind":"struct","path":"public_kernel_lib::types::abis::call_request::CallRequest","fields":[{"name":"hash","type":{"kind":"field"}},{"name":"caller_contract_address","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"caller_context","type":{"kind":"struct","path":"public_kernel_lib::types::abis::call_request::CallerContext","fields":[{"name":"msg_sender","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"storage_contract_address","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}}]}},{"name":"end","type":{"kind":"struct","path":"public_kernel_lib::types::abis::combined_accumulated_data::CombinedAccumulatedData","fields":[{"name":"read_requests","type":{"kind":"array","length":128,"type":{"kind":"struct","path":"public_kernel_lib::types::abis::side_effect::SideEffect","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"nullifier_key_validation_requests","type":{"kind":"array","length":4,"type":{"kind":"struct","path":"public_kernel_lib::types::abis::nullifier_key_validation_request::NullifierKeyValidationRequestContext","fields":[{"name":"public_key","type":{"kind":"struct","path":"public_kernel_lib::types::grumpkin_point::GrumpkinPoint","fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}}]}},{"name":"secret_key","type":{"kind":"struct","path":"public_kernel_lib::types::grumpkin_private_key::GrumpkinPrivateKey","fields":[{"name":"high","type":{"kind":"field"}},{"name":"low","type":{"kind":"field"}}]}},{"name":"contract_address","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}}},{"name":"new_commitments","type":{"kind":"array","length":64,"type":{"kind":"struct","path":"public_kernel_lib::types::abis::side_effect::SideEffect","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"new_nullifiers","type":{"kind":"array","length":64,"type":{"kind":"struct","path":"public_kernel_lib::types::abis::side_effect::SideEffectLinkedToNoteHash","fields":[{"name":"value","type":{"kind":"field"}},{"name":"note_hash","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"private_call_stack","type":{"kind":"array","length":8,"type":{"kind":"struct","path":"public_kernel_lib::types::abis::call_request::CallRequest","fields":[{"name":"hash","type":{"kind":"field"}},{"name":"caller_contract_address","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"caller_context","type":{"kind":"struct","path":"public_kernel_lib::types::abis::call_request::CallerContext","fields":[{"name":"msg_sender","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"storage_contract_address","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"public_call_stack","type":{"kind":"array","length":8,"type":{"kind":"struct","path":"public_kernel_lib::types::abis::call_request::CallRequest","fields":[{"name":"hash","type":{"kind":"field"}},{"name":"caller_contract_address","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"caller_context","type":{"kind":"struct","path":"public_kernel_lib::types::abis::call_request::CallerContext","fields":[{"name":"msg_sender","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"storage_contract_address","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"new_l2_to_l1_msgs","type":{"kind":"array","length":2,"type":{"kind":"field"}}},{"name":"encrypted_logs_hash","type":{"kind":"array","length":2,"type":{"kind":"field"}}},{"name":"unencrypted_logs_hash","type":{"kind":"array","length":2,"type":{"kind":"field"}}},{"name":"encrypted_log_preimages_length","type":{"kind":"field"}},{"name":"unencrypted_log_preimages_length","type":{"kind":"field"}},{"name":"new_contracts","type":{"kind":"array","length":1,"type":{"kind":"struct","path":"public_kernel_lib::types::abis::new_contract_data::NewContractData","fields":[{"name":"contract_address","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"portal_contract_address","type":{"kind":"struct","path":"public_kernel_lib::types::address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"contract_class_id","type":{"kind":"struct","path":"public_kernel_lib::types::contract_class::ContractClassId","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}}},{"name":"public_data_update_requests","type":{"kind":"array","length":16,"type":{"kind":"struct","path":"public_kernel_lib::types::abis::public_data_update_request::PublicDataUpdateRequest","fields":[{"name":"leaf_slot","type":{"kind":"field"}},{"name":"new_value","type":{"kind":"field"}}]}}},{"name":"public_data_reads","type":{"kind":"array","length":16,"type":{"kind":"struct","path":"public_kernel_lib::types::abis::public_data_read::PublicDataRead","fields":[{"name":"leaf_slot","type":{"kind":"field"}},{"name":"value","type":{"kind":"field"}}]}}}]}},{"name":"constants","type":{"kind":"struct","path":"public_kernel_lib::types::abis::combined_constant_data::CombinedConstantData","fields":[{"name":"historical_header","type":{"kind":"struct","path":"public_kernel_lib::types::header::Header","fields":[{"name":"last_archive","type":{"kind":"struct","path":"public_kernel_lib::types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"body_hash","type":{"kind":"array","length":2,"type":{"kind":"field"}}},{"name":"state","type":{"kind":"struct","path":"public_kernel_lib::types::state_reference::StateReference","fields":[{"name":"l1_to_l2_message_tree","type":{"kind":"struct","path":"public_kernel_lib::types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"partial","type":{"kind":"struct","path":"public_kernel_lib::types::partial_state_reference::PartialStateReference","fields":[{"name":"note_hash_tree","type":{"kind":"struct","path":"public_kernel_lib::types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"nullifier_tree","type":{"kind":"struct","path":"public_kernel_lib::types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"contract_tree","type":{"kind":"struct","path":"public_kernel_lib::types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"public_data_tree","type":{"kind":"struct","path":"public_kernel_lib::types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}}]}}]}},{"name":"global_variables","type":{"kind":"struct","path":"public_kernel_lib::types::abis::global_variables::GlobalVariables","fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"field"}},{"name":"coinbase","type":{"kind":"struct","path":"public_kernel_lib::types::address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}}]}},{"name":"tx_context","type":{"kind":"struct","path":"public_kernel_lib::types::transaction::context::TxContext","fields":[{"name":"is_fee_payment_tx","type":{"kind":"boolean"}},{"name":"is_rebate_payment_tx","type":{"kind":"boolean"}},{"name":"is_contract_deployment_tx","type":{"kind":"boolean"}},{"name":"contract_deployment_data","type":{"kind":"struct","path":"public_kernel_lib::types::contrakt::deployment_data::ContractDeploymentData","fields":[{"name":"public_key","type":{"kind":"struct","path":"public_kernel_lib::types::grumpkin_point::GrumpkinPoint","fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}}]}},{"name":"initialization_hash","type":{"kind":"field"}},{"name":"contract_class_id","type":{"kind":"struct","path":"public_kernel_lib::types::contract_class::ContractClassId","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"contract_address_salt","type":{"kind":"field"}},{"name":"portal_contract_address","type":{"kind":"struct","path":"public_kernel_lib::types::address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}},{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}}]}}]}},{"name":"is_private","type":{"kind":"boolean"}}]}},{"name":"proof","type":{"kind":"struct","path":"public_kernel_lib::types::mocked::Proof","fields":[]}},{"name":"vk","type":{"kind":"struct","path":"public_kernel_lib::types::mocked::VerificationKey","fields":[]}},{"name":"vk_index","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"vk_path","type":{"kind":"array","length":3,"type":{"kind":"field"}}}]}},{"name":"public_call","type":{"kind":"struct","path":"public_kernel_lib::types::abis::public_call_data::PublicCallData","fields":[{"name":"call_stack_item","type":{"kind":"struct","path":"public_kernel_lib::types::abis::public_call_stack_item::PublicCallStackItem","fields":[{"name":"contract_address","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"public_inputs","type":{"kind":"struct","path":"public_kernel_lib::types::abis::public_circuit_public_inputs::PublicCircuitPublicInputs","fields":[{"name":"call_context","type":{"kind":"struct","path":"public_kernel_lib::types::abis::call_context::CallContext","fields":[{"name":"msg_sender","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"storage_contract_address","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"portal_contract_address","type":{"kind":"struct","path":"public_kernel_lib::types::address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"function_selector","type":{"kind":"struct","path":"public_kernel_lib::types::abis::function_selector::FunctionSelector","fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}},{"name":"is_contract_deployment","type":{"kind":"boolean"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"args_hash","type":{"kind":"field"}},{"name":"return_values","type":{"kind":"array","length":4,"type":{"kind":"field"}}},{"name":"contract_storage_update_requests","type":{"kind":"array","length":16,"type":{"kind":"struct","path":"public_kernel_lib::types::contrakt::storage_update_request::StorageUpdateRequest","fields":[{"name":"storage_slot","type":{"kind":"field"}},{"name":"new_value","type":{"kind":"field"}}]}}},{"name":"contract_storage_reads","type":{"kind":"array","length":16,"type":{"kind":"struct","path":"public_kernel_lib::types::contrakt::storage_read::StorageRead","fields":[{"name":"storage_slot","type":{"kind":"field"}},{"name":"current_value","type":{"kind":"field"}}]}}},{"name":"public_call_stack_hashes","type":{"kind":"array","length":4,"type":{"kind":"field"}}},{"name":"new_commitments","type":{"kind":"array","length":16,"type":{"kind":"struct","path":"public_kernel_lib::types::abis::side_effect::SideEffect","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"new_nullifiers","type":{"kind":"array","length":16,"type":{"kind":"struct","path":"public_kernel_lib::types::abis::side_effect::SideEffectLinkedToNoteHash","fields":[{"name":"value","type":{"kind":"field"}},{"name":"note_hash","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"new_l2_to_l1_msgs","type":{"kind":"array","length":2,"type":{"kind":"field"}}},{"name":"unencrypted_logs_hash","type":{"kind":"array","length":2,"type":{"kind":"field"}}},{"name":"unencrypted_log_preimages_length","type":{"kind":"field"}},{"name":"historical_header","type":{"kind":"struct","path":"public_kernel_lib::types::header::Header","fields":[{"name":"last_archive","type":{"kind":"struct","path":"public_kernel_lib::types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"body_hash","type":{"kind":"array","length":2,"type":{"kind":"field"}}},{"name":"state","type":{"kind":"struct","path":"public_kernel_lib::types::state_reference::StateReference","fields":[{"name":"l1_to_l2_message_tree","type":{"kind":"struct","path":"public_kernel_lib::types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"partial","type":{"kind":"struct","path":"public_kernel_lib::types::partial_state_reference::PartialStateReference","fields":[{"name":"note_hash_tree","type":{"kind":"struct","path":"public_kernel_lib::types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"nullifier_tree","type":{"kind":"struct","path":"public_kernel_lib::types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"contract_tree","type":{"kind":"struct","path":"public_kernel_lib::types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"public_data_tree","type":{"kind":"struct","path":"public_kernel_lib::types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}}]}}]}},{"name":"global_variables","type":{"kind":"struct","path":"public_kernel_lib::types::abis::global_variables::GlobalVariables","fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"field"}},{"name":"coinbase","type":{"kind":"struct","path":"public_kernel_lib::types::address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}}]}},{"name":"prover_address","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}},{"name":"function_data","type":{"kind":"struct","path":"public_kernel_lib::types::abis::function_data::FunctionData","fields":[{"name":"selector","type":{"kind":"struct","path":"public_kernel_lib::types::abis::function_selector::FunctionSelector","fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"is_internal","type":{"kind":"boolean"}},{"name":"is_private","type":{"kind":"boolean"}},{"name":"is_constructor","type":{"kind":"boolean"}}]}},{"name":"is_execution_request","type":{"kind":"boolean"}}]}},{"name":"public_call_stack","type":{"kind":"array","length":4,"type":{"kind":"struct","path":"public_kernel_lib::types::abis::call_request::CallRequest","fields":[{"name":"hash","type":{"kind":"field"}},{"name":"caller_contract_address","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"caller_context","type":{"kind":"struct","path":"public_kernel_lib::types::abis::call_request::CallerContext","fields":[{"name":"msg_sender","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"storage_contract_address","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"proof","type":{"kind":"struct","path":"public_kernel_lib::types::mocked::Proof","fields":[]}},{"name":"portal_contract_address","type":{"kind":"struct","path":"public_kernel_lib::types::address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"bytecode_hash","type":{"kind":"field"}}]}}]},"visibility":"private"}],"param_witnesses":{"input":[{"start":0,"end":1074}]},"return_type":{"abi_type":{"kind":"struct","path":"public_kernel_lib::types::abis::kernel_circuit_public_inputs::PublicKernelCircuitPublicInputs","fields":[{"name":"aggregation_object","type":{"kind":"struct","path":"public_kernel_lib::types::mocked::AggregationObject","fields":[]}},{"name":"end_non_revertible","type":{"kind":"struct","path":"public_kernel_lib::types::abis::combined_accumulated_data::AccumulatedNonRevertibleData","fields":[{"name":"new_commitments","type":{"kind":"array","length":8,"type":{"kind":"struct","path":"public_kernel_lib::types::abis::side_effect::SideEffect","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"new_nullifiers","type":{"kind":"array","length":8,"type":{"kind":"struct","path":"public_kernel_lib::types::abis::side_effect::SideEffectLinkedToNoteHash","fields":[{"name":"value","type":{"kind":"field"}},{"name":"note_hash","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"public_call_stack","type":{"kind":"array","length":2,"type":{"kind":"struct","path":"public_kernel_lib::types::abis::call_request::CallRequest","fields":[{"name":"hash","type":{"kind":"field"}},{"name":"caller_contract_address","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"caller_context","type":{"kind":"struct","path":"public_kernel_lib::types::abis::call_request::CallerContext","fields":[{"name":"msg_sender","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"storage_contract_address","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}}]}},{"name":"end","type":{"kind":"struct","path":"public_kernel_lib::types::abis::combined_accumulated_data::CombinedAccumulatedData","fields":[{"name":"read_requests","type":{"kind":"array","length":128,"type":{"kind":"struct","path":"public_kernel_lib::types::abis::side_effect::SideEffect","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"nullifier_key_validation_requests","type":{"kind":"array","length":4,"type":{"kind":"struct","path":"public_kernel_lib::types::abis::nullifier_key_validation_request::NullifierKeyValidationRequestContext","fields":[{"name":"public_key","type":{"kind":"struct","path":"public_kernel_lib::types::grumpkin_point::GrumpkinPoint","fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}}]}},{"name":"secret_key","type":{"kind":"struct","path":"public_kernel_lib::types::grumpkin_private_key::GrumpkinPrivateKey","fields":[{"name":"high","type":{"kind":"field"}},{"name":"low","type":{"kind":"field"}}]}},{"name":"contract_address","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}}},{"name":"new_commitments","type":{"kind":"array","length":64,"type":{"kind":"struct","path":"public_kernel_lib::types::abis::side_effect::SideEffect","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"new_nullifiers","type":{"kind":"array","length":64,"type":{"kind":"struct","path":"public_kernel_lib::types::abis::side_effect::SideEffectLinkedToNoteHash","fields":[{"name":"value","type":{"kind":"field"}},{"name":"note_hash","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"private_call_stack","type":{"kind":"array","length":8,"type":{"kind":"struct","path":"public_kernel_lib::types::abis::call_request::CallRequest","fields":[{"name":"hash","type":{"kind":"field"}},{"name":"caller_contract_address","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"caller_context","type":{"kind":"struct","path":"public_kernel_lib::types::abis::call_request::CallerContext","fields":[{"name":"msg_sender","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"storage_contract_address","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"public_call_stack","type":{"kind":"array","length":8,"type":{"kind":"struct","path":"public_kernel_lib::types::abis::call_request::CallRequest","fields":[{"name":"hash","type":{"kind":"field"}},{"name":"caller_contract_address","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"caller_context","type":{"kind":"struct","path":"public_kernel_lib::types::abis::call_request::CallerContext","fields":[{"name":"msg_sender","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"storage_contract_address","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"new_l2_to_l1_msgs","type":{"kind":"array","length":2,"type":{"kind":"field"}}},{"name":"encrypted_logs_hash","type":{"kind":"array","length":2,"type":{"kind":"field"}}},{"name":"unencrypted_logs_hash","type":{"kind":"array","length":2,"type":{"kind":"field"}}},{"name":"encrypted_log_preimages_length","type":{"kind":"field"}},{"name":"unencrypted_log_preimages_length","type":{"kind":"field"}},{"name":"new_contracts","type":{"kind":"array","length":1,"type":{"kind":"struct","path":"public_kernel_lib::types::abis::new_contract_data::NewContractData","fields":[{"name":"contract_address","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"portal_contract_address","type":{"kind":"struct","path":"public_kernel_lib::types::address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"contract_class_id","type":{"kind":"struct","path":"public_kernel_lib::types::contract_class::ContractClassId","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}}},{"name":"public_data_update_requests","type":{"kind":"array","length":16,"type":{"kind":"struct","path":"public_kernel_lib::types::abis::public_data_update_request::PublicDataUpdateRequest","fields":[{"name":"leaf_slot","type":{"kind":"field"}},{"name":"new_value","type":{"kind":"field"}}]}}},{"name":"public_data_reads","type":{"kind":"array","length":16,"type":{"kind":"struct","path":"public_kernel_lib::types::abis::public_data_read::PublicDataRead","fields":[{"name":"leaf_slot","type":{"kind":"field"}},{"name":"value","type":{"kind":"field"}}]}}}]}},{"name":"constants","type":{"kind":"struct","path":"public_kernel_lib::types::abis::combined_constant_data::CombinedConstantData","fields":[{"name":"historical_header","type":{"kind":"struct","path":"public_kernel_lib::types::header::Header","fields":[{"name":"last_archive","type":{"kind":"struct","path":"public_kernel_lib::types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"body_hash","type":{"kind":"array","length":2,"type":{"kind":"field"}}},{"name":"state","type":{"kind":"struct","path":"public_kernel_lib::types::state_reference::StateReference","fields":[{"name":"l1_to_l2_message_tree","type":{"kind":"struct","path":"public_kernel_lib::types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"partial","type":{"kind":"struct","path":"public_kernel_lib::types::partial_state_reference::PartialStateReference","fields":[{"name":"note_hash_tree","type":{"kind":"struct","path":"public_kernel_lib::types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"nullifier_tree","type":{"kind":"struct","path":"public_kernel_lib::types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"contract_tree","type":{"kind":"struct","path":"public_kernel_lib::types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"public_data_tree","type":{"kind":"struct","path":"public_kernel_lib::types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}}]}}]}},{"name":"global_variables","type":{"kind":"struct","path":"public_kernel_lib::types::abis::global_variables::GlobalVariables","fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"field"}},{"name":"coinbase","type":{"kind":"struct","path":"public_kernel_lib::types::address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"public_kernel_lib::types::address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}}]}},{"name":"tx_context","type":{"kind":"struct","path":"public_kernel_lib::types::transaction::context::TxContext","fields":[{"name":"is_fee_payment_tx","type":{"kind":"boolean"}},{"name":"is_rebate_payment_tx","type":{"kind":"boolean"}},{"name":"is_contract_deployment_tx","type":{"kind":"boolean"}},{"name":"contract_deployment_data","type":{"kind":"struct","path":"public_kernel_lib::types::contrakt::deployment_data::ContractDeploymentData","fields":[{"name":"public_key","type":{"kind":"struct","path":"public_kernel_lib::types::grumpkin_point::GrumpkinPoint","fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}}]}},{"name":"initialization_hash","type":{"kind":"field"}},{"name":"contract_class_id","type":{"kind":"struct","path":"public_kernel_lib::types::contract_class::ContractClassId","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"contract_address_salt","type":{"kind":"field"}},{"name":"portal_contract_address","type":{"kind":"struct","path":"public_kernel_lib::types::address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}},{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}}]}}]}},{"name":"is_private","type":{"kind":"boolean"}}]},"visibility":"public"},"return_witnesses":[1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2070,2071,2072,2073,2074,2075,2076,2077,2078,2079,2080,2081,2082,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2137,2138,2139,2140,2141,2142,2143,2144,2145,2146,2147,2148,2149,2150,2151,2152,2153,2154,2155,2156,2157,2158,2159,2160,2161,2162,2163,2164,2165,2166,2167,2168,2169,2170,2171,2172,2173,2174,2175,2176,2177,2178,2179,2180,2181,2182,2183,2184,2185,2186,2187,2188,2189,2190,2191,2192,2193,2194,2195,2196,2197,2198,2199,2200,2201,2202,2203,2204,2205,2206,2207,2208,2209,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2220,2221,2222,2223,2224,2225,2226,2227,2228,2229,2230,2231,2232,2233,2234,2235,2236,2237,2238,2239,2240,2241,2242,2243,2244,2245,2246,2247,2248,2249,2250,2251,2252,2253,2254,2255,2256,2257,2258,2259,2260,2261,2262,2263,2264,2265,2266,2267,2268,2269,2270,2271,2272,2273,2274,2275,2276,2277,2278,2279,2280,2281,2282,2283,2284,2285,2286,2287,2288,2289,2290,2291,2292,2293,2294,2295,2296,2297,2298,2299,2300,2301,2302,2303,2304,2305,2306,2307,2308,2309,2310,2311,2312,2313,2314,2315,2316,2317,2318,2319,2320,2321,2322,2323,2324,2325,2326,2327,2328,2329,2330,2331,2332,2333,2334,2335,2336,2337,2338,2339,2340,2341,2342,2343,2344,2345,2346,2347,2348,2349,2350,2351,2352,2353,2354,2355,2356,2357,2358,2359,2360,2361,2362,2363,2364,2365,2366,2367,2368,2369,2370,2371,2372,2373,2374,2375,2376,2377,2378,2379,2380,2381,2382,2383,2384,2385,2386,2387,2388,2389,2390,2391,2392,2393,2394,2395,2396,2397,2398,2399,2400,2401,2402,2403,2404,2405,2406,2407,2408,2409,2410,2411,2412,2413,2414,2415,2416,2417,2418,2419,2420,2421,2422,2423,2424,2425,2426,2427,2428,2429,2430,2431,2432,2433,2434,2435,2436,2437,2438,2439,2440,2441,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2453,2454,2455,2456,2457,2458,2459,2460,2461,2462,2463,2464,2465,2466,2467,2468,2469,2470,2471,2472,2473,2474,2475,2476,2477,2478,2479,2480,2481,2482,2483,2484,2485,2486,2487,2488,2489,2490,2491,2492,2493,2494,2495,2496,2497,2498,2499,2500,2501,2502,2503,2504,2505,2506,2507,2508,2509,2510,2511,2512,2513,2514,2515,2516,2517,2518,2519,2520,2521,2522,2523,2524,2525,2526,2527,2528,2529,2530,2531,2532,2533,2534,2535,2536,2537,2538,2539,2540,2541,2542,2543,2544,2545,2546,2547,2548,2549,2550,2551,2552,2553,2554,2555,2556,2557,2558,2559,2560,2561,2562,2563,2564,2565,2566,2567,2568,2569,2570,2571,2572,2573,2574,2575,2576,2577,2578,2579,2580,2581,2582,2583,2584,2585,2586,2587,2588,2589,2590,2591,2592,2593,2594,2595,2596,2597,2598,2599,2600,2601,2602,2603,2604,2605,2606,2607,2608,2609,2610,2611,2612,2613,2614,2615,2616,2617,2618,2619,2620,2621,2622,2623,2624,2625,2626,2627,2628,2629,2630,2631,2632,2633,2634,2635,2636,2637,2638,2639,2640,2641,2642,2643,2644,2645,2646,2647,2648,2649,2650,2651,2652,2653,2654,2655,2656,2657,2658,2659,2660,2661,2662,2663,2664,2665,2666,2667,2668,2669,2670,2671,2672,2673,2674,2675,2676,2677,2678,2679,2680,2681,2682,2683,2684,2685,2686,2687,2688,2689,2690,2691,2692,2693,2694,2695,2696,2697,2698,2699,2700,2701,2702,2703,2704,2705,2706,2707,2708,2709,2710,2711,2712,2713,2714,2715,2716,2717,2718,2719,2720,2721,2722,2723,2724,2725,2726,2727,2728,2729,2730,2731,2732,2733,2734,2735,2736,2737,2738,2739,2740,2741,2742,2743,2744,2745,2746,2747,2748,2749,2750,2751,2752,2753,2754,2755,2756,2757,2758,2759,2760,2761,2762,2763,2764,2765,2766,2767,2768,2769,2770,2771,2772,2773,2774,2775]},"bytecode":"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","debug_symbols":"1P3LiiValqZZvou3g2LP27rEqxTVCKqyICGJLCqiF8S759LEVd2cNDiN9C2M0zNchb3/zvxEcFsD+x//8r/97//v//Lf/9f//b/+t3/5z//jXz7/j/OJf/nP/8//8S//7f/3X/7rr//Lf/vv/+X//9//5T9n3//0L//Lf/3/vP90Pv/zP/3L//d//d/+l3/5z1HxP//T/+Vn7+1//dn4xD/8cOb//H/9p//zK/L7X1Hf/4r+/lfM979iff8r9ve/4nz/K+7XvyI+3/+K7193fP+64/vXHd+/7vj+dcf3rzu+f93x/euO7193fv+68/vXnd+/7vz+def3rzu/f935/evO7193fv+68/vXXd+/7vr+ddf3r7u+f931/euu7193ff+66/vXXd+/7vr+dff3r7u/f939/evu7193f/+6+/vX3d+/7v7+dff3r7u/f93z/eue71/3fP+65/vXPd+/7vn+dc/3r3u+f93z/eue71/3+v51r+9f9/r+da/vX/f6/nWv71/3+v51r+9f9/r+da/vX/f+/nXv71/3/v517+9f9/7+de/vX/f+/nXv71/3/v517+9f9/n+dZ/vX/f5/nWf71/3+f51n+9f9/n+dZ/vX/f5/nWf71/3/f513+9f9/3+dd/vX/f9/nXf71/3/f513+9f9/3+dd+vX/f9fL7/FfH9r8jvf0V9/yv6+18x3/+K9f2v2N//ivP9r/j+dX//rdr9/lu1+/23avf7b9Xu99+q3e+/Vbvff6t2v/9W7X7/rdr9/lu1+/23avf7b9Xu99+q3e+/Vbvff6t2v/9W7X7/rdr9/lu1+/23avf7b9Xu99+q3e+/Vbvff6t2v/9W7X7/rdr9/lu1+/23avf7b9Xu99+q3e+/Vbvff6t2v/9W7X7/rdr9/lu1+/23avf7b9Xu99+q3e+/Vbvff6t2v/9W7X7/rdr9/lu1+/23avf7b9Xu99+q3e+/Vbvff6t2v/9W7X7/rdr9/lu1+/23avf7b9Xu99+q3e+/Vbvff6t2v/9W7X7/rdr9/lu1+/23avf7b9Xu99+q3e+/Vbvff6t2v/9W7X7/rdr9/lu1+/23avf7b9Xu99+q3e+/Vbvff6t2v/9W7X7/rdr9/lu1+/23avf7b9Xu99+q3e+/Vbvff6t2v/9W7X7/rdr9/lu1+/23avf7b9Xu99+q3e+/Vbvff6t2v/9W7X7/rdr9/lu1+Hz/sdr7jviB78gf+I76ge/oH/iO+YHvWD/wHfsHvuP8wHf8wJ3HD9x5/MCdxw/cefzAnccP3Hn8wJ3HD9x5/MCdxw/cefzAnecP3Hn+wJ3nD9x5/sCd5w/cef7AnecP3Hn+wJ3nD9x5/sCd1w/cef3AndcP3Hn9wJ3XD9x5/cCd1w/cef3AndcP3Hn9wJ33D9x5/8Cd9w/cef/AnfcP3Hn/wJ33D9x5/8Cd9w/cef/Anc8P3Pn8wJ3PD9z5/MCdzw/c+fzAnc8P3Pn8wJ3PD9z5/MCdrx+48/UDd75+4M7XD9z5+oE7Xz9w5+sH7nz9wJ2vH7jz9QN3vn/gzvcP3Pn+gTvfP3Dn+wfufP/Ane8fuPP9A3e+f+DO9w/c+fmBOz8/cOfnB+78/MCdnx+48/MDd35+4M7PD9z5+YE7Pz9w5/cH7vz+wJ3fH7jz//sv4d5n7N9fEuv8uy/5v/505ufPR2fdf/jp/WdSe5PGm7S8SdubdLxJV5sU//cfFv7HTwpvUnqTuHq//w+8N4mrd3y4eseHq3d8uHrHx6t3ePUOr97h1Tu8eodX7/DqHV69w6t3ePUOr97p1Tu9eqdX7/TqnV6906t3evVOr97p1Tu9epdX7/LqXV69y6t3efUur97l1bu8epdX7/Lq3V6926t3e/Vur97t1bu9erdX7/bq3V6926v3ePUer97j1Xu8eo9X7/HqPV69x6v3ePUer97Lq/fy6r28ei+v3sur9/Lqvbx6L6/ey6v38uq9vXpvr97bq/f26r29em+v3tur9/bqvb16b6/ex6v38ep9vHofr97Hq/fx6n28eh+v3ser9/Hqfb16X6/e16u3Zy3Ds5bhWcvwrGV41jI8axmetUzPWqZnLdOzlulZy/xw9U7PWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a1metSzPWpZnLcuzlvXh6l2etSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI9a9metWzPWrZnLfvD1bs9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rOV41nI8azmetRzPWs6Hq/d41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvlWcvlWcvlWcvlWcv14eq9PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PGu5PWu5PWu5PWu5PWu5P1y9t2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctj2ctj2ctj2ctj2ctz4er9/Gs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fWs5fWs5fWs5fWs5f1w9b6etbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyctcwPZy3fJK3eb5JW7zdJq/ebpNX7TdLq/SZp9X6TtHq/SVq93ySv3py1fJO8enPW8k3y6s1ZyzfJqzdnLd8kr96ctXyTvHpz1vJN8urNWcs3yas3Zy3fJK/enLV8k7x6c9byTfLqzVnLN8mrN2ct3ySv3py1fJO8enPW8k3y6s1ZyzfJqzdnLd8kr96ctXyTvHpz1vJN8urNWcs3yas3Zy3fJK/enLV8k7x6c9byTfLqzVnLN8mrN2ct3ySv3py1fJO8enPW8k3y6s1ZyzfJqzdnLd8kr96ctXyTvHpz1vJN8urNWcs3yas3Zy3fJK/enLV8k7x6c9byTfLqzVnLN8mrN2ct3ySv3py1fJO8enPW8k3y6s1ZyzfJqzdnLd8kr96ctXz/7tWbs5bv3716c9by/btXb85avn/36s1Zy/fvXL3Ds5bhWcvwrGV41jI+XL3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qmZy3Ts5bpWcv0rGV+uHqnZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrUsz1qWZy3Ls5blWcv6cPUuz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGvZnrVsz1q2Zy3bs5b94erdnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ZyPGs5nrUcz1qOZy3nw9V7PGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azl8qzl8qzl8qzl8qzl+nD1Xp61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ61XJ613J613J613J613J613B+u3tuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzltuzlsezlsezlsezlsezlufD1ft41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ41vJ61vJ61vJ61vJ61vJ+uHpfz1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pez1pezlrWh7OWb5JW7zdJq/ebpNX7TdLq/SZp9X6TtHq/SVq93ySt3m+SV2/OWr5JXr05a/kmefXmrOWb5NWbs5Zvkldvzlq+SV69OWv5Jnn15qzlm+TVm7OWb5JXb85avklevTlr+SZ59eas5Zvk1Zuzlm+SV2/OWr5JXr05a/kmefXmrOWb5NWbs5Zvkldvzlq+SV69OWv5Jnn15qzlm+TVm7OWb5JXb85avklevTlr+SZ59eas5Zvk1Zuzlm+SV2/OWr5JXr05a/kmefXmrOWb5NWbs5Zvkldvzlq+SV69OWv5Jnn15qzlm+TVm7OWb5JXb85avklevTlr+SZ59eas5Zvk1Zuzlm+SV2/OWr5JXr05a/kmefXmrOWb5NWbs5Zvkldvzlq+SV69OWv5Jnn15qzlm+TVm7OWb5JXb85avklcvcOzluFZy/CsZXjWMj5cvcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWqZnLdOzlulZy/SsZX64eqdnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metSzPWpZnLcuzluVZy/pw9S7PWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a9metWzPWrZnLduzlv3h6t2etWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71nI8azmetRzPWo5nLefD1Xs8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOXyrOXyrOXyrOXyrOX6cPVenrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrXcnrXcnrXcnrXcnrXcH67e27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OWx7OWx7OWx7OWx7OW58PV+3jW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8nrW8nrW8nrW8nrW8n64el/PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7OWvaHs5ZvklbvN0mr95uk1ftN0ur9Jmn1fpO0er9JWr3fJK3eb5JXb85avklevTlr+SZ59eas5Zvk1Zuzlm+SV2/OWr5JXr05a/kmefXmrOWb5NWbs5Zvkldvzlq+SV69OWv5Jnn15qzlm+TVm7OWb5JXb85avklevTlr+SZ59eas5Zvk1Zuzlm+SV2/OWr5JXr05a/kmefXmrOWb5NWbs5Zvkldvzlq+SV69OWv5Jnn15qzlm+TVm7OWb5JXb85avklevTlr+SZ59eas5Zvk1Zuzlm+SV2/OWr5JXr05a/kmefXmrOWb5NWbs5Zvkldvzlq+SV69OWv5Jnn15qzlm+TVm7OWb5JXb85avklevTlr+SZ59eas5Zvk1Zuzlm+SV2/OWr5JXr05a/kmefXmrOWb5NWbs5Zvkldvzlq+SVy9w7OW4VnL8KxleNYyPly9w7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61DM9apmct07OW6VnL9Kxlfrh6p2ct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61LM9almcty7OW5VnL+nD1Ls9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxr2Z61bM9atmct27OW/eHq3Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWcjxrOZ61HM9ajmct58PVezxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5fKs5fKs5fKs5fKs5fpw9V6etVyetVyetVyetVyetVyetVyetVyetVyetVyetVw/bi1PxJ+Pnv53k/7JZ9/8/dG3/vzsvn/Wr7/1+v23Xn/+1uvv33n9jxPS/9j1Ia/Pf/vhWP9sff6t19O9/8v1dO//cj3dnFyf3z/8D5/8b+uLbs5frreb81froeb8nlTepPYmQbn9PQlq6O9J0B/CvydBf93+ngT9+vjXSQ39Tvg9CQr970levdurd3v1bq/e7dW7vXq3V+/26j1evcer93j1Hq/e49V7vHqPV+/x6j1evcer9/Lqvbx6L6/ey6v38uq9vHovr97Lq/fy6r28em+v3tur9/bqvb16b6/e26v39uq9vXpvr97bq/fx6n28eh+v3ser9/Hqfbx6H6/ex6v38ep9vHpfr97Xq/f16n29el+v3ter9/Xqfb16X6/el6v3/nD13h+u3vvD1Xt/uHrvD1fv/eHqvT9cvfeHq/f+cPXeH6/e4dU7vHqHV+/w6h1evSVO+XuSV28JPv6e5NVbIor/Oklyh78nefWWhODvSV6906u3hCN/T/LqnV6906u3hD3/dZIkOH9P8urtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvtWcvjWcvjWcvjWcvjWcvz4ep9PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PGt5PWt5PWt5PWt5PWt5P1y9r2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctr2ctL2ct58NZyzdJq/ebpNX7TdLq/SZp9X6TtHq/SVq93ySt3m+SVu83yas3Zy3fJK/enLV8k7x6c9byTfLqzVnLN8mrN2ct3ySv3py1fJO8enPW8k3y6s1ZyzfJqzdnLd8kr96ctXyTvHpz1vJN8urNWcs3yas3Zy3fJK/enLV8k7x6c9byTfLqzVnLN8mrN2ct3ySv3py1fJO8enPW8k3y6s1ZyzfJqzdnLd8kr96ctXyTvHpz1vJN8urNWcs3yas3Zy3fJK/enLV8k7x6c9byTfLqzVnLN8mrN2ct3ySv3py1fJO8enPW8k3y6s1ZyzfJqzdnLd8kr96ctXyTvHpz1vJN8urNWcs3yas3Zy3fJK/enLV8k7x6c9byTfLqzVnLN8mrN2ct3ySv3py1fJO8enPW8k3y6s1ZyzfJqzdnLd8krt7hWcvwrGV41jI8axkfrt7hWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ts5bpWcv0rGV61jI/XL3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qWZy3Ls5blWcvyrGV9uHqXZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrVsz1q2Zy3bs5btWcv+cPVuz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWs5nrUcz1qOZy3Hs5bz4eo9nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyedZyedZyedZyedZyfbh6L89aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9aLs9abs9abs9abs9abs9a7g9X7+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+1Zy+NZy+NZy+NZy+NZy/Ph6n08a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k8a3k9a3k9a3k9a3k9a3k/XL2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy2vZy0vZy3Xh7OWb5JW7zdJq/ebpNX7TdLq/SZp9X6TtHq/SVq93ySt3m+SV2/OWr5JXr05a/kmefXmrOWb5NWbs5Zvkldvzlq+SV69OWv5Jnn15qzlm+TVm7OWb5JXb85avklevTlr+SZ59eas5Zvk1Zuzlm+SV2/OWr5JXr05a/kmefXmrOWb5NWbs5Zvkldvzlq+SV69OWv5Jnn15qzlm+TVm7OWb5JXb85avklevTlr+SZ59eas5Zvk1Zuzlm+SV2/OWr5JXr05a/kmefXmrOWb5NWbs5Zvkldvzlq+SV69OWv5Jnn15qzlm+TVm7OWb5JXb85avklevTlr+SZ59eas5Zvk1Zuzlm+SV2/OWr5JXr05a/kmefXmrOWb5NWbs5Zvkldvzlq+SV69OWv5Jnn15qzlm+TVm7OWb5JXb85avklcvcOzluFZy/CsZXjWMj5cvcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWqZnLdOzlulZy/SsZX64eqdnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metSzPWpZnLcuzluVZy/pw9S7PWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a9metWzPWrZnLduzlv3h6t2etWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71nI8azmetRzPWo5nLefD1Xs8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOXyrOXyrOXyrOXyrOX6cPVenrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrVcnrXcnrXcnrXcnrXcnrXcH67e27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OW27OWx7OWx7OWx7OWx7OW58PV+3jW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8njW8nrW8nrW8nrW8nrW8n64el/PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7PWl7OWu4PZy3fJK3eb5JW7zdJq/ebpNX7TdLq/SZp9X6TtHq/SVq93ySv3py1fJO8enPW8k3y6s1ZyzfJqzdnLd8kr96ctXyTvHpz1vJN8urNWcs3yas3Zy3fJK/enLV8k7x6c9byTfLqzVnLN8mrN2ct3ySv3py1fJO8enPW8k3y6s1ZyzfJqzdnLd8kr96ctXyTvHpz1vJN8urNWcs3yas3Zy3fJK/enLV8k7x6c9byTfLqzVnLN8mrN2ct3ySv3py1fJO8enPW8k3y6s1ZyzfJqzdnLd8kr96ctXyTvHpz1vJN8urNWcs3yas3Zy3fJK/enLV8k7x6c9byTfLqzVnLN8mrN2ct3ySv3py1fJO8enPW8k3y6s1ZyzfJqzdnLd8kr96ctXyTvHpz1vJN8urNWcs3yas3Zy3fJK/enLV8k7h6h2ctw7OW4VnL8KxlfLh6h2ctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61TM9apmct07OW6VnL/HD1Ts9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rWZ61LM9almcty7OW9eHqXZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsj1r2Z61bM9atmct+8PVuz1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/as5XjWcjxrOZ61HM9azoer93jWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy+VZy+VZy+VZy+VZy/Xh6r08a7k8a7k8a7k8a7k8a7k8a7k8a7k8a7k8a7k8a7k8a7k8a7l+3lr++em8df/dpH/y2Td/f/StPz+775/152+9/v6d1/889vwPXR9/6/X5t15f8vr8t2bG+mfr+2+9nu79X66ne/9X64tuTq7P7x/+h0/+h/V0c/5yvd2cv1oPNef3pPEmLW8SlNvfk6CG/p4E/SH8r5Ma+uv29yTo18fvSdDvhN+ToND/nuTVu716t1fv9urdXr3bq/d49R6v3uPVe7x6j1fv8eo9Xr3Hq/d49R6v3sur9/Lqvbx6L6/ey6v38uq9vHovr97Lq/fy6r29em+v3tur9/bqvb16b6/e26v39uq9vXpvr97Hq/fx6n28eh+v3ser9/Hqfbx6H6/ex6v38ep9vXpfr97Xq/f16n29el+v3ter9/Xqfb16X67e+8PVe3+4eu8PV+/94eq9P1y994er9/5w9d4frt77w9V7f7x6h1fv8OodXr3Dq3d49Q6v3uHVW+KUvyd59Zbg479OkjTj70levSV3+HuSV29JCP6e5NU7vXpLOPL3JK/e6dW7vHpL2PP3JK/eEsv8Pcmrt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctt2ctj2ctj2ctj2ctj2ctz4er9/Gs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fGs5fWs5fWs5fWs5fWs5f1w9b6etbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyetbyctTwfzlq+SVq93ySt3m+SVu83Sav3m6TV+03S6v0mafV+k7R6v0levTlr+SZ59eas5Zvk1Zuzlm+SV2/OWr5JXr05a/kmefXmrOWb5NWbs5Zvkldvzlq+SV69OWv5Jnn15qzlm+TVm7OWb5JXb85avklevTlr+SZ59eas5Zvk1Zuzlm+SV2/OWr5JXr05a/kmefXmrOWb5NWbs5Zvkldvzlq+SV69OWv5Jnn15qzlm+TVm7OWb5JXb85avklevTlr+SZ59eas5Zvk1Zuzlm+SV2/OWr5JXr05a/kmefXmrOWb5NWbs5Zvkldvzlq+SV69OWv5Jnn15qzlm+TVm7OWb5JXb85avklevTlr+SZ59eas5Zvk1Zuzlm+SV2/OWr5JXr05a/kmefXmrOWb5NWbs5Zvkldvzlq+SV69OWv5JnH1Ds9ahmctw7OW4VnL+HD1Ds9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrmZ61TM9apmct07OW+eHqnZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWsjxrWZ61LM9almct68PVuzxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXvWsj1r2Z61bM9a9oerd3vWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/Gs5XjWcjxrOZ61nA9X7/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezlsuzlsuzlsuzlsuzluvD1Xt51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ51nJ71nJ71nJ71nJ71nJ/uHpvz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1puz1oez1oez1oez1oez1qeD1fv41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL41nL61nL61nL61nL61nL++HqfT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reT1reTlreT+ctXyTtHq/SVq93ySt3m+SVu83Sav3m6TV+03S6v0mafV+k7x6c9byTfLqzVnLN8mrN2ct3ySv3py1fJO8enPW8k3y6s1ZyzfJqzdnLd8kr96ctXyTvHpz1vJN8urNWcs3yas3Zy3fJK/enLV8k7x6c9byTfLqzVnLN8mrN2ct3ySv3py1fJO8enPW8k3y6s1ZyzfJqzdnLd8kr96ctXyTvHpz1vJN8urNWcs3yas3Zy3fJK/enLV8k7x6c9byTfLqzVnLN8mrN2ct3ySv3py1fJO8enPW8k3y6s1ZyzfJqzdnLd8kr96ctXyTvHpz1vJN8urNWcs3yas3Zy3fJK/enLV8k7x6c9byTfLqzVnLN8mrN2ct3ySv3py1fJO8enPW8k3y6s1ZyzfJqzdnLd8kr96ctXyTvHpz1vJN4uodnrUMz1qGZy3Ds5bx4eodnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPGsZnrUMz1qGZy3Ds5bhWcvwrGV41jI8axmetQzPWoZnLcOzluFZy/CsZXjWMjxrGZ61DM9ahmctw7OW4VnL8KxleNYyPWuZnrVMz1qmZy3zw9U7PWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxletYyPWuZnrVMz1qmZy3Ts5bpWcv0rGV61jI9a5metUzPWqZnLdOzlulZy/SsZXrWMj1rmZ61TM9apmct07OW6VnL9KxledayPGtZnrUsz1rWh6t3edayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL8qxledayPGtZnrUsz1qWZy3Ls5blWcvyrGV51rI8a1metSzPWpZnLcuzluVZy/KsZXnWsjxrWZ61LM9almcty7OW5VnL9qxle9ayPWvZnrXsD1fv9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW7VnL9qxle9ayPWvZnrVsz1q2Zy3bs5btWcv2rGV71rI9a9metWzPWrZnLduzlu1Zy/asZXvWsj1r2Z61bM9atmct27OW41nL8azleNZyPGs5H67e41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctx7OW41nL8azleNZyPGs5nrUcz1qOZy3Hs5bjWcvxrOV41nI8azmetRzPWo5nLcezluNZy/Gs5XjWcjxrOZ61HM9ajmctl2ctl2ctl2ctl2ct14er9/Ks5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fKs5fas5fas5fas5fas5f5w9d6etdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetdyetTyetTyetTyetTyetTwfrt7Hs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bHs5bnx63lPb9/uj5V/27SP/nsm78/+v7bz+77Z/3+W68/f+v19++8/sdd6H/s+vhbr095fUb83hHrn62vv/V6uvd/uZ7u/V+tX3Rzcn1+7/iHT/6H9XRz/nK93Zy/Wg815/ek9iaNNwnK7e9JUEN/T4L+EP49Cfrr9l8nbejXx+9J0O+E35Og0P+e5NV7e/XeXr23V+/t1Xt79d5evY9X7+PV+3j1Pl69j1fv49X7ePU+Xr2PV+/j1ft69b5eva9X7+vV+3r1vl69r1fv69X7evW+XL3vh6v3/XD1vh+u3vfD1ft+uHrfD1fv++HqfT9cve+Hq/f9ePUOr97h1Tu8eodX7/DqHV69w6t3ePUOr97h1Tu9eqdX7/TqnV6906t3evVOr97p1Tu9eqdX7/LqXV69y6t3efUur97l1bu8epdX7/LqXV6926t3e/Vur97t1bu9erdXb4lT/p7k1VuCj78nefWWiOLvSV69JUz4e5JX7/HqPV69JRz5e5JX7/HqPV69Jez5e5JXb4ll/p7k1duzltezltezltezltezltezltezltezltezltezltezltezltezltezltezltezltezltezltezltezltezltezltezltezltezltezltezltezltezltezltezltezltezltezltezlpezlvH5cNjy1yat3782aQH/tUkr+K9NWsJ/bdIa/muTFvFfm7SK/9qkZfzXJrDjHLv8tQnsOAcvf20CO87Ry1+bwI5z+PLXJrDjHL/8tQnsOAcwf20CO84RzF+bwI5zCPPXJrDjHMP8tQnsOAcxf20CO85RzF+bwI5zGPPXJrDjHMf8tQns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9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9JwL9Jwb9Jwb9Jwb9Jwb9Jz743V8g55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg55zg57zgJ7zgJ7zgJ7zgJ7zfLyOH9BzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzHtBzXtBzXtBzXtBzXtBz3o/X8Qt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6zgt6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es4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les4Les7rec7+eJ7zbeI6/jZxHX+buI6/TVzH3yau428T1/G3iev428R1/G0CO+55zrcJ7LjnOd8msOOe53ybwI57nvNtAjvuec63Cey45znfJrDjnud8m8COe57zbQI77nnOtwnsuOc53yaw457nfJvAjnue820CO+55zrcJ7LjnOd8msOOe53ybwI57nvNtAjvuec63Cey45znfJrDjnud8m8COe57zbQI77nnOtwnsuOc53yaw457nfJvAjnue820CO+55zrcJ7LjnOd8msOOe53ybwI57nvNtAjvuec63Cey45znfJrDjnud8m8COe57zbQI77nnOtwnsuOc53yaw457nfJvAjnue820CO+55zrcJ7LjnOd8msOOe53ybwI57nvNtAjvuec63Cey45znfJrDjnud8m8COe57zbQI77nnOt8nreICeM0DPGaDnDNBzxsfreICeM0DPGaDnDNBzBug5A/ScAXrOAD1ngJ4zQM8ZoOcM0HMG6DkD9JwBes4APWeAnjNAzxmg5wzQcwboOQP0nAF6zgA9Z4CeM0DPGaDnDNBzBug5A/ScAXrOAD1ngJ4zQM8ZoOcM0HMG6DkD9JwBes4APWeAnjNAzxmg5wzQcwboOQP0nAF6zgA9Z4CeM0DPGaDnDNBzBug5A/ScAXrOAD1ngJ4zQM8ZoOcM0HMG6DkD9JwBes4APWeAnjNAzxmg5wzQcwboOQP0nAF6zgA9Z4CeM0DPGaDnDNBzBug5A/ScAXrOAD1ngJ4zQM8ZoOcM0HMG6DkD9JwBes4APWeAnjNAzxmg5wzQcwboOQP0nAF6zgQ9Z4KeM0HPmaDnzI/X8QQ9Z4KeM0HPmaDnTNBzJug5E/ScCXrOBD1ngp4zQc+ZoOdM0HMm6DkT9JwJes4EPWeCnjNBz5mg50zQcyboORP0nAl6zgQ9Z4KeM0HPmaDnTNBzJug5E/ScCXrOBD1ngp4zQc+ZoOdM0HMm6DkT9JwJes4EPWeCnjNBz5mg50zQcyboORP0nAl6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qd7zaqr3vJrqPa+mes+rqd7zaqr3vJrqPa+mes+rqd7zaqr3vJrqPa+mes+rqd7zaqr3vJrqPa+mes+rqd7zaqr3vJnqPW+mes+bqd7zZqr3vG1qSq2lLNVM9Z43U73nzVTveTPVe95M9Z43U73nzVTveTPVe95M9Z43U73nzVTveTPVe95M9Z43U73nzVTveTPVe95M9Z43U73nzVTveTPVe95M9Z43U73nzVTveTPVe95M9Z43U73nzVTveTPVe95M9Z43U73nzVTveTPVe95M9Z43U73nzVTveTPVe95M9Z43U73nzVTveTPVe95M9Z43U73nzVTveTPVe95M9Z43U73nzVTveTPVe95M9Z43U73nzVTveTPVe95M9Z43U73nzVTveTPVe95M9Z43U73nzVTveTPVe95M9Z43U73nzVTveTPVe95M9Z43U73nzVTveTPVe95M9Z43U73nzVTveTPVe95M9Z43U73nzVTveTPVe95M9Z43U73nzVTveTPVe95M9Z43U73nzVTveTPVe95M9Z43U73nzVTveTPVe95M9Z43U73nzVTveTPVe95M9Z43S73nslnqPd/VGspSu1pDWWpXayhL7WrVlFpDWWpXayhL7WoNZaldraEstas1laUs9Z7vak1lKUu957taU1nKUu/5rtZUlrLUe76rNZWlLPWe72pNZSlLvee7WlNZylLv+a7WVJay1Hu+qzWVpSz1nu9qTWUpS73nu1pTWcpS7/mu1lSWstR7vqs1laUs9Z7vak1lKUu957taU1nKUu/5rtZUlrLUe76rNZWlLPWe72pNZSlLvee7WlNZylLv+a7WVJay1Hu+qzWVpSz1nu9qTWUpS73nu1pTWcpS7/mu1lSWstR7vqs1laUs9Z7vak1lKUu957taU1nKUu/5rtZUlrLUe76rNZWlLPWe72pNZSlLvee7WlNZylLv+a7WVJay1Hu+qzWVpSz1nu9qTWUpS73nu1pTWcpS7/mu1lSWstR7vqs1laUs9Z7vak1lKUu957taU1nKUu/5rtZUlrLUe76rNZWlLPWe72pNZSlLvee7WlNZylLv+a7WVJay1Hu+qzWVpSz1nu9qLWUpMdV7LqZ6z8VU77mY6j2XTU2ptZSlxFTvuZjqPRdTvediqvdcTPWei6neczHVey6mes/FVO+5mOo9F1O952Kq91xM9Z6Lqd5zMdV7LqZ6z8VU77mY6j0XU73nYqr3XEz1noup3nMx1XsupnrPxVTvuZjqPRdTvediqvdcTPWei6neczHVey6mes/FVO+5mOo9F1O952Kq91xM9Z6Lqd5zMdV7LqZ6z8VU77mY6j0XU73nYqr3XEz1noup3nMx1XsupnrPxVTvuZjqPRdTvediqvdcTPWei6neczHVey6mes/FVO+5mOo9F1O952Kq91xM9Z6Lqd5zMdV7LqZ6z8VU77mY6j0XU73nYqr3XEz1noup3nMx1XsupnrPxVTvuZjqPRdTvediqvdcTPWei6neczHVey6mes/FVO+5mOo9F1O952Kq91xM9Z6Lqd5zMdV7LqZ6z8VU77mY6j0XU73nYqr3XEz1noup3vNgqvc8mOo9D6Z6z4Op3vOwqSm1lrJUMNV7Hkz1ngdTvefBVO95MNV7Hkz1ngdTvefBVO95MNV7Hkz1ngdTvefBVO95MNV7Hkz1ngdTvefBVO95MNV7Hkz1ngdTvefBVO95MNV7Hkz1ngdTvefBVO95MNV7Hkz1ngdTvefBVO95MNV7Hkz1ngdTvefBVO95MNV7Hkz1ngdTvefBVO95MNV7Hkz1ngdTvefBVO95MNV7Hkz1ngdTvefBVO95MNV7Hkz1ngdTvefBVO95MNV7Hkz1ngdTvefBVO95MNV7Hkz1ngdTvefBVO95MNV7Hkz1ngdTvefBVO95MNV7Hkz1ngdTvefBVO95MNV7Hkz1ngdTvefBVO95MNV7Hkz1ngdTvefBVO95MNV7Hkz1ngdTvefBVO95MNV7Hkz1ngdTvefBVO95MNV7Hkz1ngdTvefBVO95MNV7Hkz1ngdTvefBVO95MNV7Hkz1ngdTvefBVO95MNV7Hkz1nkdTvefRVO95NNV7Hk31nsdNTam1lKWiqd7zaKr3PJrqPY+mes+jqd7zaKr3PJrqPY+mes+jqd7zaKr3PJrqPY+mes+jqd7zaKr3PJrqPY+mes+jqd7zaKr3PJrqPY+mes+jqd7zaKr3PJrqPY+mes+jqd7zaKr3PJrqPY+mes+jqd7zaKr3PJrqPY+mes+jqd7zaKr3PJrqPY+mes+jqd7zaKr3PJrqPY+mes+jqd7zaKr3PJrqPY+mes+jqd7zaKr3PJrqPY+mes+jqd7zaKr3PJrqPY+mes+jqd7zaKr3PJrqPY+mes+jqd7zaKr3PJrqPY+mes+jqd7zaKr3PJrqPY+mes+jqd7zaKr3PJrqPY+mes+jqd7zaKr3PJrqPY+mes+jqd7zaKr3PJrqPY+mes+jqd7zaKr3PJrqPY+mes+jqd7zaKr3PJrqPY+mes+jqd7zaKr3PJrqPY+mes+jqd7zaKr3PJrqPY+mes+jqd7zaKr3XE31nqup3nM11XuupnrPdVNTai1lKTXVe66mes/VVO+5muo9V1O952qq91xN9Z6rqd5zNdV7rqZ6z9VU77ma6j1XU73naqr3XE31nqup3nM11XuupnrP1VTvuZrqPVdTvedqqvdcTfWeq6neczXVe66mes/VVO+5muo9V1O952qq91xN9Z6rqd5zNdV7rqZ6z9VU77ma6j1XU73naqr3XE31nqup3nM11XuupnrP1VTvuZrqPVdTvedqqvdcTfWeq6neczXVe66mes/VVO+5muo9V1O952qq91xN9Z6rqd5zNdV7rqZ6z9VU77ma6j1XU73naqr3XE31nqup3nM11XuupnrP1VTvuZrqPVdTvedqqvdcTfWeq6neczXVe66mes/VVO+5muo9V1O952qq91xN9Z6rqd5zNdV7rqZ6z9VU77ma6j1XU73naqr3XE31nqup3nM11XuupnrP1VTvuZrqPVdTvedqqvc8meo9T6Z6z5Op3vNkqvc8bWpKraUslUz1nidTvefJVO95MtV7nkz1nidTvefJVO95MtV7nkz1nidTvefJVO95MtV7nkz1nidTvefJVO95MtV7nkz1nidTvefJVO95MtV7nkz1nidTvefJVO95MtV7nkz1nidTvefJVO95MtV7nkz1nidTvefJVO95MtV7nkz1nidTvefJVO95MtV7nkz1nidTvefJVO95MtV7nkz1nidTvefJVO95MtV7nkz1nidTvefJVO95MtV7nkz1nidTvefJVO95MtV7nkz1nidTvefJVO95MtV7nkz1nidTvefJVO95MtV7nkz1nidTvefJVO95MtV7nkz1nidTvefJVO95MtV7nkz1nidTvefJVO95MtV7nkz1nidTvefJVO95MtV7nkz1nidTvefJVO95MtV7nkz1nidTvefJVO95MtV7nkz1nidTvefJVO95MtV7nkz1nidTvefJVO95MtV7nkz1nidTvefZVO95NtV7nk31nmdTved5U1NqLWWpbKr3PJvqPc+mes+zqd7zbKr3PJvqPc+mes+zqd7zbKr3PJvqPc+mes+zqd7zbKr3PJvqPc+mes+zqd7zbKr3PJvqPc+mes+zqd7zbKr3PJvqPc+mes+zqd7zbKr3PJvqPc+mes+zqd7zbKn3PMRpuflDwKwr9BAw61Z8CZgWWD8EzLq7DgGzrqNDwKwb5hAw69I4BMx6pz4EzHpNPgTMvomnBakPAbNv4mlx50PA7Jt4Wij5EDD7Jp4WHT4EwDdxbemfV7ewXdw/sx73z5ze98+Wz168hePUm+rnF5cYXy6m8D7wVt42wvPAz9mY6mFjjd9ffFgDTxo/Z007jiFBTq2BZ5gfs0ZiOqzJ5//VwNPRb1kTjn85t+3Smvz2RsP7HNoOc+hw9N81B57q/q458MT4d82Bp9G/a466OX1zVkrRw81ZKRsPN2eldDzcnJXy8XBzPCF3zVE68v53zfGE/MEcT8gfzPGE/MEcdXP65nhC/mCOJ+QP5nhC/mCOJ+QP5nhC7ptDLzL4u+Z4Qv5gjifkD+bMmpAPATq7gFmT5iFg1jR4CJg1sR0CZk1Vh4BZk89LAL0a4FrArAniEDDrlj8EzL6J6Zj9tYDZNzEdhr8WMPsmpiPr1wJm38R0sPxaAHwTt6gvAal9vq6W9v6b5S2dioVv7bFi4Rt+rFi1JBaeHMaKhaeMsWLhiWSsWHh6GSsWnnSGilV4Khor1lKCUksJSi0lKFVLYi0lKLWUoNRSglJLCUrXSVBJyutfTtK+EZ7byYtDiOElMaTt+4tf1qR18tZwa9ZJZ8OtWSfLDbdmneQ33Bp1a3rWrJMqh1uzTgYdbs06iXW4Nevk2+HWeBruWZM9DXet8TTctcbTcNcaT8Nda9St6VnjabhrjafhrjWehrvWeBruWuNpuGcN/YkAf9MaT8NdazwNd63xNNy1Rt2anjWehrvWeBruWuNpuGuNp+GuNZ6Ge9bQn8rxN63xNNy1xtNw1xpPw11r1K3pWeNpuGuNp+GuNZ6Gu9Z4Gu5a42m4Zw39SSl/0xpPw11rPA13rfE03LVG3ZqeNZ6Gu9Z4Gu5a42m4a42n4a41noY71iT6U1H+pjWehrvWeBruWuNpuGuNujU9azwNd63xNNy1xtNw1xpPw11rPA33rKE/AeVvWuNpuGuNp+GuNZ6Gu9aoW9OzxtNw1xpPw11rPA13rfE03LXG03DPGvoTd/6mNZ6Gu9Z4Gu5a42m4a426NT1rPA13rfE03LXG03DXGk/DXWs8DfesoT/16m9a42m4a42n4a41noa71qhb07PG03DXGk/DXWs8DXet8TTctcbTcM+ahZ52NtwaT8NdazwNd63xNNy1Rt2anjWehrvWeBruWuNpuGuNp+GuNZ6Ge9b4s+j61nga7lrjabhrjafhrjXq1vSs8TTctcbTcNcaT8NdazwNd63xNNyzxp9F17fG03DXGk/DXWs8DXetUbemZ42n4a41noa71nga7lrjabhrjafhnjX+LLq+NZ6Gu9Z4Gu5a42m4a426NT1rPA13rfE03LXG03DXGk/DXWs8Dfes8WfR9a3xNNy1xtNw1xpPw11r1K3pWeNpuGuNp+GuNZ6Gu9Z4Gu5a42m4Z40/i65vjafhrjWehrvWeBruWqNuTc8aT8NdazwNd63xNNy1xtNw1xpPwx1rsj+Lrm+Np+GuNZ6Gu9Z4Gu5ao25NzxpPw11rPA13rfE03LXG03DXGk/DPWv8WXR9azwNd63xNNy1xtNw1xp1a3rWeBruWuNpuGuNp+GuNZ6Gu9Z4Gu5Z48+i61vjabhrjafhrjWehrvWqFvTs8bTcNcaT8NdazwNd63xNNy1xtNwzxp/Fl3fGk/DXWs8DXet8TTctUbdmp41noa71nga7lrjabhrjafhrjWehnvW+LPo+tZ4Gu5a42m4a42n4a416tb0rPE03LXG03DXGk/DXWs8DXet8TTcs8afRde3xtNw1xpPw11rPA13rVG3pmeNp+GuNZ6Gu9Z4Gu5a42m4a42n4Z41/iy6vjWehrvWeBruWuNpuGuNujU9azwNd63xNNy1xtNw1xpPw11rPA33rPFn0fWt8TTctcbTcNcaT8Nda9St6VnjabhrjafhrjWehrvWeBruWuNpuGeNP4uub42n4a41noa71nga7lqjbk3PGk/DXWs8DXet8TTctcbTcNcaT8M9a/xZdH1rPA13rfE03LXG03DXGnVretZ4Gu5a42m4a42n4a41noa71nga7lhT/Fl0fWs8DXet8TTctcbTcNcadWt61nga7lrjabhrjafhrjWehrvWeBruWePPoutb42m4a42n4a41noa71qhb07PG03DXGk/DXWs8DXet8TTctcbTcM8afxZd3xpPw11rPA13rfE03LVG3ZqeNZ6Gu9Z4Gu5a42m4a42n4a41noZ71viz6PrWeBruWuNpuGuNp+GuNerW9KzxNNy1xtNw1xpPw11rPA13rfE03LPGn0XXt8bTcNcaT8NdazwNd61Rt6ZnjafhrjWehrvWeBruWuNpuGuNp+GeNf4sur41noa71nga7lrjabhrjbo1PWs8DXet8TTctcbTcNcaT8NdazwN96zxZ9H1rfE03LXG03DXGk/DXWvUrelZ42m4a42n4a41noa71nga7lrjabhnjT+Lrm+Np+GuNZ6Gu9Z4Gu5ao25NzxpPw11rPA13rfE03LXG03DXGk/DPWv8WXR9azwNd63xNNy1xtNw1xp1a3rWeBruWuNpuGuNp+GuNZ6Gu9Z4Gu5Z48+i61vjabhrjafhrjWehrvWqFvTs8bTcNcaT8NdazwNd63xNNy1xtNwx5rqz6LrW+NpuGuNp+GuNZ6Gu9aoW9OzxtNw1xpPw11rPA13rfE03LXG03DPGn8WXd8aT8NdazwNd63xNNy1Rt2anjWehrvWeBruWuNpuGuNp+GuNZ6Ge9b4s+j61nga7lrjabhrjafhrjXq1vSs8TTctcbTcNcaT8NdazwNd63xNNyzxp9F17fG03DXGk/DXWs8DXetUbemZ42n4a41noa71nga7lrjabhrjafhnjX+LLq+NZ6Gu9Z4Gu5a42m4a426NT1rPA13rfE03LXG03DXGk/DXWs8Dfes8WfR9a3xNNy1xtNw1xpPw11r1K3pWeNpuGuNp+GuNZ6Gu9Z4Gu5a42m4Z40/i65vjafhrjWehrvWeBruWqNuTc8aT8NdazwNd63xNNy1xtNw1xpPwz1r/Fl0fWs8DXet8TTctcbTcNcadWt61nga7lrjabhrjafhrjWehrvWeBruWePPoutb42m4a42n4a41noa71qhb07PG03DXGk/DXWs8DXet8TTctcbTcM8afxZd3xpPw11rPA13rfE03LVG3ZqeNZ6Gu9Z4Gu5a42m4a42n4a41noY71jR/Fl3fGk/DXWs8DXet8TTctUbdmp41noa71nga7lrjabhrjafhrjWehnvW+LPo+tZ4Gu5a42m4a42n4a416tb0rPE03LXG03DXGk/DXWs8DXet8TTcs8afRde3xtNw1xpPw11rPA13rVG3pmeNp+GuNZ6Gu9Z4Gu5a42m4a42n4Z41/iy6vjWehrvWeBruWuNpuGuNujU9azwNd63xNNy1xtNw1xpPw11rPA33rPFn0fWt8TTctcbTcNcaT8Nda9St6VnjabhrjafhrjWehrvWeBruWuNpuGeNP4uub42n4a41noa71nga7lqjbk3PGk/DXWs8DXet8TTctcbTcNcaT8M9a/xZdH1rPA13rfE03LXG03DXGnVretZ4Gu5a42m4a42n4a41noa71nga7lnjz6LrW+NpuGuNp+GuNZ6Gu9aoW9OzxtNw1xpPw11rPA13rfE03LXG03DPGn8WXd8aT8NdazwNd63xNNy1Rt2anjWehrvWeBruWuNpuGuNp+GuNZ6Ge9b4s+j61nga7lrjabhrjafhrjXq1vSs8TTctcbTcNcaT8NdazwNd63xNHxuTdz8WXR9azwNd63xNNy1xtNw1xp1a3rWeBruWuNpuGuNp+GuNZ6Gu9Z4Gu5Z48+i61vjabhrjafhrjWehrvWqFvTs8bTcNcaT8NdazwNd63xNNy1xtNwzxp/Fl3fGk/DXWs8DXet8TTctUbdmp41noa71nga7lrjabhrjafhrjWehnvW+LPo+tZ4Gu5a42m4a42n4a416tb0rPE03LXG03DXGk/DXWs8DXet8TTcs8afRde3xtNw1xpPw11rPA13rVG3pmeNp+GuNZ6Gu9Z4Gu5a42m4a42n4Z41/iy6vjWehrvWeBruWuNpuGuNujU9azwNd63xNNy1xtNw1xpPw11rPA33rPFn0fWt8TTctcbTcNcaT8Nda9St6VnjabhrjafhrjWehrvWeBruWuNpuGeNP4uub42n4a41noa71nga7lqjbk3PGk/DXWs8DXet8TTctcbTcNcaT8M9a/xZdH1rPA13rfE03LXG03DXGnVretZ4Gu5a42m4a42n4a41noa71nga7lnjz6LrW+NpuGuNp+GuNZ6Gu9aoW9OzxtNw1xpPw11rPA13rfE03LXG03DHGvFn0fWt8TTctcbTcNcaT8Nda9St6VnjabhrjafhrjWehrvWeBruWuNpuGeNP4uub42n4a41noa71nga7lqjbk3PGk/DXWs8DXet8TTctcbTcNcaT8M9a/xZdH1rPA13rfE03LXG03DXGnVretZ4Gu5a42m4a42n4a41noa71nga7lnjz6LrW+NpuGuNp+GuNZ6Gu9aoW9OzxtNw1xpPw11rPA13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v6N3pTx1R+9KieqG3qX6z+/oXSlV3dG7Uq76Re9p+0VcqgVdtqMQQrbTRoi4VA+6bPn9+83n/z2vlK7u6F0rX13rXStfXetdK19d610rX13qXaoT/Y7etfLVN72n7HVcqhddtvTOG6c8clyqGX3PV/Wt9/RT2KW60e/oXStfXetdK19d610rX13rXSpfyQGG7f+znepdKl9d612qJ/2O3qXy1Q29S+WrG3qXylc39KoxvUvlq+965fRvNpbqTN9/p8f9SM65uKVa07/nKwmn3/8u1Zt+R+9an19d6l2qO/2O3rU+v7rWu1a+0uMokrZTvWvlq2u9akzvWvnqWu9S+eqG3qXy1Q29a31+da13rc+vvustZ3qX6lPf9b7vg/k0byzVqP5Lvsqn3w8u1al+R++q3w/29Koxvat+P9jTu1a+quHQ2067CJZqV7+jd618da13rXx1pVeX6li/o3et7wev9a71+dW13rU+v/qut57q1bX0HkcJWzrVu2q+Cls+1bvq31/19K76/WBP76rfD/b0rvr9YEfvUr3r+4+Mh94YTvUula9u6F0qX93Qu1S+uqFXjeldKl/d0LtUvrqhd6l89Yvedqp3qXwVwnEfDHqeN5bNV3r2/aAu1cV+R++q3w/29K76/WBP76rfD/b06lLzOeuht8RTvWvlq2u9a+Wra71r5atrvWvlq2u9S+Wra71L9bPf0bvW51ff9NbtVO9an1/l933wtCNXl2pp/yVf1dN8tVRP+x29y34/2NG77PeDHb3Lfj/Y0btUvorbMZ+jnH4+uVRj+w29S3W239G7VL66oXepfHVD71L56oZeNaZ3qXz1i97T748W629/540YTu+Di/W3X+td9e+venpX/X6wo3ex/vZrvWvlK03vf1tP9a6Vr671rpWvrvWqMb1r5atrvUvlqxt6l8pX3/WePrtZ1+pvj6pvvac8zlr97bHm499upzzOWv3tN/Sula+u9a6Vr671rpWvrvWqMb1r5atrvWvlq7de3U4/n1yrvz3W9NZ7+vnkWv3tUY/PY1VOP99Yq7/9Wu9a/e039C72+dWl3sU+v7rUu1S+0nD82xpP/95srf72G3qXylc39C6Vr27oXSpf3dC7VL66oXepfHWtd63+9u969fTv29fqb9fwvg+e9uXqWv3t3/NVOv28fa3+9ht61Zjexb4fvNS72PeDl3rXylf5+HuVPTme6l0rX13rXStfXepdq7/9ht618tW13qXy1Q29a31+da1XV9VbT/8+Z63+dn3/23rel7tWf/v3fNVOvx9cq7/9ht5lvx/s6F32+8FTvWmt/vYbepfKV2k7npeapJ7qXSpf3dC7VL66oVeN6V0qX93Qu1S+uqF3qXx1Q+9S+eq73pBO9S6Vr/Zf36H3tC83rdXf/i1fpRhP9a7691c9vat+P9jTu+r3gz29akzvWvkqHc9LTamd6l0rX13rXStfXetdK19d610rX13qXau//YbetT6/uta71udX3/TmfKp3rc+v9H0fPO3LTWv1t3/PV0VP9a7691c9vat+P9jTu+r3gz29q34/2NO7Vr5qx1Hydvb3z2mt/vYbetfKV9d618pX13rXylfXetWY3rU+v7rWu9bnV9/1llO9a31+1Y77YJbT+9Fi/e3vfJXlNF8t1t9+qXex/vZrvat+P9jTu+r3gz29S+WrHN/z+fT5sGmt/vYbepfKVzf0LpWvbuhdKl/d0LtUvrqhd6l8da13rf7273pPn9+dVutvf+eN0+f/ptX62y/1rvr3Vz29akzvqt8P9vSula9KOPRWOdW7Vr661rtWvrrWu1a+utS7Vn/7Db1L5asbepfKV7/oPeVx1upvz+X9fcppv3daq7+9yJE3Sjjlcdbqb7+hd6l8dUPvUvnqht6l8tUNvUvlq2u9a/W339C7VL76Re/p55Nr9bcXOfJVOe3LTWv1t+eyvfWefr6xVn/7Db1rfT94rXexz68u9S72+dWl3rXyVTqeP1jy6d+brdXffq13rf72G3rXylfXetfKV9d6l8pXN/SqMb1rfX71TW85/fv2tfrbS3rfB0/7ctNa/e3f81U5/bx9rf72G3oX+37wSu9a/e039C72/eCl3rXyVTuel1q3079vX6u//YZeNaZ3rXx1rXetfHWtd63vB6/1rvX51bXetT6/+qZXzv4+J6/V316avvXWU72r5qsq7VTvYn9/dal31e8He3rVmN5Vvx/s6V0qX9V4PC+1ajrVu1S+uqF3qXx1Q+9S+epa71r97Tf0LpWvbuhdKl/d0LtUvvquN4VTvbqW3vd98LQvN6/V3/49X+XtVO+qf3/V07vq94M9vat+P9jTu+r3gx29a/W313L827XmU71r5atrvWvlq2u9a+Wra71qTO9S+eqG3rU+v7rWu9bnV9/0tniqd63Pr8pxH2zbed5YNV+17fT7wbX622/oXfX7wZ7eVb8f7Old9fvBnl5dSW+T43mpLZRTvUvlqxt6l8pXN/Qula9u6F0qX93Qu1S+uta7Vn/7Db1L5avveqOe6l0qXzU5/u2mp/ejxfrbv+UrPc1Xi/W3X+td9fvBnt5Vvx/s6V31+8Ge3rXyVXrP59Pnw+a1+tuv9a7V335D71r56lrvWvnqWu9S+eqGXjWmd63Pr77pPX1+d16tv/2dN06f/5tX62+/1Lvq31/19C77/eC53tX62y/1TpSv6pY/6w3x0Bti/eXvn09evLVXOef+P9/DXNrbnInC2PPmTJTcnjdH3Zy+ORNlwufNmShgDDZHjnS9/892as5EaeRxc2aqzh5tTnt9bxVCqqfmLLWtdHtxT0HPv5ecqWf7jl499J5/7j1Tz/YNvfrWe/65ykw927/3++3onehzhht66zGvkpx+7zxTz/YdvcfySuH0HjpTz/a13hTeevWUS52pZ/v3fr8dvY9/zlDfz96IteVf9B6nCshTReSpFHmqhDxVRp6qIE9VkadqxFM93x5861TI2d6Qs70hZ3tDzvaGnO0NOdsbcrY35GxvxNleNuJsLxtxtpeNONvLRpztZSPO9rIRZ3vZiLO9bMTZXjbibC8bcrYLcrYLcrYLcrYLcrYLcrYLcrYLcrYLcrYLcrYLcrYH5GwPyNkekLM9IGd7QM72gJztATnbA3K2B+RsD8jZHpGzPSJne0TO9oic7RE52yNytkfkbI/I2R6Rsz0iZ7siZ7siZ7siZ7siZ7siZ7siZ7siZ7siZ7siZ7siZ3tCzvaEnO0JOdsTcrYn5GxPyNmekLM9IWd7Qs72hJztGTnbM3K2Z+Rsz8jZnpGzPSNne0bO9oyc7Rk52zNythfkbC/I2V6Qs70gZ3tBzvaCnO0FOdsLcrYX5GwvyNlekbMdyaUWJJdakFxqQXKpBcmlFiSXWpBcakFyqQXJpRYkl1qQXGpBcqkFyaUWJJdakFxqQXKpBcmlFiSXWpBcakVyqRXJpVYkl1qRXGrdiLO9IrnUiuRSK5JLrUgutSK51IrkUiuSS61ILrUiudSK5FIrkkutSC61IrnUiuRSK5JLrUgutSK51IrkUiuSS61ILrUiudSK5FIrkkutSC61IrnUiuRSK5JLrUgutSK51IrkUiuSS61ILrUiudSK5FIrkkutSC61IrnUiuRSK5JLrUgutSK51IrkUiuSS61ILrX+LJf6+ik/y5keP0Ue+SnhkZ8SH/kp+shPSY/8lPzITymP/JT6yE955L2fH3nv50fe+/mR935+5L2fH3nv50fe+/mR935+5L2fH3nv50fe++WR93555L1fHnnvl0fe++WR93555L1fHnnvl0fe++WR9/6fc09h244HM24xXNxEPr36daY/p55+4EwCPFMAnikCz6TAMyXgmTLwTAV4pgo8E3CON+Acb8A53oBzvAHneAPO8Qac4w04xxtwjjfgHG+8Od423hxvG2+Ot403x9vGm+Nt483xtvHmeNt4c7xtT8/xvL2+uAxZ2vvVW/rNVx8K6vQK2uwKZJtegUyvIEyvIE6vQKdXkKZXkKdXMP1Olul3sky/k8P0OzlMv5PD9Ds5TL+T/5zV++sKpt/JYfqdHKbfyWH6nRxAO/l1pgjasseZQHvzOBNoEx5nAu2240ygbXWcCbR/jjOBNspxJtCOOM4EmvrHmYBzXIFzXIFzXIFzXIFzXIFzXIFzXIFzXIFzXIFzXIFzPAHneALO8YSb42V7vlM65PJ6eUxJv72+nLy+lbz98/JWtzdzq+1McCyvF4dY3/bUUy8lvQ6y/89v7rS3OdnN6ZtT7JpT9DDnu8pv5lSz5oTtde79f6ZTc5qb0zNHnq89n8kccXP65gQ3p29OdHP65qjdVd7a25x8ao7hhHxtjuGEfG2O4YR8bY7dhHzDHLsJ+docsZuQb5hjNyHfMMduQr5hjt2EfMMcdXP65nhC/mCOJ+QP5nhC/mCOJ+QP5nhC7psTPCF/MMcT8gdzPCF/MMcT8gdz1M3pm+MJ+YM5npA/mOMJ+YM5npA/mOMJuW9O9IT8wRxPyB/M8YT8wRxPyB/MUTenb44n5A/meEL+YI4n5A/meEL+YI4n5L456gn5gzmekD+Y4wn5gzmekD+Yo25O3xxPyB/M8YT8wRxPyB/M8YT8wRxPyH1zkifkD+Z4Qv5gjifkD+Z4Qv5gjro5fXM8IX8wxxPyB3M8IX8wxxPyB3M8IffNyZ6QP5jjCfmDOZ6QP5jjCfmDOerm9M3xhPzBHE/IH8zxhPzBHE/IH8zxhNw3p3hC/mCOJ+QP5nhC/mCOJ+QP5qib0zfHE/IHczwhfzDHE/IHczwhfzDHE3LfnOoJ+YM5npA/mOMJ+YM5npA/mKNuTt8cT8gfzPGE/MEcT8gfzPGE/MEcT8h9c5on5A/meEL+YI4n5A/meEL+YI66OX1zPCF/MMcT8gdzPCF/MMcT8gdzPCF3zQmGn6l3wxxPyB/M8YT8wRxPyB/MUTenb44n5A/meEL+YI4n5A/meEL+YI4n5L45/ky9T+Z4Qv5gjifkD+Z4Qv5gjro5fXM8IX8wxxPyB3M8IX8wxxPyB3M8IffN8WfqfTLHE/IHczwhfzDHE/IHc9TN6ZvjCfmDOZ6QP5jjCfmDOZ6QP5jjCblvjj9T75M5npA/mOMJ+YM5npA/mKNuTt8cT8gfzPGE/MEcT8gfzPGE/MEcT8h9c/yZep/M8YT8wRxPyB/M8YT8wRx1c/rmeEL+YI4n5A/meEL+YI4n5C9zJJ2aYzch7/+9HOaEemaO4Wfq3TDHckKub3PaqTl2E/J+6T7M0Xhqjt2EfMMcdXP65thNyDfMsZuQ91e/zdFTc+wm5Bvm2E3IN8wxnJAvzTH8TL0b5thNyDfMsZyQL82xnJAvzVE3p2+O5YR8aY4n5A/meEL+YI4n5A/meELum2P4mXo3zPGE/MEcT8gfzPGE/MEcdXP65nhC/mCOJ+QP5nhC/mCOJ+QP5nhC7ptj+Jl6N8zxhPzBHE/IH8zxhPzBHHVz+uZ4Qv5gjifkD+Z4Qv5gjifkD+Z4Qu6bY/iZejfM8YT8wRxPyB/M8YT8wRx1c/rmeEL+YI4n5A/meEL+YI4n5A/meELumhMNP1PvhjmekD+Y4wn5gzmekD+Yo25O3xxPyB/M8YT8wRxPyB/M8YT8wRxPyH1zDD9T74Y5npA/mOMJ+YM5npA/mKNuTt8cT8gfzPGE/MEcT8gfzPGE/MEcT8h9cww/U++GOZ6QP5jjCfmDOZ6QP5ijbk7fHE/IH8zxhPzBHE/IH8zxhPzBHE/IfXMMP1PvhjmekD+Y4wn5gzmekD+Yo25O3xxPyB/M8YT8wRxPyB/M8YT8wRxPyH1zDD9T74Y5npA/mOMJ+YM5npA/mKNuTt8cT8gfzPGE/MEcT8gfzPGE/MEcT8h9cyw/U+/aHE/IH8zxhPzBHE/IH8xRN6dvjifkD+Z4Qv5gjifkD+Z4Qv5gjifkvjn+TL1P5nhC/mCOJ+QP5nhC/mCOujl9czwhfzDHE/IHczwhfzDHE/IHczwh983xZ+p9MscT8gdzPCF/MMcT8gdz1M3pm+MJ+YM5npA/mOMJ+YM5npA/mOMJuW+OP1PvkzmekD+Y4wn5gzmekD+Yo25O3xxPyB/M8YT8wRxPyB/M8YT8wRxPyH1z/Jl6n8zxhPzBHE/IH8zxhPzBHHVz9v+Z4qk5lhNyvDLHckK+NMdyQg5vc+qpOXYTsrR6ZY7dhHxpjhp+pt4Nc+wm5BvmKNycJK+jtBTDd3MOCfQ0ckMCPTPckEDf7Dck0PfvDQn0LXktAf/0qxsS6BvnhgT6Jyc3JNA/37ghYf7tjH920g0J829n/HOIbkiYfzvjn+lzLQH/5J0bEubfzvin2NyQMP92xj8R5oaE+bcz/ukqNyTMv53xTyq5IWH+7Yx/6scNCfNvZ/wTNG5ImH87459GcUPC/NsZ/2SHGxLm3874pyTckDD/dsY/ceCGhPm3M769/4aE+bczvgn/hoT5tzO+Vf6GhPm3M76h/YaE+bczvu38hoT5tzO+OfyGhPm3M76F+4aE+bczvtH6hoT5tzO+HfqGhPm3M75p+YaE+bczvrX4hoT5tzO+AfiGhPm3M75N94aE+bczvpn2hoT5tzO+5fWGhPm3M74x9YaE+bczvn30hoT5tzO+yfOGhPm3M74V84aE+bczvmHyhoT5tzO+rfGGhPm3M7758IaE+bczvkXwhoT5tzO+ke+GhPm3M77d7oaE+bczvinuhoT5tzO+de27BL2oahERff3bEr+9eDv7l+vrH5YtyPsYp/+wbun1YtXw/cWHkTNlBLSRMyUVtJEz5SW0kTOlNrSRM2VHsJEJ3z43jZEz5Wi0kTOlebSRM90p0EaqGznGSL/ZDDLSbzaDjPSbzSAj/WYzyEi/2YwxcqouUrSRfrMZZKTfbAYZ6TebQUaqGznGSL/ZDDLSbzaDjPSbzSAj/WYzyEi/2YwxcqoeZ7SRfrMZZKTfbAYZ6TebQUaqGznGSL/ZDDLSbzaDjPSbzSAj/WYzyEi/2YwxcqoOfLSRfrMZZKTfbAYZ6TebQUaqGznGSL/ZDDLSbzaDjPSbzSAjjdxsDr1GLiAvvVM9jeNabzr+e5ZSHn2jTPVMELSRa90T/qKRa90T/qKR6kaOMXKte8JfNHKte8JfNHKte8JfNHKte8JfNHKtC8jfM3KqJxmhjfSbzSAj/WYzyEi/2QwyUt3IMUb6zWaQkX6zGWSk32wGGek3m0FG+s1mjJFTPQUObaTfbAYZ6TebQUb6zWaQkepGjjHSbzaDjPSbzSAj/WYzyEi/2Qwy0m82Y4yc6gmaaCP9ZjPISL/ZDDLSbzaDjFQ3coyRfrMZZKTfbAYZ6TebQUb6zWaQkX6zGWPkVE8fRhvpN5tBRhq52Rx6jVxADr26kt6wHSRj2NKp3qXi/A29S6XuG3qXCsc39C6VYW/oXSpqXuud6onXI/QuFdxu6F0qX93Qu1S+uqFXjek1lq/Weub1Db3G8tVaT5C+oddWvsprPY/5hl5b+Sqv9XTjG3pt5au8qTG9tvJVXuvJuzf02spXea3n2N7QayxfrfVU2Bt6jeWrtZ6xekOvsXy11hNLb+g1lq/Wev7nDb3G8tVaT9O8oddYvlrr2ZQ39BrLV2s96fGGXmP5aq3nJt7QayxfrfUUwht6jeWrtZ7pd0OvsXy11hPybug1lq/Wet7cDb3G8tVaT2+7oddYvlrrWWg39BrLV2s9WeyGXmP5aq0ni93QayxfrfWcrht6jeWrtZ56dUOvsXy11jOkbug1lq/WeiLTDb3G8tVazze6oddYvlrraUE39BrLV2s9e+eGXmP5aq0n2dzQayxfrfVcmBt6jeWrtZ6yckOvsXy11oMNwvsoIYZTvWvto2u9a82rGg+9NZ/pXas7/YbetebVtd617oPXete6D17r1Wn1HhLmXamHBPzWKOWQUNqZBH7V7LUE+ns/y6t+s+1f7J9KoL+db0jA3+iv/0PCX9KvJcw/kfhVh9cS8GnzWgI9QH6fSOF0O+M7Bm9ImGkvdCTQY94NCfQPQ25IoG/nGxLo2/k6I+Fb9S4lFHxR3g0J9O18Q8JM27kjAb+dNR4S8rkE/Ha+loDfztcS8Nv5WgJ+O19LwG/nawnzb2d8zdoNCfNvZ3wZ2g0J03+mWvCVZTckzHR37kiY6e7ckTDT3bkjYfq7c8E3el1LwJd03ZAw/3bGV2ndkDD/dsYXXt2QMP92xtdS3ZAw/3bGl0fdkDD/dsZXPN2QMP92xhcx3ZAw/3bG1yXdkDD/dsaXGt2QMP92xlcP3ZAw/3bGFwTdkDD/dsbX+NyQMP92xpft3JCwFv97xZeVxfpVrvWuxdNd6l2sX+Va71o83bXetXi6VA+9OZ7qXYunu9ZLX6mj9a7Fs1/rXYtnv9a7Vr661rtWvrrWu1a+utS7WL/Ktd618tW1XmP5Ki+Wr959Bd/+6e961ZjexfLVpd7F8tWl3sXy1aXexfLVpd7F8tWV3sX6oK71LpavLvUulq8u9RrLVxP3Qf03vcbyVTGWr4qxfFWM5St+c9pYvfyatcF6jeWraixf4Tv3RutVY3qN5atqLF/x2xoH6zWWr/g9kGP18ksjB+s1lq/wdZSj9RrLV/iiy7H97QXfijla71r56lrvWvnqWu9a+epar63nxVR87efv6W3bobelU71r5atrvWvlq2u9a+Wra71qTO9a+epa71r56lrvWvnqWu9a+epa71r56lIvvrh1cJ7Et7yO1mvreXwV3x87Wq8a02vr86uKr7EdrdfW51cVX5A7Wq+xz6/w1buj9RrLV/hS39F6jeUrfF3waL3G8hW+iHi0XmP5Cl9xPFqvsXyFL08erddYvsLXMo/Wayxf4QufR+s1lq/wVdKj9RrLV/iS6tF6jeUrfP31aL3G8hW+WHu0XmP5Sv98/+Z0/BFBCduF3lzSy528fzl5obbW4+G4tYV48WrJTV8nyd+cj2+1ZSG1JRxlbkXjmdq6kloJF2qbJbUDer1nUium1KoptcmU2pX27bXapfbtpVpT+zaZ2rfZ1L7NpvbtgI7nmdTGhdTW7fVAJ9m/yj1TqyupfZ9kH0hnalfKUtdqV8pS+zeZb7XyTe1/+q9+pdw11pmVMtpYZ1bKc0OdKStlv7HOrJQTxzqzUqYc68xS+XOoM+rOdJxZKtcOdcYzcM8Zz8A9ZzwD95zxDNxxpnoG7jnjGbjnjGfgnjOegXvOqDvTccYzcM8Zz8A9Z4xm4JRfxqSqZ74YTcCXvhjNv1e+NKPp99IXo9n30hejyffSF6O599IXdV9OfTGaeS99MZp4L33xvHvui+fdc18875750jbPu+e+eN4998Xz7rkvJvLuoVYN/WVx25bKppdql0qcl2qXypGXapdKh5dql8p8V2plqSR3qXapfHapdqnUdanWErfUBvT2z6TWVJYSU1lKTGUpMZWlxFSWCqayVDCVpYKpLBVMZakBHf0zqTWVpYKpLBVMZalgKksFU1kqmspS0VSWiqayVDSVpQb08c+k1lSWiqayVDSVpaKpLBVNZSk1laXUVJZSU1lKTWUpVVNqTWWppZ6rcK3WVJZa6rkK12pNZamlnqtwrdZUlkqmslQylaWWembGtVpTWWqpZ2ZcqzWVpZZ6Zsa1WlNZaqlnZlyrNZWllnpmxrVaU1lqrWdmXKo1laXWembGpVpTWWqtZ1tcqjWVpdZ6BsWlWlNZaq0nIlyqVVNq2Rso1tfDx6tK+eXVhwL2VtG8HQpKPlfA3hQ3FMDb1+8oYE/0OwrYN947Cth75o4C9u64o4B927yjgH2DvKOAvZPvKJh+J8Obpm8ogHdC31Ew/U6G9yzfUTD9ToZ3F2s7FCS5vM8Fed2HJMR2vLroWy58gY+WC9/2fbmHAvi2v1JQN3gba2qvz0BqLtvVf3LHi2P+/i/Ht1r2Vhqtlr3BRqtlb7vRatmbcbRa9mIcrZa9F0erZe/Q0WrZt+vRatk38cFq4X2oo9WaylLwPtTRak1lKXgf6mi1prIUvA+11Neraw1y8erPT4TYtbKT1G9pzfrSmvN2ppWdo8ZqZaeooVrhPaj/Veu3z7e/aWUnqLFa2flprFZ2ehqrVQ1pZSensVoXyk2XWtfMTeda18xN51rXzE2nWuGdp2O1GspN8L7TsVoN5SZ41+lYrYZyE7zn9Le0lvDCVUqUM60L5aZLrQvlpkutC+WmK63wftOxWhfKTZdaF8pNl1oXyk2XWtWQ1oVy06VWQ7kJ3mg6Vquh3ARvMx2qFd5lOlarodwE7zEdq9VQboJ3mI7Vaig3wftLx2o1lJvg3aVjtRrKTfDe0rFaDeUmeGfpWK2GchO8r3SsVkO5Cd5VOlarodwE7ykdq9VQboJ3lI7Vaig3FUO5Cd7FOlarGtJqKDcVQ7kJ3q87Vquh3ATv7B2qFd7uO1arodwEbwweq9VQboK3EI/Vaig3wZuNx2o1lJvgbcljtRrKTfAG5rFaDeUmeKvzWK2GchO8KXqsVkO5Cd4RPVarodzUVspNx6lLDmdaV8pNn7UKvE98rNaVctOV1pVy05XWlXLTlVY1pHWl3HSldaXcdKV1pdx0pXXaLPFSAG/JvqPg6f2Qy6Gg6JWCUmN+/SfUYr54teSmr5PkVk7+i3u8Hfkn1ZZQj5NoPFObVlIr4UJtNqW2mFJbLal9vEv376oNptSutG+v1S61by/Vmtq3wdS+Dab2bbC1b5sltY+36/6k2rq9KiylhnqmdqUsVd8nqWdPnJC4Upa6VrtSlqoxvNV+/5bxP/1Xr+5Mx5mVMtpYZ1bKc2OdWSn7jXVmpZw41pmVMuVQZ3Sp/DnUmaWy6lBnlsq1Q53xDNxzRt2ZjjOegXvOeAbuOeMZuOeMZ+CeM56BO84kz8A9ZzwD95zxDNxzxjNwzxm16czF0+UlGU3Al74Yzb+XvhhNv5e+GM2+l74YTb5XvmSjuffSF6Op99IXo5n30hejiffSF3VfTn3xvHvui+fdc18875774nn33BfPu6e+FBN591C7VIq9+mytLJVNL9UulTgv1aoptUulw0u1S2W+S7VLJblLtUvls0u1S6WuK7XVFLdUTWWpaipLVVNZ6vEW+L+r1lSWqqayVDWVpaqpLFVNZalmKks1U1mqmcpSzVSWerwZ/u+qNZWlmqks1UxlqWYqSzVLWSpslrJU2CxlqbBZylJhs5Slwqam1FrKUmGzlKXCZilLhc1SlgqbqSwlprKUmMpSYipLLfVchWu1akqtqSy11HMVrtWaylJLPVfhWq2pLBVMZamlnplxrdZUllrqmRnXatWUWlNZaqlnZlyrNZWllnpmxrVaU1nK1DMzwlrPzLhUaypLrfXMjEu1akqtqSy11vMqLtWaylJrPVfiSu1aT0S4VGsqXcBb6GOML7WxyC+vPhSwt4puhwINHQXsTXFHAXv631HAnuh3FLBvvDcUwFvH7yhg7447Cti3zTsK2DfIOwrYO/mOgul3Mrxp+o6C6XcyvL35joLpdzK8EfmOAvhOft/nNMvVfS628jqJSjteXd4XOngl8XC58G3fl3sogG/7GwrYmyblY0Zk3a7+k2uvD0xi/v4vf/svjr2VRqtlb7DBauF9qKPVsjfjaLXsxThaLXsvjlbL3qGj1bJv16PVsm/io9WaylLwPtTRak1lKXgf6mi1prIUvA91tFp2lipJX2qrXL364okQAd6G+ltas7605rydaWXnqLFa2SlqrFZ2hvqvWks+08pOUGO1svPTUK3wBtSxWtnZaaxWdnIaq3Wh3HSpVQ1pXTM3nWtdMzedazWUm+CNp2O12slNEd52OlarndwU4U2nY7UulJtKeAMccqZVDWldKDddal0oN11qXSg3XWpdKDddal0oN11phTebjtW6UG661LpQbrrUaig3wRtNx2o1lJvgbaZjtRrKTfAm07FaDeUmeIvpWK2GchO8wXSsVkO5Cd5eOlarodwEby4dq9VQboK3lo7Vaig3wRtLx2o1lJvgbaVjtRrKTfCm0rFaDeUmeEvpWK2GchO8oXSsVkO5Cd7FOlarodykhnKTGspN8H7dsVoN5SZ4Z+9YrYZyE7wHeKxWQ7kJ3i08Vquh3ATvKx6r1VBugncgj9VqKDfBe5XHajWUm+BdzWO1GspN8P7nsVoN5SZ4TfRYrYZyE7xNeqzWlXLTceqSw5nWlXLTldaVctOV1pVy05XWlXLThVZ4k/hYrSvlpiutK+WmK60r5aYrrWpI67RZ4lAwbUJ4KXi+Hfl4UlLO+UrB/m8cj32REMPl63N7Kd7/Zzn5b+75fuQf1VtCPc6i8UxvWEuvhAu90ZheNaY3GdNbjelttvS2tfbvtd7F9u+lXmP7txnbv8/37f5lvcb27/O9uz+qt26vykepoZ7pLWvpfZ+lnj2jIba18tW13rXyVY3hrff7d3P/4b993dbKYmO9WSu3jfVmrYw31pu18uBYb9S96XqzVs4c681imXSoN4vl16HeLJZ1h3rjubjrjXgu7nvjubjvjefivjeei/veqHvT9cZzcd8bs7n44mnKKmZT8aUzZjPxpTNmE/GVM8FsHr50xmwavnTGSBY+9C6Wb6+yx/N93n9Z72I59FKvrb8D0LBYYrzUu1gOvNS7WLq70hsXy2yXehdLYpd6F8tXl3qN5avne7//sl5j+Soay1fRWL6KxvJVNJav1Fi+UmP5So3lKzWWr57vB//Leo3lKzWWr9RYvlJj+UqN5atkLF8lY/kqGctXyVi+er5H/C/rNZavkrF8lYzlq2QsX2VjeSMbyxvP9zP/ll4pUl7/uBQtv7z+0MDeMVJKfmto+VwDe2/c08DeBfc0sOf7PQ3sO/EtDYW9d+5pYO+SXzTUTc41sO+j9zSw75hSRd8aop5rgO/pWxrg++GWBvh+uKUBvh/uaKD3FYu8c7rE8/1A7yC+pQH+eeUtDfDPIG9pYO+HexrgnxXe0gC/x9US3xrSdvH6ko9e8ZL1rVjbWzB9qQ8XTE8AwwXT48JowfAu5h8QDL+ojhcMv9WOF0y/Ag8XrNYEwz8EHy/YWtKCVzL/gGBrSQteyjxccII3Lf+AYGNJK8E7kX9AsLGklTa1JthY0krwnuEfEGwsaSV4I/APCLaWtODdvT8g2FrSgrfs/oBga0kL3of7A4KtJS14c+0PCLaWtOA9sz8g2FrSgrfC/oBga0kL3uH6A4KtJS14i+sPCLaWtOA9rj8g2FrSgje5/oBga0kL3uX6A4KtJS14m+sPCLaWtOB9rj8g2FrSgje6/oBga0kL3un6A4KtJS14q+sPCLaWtOC9rj8g2FrSgje7/oBga0kL3u36A4KtJS14u+sPCLaWtOD9rj8g2FrSgje8/oBga0kL3vH6A4KtJS14y+sPCLaWtOA9rz8g2FrSgjfb/oBga0krW0ta2VrSorcXjxdsLWnRe5HHC7aWtOiNy+MFW0ta9C7n8YKtJS16S/R4wdaSFr5/erhga0mrWEta+Dry4YKtJS180flowfBW9B8QbC1pwfvWf0CwtaQFb3L/AcHWkpa1jvhkrSM+WeuIT9Y64pO1jvhkrSM+WeuIT9Y64pO1jvhkrSM+WeuIT9Y64pO1jvhkrSM+W+uIz9Y64rO1jvhsrSM+b2pNsLGkla11xGdrHfHZWkd8ttYRn611xGdrHfHZWkd8ttYRn611xGdrHfHZWkd8ttYRn611xGdrHfHZWkd8ttYRn611xGdrHfHZWkd8ttYRn611xGdrHfHZWkd8ttYRn611xGdrHfHZWkd8ttYRn611xGdrHfHZWkd8ttYRn611xGdrHfHZWkd8ttYRn611xGdrHfHZWkd8ttYRn611xGdrHfHZWkd8ttYRn611xGdrHfHZWkd8ttYRn611xGdrHfHZWkd8ttYRn611xGdrHfHZWkd8ttYRn611xGdrHfHZWkd8ttYRn611xGdrHfHZWkd8ttYRn611xGdrHfHZWkd8ttYRn611xGdrHfHZWkd8ttYRn611xGdrHfHZWkd8ttYRn611xGdrHfHZWkd8ttYRn611xGdrHfHZWkd8ttYRn611xGdrHfHZWkd8ttYRn611xGdrHfHZWkd8ttYRn611xGdrHfHFWkd8sdYRX6x1xBdrHfFlU2uCjSWtYq0jvljriC/WOuKLtY74Yq0jvljriC/WOuKLtY74Yq0jvljriC/WOuKLtY74Yq0jvljriC/WOuKLtY74Yq0jvljriC/WOuKLtY74Yq0jvljriC/WOuKLtY74Yq0jvljriC/WOuKLtY74Yq0jvljriC/WOuKLtY74Yq0jvljriC/WOuKLtY74Yq0jvljriC/WOuKLtY74Yq0jvljriC/WOuKLtY74Yq0jvljriC/WOuKLtY74Yq0jvljriC/WOuKLtY74Yq0jvljriC/WOuKLtY74Yq0jvljriC/WOuKLtY74Yq0jvljriC/WOuKLtY74Yq0jvljriC/WOuKLtY74Yq0jvljriC/WOuKLtY74Yq0jvljriC/WOuKLtY74Yq0jvljriC/WOuKLtY74Yq0jvljriC/WOuKLtY74Yq0jvljriC/WOuKLtY74Yq0jvljriC/WOuKLtY74Yq0jvljriK/WOuKrtY74aq0jvlrriK+bWhNsLGlVax3x1VpHfLXWEV+tdcRXax3x1VpHfLXWEV+tdcRXax3x1VpHfLXWEV+tdcRXax3x1VpHfLXWEV+tdcRXax3x1VpHfLXWEV+tdcRXax3x1VpHfLXWEV+tdcRXax3x1VpHfLXWEV+tdcRXax3x1VpHfLXWEV+tdcRXax3x1VpHfLXWEV+tdcRXax3x1VpHfLXWEV+tdcRXax3x1VpHfLXWEV+tdcRXax3x1VpHfLXWEV+tdcRXax3x1VpHfLXWEV+tdcRXax3x1VpHfLXWEV+tdcRXax3x1VpHfLXWEV+tdcRXax3x1VpHfLXWEV+tdcRXax3x1VpHfLXWEV+tdcRXax3x1VpHfLXWEV+tdcRXax3x1VpHfLXWEV+tdcRXax3x1VpHfLXWEV+tdcRXax3x1VpHfLXWEV+tdcRXax3x1VpHfLXWEV+tdcRXax3x1VpHfLXWEV+tdcRXax3x1VpHfLPWEd+sdcQ3ax3xzVpHfNvUmmBjSatZ64hv1jrim7WO+GatI75Z64hv1jrim7WO+GatI75Z64hv1jrim7WO+GatI75Z64hv1jrim7WO+GatI75Z64hv1jrim7WO+GatI75Z64hv1jrim7WO+GatI75Z64hv1jrim7WO+GatI75Z64hv1jrim7WO+GatI75Z64hv1jrim7WO+GatI75Z64hv1jrim7WO+GatI75Z64hv1jrim7WO+GatI75Z64hv1jrim7WO+GatI75Z64hv1jrim7WO+GatI75Z64hv1jrim7WO+GatI75Z64hv1jrim7WO+GatI75Z64hv1jrim7WO+GatI75Z64hv1jrim7WO+GatI75Z64hv1jrim7WO+GatI75Z64hv1jrim7WO+GatI75Z64hv1jrim7WO+GatI75Z64hv1jrim7WO+GatI75Z64hv1jrim7WO+GatI75Z64hv1jrim7WO+GatI75Z64hv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","file_map":{"2":{"source":"// docs:start:eq-trait\ntrait Eq {\n fn eq(self, other: Self) -> bool;\n}\n// docs:end:eq-trait\n\nimpl Eq for Field { fn eq(self, other: Field) -> bool { self == other } }\n\nimpl Eq for u1 { fn eq(self, other: u1) -> bool { self == other } }\nimpl Eq for u8 { fn eq(self, other: u8) -> bool { self == other } }\nimpl Eq for u32 { fn eq(self, other: u32) -> bool { self == other } }\nimpl Eq for u64 { fn eq(self, other: u64) -> bool { self == other } }\n\nimpl Eq for i8 { fn eq(self, other: i8) -> bool { self == other } }\nimpl Eq for i32 { fn eq(self, other: i32) -> bool { self == other } }\nimpl Eq for i64 { fn eq(self, other: i64) -> bool { self == other } }\n\nimpl Eq for () { fn eq(_self: Self, _other: ()) -> bool { true } }\nimpl Eq for bool { fn eq(self, other: bool) -> bool { self == other } }\n\nimpl<T, N> Eq for [T; N] where T: Eq {\n fn eq(self, other: [T; N]) -> bool {\n let mut result = true;\n for i in 0 .. self.len() {\n result &= self[i].eq(other[i]);\n }\n result\n }\n}\n\nimpl<N> Eq for str<N> {\n fn eq(self, other: str<N>) -> bool {\n let self_bytes = self.as_bytes();\n let other_bytes = other.as_bytes();\n self_bytes == other_bytes\n }\n}\n\nimpl<A, B> Eq for (A, B) where A: Eq, B: Eq {\n fn eq(self, other: (A, B)) -> bool {\n self.0.eq(other.0) & self.1.eq(other.1)\n }\n}\n\nimpl<A, B, C> Eq for (A, B, C) where A: Eq, B: Eq, C: Eq {\n fn eq(self, other: (A, B, C)) -> bool {\n self.0.eq(other.0) & self.1.eq(other.1) & self.2.eq(other.2)\n }\n}\n\nimpl<A, B, C, D> Eq for (A, B, C, D) where A: Eq, B: Eq, C: Eq, D: Eq {\n fn eq(self, other: (A, B, C, D)) -> bool {\n self.0.eq(other.0) & self.1.eq(other.1) & self.2.eq(other.2) & self.3.eq(other.3)\n }\n}\n\nimpl<A, B, C, D, E> Eq for (A, B, C, D, E) where A: Eq, B: Eq, C: Eq, D: Eq, E: Eq {\n fn eq(self, other: (A, B, C, D, E)) -> bool {\n self.0.eq(other.0) & self.1.eq(other.1) & self.2.eq(other.2) & self.3.eq(other.3) & self.4.eq(other.4)\n }\n}\n\nimpl Eq for Ordering {\n fn eq(self, other: Ordering) -> bool {\n self.result == other.result\n }\n}\n\n// Noir doesn't have enums yet so we emulate (Lt | Eq | Gt) with a struct\n// that has 3 public functions for constructing the struct.\nstruct Ordering {\n result: Field,\n}\n\nimpl Ordering {\n // Implementation note: 0, 1, and 2 for Lt, Eq, and Gt are built\n // into the compiler, do not change these without also updating\n // the compiler itself!\n pub fn less() -> Ordering {\n Ordering { result: 0 }\n }\n\n pub fn equal() -> Ordering {\n Ordering { result: 1 }\n }\n\n pub fn greater() -> Ordering {\n Ordering { result: 2 }\n }\n}\n\n// docs:start:ord-trait\ntrait Ord {\n fn cmp(self, other: Self) -> Ordering;\n}\n// docs:end:ord-trait\n\n// Note: Field deliberately does not implement Ord\n\nimpl Ord for u8 {\n fn cmp(self, other: u8) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for u32 {\n fn cmp(self, other: u32) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for u64 {\n fn cmp(self, other: u64) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i8 {\n fn cmp(self, other: i8) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i32 {\n fn cmp(self, other: i32) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i64 {\n fn cmp(self, other: i64) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for () {\n fn cmp(_self: Self, _other: ()) -> Ordering {\n Ordering::equal()\n }\n}\n\nimpl Ord for bool {\n fn cmp(self, other: bool) -> Ordering {\n if self {\n if other {\n Ordering::equal()\n } else {\n Ordering::greater()\n }\n } else {\n if other {\n Ordering::less()\n } else {\n Ordering::equal()\n }\n }\n }\n}\n\nimpl<T, N> Ord for [T; N] where T: Ord {\n // The first non-equal element of both arrays determines\n // the ordering for the whole array.\n fn cmp(self, other: [T; N]) -> Ordering {\n let mut result = Ordering::equal();\n for i in 0 .. self.len() {\n if result == Ordering::equal() {\n let result_i = self[i].cmp(other[i]);\n\n if result_i == Ordering::less() {\n result = result_i;\n } else if result_i == Ordering::greater() {\n result = result_i;\n }\n }\n }\n result\n }\n}\n\nimpl<A, B> Ord for (A, B) where A: Ord, B: Ord {\n fn cmp(self, other: (A, B)) -> Ordering {\n let result = self.0.cmp(other.0);\n\n if result != Ordering::equal() {\n result\n } else {\n self.1.cmp(other.1)\n }\n }\n}\n\nimpl<A, B, C> Ord for (A, B, C) where A: Ord, B: Ord, C: Ord {\n fn cmp(self, other: (A, B, C)) -> Ordering {\n let mut result = self.0.cmp(other.0);\n\n if result == Ordering::equal() {\n result = self.1.cmp(other.1);\n }\n\n if result == Ordering::equal() {\n result = self.2.cmp(other.2);\n }\n\n result\n }\n}\n\nimpl<A, B, C, D> Ord for (A, B, C, D) where A: Ord, B: Ord, C: Ord, D: Ord {\n fn cmp(self, other: (A, B, C, D)) -> Ordering {\n let mut result = self.0.cmp(other.0);\n\n if result == Ordering::equal() {\n result = self.1.cmp(other.1);\n }\n\n if result == Ordering::equal() {\n result = self.2.cmp(other.2);\n }\n\n if result == Ordering::equal() {\n result = self.3.cmp(other.3);\n }\n\n result\n }\n}\n\nimpl<A, B, C, D, E> Ord for (A, B, C, D, E) where A: Ord, B: Ord, C: Ord, D: Ord, E: Ord {\n fn cmp(self, other: (A, B, C, D, E)) -> Ordering {\n let mut result = self.0.cmp(other.0);\n\n if result == Ordering::equal() {\n result = self.1.cmp(other.1);\n }\n\n if result == Ordering::equal() {\n result = self.2.cmp(other.2);\n }\n\n if result == Ordering::equal() {\n result = self.3.cmp(other.3);\n }\n\n if result == Ordering::equal() {\n result = self.4.cmp(other.4);\n }\n\n result\n }\n}\n","path":"std/cmp.nr"},"3":{"source":"struct BoundedVec<T, MaxLen> {\n storage: [T; MaxLen],\n // TODO: change this to return a u64 as Noir now\n // uses u64 for indexing\n len: Field,\n empty_value: T,\n}\n\nimpl<T, MaxLen> BoundedVec<T, MaxLen> {\n pub fn new(initial_value: T) -> Self {\n BoundedVec { storage: [initial_value; MaxLen], len: 0, empty_value: initial_value }\n }\n\n pub fn get(mut self: Self, index: Field) -> T {\n assert(index as u64 < self.len as u64);\n self.storage[index]\n }\n\n pub fn get_unchecked(mut self: Self, index: Field) -> T {\n self.storage[index]\n }\n\n pub fn push(&mut self, elem: T) {\n assert(self.len as u64 < MaxLen as u64, \"push out of bounds\");\n\n self.storage[self.len] = elem;\n self.len += 1;\n }\n\n pub fn len(self) -> Field {\n self.len\n }\n\n pub fn max_len(_self: BoundedVec<T, MaxLen>) -> Field {\n MaxLen\n }\n\n // This is a intermediate method, while we don't have an\n // .extend method\n pub fn storage(self) -> [T; MaxLen] {\n self.storage\n }\n\n pub fn extend_from_array<Len>(&mut self, array: [T; Len]) {\n let new_len = self.len + array.len();\n assert(new_len as u64 <= MaxLen as u64, \"extend_from_array out of bounds\");\n for i in 0..array.len() {\n self.storage[self.len + i] = array[i];\n }\n self.len = new_len;\n }\n\n pub fn extend_from_bounded_vec<Len>(&mut self, vec: BoundedVec<T, Len>) {\n let append_len = vec.len();\n let new_len = self.len + append_len;\n assert(new_len as u64 <= MaxLen as u64, \"extend_from_bounded_vec out of bounds\");\n\n let mut exceeded_len = false;\n for i in 0..Len {\n exceeded_len |= i == append_len;\n if !exceeded_len {\n self.storage[self.len + (i as Field)] = vec.get_unchecked(i as Field);\n }\n }\n self.len = new_len;\n }\n\n pub fn pop(&mut self) -> T {\n assert(self.len as u64 > 0);\n self.len -= 1;\n\n let elem = self.storage[self.len];\n self.storage[self.len] = self.empty_value;\n elem\n }\n\n pub fn any<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = false;\n let mut exceeded_len = false;\n for i in 0..MaxLen {\n exceeded_len |= i == self.len;\n if (!exceeded_len) {\n ret |= predicate(self.storage[i]);\n }\n }\n ret\n }\n}","path":"std/collections/bounded_vec.nr"},"19":{"source":"mod bn254;\nuse bn254::lt as bn254_lt;\n\nimpl Field {\n pub fn to_le_bits(self: Self, bit_size: u32) -> [u1] {\n crate::assert_constant(bit_size);\n self.__to_le_bits(bit_size)\n }\n \n pub fn to_be_bits(self: Self, bit_size: u32) -> [u1] {\n crate::assert_constant(bit_size);\n self.__to_be_bits(bit_size)\n }\n\n #[builtin(to_le_bits)]\n fn __to_le_bits(self, _bit_size: u32) -> [u1] {}\n \n #[builtin(to_be_bits)]\n fn __to_be_bits(self, bit_size: u32) -> [u1] {}\n\n #[builtin(apply_range_constraint)]\n fn __assert_max_bit_size(self, bit_size: u32) {}\n\n pub fn assert_max_bit_size(self: Self, bit_size: u32) {\n crate::assert_constant(bit_size);\n assert(bit_size < modulus_num_bits() as u32);\n self.__assert_max_bit_size(bit_size);\n }\n\n pub fn to_le_bytes(self: Self, byte_size: u32) -> [u8] {\n self.to_le_radix(256, byte_size)\n }\n\n pub fn to_be_bytes(self: Self, byte_size: u32) -> [u8] {\n self.to_be_radix(256, byte_size)\n }\n\n\n pub fn to_le_radix(self: Self, radix: u32, result_len: u32) -> [u8] {\n crate::assert_constant(radix);\n crate::assert_constant(result_len);\n self.__to_le_radix(radix, result_len)\n }\n\n pub fn to_be_radix(self: Self, radix: u32, result_len: u32) -> [u8] {\n crate::assert_constant(radix);\n crate::assert_constant(result_len);\n self.__to_be_radix(radix, result_len)\n }\n\n\n\n // decompose `_self` into a `_result_len` vector over the `_radix` basis\n // `_radix` must be less than 256\n #[builtin(to_le_radix)]\n fn __to_le_radix(self, radix: u32, result_len: u32) -> [u8] {}\n \n #[builtin(to_be_radix)]\n fn __to_be_radix(self, radix: u32, result_len: u32) -> [u8] {}\n\n\n // Returns self to the power of the given exponent value.\n // Caution: we assume the exponent fits into 32 bits\n // using a bigger bit size impacts negatively the performance and should be done only if the exponent does not fit in 32 bits\n pub fn pow_32(self, exponent: Field) -> Field {\n let mut r: Field = 1;\n let b = exponent.to_le_bits(32);\n\n for i in 1..33 {\n r *= r;\n r = (b[32-i] as Field) * (r * self) + (1 - b[32-i] as Field) * r;\n }\n r\n }\n\n // Parity of (prime) Field element, i.e. sgn0(x mod p) = 0 if x ∈ {0, ..., p-1} is even, otherwise sgn0(x mod p) = 1.\n pub fn sgn0(self) -> u1 {\n self as u1\n }\n\n pub fn lt(self, another: Field) -> bool {\n if crate::compat::is_bn254() {\n bn254_lt(self, another)\n } else {\n lt_fallback(self, another)\n }\n }\n\n}\n\n#[builtin(modulus_num_bits)]\npub fn modulus_num_bits() -> Field {}\n\n#[builtin(modulus_be_bits)]\npub fn modulus_be_bits() -> [u1] {}\n\n#[builtin(modulus_le_bits)]\npub fn modulus_le_bits() -> [u1] {}\n\n#[builtin(modulus_be_bytes)]\npub fn modulus_be_bytes() -> [u8] {}\n\n#[builtin(modulus_le_bytes)]\npub fn modulus_le_bytes() -> [u8] {}\n// Convert a 32 byte array to a field element\npub fn bytes32_to_field(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..16 {\n high = high + (bytes32[15 - i] as Field) * v;\n low = low + (bytes32[16 + 15 - i] as Field) * v;\n v = v * 256;\n }\n // Abuse that a % p + b % p = (a + b) % p and that low < p\n low + high * v\n}\n\nfn lt_fallback(x: Field, y: Field) -> bool {\n let num_bytes = (modulus_num_bits() as u32 + 7) / 8;\n let x_bytes = x.to_le_bytes(num_bytes);\n let y_bytes = y.to_le_bytes(num_bytes);\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..num_bytes {\n if (!done) {\n let x_byte = x_bytes[num_bytes - 1 - i] as u8;\n let y_byte = y_bytes[num_bytes - 1 - i] as u8;\n let bytes_match = x_byte == y_byte;\n if !bytes_match {\n x_is_lt = x_byte < y_byte;\n done = true;\n }\n }\n }\n x_is_lt\n}\n\n","path":"std/field.nr"},"40":{"source":"use crate::ops::{Add, Sub, Mul, Div, Rem, BitOr, BitAnd, BitXor, Shl, Shr};\nuse crate::cmp::{Eq, Ord, Ordering};\n\nglobal pow64 : Field = 18446744073709551616; //2^64;\n\nstruct U128 {\n lo: Field,\n hi: Field,\n}\n\nimpl U128 {\n\n pub fn from_u64s_le(lo: u64, hi: u64) -> U128 {\n // in order to handle multiplication, we need to represent the product of two u64 without overflow\n assert(crate::field::modulus_num_bits() as u32 > 128);\n U128 {\n lo: lo as Field,\n hi: hi as Field,\n }\n }\n\n pub fn from_u64s_be(hi: u64, lo: u64) -> U128 {\n U128::from_u64s_le(lo,hi)\n }\n\n pub fn from_le_bytes(bytes: [u8; 16]) -> U128 {\n let mut lo = 0;\n let mut base = 1;\n for i in 0..8 {\n lo += (bytes[i] as Field)*base;\n base *= 256;\n }\n let mut hi = 0;\n base = 1;\n for i in 8..16 {\n hi += (bytes[i] as Field)*base;\n base *= 256;\n }\n U128 {\n lo,\n hi,\n }\n }\n\n pub fn to_be_bytes(self: Self) -> [u8; 16] {\n let lo = self.lo.to_be_bytes(8);\n let hi = self.hi.to_be_bytes(8);\n let mut bytes = [0;16];\n for i in 0..8 {\n bytes[i] = hi[i];\n bytes[i+8] = lo[i];\n }\n bytes\n }\n\n pub fn to_le_bytes(self: Self) -> [u8; 16] {\n let lo = self.lo.to_le_bytes(8);\n let hi = self.hi.to_le_bytes(8);\n let mut bytes = [0;16];\n for i in 0..8 {\n bytes[i] = lo[i];\n bytes[i+8] = hi[i];\n }\n bytes\n }\n\n pub fn from_hex<N>(hex: str<N>) -> U128 {\n let N = N as u32;\n let bytes = hex.as_bytes();\n // string must starts with \"0x\"\n assert((bytes[0] == 48) & (bytes[1] == 120), \"Invalid hexadecimal string\");\n assert(N < 35, \"Input does not fit into a U128\");\n\n let mut lo = 0;\n let mut hi = 0;\n let mut base = 1; \n if N <= 18 {\n for i in 0..N-2 {\n lo += U128::decode_ascii(bytes[N-i-1])*base;\n base = base*16;\n }\n } else {\n for i in 0..16 {\n lo += U128::decode_ascii(bytes[N-i-1])*base;\n base = base*16;\n }\n base = 1;\n for i in 17..N-1 { \n hi += U128::decode_ascii(bytes[N-i])*base;\n base = base*16;\n }\n }\n U128 {\n lo: lo as Field,\n hi: hi as Field,\n }\n }\n\n fn decode_ascii(ascii: u8) -> Field {\n if ascii < 58 {\n ascii - 48\n } else {\n if ascii < 71 {\n ascii - 55\n } else {\n ascii - 87\n }\n \n } as Field\n }\n\n unconstrained fn unconstrained_div(self: Self, b: U128) -> (U128, U128) {\n if self < b {\n (U128::from_u64s_le(0, 0), self)\n } else {\n //TODO check if this can overflow?\n let (q,r) = self.unconstrained_div(b * U128::from_u64s_le(2,0));\n let q_mul_2 = q * U128::from_u64s_le(2,0);\n if r < b {\n (q_mul_2, r)\n } else {\n (q_mul_2 + U128::from_u64s_le(1,0), r - b)\n }\n\n } \n }\n\n pub fn from_integer<T>(i: T) -> U128 {\n let f = crate::as_field(i);\n // Reject values which would overflow a u128\n f.assert_max_bit_size(128);\n let lo = f as u64 as Field;\n let hi = (f-lo) / pow64;\n U128 {\n lo,\n hi,\n }\n }\n\n pub fn to_integer<T>(self) -> T {\n crate::from_field(self.lo+self.hi*pow64)\n }\n\n fn wrapping_mul(self: Self, b: U128) -> U128 {\n let low = self.lo*b.lo;\n let lo = low as u64 as Field;\n let carry = (low - lo) / pow64;\n let high = if crate::field::modulus_num_bits() as u32 > 196 {\n (self.lo+self.hi)*(b.lo+b.hi) - low + carry\n } else {\n self.lo*b.hi + self.hi*b.lo + carry\n };\n let hi = high as u64 as Field;\n U128 {\n lo,\n hi,\n }\n }\n}\n\nimpl Add for U128 {\n fn add(self: Self, b: U128) -> U128 {\n let low = self.lo + b.lo;\n let lo = low as u64 as Field;\n let carry = (low - lo) / pow64; \n let high = self.hi + b.hi + carry;\n let hi = high as u64 as Field;\n assert(hi == high, \"attempt to add with overflow\");\n U128 {\n lo,\n hi,\n }\n }\n}\n\nimpl Sub for U128 {\n fn sub(self: Self, b: U128) -> U128 {\n let low = pow64 + self.lo - b.lo;\n let lo = low as u64 as Field;\n let borrow = (low == lo) as Field;\n let high = self.hi - b.hi - borrow;\n let hi = high as u64 as Field;\n assert(hi == high, \"attempt to subtract with overflow\");\n U128 {\n lo,\n hi,\n }\n }\n}\n\nimpl Mul for U128 {\n fn mul(self: Self, b: U128) -> U128 {\n assert(self.hi*b.hi == 0, \"attempt to multiply with overflow\");\n let low = self.lo*b.lo;\n let lo = low as u64 as Field;\n let carry = (low - lo) / pow64;\n let high = if crate::field::modulus_num_bits() as u32 > 196 {\n (self.lo+self.hi)*(b.lo+b.hi) - low + carry\n } else {\n self.lo*b.hi + self.hi*b.lo + carry\n };\n let hi = high as u64 as Field;\n assert(hi == high, \"attempt to multiply with overflow\");\n U128 {\n lo,\n hi,\n }\n }\n}\n\nimpl Div for U128 {\n fn div(self: Self, b: U128) -> U128 {\n let (q,r) = self.unconstrained_div(b);\n let a = b * q + r;\n assert_eq(self, a);\n assert(r < b);\n q\n }\n}\n\nimpl Rem for U128 {\n fn rem(self: Self, b: U128) -> U128 {\n let (q,r) = self.unconstrained_div(b);\n let a = b * q + r;\n assert_eq(self, a);\n assert(r < b);\n r\n }\n}\n\nimpl Eq for U128 {\n fn eq(self: Self, b: U128) -> bool {\n (self.lo == b.lo) & (self.hi == b.hi)\n }\n}\n\nimpl Ord for U128 {\n fn cmp(self, other: Self) -> Ordering {\n let hi_ordering = (self.hi as u64).cmp((other.hi as u64));\n let lo_ordering = (self.lo as u64).cmp((other.lo as u64));\n \n if hi_ordering == Ordering::equal() {\n lo_ordering\n } else {\n hi_ordering\n }\n }\n}\n\nimpl BitOr for U128 { \n fn bitor(self, other: U128) -> U128 {\n U128 {\n lo: ((self.lo as u64) | (other.lo as u64)) as Field,\n hi: ((self.hi as u64) | (other.hi as u64))as Field\n }\n }\n}\n\nimpl BitAnd for U128 {\n fn bitand(self, other: U128) -> U128 { \n U128 {\n lo: ((self.lo as u64) & (other.lo as u64)) as Field,\n hi: ((self.hi as u64) & (other.hi as u64)) as Field\n }\n }\n}\n\nimpl BitXor for U128 {\n fn bitxor(self, other: U128) -> U128 { \n U128 {\n lo: ((self.lo as u64) ^ (other.lo as u64)) as Field,\n hi: ((self.hi as u64) ^ (other.hi as u64)) as Field\n }\n }\n}\n\nimpl Shl for U128 { \n fn shl(self, other: U128) -> U128 { \n assert(other < U128::from_u64s_le(128,0), \"attempt to shift left with overflow\");\n let exp_bits = other.lo.to_be_bits(7);\n\n let mut r: Field = 2;\n let mut y: Field = 1;\n for i in 1..8 {\n y = (exp_bits[7-i] as Field) * (r * y) + (1 - exp_bits[7-i] as Field) * y;\n r *= r;\n }\n self.wrapping_mul(U128::from_integer(y))\n } \n}\n\nimpl Shr for U128 { \n fn shr(self, other: U128) -> U128 { \n assert(other < U128::from_u64s_le(128,0), \"attempt to shift right with overflow\");\n let exp_bits = other.lo.to_be_bits(7);\n\n let mut r: Field = 2;\n let mut y: Field = 1;\n for i in 1..8 {\n y = (exp_bits[7-i] as Field) * (r * y) + (1 - exp_bits[7-i] as Field) * y;\n r *= r;\n }\n self / U128::from_integer(y)\n } \n}\n","path":"std/uint128.nr"},"43":{"source":"global ARGS_LENGTH: Field = 16;\nglobal RETURN_VALUES_LENGTH: Field = 4;\n\n/**\n * Convention for constant array lengths are mainly divided in 2 classes:\n * - FUNCTION CALL\n * - TRANSACTION\n *\n * Agreed convention is to use MAX_XXX_PER_CALL resp. MAX_XXX_PER_TX, where XXX denotes a type of element such as\n * commitment, or nullifier, e.g.,:\n * - MAX_NEW_NULLIFIERS_PER_CALL\n * - MAX_NEW_COMMITMENTS_PER_TX\n *\n * In the kernel circuits, we accumulate elements such as commitments and the nullifiers from all functions calls in a\n * transaction. Therefore, we always must have:\n * MAX_XXX_PER_TX ≥ MAX_XXX_PER_CALL\n *\n * For instance:\n * MAX_NEW_COMMITMENTS_PER_TX ≥ MAX_NEW_COMMITMENTS_PER_CALL\n * MAX_NEW_NULLIFIERS_PER_TX ≥ MAX_NEW_NULLIFIERS_PER_CALL\n *\n */\n\n// docs:start:constants\n// \"PER CALL\" CONSTANTS\nglobal MAX_NEW_COMMITMENTS_PER_CALL: Field = 16;\nglobal MAX_NEW_NULLIFIERS_PER_CALL: Field = 16;\nglobal MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL: Field = 4;\nglobal MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL: Field = 4;\nglobal MAX_NEW_L2_TO_L1_MSGS_PER_CALL: Field = 2;\nglobal MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL: Field = 16;\nglobal MAX_PUBLIC_DATA_READS_PER_CALL: Field = 16;\nglobal MAX_READ_REQUESTS_PER_CALL: Field = 32;\nglobal MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL: Field = 1;\n\n// \"PER TRANSACTION\" CONSTANTS\nglobal MAX_NEW_COMMITMENTS_PER_TX: Field = 64;\nglobal MAX_NEW_NULLIFIERS_PER_TX: Field = 64;\nglobal MAX_PRIVATE_CALL_STACK_LENGTH_PER_TX: Field = 8;\nglobal MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX: Field = 8;\nglobal MAX_NEW_L2_TO_L1_MSGS_PER_TX: Field = 2;\nglobal MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX: Field = 16;\nglobal MAX_PUBLIC_DATA_READS_PER_TX: Field = 16;\nglobal MAX_NEW_CONTRACTS_PER_TX: Field = 1;\nglobal MAX_READ_REQUESTS_PER_TX: Field = 128;\nglobal MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_TX: Field = 4;\nglobal NUM_ENCRYPTED_LOGS_HASHES_PER_TX: Field = 1;\nglobal NUM_UNENCRYPTED_LOGS_HASHES_PER_TX: Field = 1;\n\nglobal MAX_NEW_COMMITMENTS_PER_TX_META: Field = 8;\nglobal MAX_NEW_NULLIFIERS_PER_TX_META: Field = 8;\nglobal MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX_META: Field = 2;\n// docs:end:constants\n\n// ROLLUP CONTRACT CONSTANTS - constants used only in l1-contracts\nglobal NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP: Field = 16;\n\n// TREES RELATED CONSTANTS\nglobal VK_TREE_HEIGHT: Field = 3;\nglobal FUNCTION_TREE_HEIGHT: Field = 5;\nglobal CONTRACT_TREE_HEIGHT: Field = 16;\nglobal NOTE_HASH_TREE_HEIGHT: Field = 32;\nglobal PUBLIC_DATA_TREE_HEIGHT: Field = 40;\nglobal NULLIFIER_TREE_HEIGHT: Field = 20;\nglobal L1_TO_L2_MSG_TREE_HEIGHT: Field = 16;\nglobal ROLLUP_VK_TREE_HEIGHT: Field = 8;\nglobal ARTIFACT_FUNCTION_TREE_MAX_HEIGHT = 5;\n\n// SUB-TREES RELATED CONSTANTS\nglobal CONTRACT_SUBTREE_HEIGHT: Field = 0;\nglobal CONTRACT_SUBTREE_SIBLING_PATH_LENGTH: Field = 16;\nglobal NOTE_HASH_SUBTREE_HEIGHT: Field = 6;\nglobal NOTE_HASH_SUBTREE_SIBLING_PATH_LENGTH: Field = 26;\nglobal NULLIFIER_SUBTREE_HEIGHT: Field = 6;\nglobal PUBLIC_DATA_SUBTREE_HEIGHT: Field = 4;\nglobal ARCHIVE_HEIGHT: Field = 16;\nglobal NULLIFIER_SUBTREE_SIBLING_PATH_LENGTH: Field = 14;\nglobal PUBLIC_DATA_SUBTREE_SIBLING_PATH_LENGTH: Field = 36;\nglobal L1_TO_L2_MSG_SUBTREE_HEIGHT: Field = 4;\nglobal L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH: Field = 12;\n\n// MISC CONSTANTS\nglobal FUNCTION_SELECTOR_NUM_BYTES: Field = 4;\nglobal MAPPING_SLOT_PEDERSEN_SEPARATOR: Field = 4;\n// sha256 hash is stored in two fields to accommodate all 256-bits of the hash\nglobal NUM_FIELDS_PER_SHA256: Field = 2;\nglobal ARGS_HASH_CHUNK_LENGTH: u32 = 32;\nglobal ARGS_HASH_CHUNK_COUNT: u32 = 32;\n\n// CONTRACT CLASS CONSTANTS\n// This should be around 8192 (assuming 2**15 instructions packed at 8 bytes each),\n// but it's reduced to speed up build times, otherwise the ClassRegisterer takes over 5 mins to compile.\n// We are not using 1024 so we can squeeze in a few more args to methods that consume packed public bytecode,\n// such as the ClassRegisterer.register, and still land below the 32 * 32 max args limit for hashing.\nglobal MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS: Field = 1000;\n// Bytecode size for private functions is per function, not for the entire contract.\n// Note that private functions bytecode includes a mix of acir and brillig.\nglobal MAX_PACKED_BYTECODE_SIZE_PER_PRIVATE_FUNCTION_IN_FIELDS: Field = 500;\n// Same for unconstrained functions: the size is per function.\nglobal MAX_PACKED_BYTECODE_SIZE_PER_UNCONSTRAINED_FUNCTION_IN_FIELDS: Field = 500;\n// Since we are not yet emitting selectors we'll use this magic value to identify events emitted by the ClassRegisterer.\n// This is just a stopgap until we implement proper selectors.\n// sha224sum 'struct ContractClassRegistered {contract_class_id: ContractClassId, version: Field, artifact_hash: Field, private_functions_root: Field, packed_public_bytecode: [Field; MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS] }'\nglobal REGISTERER_CONTRACT_CLASS_REGISTERED_MAGIC_VALUE = 0x6999d1e02b08a447a463563453cb36919c9dd7150336fc7c4d2b52f8;\n// sha224sum 'struct ClassPrivateFunctionBroadcasted'\nglobal REGISTERER_PRIVATE_FUNCTION_BROADCASTED_MAGIC_VALUE = 0x1b70e95fde0b70adc30496b90a327af6a5e383e028e7a43211a07bcd;\n// sha224sum 'struct ClassUnconstrainedFunctionBroadcasted'\nglobal REGISTERER_UNCONSTRAINED_FUNCTION_BROADCASTED_MAGIC_VALUE = 0xe7af816635466f128568edb04c9fa024f6c87fb9010fdbffa68b3d99;\n\n// CONTRACT INSTANCE CONSTANTS\n// sha224sum 'struct ContractInstanceDeployed'\nglobal DEPLOYER_CONTRACT_INSTANCE_DEPLOYED_MAGIC_VALUE = 0x85864497636cf755ae7bde03f267ce01a520981c21c3682aaf82a631;\n\n// NOIR CONSTANTS - constants used only in yarn-packages/noir-contracts\n// Some are defined here because Noir doesn't yet support globals referencing other globals yet.\n// Move these constants to a noir file once the issue below is resolved:\n// https://github.com/noir-lang/noir/issues/1734\nglobal L1_TO_L2_MESSAGE_LENGTH: Field = 8;\nglobal L1_TO_L2_MESSAGE_ORACLE_CALL_LENGTH: Field = 25;\nglobal MAX_NOTE_FIELDS_LENGTH: Field = 20;\n// GET_NOTE_ORACLE_RETURN_LENGT = MAX_NOTE_FIELDS_LENGTH + 1 + 2\n// The plus 1 is 1 extra field for nonce.\n// + 2 for EXTRA_DATA: [number_of_return_notes, contract_address]\nglobal GET_NOTE_ORACLE_RETURN_LENGTH: Field = 23;\nglobal MAX_NOTES_PER_PAGE: Field = 10;\n// VIEW_NOTE_ORACLE_RETURN_LENGTH = MAX_NOTES_PER_PAGE * (MAX_NOTE_FIELDS_LENGTH + 1) + 2;\nglobal VIEW_NOTE_ORACLE_RETURN_LENGTH: Field = 212;\nglobal CALL_CONTEXT_LENGTH: Field = 8;\nglobal GLOBAL_VARIABLES_LENGTH: Field = 6;\nglobal PARTIAL_STATE_REFERENCE_LENGTH: Field = 8;\nglobal STATE_REFERENCE_LENGTH: Field = 10; // 2 for snap + 8 for partial\nglobal HEADER_LENGTH: Field = 20; // 2 for last_archive, 2 for body hash, 10 for state reference, 6 for global vars\nglobal FUNCTION_DATA_LENGTH: Field = 4;\nglobal CONTRACT_DEPLOYMENT_DATA_LENGTH: Field = 6;\n// Change this ONLY if you have changed the PrivateCircuitPublicInputs structure.\n// In other words, if the structure/size of the public inputs of a function call changes then we should change this\n// constant as well PRIVATE_CALL_STACK_ITEM_LENGTH\nglobal PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH: Field = 207;\nglobal PRIVATE_CALL_STACK_ITEM_LENGTH: Field = 212;\nglobal CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH: Field = 2;\nglobal CONTRACT_STORAGE_READ_LENGTH: Field = 2;\n// Change this ONLY if you have changed the PublicCircuitPublicInputs structure.\nglobal PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH: Field = 187;\nglobal GET_NOTES_ORACLE_RETURN_LENGTH: Field = 674;\nglobal COMMITMENTS_NUM_BYTES_PER_BASE_ROLLUP: Field = 2048;\nglobal NULLIFIERS_NUM_BYTES_PER_BASE_ROLLUP: Field = 2048;\nglobal PUBLIC_DATA_WRITES_NUM_BYTES_PER_BASE_ROLLUP: Field = 1024;\nglobal CONTRACTS_NUM_BYTES_PER_BASE_ROLLUP: Field = 32;\nglobal CONTRACT_DATA_NUM_BYTES_PER_BASE_ROLLUP: Field = 64;\nglobal CONTRACT_DATA_NUM_BYTES_PER_BASE_ROLLUP_UNPADDED: Field = 52;\nglobal L2_TO_L1_MSGS_NUM_BYTES_PER_BASE_ROLLUP: Field = 64;\nglobal LOGS_HASHES_NUM_BYTES_PER_BASE_ROLLUP: Field = 64;\n\n/**\n * Enumerate the hash_indices which are used for pedersen hashing.\n * We start from 1 to avoid the default generators. The generator indices are listed\n * based on the number of elements each index hashes. The following conditions must be met:\n *\n * +-----------+-------------------------------+----------------------+\n * | Hash size | Number of elements hashed (n) | Condition to use |\n * |-----------+-------------------------------+----------------------|\n * | LOW | n ≤ 8 | 0 < hash_index ≤ 32 |\n * | MID | 8 < n ≤ 16 | 32 < hash_index ≤ 40 |\n * | HIGH | 16 < n ≤ 48 | 40 < hash_index ≤ 48 |\n * +-----------+-------------------------------+----------------------+\n *\n * Note: When modifying, modify `GeneratorIndexPacker` in packer.hpp accordingly.\n */\n// Indices with size ≤ 8\nglobal GENERATOR_INDEX__COMMITMENT = 1;\nglobal GENERATOR_INDEX__COMMITMENT_NONCE = 2;\nglobal GENERATOR_INDEX__UNIQUE_COMMITMENT = 3;\nglobal GENERATOR_INDEX__SILOED_COMMITMENT = 4;\nglobal GENERATOR_INDEX__NULLIFIER = 5;\nglobal GENERATOR_INDEX__INITIALIZATION_NULLIFIER = 6;\nglobal GENERATOR_INDEX__OUTER_NULLIFIER = 7;\nglobal GENERATOR_INDEX__PUBLIC_DATA_READ = 8;\nglobal GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST = 9;\nglobal GENERATOR_INDEX__FUNCTION_DATA = 10;\nglobal GENERATOR_INDEX__FUNCTION_LEAF = 11;\nglobal GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA = 12;\nglobal GENERATOR_INDEX__CONSTRUCTOR = 13;\nglobal GENERATOR_INDEX__CONSTRUCTOR_ARGS = 14;\nglobal GENERATOR_INDEX__CONTRACT_ADDRESS = 15;\nglobal GENERATOR_INDEX__CONTRACT_LEAF = 16;\nglobal GENERATOR_INDEX__CALL_CONTEXT = 17;\nglobal GENERATOR_INDEX__CALL_STACK_ITEM = 18;\nglobal GENERATOR_INDEX__CALL_STACK_ITEM_2 = 19;\nglobal GENERATOR_INDEX__L1_TO_L2_MESSAGE_SECRET = 20;\nglobal GENERATOR_INDEX__L2_TO_L1_MSG = 21;\nglobal GENERATOR_INDEX__TX_CONTEXT = 22;\nglobal GENERATOR_INDEX__PUBLIC_LEAF_INDEX = 23;\nglobal GENERATOR_INDEX__PUBLIC_DATA_LEAF = 24;\nglobal GENERATOR_INDEX__SIGNED_TX_REQUEST = 25;\nglobal GENERATOR_INDEX__GLOBAL_VARIABLES = 26;\nglobal GENERATOR_INDEX__PARTIAL_ADDRESS = 27;\nglobal GENERATOR_INDEX__BLOCK_HASH = 28;\nglobal GENERATOR_INDEX__SIDE_EFFECT = 29;\nglobal GENERATOR_INDEX__FEE_PAYLOAD = 30;\n// Indices with size ≤ 16\nglobal GENERATOR_INDEX__TX_REQUEST = 33;\nglobal GENERATOR_INDEX__SIGNATURE_PAYLOAD = 34;\n// Indices with size ≤ 44\nglobal GENERATOR_INDEX__VK = 41;\nglobal GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS = 42;\nglobal GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS = 43;\nglobal GENERATOR_INDEX__FUNCTION_ARGS = 44;\n","path":"/usr/src/noir-projects/noir-protocol-circuits/src/crates/types/src/constants.nr"},"44":{"source":"use crate::{\n abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot, constants::PARTIAL_STATE_REFERENCE_LENGTH,\n traits::{Deserialize, Empty, Hash, Serialize}\n};\n\nstruct PartialStateReference {\n note_hash_tree: AppendOnlyTreeSnapshot,\n nullifier_tree: AppendOnlyTreeSnapshot,\n contract_tree: AppendOnlyTreeSnapshot,\n public_data_tree: AppendOnlyTreeSnapshot,\n}\n\nimpl Eq for PartialStateReference {\n fn eq(self, other: PartialStateReference) -> bool {\n self.note_hash_tree.eq(other.note_hash_tree) &\n self.nullifier_tree.eq(other.nullifier_tree) &\n self.contract_tree.eq(other.contract_tree) &\n self.public_data_tree.eq(other.public_data_tree)\n }\n}\n\nimpl Serialize<PARTIAL_STATE_REFERENCE_LENGTH> for PartialStateReference {\n fn serialize(self) -> [Field; PARTIAL_STATE_REFERENCE_LENGTH] {\n let serialized_note_hash_tree = self.note_hash_tree.serialize();\n let serialized_nullifier_tree = self.nullifier_tree.serialize();\n let serialized_contract_tree = self.contract_tree.serialize();\n let serialized_public_data_tree = self.public_data_tree.serialize();\n\n [\n serialized_note_hash_tree[0],\n serialized_note_hash_tree[1],\n serialized_nullifier_tree[0],\n serialized_nullifier_tree[1],\n serialized_contract_tree[0],\n serialized_contract_tree[1],\n serialized_public_data_tree[0],\n serialized_public_data_tree[1],\n ]\n }\n}\n\nimpl Deserialize<PARTIAL_STATE_REFERENCE_LENGTH> for PartialStateReference {\n fn deserialize(serialized: [Field; PARTIAL_STATE_REFERENCE_LENGTH]) -> PartialStateReference {\n PartialStateReference {\n note_hash_tree: AppendOnlyTreeSnapshot::deserialize(\n [serialized[0], serialized[1]]\n ),\n nullifier_tree: AppendOnlyTreeSnapshot::deserialize(\n [serialized[2], serialized[3]]\n ),\n contract_tree: AppendOnlyTreeSnapshot::deserialize(\n [serialized[4], serialized[5]]\n ),\n public_data_tree: AppendOnlyTreeSnapshot::deserialize(\n [serialized[6], serialized[7]]\n ),\n }\n }\n}\n\nimpl Empty for PartialStateReference {\n fn empty() -> Self {\n Self {\n note_hash_tree: AppendOnlyTreeSnapshot::zero(),\n nullifier_tree: AppendOnlyTreeSnapshot::zero(),\n contract_tree: AppendOnlyTreeSnapshot::zero(),\n public_data_tree: AppendOnlyTreeSnapshot::zero(),\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let partial: PartialStateReference = dep::std::unsafe::zeroed();\n let _serialized = partial.serialize();\n let _deserialized = PartialStateReference::deserialize(_serialized);\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/src/crates/types/src/partial_state_reference.nr"},"45":{"source":"use crate::{\n abis::append_only_tree_snapshot::{AppendOnlyTreeSnapshot, APPEND_ONLY_TREE_SNAPSHOT_LENGTH},\n constants::{PARTIAL_STATE_REFERENCE_LENGTH, STATE_REFERENCE_LENGTH},\n partial_state_reference::PartialStateReference, traits::{Deserialize, Empty, Hash, Serialize},\n utils::{arr_copy_slice}\n};\n\nstruct StateReference {\n l1_to_l2_message_tree: AppendOnlyTreeSnapshot,\n partial: PartialStateReference,\n}\n\nimpl Eq for StateReference {\n fn eq(self, other: StateReference) -> bool {\n self.l1_to_l2_message_tree.eq(other.l1_to_l2_message_tree) &\n self.partial.eq(other.partial)\n }\n}\n\nimpl Serialize<STATE_REFERENCE_LENGTH> for StateReference {\n fn serialize(self) -> [Field; STATE_REFERENCE_LENGTH] {\n let mut fields: BoundedVec<Field, STATE_REFERENCE_LENGTH> = BoundedVec::new(0);\n\n fields.extend_from_array(self.l1_to_l2_message_tree.serialize());\n fields.extend_from_array(self.partial.serialize());\n\n fields.storage\n }\n}\n\nimpl Deserialize<STATE_REFERENCE_LENGTH> for StateReference {\n fn deserialize(serialized: [Field; STATE_REFERENCE_LENGTH]) -> StateReference {\n let mut offset = 0;\n\n let l1_to_l2_message_tree_fields = arr_copy_slice(serialized, [0; APPEND_ONLY_TREE_SNAPSHOT_LENGTH], offset);\n offset = offset + APPEND_ONLY_TREE_SNAPSHOT_LENGTH;\n\n let partial_fields = arr_copy_slice(serialized, [0; PARTIAL_STATE_REFERENCE_LENGTH], offset);\n\n StateReference {\n l1_to_l2_message_tree: AppendOnlyTreeSnapshot::deserialize(l1_to_l2_message_tree_fields),\n partial: PartialStateReference::deserialize(partial_fields),\n }\n }\n}\n\nimpl Empty for StateReference {\n fn empty() -> Self {\n Self {\n l1_to_l2_message_tree: AppendOnlyTreeSnapshot::zero(),\n partial: PartialStateReference::empty(),\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let state: StateReference = dep::std::unsafe::zeroed();\n let _serialized = state.serialize();\n let _deserialized = StateReference::deserialize(_serialized);\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/src/crates/types/src/state_reference.nr"},"48":{"source":"use crate::{\n abis::{\n append_only_tree_snapshot::{AppendOnlyTreeSnapshot, APPEND_ONLY_TREE_SNAPSHOT_LENGTH},\n global_variables::{GlobalVariables, GLOBAL_VARIABLES_LENGTH}\n},\n constants::{GENERATOR_INDEX__BLOCK_HASH, HEADER_LENGTH, NUM_FIELDS_PER_SHA256, STATE_REFERENCE_LENGTH},\n hash::pedersen_hash, state_reference::StateReference, traits::{Deserialize, Empty, Hash, Serialize},\n utils::{arr_copy_slice}\n};\n\n// docs:start:header\nstruct Header {\n last_archive: AppendOnlyTreeSnapshot,\n body_hash: [Field; NUM_FIELDS_PER_SHA256],\n state: StateReference,\n global_variables: GlobalVariables,\n}\n// docs:end:header\n\nimpl Eq for Header {\n fn eq(self, other: Self) -> bool {\n self.last_archive.eq(other.last_archive) &\n (self.body_hash == other.body_hash) &\n self.state.eq(other.state) &\n self.global_variables.eq(other.global_variables)\n }\n}\n\nimpl Serialize<HEADER_LENGTH> for Header {\n fn serialize(self) -> [Field; HEADER_LENGTH] {\n let mut fields: BoundedVec<Field, HEADER_LENGTH> = BoundedVec::new(0);\n\n fields.extend_from_array(self.last_archive.serialize());\n fields.extend_from_array(self.body_hash);\n fields.extend_from_array(self.state.serialize());\n fields.extend_from_array(self.global_variables.serialize());\n\n fields.storage\n }\n}\n\nimpl Deserialize<HEADER_LENGTH> for Header {\n fn deserialize(serialized: [Field; HEADER_LENGTH]) -> Self {\n let mut offset = 0;\n\n let last_archive_fields = arr_copy_slice(serialized, [0; APPEND_ONLY_TREE_SNAPSHOT_LENGTH], offset);\n offset = offset + APPEND_ONLY_TREE_SNAPSHOT_LENGTH;\n\n let body_hash = arr_copy_slice(serialized, [0; NUM_FIELDS_PER_SHA256], offset);\n offset = offset + NUM_FIELDS_PER_SHA256;\n\n let state_fields = arr_copy_slice(serialized, [0; STATE_REFERENCE_LENGTH], offset);\n offset = offset + STATE_REFERENCE_LENGTH;\n\n let global_variables_fields = arr_copy_slice(serialized, [0; GLOBAL_VARIABLES_LENGTH], offset);\n\n Header {\n last_archive: AppendOnlyTreeSnapshot::deserialize(last_archive_fields),\n body_hash,\n state: StateReference::deserialize(state_fields),\n global_variables: GlobalVariables::deserialize(global_variables_fields),\n }\n }\n}\n\nimpl Empty for Header {\n fn empty() -> Self {\n Self {\n last_archive: AppendOnlyTreeSnapshot::zero(),\n body_hash: [0; NUM_FIELDS_PER_SHA256],\n state: StateReference::empty(),\n global_variables: GlobalVariables::empty(),\n }\n }\n}\n\nimpl Hash for Header {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__BLOCK_HASH)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let header: Header = dep::std::unsafe::zeroed();\n let serialized = header.serialize();\n let deserialized = Header::deserialize(serialized);\n assert(header.eq(deserialized));\n}\n\n#[test]\nfn hash_smoke() {\n let header: Header = dep::std::unsafe::zeroed();\n let _hashed = header.hash();\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/src/crates/types/src/header.nr"},"49":{"source":"use crate::address::{AztecAddress, EthAddress};\nuse crate::mocked::VerificationKey;\nuse crate::abis::function_selector::FunctionSelector;\nuse crate::abis::function_leaf_preimage::{ContractClassFunctionLeafPreimage, FunctionLeafPreimage};\nuse crate::contract_class::ContractClassId;\nuse crate::abis::new_contract_data::NewContractData as ContractLeafPreimage;\nuse crate::abis::function_data::FunctionData;\nuse crate::abis::side_effect::{SideEffect};\nuse crate::utils::uint256::U256;\nuse crate::constants::{\n ARGS_HASH_CHUNK_COUNT, ARGS_HASH_CHUNK_LENGTH, CONTRACT_TREE_HEIGHT, FUNCTION_TREE_HEIGHT,\n NOTE_HASH_TREE_HEIGHT, NUM_FIELDS_PER_SHA256, GENERATOR_INDEX__SILOED_COMMITMENT,\n GENERATOR_INDEX__OUTER_NULLIFIER, GENERATOR_INDEX__VK, GENERATOR_INDEX__CONSTRUCTOR,\n GENERATOR_INDEX__PARTIAL_ADDRESS, GENERATOR_INDEX__CONTRACT_ADDRESS,\n GENERATOR_INDEX__COMMITMENT_NONCE, GENERATOR_INDEX__UNIQUE_COMMITMENT,\n GENERATOR_INDEX__FUNCTION_ARGS\n};\n\nuse dep::std::hash::{pedersen_hash_with_separator, sha256};\n\npub fn sha256_to_field<N>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = sha256(bytes_to_hash);\n\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..16 {\n high = high + (sha256_hashed[15 - i] as Field) * v;\n low = low + (sha256_hashed[16 + 15 - i] as Field) * v;\n v = v * 256;\n }\n\n // Abuse that a % p + b % p = (a + b) % p and that low < p\n let hash_in_a_field = low + high * v;\n\n hash_in_a_field\n}\n\npub fn hash_args<N>(args: [Field; N]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n let mut chunks_hashes = [0; ARGS_HASH_CHUNK_COUNT];\n for i in 0..ARGS_HASH_CHUNK_COUNT {\n let mut chunk_hash = 0;\n let start_chunk_index = i * ARGS_HASH_CHUNK_LENGTH;\n if start_chunk_index < (args.len() as u32) {\n let mut chunk_args = [0; ARGS_HASH_CHUNK_LENGTH];\n for j in 0..ARGS_HASH_CHUNK_LENGTH {\n let item_index = i * ARGS_HASH_CHUNK_LENGTH + j;\n if item_index < (args.len() as u32) {\n chunk_args[j] = args[item_index];\n }\n }\n chunk_hash = pedersen_hash(chunk_args, GENERATOR_INDEX__FUNCTION_ARGS);\n }\n chunks_hashes[i] = chunk_hash;\n }\n pedersen_hash(chunks_hashes, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\n// Checks that `value` is a member of a merkle tree with root `root` at position `index`\n// The witness being the `sibling_path`\npub fn assert_check_membership<N>(value: Field, index: Field, sibling_path: [Field; N], root: Field) {\n let calculated_root = root_from_sibling_path(value, index, sibling_path);\n assert(calculated_root == root, \"membership check failed\");\n}\n\n// Calculate the Merkle tree root from the sibling path and leaf.\n//\n// The leaf is hashed with its sibling, and then the result is hashed\n// with the next sibling etc in the path. The last hash is the root.\n//\n// TODO(David/Someone): The cpp code is using a uint256, whereas its\n// TODO a bit simpler in Noir to just have a bit array.\n// TODO: I'd generally like to avoid u256 for algorithms like \n// this because it means we never even need to consider cases where \n// the index is greater than p.\npub fn root_from_sibling_path<N>(leaf: Field, leaf_index: Field, sibling_path: [Field; N]) -> Field {\n let mut node = leaf;\n let indices = leaf_index.to_le_bits(N);\n\n for i in 0..N {\n let (hash_left, hash_right) = if indices[i] == 1 {\n (sibling_path[i], node)\n } else {\n (node, sibling_path[i])\n };\n node = merkle_hash(hash_left, hash_right);\n }\n node\n}\n\n// Calculate the function tree root from the sibling path and leaf preimage.\n//\n// TODO: The cpp code passes in components of the FunctionLeafPreimage and then \n// builds it up. We should build it up and then pass the leaf preimage as a parameter.\n// We can then choose to have a general method that takes in anything hashable\n// and deduplicate the logic in `contract_tree_root_from_siblings`\npub fn function_tree_root_from_siblings(\n selector: FunctionSelector,\n is_internal: bool,\n is_private: bool,\n vk_hash: Field,\n acir_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT]\n) -> Field {\n let function_leaf_preimage = FunctionLeafPreimage { selector, is_internal, is_private, vk_hash, acir_hash };\n\n let function_leaf = function_leaf_preimage.hash();\n\n let function_tree_root = root_from_sibling_path(function_leaf, function_leaf_index, function_leaf_sibling_path);\n\n function_tree_root\n}\n\n// Calculate the contract tree root from the sibling path and leaf preimage.\npub fn contract_tree_root_from_siblings(\n contract_class_id: ContractClassId,\n storage_contract_address: AztecAddress,\n portal_contract_address: EthAddress,\n contract_leaf_index: Field,\n contract_leaf_sibling_path: [Field; CONTRACT_TREE_HEIGHT]\n) -> Field {\n //TODO(Kev): if we use shorthand syntax here, we get an error as expected,\n // since variable name is `storage_contract_address` but the span is incorrect.\n let contract_leaf_preimage = ContractLeafPreimage { contract_address: storage_contract_address, portal_contract_address, contract_class_id };\n\n let contract_leaf = contract_leaf_preimage.hash();\n\n let computed_contract_tree_root = root_from_sibling_path(contract_leaf, contract_leaf_index, contract_leaf_sibling_path);\n\n computed_contract_tree_root\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT]\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(function_leaf, function_leaf_index, function_leaf_sibling_path)\n}\n\npub fn read_request_root_from_siblings(\n read_request: Field,\n leaf_index: Field,\n sibling_path: [Field; NOTE_HASH_TREE_HEIGHT]\n) -> Field {\n root_from_sibling_path(read_request, leaf_index, sibling_path)\n}\n\npub fn silo_commitment(address: AztecAddress, inner_commitment: Field) -> Field {\n pedersen_hash(\n [\n address.to_field(),\n inner_commitment\n ],\n GENERATOR_INDEX__SILOED_COMMITMENT\n )\n}\n\npub fn silo_nullifier(address: AztecAddress, nullifier: Field) -> Field {\n pedersen_hash(\n [\n address.to_field(),\n nullifier\n ],\n GENERATOR_INDEX__OUTER_NULLIFIER\n )\n}\n\nfn merkle_hash(left: Field, right: Field) -> Field {\n pedersen_hash([left, right], 0)\n}\n\npub fn stdlib_recursion_verification_key_compress_native_vk(_vk: VerificationKey) -> Field {\n // Original cpp code\n // stdlib::recursion::verification_key<CT::bn254>::compress_native(private_call.vk, GeneratorIndex::VK);\n // The above cpp method is only ever called on verification key, so it has been special cased here\n let _hash_index = GENERATOR_INDEX__VK;\n 0\n}\n\n// TODO CPP uses blake2s for this\npub fn compute_new_contract_address_hash(new_contract_address: AztecAddress) -> Field {\n dep::std::hash::pedersen_hash([new_contract_address.to_field()])\n}\n\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n rollup_version_id: Field,\n portal_contract_address: EthAddress,\n chain_id: Field,\n content: Field\n) -> Field {\n let mut bytes: BoundedVec<u8, 160> = BoundedVec::new(0);\n\n let inputs = [\n contract_address.to_field(), rollup_version_id, portal_contract_address.to_field(), chain_id, content\n ];\n for i in 0..inputs.len() {\n // TODO are bytes be in fr.to_buffer() ?\n let item_bytes = inputs[i].to_be_bytes(32);\n for j in 0..32 {\n bytes.push(item_bytes[j]);\n }\n }\n\n sha256_to_field(bytes.storage)\n}\n\npub fn compute_constructor_hash(\n function_data: FunctionData,\n args_hash: Field,\n constructor_vk_hash: Field\n) -> Field {\n let function_data_hash = function_data.hash();\n\n pedersen_hash(\n [\n function_data_hash,\n args_hash,\n constructor_vk_hash\n ],\n GENERATOR_INDEX__CONSTRUCTOR\n )\n}\n\n// Computes sha256 hash of 2 input hashes stored in 4 fields.\n// \n// This method is bn254 specific. Two fields is needed in order to \n// encode the sha256 output. It can be abstracted away with any 4-2 hash function.\n//\n// TODO(Jan and David): This is used for the encrypted_log hashes.\n// Can we check to see if we can just use hash_to_field or pedersen_compress here?\n//\n// Returning a Field would be desirable because then this can be replaced with \n// poseidon without changing the rest of the code\n//\npub fn accumulate_sha256(input: [U128; 4]) -> [Field; NUM_FIELDS_PER_SHA256] {\n // This is a note about the cpp code, since it takes an array of Fields\n // instead of a U128.\n // 4 Field elements when converted to bytes will usually \n // occupy 4 * 32 = 128 bytes.\n // However, this function is making the assumption that each Field \n // only occupies 128 bits.\n //\n // TODO(David): This does not seem to be getting guaranteed anywhere in the code?\n //\n // Concatenate 4 u128 bit integers into a byte array.\n let mut hash_input_flattened = [0; 64];\n for offset in 0..4 {\n let input_as_bytes = input[offset].to_be_bytes();\n for byte_index in 0..16 {\n hash_input_flattened[offset * 16 + byte_index] = input_as_bytes[byte_index];\n }\n }\n\n let sha_digest = dep::std::hash::sha256(hash_input_flattened);\n\n U256::from_bytes32(sha_digest).to_u128_limbs()\n}\n\npub fn compute_logs_hash(\n previous_log_hash: [Field; 2],\n current_log_hash: [Field; 2]\n) -> [Field; NUM_FIELDS_PER_SHA256] {\n accumulate_sha256(\n [\n U128::from_integer(previous_log_hash[0]),\n U128::from_integer(previous_log_hash[1]),\n U128::from_integer(current_log_hash[0]),\n U128::from_integer(current_log_hash[1])\n ]\n )\n}\n\npub fn compute_commitment_nonce(first_nullifier: Field, commitment_index: Field) -> Field {\n pedersen_hash(\n [\n first_nullifier,\n commitment_index\n ],\n GENERATOR_INDEX__COMMITMENT_NONCE\n )\n}\n\npub fn compute_unique_siloed_commitment(nonce: Field, siloed_commitment: Field) -> Field {\n pedersen_hash(\n [\n nonce,\n siloed_commitment\n ],\n GENERATOR_INDEX__UNIQUE_COMMITMENT\n )\n}\n\npub fn compute_unique_siloed_commitments<N>(\n first_nullifier: Field,\n siloed_commitments: [SideEffect; N]\n) -> [SideEffect; N] {\n let mut unique_siloed_commitments = [SideEffect::empty(); N];\n for i in 0..N {\n let siloed_commitment = siloed_commitments[i];\n if siloed_commitment.value != 0 {\n let nonce = compute_commitment_nonce(first_nullifier, i);\n unique_siloed_commitments[i] = SideEffect {\n value: compute_unique_siloed_commitment(nonce, siloed_commitment.value),\n counter: siloed_commitment.counter\n };\n }\n }\n unique_siloed_commitments\n}\n\npub fn pedersen_hash<N>(inputs: [Field; N], hash_index: u32) -> Field {\n dep::std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/src/crates/types/src/hash.nr"},"66":{"source":"use crate::{\n constants::{GENERATOR_INDEX__CONTRACT_ADDRESS, GENERATOR_INDEX__PARTIAL_ADDRESS, GENERATOR_INDEX__CONSTRUCTOR},\n hash::pedersen_hash, contract_class::ContractClassId, utils, grumpkin_point::GrumpkinPoint\n};\nuse dep::std::cmp::Eq;\nuse crate::traits::{Empty, ToField, Serialize, Deserialize};\nuse crate::type_serialization::{ETH_ADDRESS_SERIALIZED_LEN, AZTEC_ADDRESS_SERIALIZED_LEN};\n\n// Aztec address\nstruct AztecAddress {\n inner : Field\n}\n\nimpl Eq for AztecAddress {\n fn eq(self, other : Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for AztecAddress {\n fn empty() -> Self {\n Self {\n inner : 0\n }\n }\n}\n\nimpl ToField for AztecAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl Serialize<AZTEC_ADDRESS_SERIALIZED_LEN> for AztecAddress {\n fn serialize(self: Self) -> [Field; AZTEC_ADDRESS_SERIALIZED_LEN] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<AZTEC_ADDRESS_SERIALIZED_LEN> for AztecAddress {\n fn deserialize(fields: [Field; AZTEC_ADDRESS_SERIALIZED_LEN]) -> Self {\n AztecAddress::from_field(fields[0])\n }\n}\n\nimpl AztecAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute_from_public_key(\n pub_key: GrumpkinPoint,\n contract_class_id: ContractClassId,\n salt: Field,\n initialization_hash: Field,\n portal_contract_address: EthAddress\n ) -> AztecAddress {\n AztecAddress::compute(\n PublicKeysHash::compute(pub_key),\n PartialAddress::compute(\n contract_class_id,\n salt,\n initialization_hash,\n portal_contract_address\n )\n )\n }\n\n pub fn compute(pub_keys_hash: PublicKeysHash, partial_address: PartialAddress) -> AztecAddress {\n AztecAddress::from_field(\n pedersen_hash(\n [pub_keys_hash.to_field(), partial_address.to_field()],\n GENERATOR_INDEX__CONTRACT_ADDRESS\n )\n )\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n\n pub fn conditional_assign(predicate: bool, lhs: Self, rhs: Self) -> Self {\n let result = utils::conditional_assign(predicate, rhs.to_field(), lhs.to_field());\n Self { inner: result }\n }\n}\n\nstruct EthAddress{\n inner : Field\n}\n\nimpl Eq for EthAddress {\n fn eq(self, other : Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for EthAddress {\n fn empty() -> Self {\n Self {\n inner : 0\n }\n }\n}\n\nimpl ToField for EthAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl Serialize<ETH_ADDRESS_SERIALIZED_LEN> for EthAddress {\n fn serialize(self: Self) -> [Field; ETH_ADDRESS_SERIALIZED_LEN] {\n [self.inner]\n }\n}\n\nimpl Deserialize<ETH_ADDRESS_SERIALIZED_LEN> for EthAddress {\n fn deserialize(fields: [Field; ETH_ADDRESS_SERIALIZED_LEN]) -> Self {\n Self {\n inner: fields[0]\n }\n }\n}\n\nimpl EthAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n\n pub fn conditional_assign(predicate: bool, lhs: Self, rhs: Self) -> Self {\n let result = utils::conditional_assign(predicate, rhs.to_field(), lhs.to_field());\n Self { inner: result }\n }\n}\n\n// Partial address\nstruct PartialAddress {\n inner : Field\n}\n\nimpl ToField for PartialAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl PartialAddress {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(\n contract_class_id: ContractClassId,\n salt: Field,\n initialization_hash: Field,\n portal_contract_address: EthAddress\n ) -> Self {\n PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n SaltedInitializationHash::compute(salt, initialization_hash, portal_contract_address)\n )\n }\n\n pub fn compute_from_salted_initialization_hash(\n contract_class_id: ContractClassId,\n salted_initialization_hash: SaltedInitializationHash\n ) -> Self {\n PartialAddress::from_field(\n pedersen_hash(\n [\n contract_class_id.to_field(),\n salted_initialization_hash.to_field()\n ],\n GENERATOR_INDEX__PARTIAL_ADDRESS\n )\n )\n }\n\n pub fn to_field(self) -> Field {\n self.inner\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n\n// Salted initialization hash. Used in the computation of a partial address.\nstruct SaltedInitializationHash {\n inner: Field\n}\n\nimpl ToField for SaltedInitializationHash {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl SaltedInitializationHash {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(salt: Field, initialization_hash: Field, portal_contract_address: EthAddress) -> Self {\n SaltedInitializationHash::from_field(\n pedersen_hash(\n [\n salt,\n initialization_hash,\n portal_contract_address.to_field()\n ],\n GENERATOR_INDEX__PARTIAL_ADDRESS\n )\n )\n }\n\n pub fn to_field(self) -> Field {\n self.inner\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n\n// Public keys hash. Used in the computation of an address.\nstruct PublicKeysHash {\n inner: Field\n}\n\nimpl ToField for PublicKeysHash {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl Serialize<1> for PublicKeysHash {\n fn serialize(self: Self) -> [Field; 1] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<1> for PublicKeysHash {\n fn deserialize(fields: [Field; 1]) -> Self {\n PublicKeysHash::from_field(fields[0])\n }\n}\n\nimpl PublicKeysHash {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(public_key: GrumpkinPoint) -> Self {\n PublicKeysHash::from_field(\n pedersen_hash(\n [\n public_key.x,\n public_key.y\n ],\n GENERATOR_INDEX__PARTIAL_ADDRESS\n )\n )\n }\n\n pub fn to_field(self) -> Field {\n self.inner\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n\npub fn compute_initialization_hash(selector: Field, args_hash: Field) -> Field {\n pedersen_hash(\n [\n selector,\n args_hash\n ],\n GENERATOR_INDEX__CONSTRUCTOR\n )\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/src/crates/types/src/address.nr"},"73":{"source":"use crate::{\n constants::{CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH, GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST},\n hash::pedersen_hash, traits::{Deserialize, Hash, Empty, Serialize}\n};\nuse dep::std::cmp::Eq;\n\nstruct StorageUpdateRequest{\n storage_slot : Field,\n new_value : Field,\n}\n\nimpl Eq for StorageUpdateRequest {\n fn eq(self, request: Self) -> bool {\n (request.storage_slot == self.storage_slot)\n & (request.new_value == self.new_value)\n }\n}\n\nimpl Empty for StorageUpdateRequest {\n fn empty() -> Self {\n StorageUpdateRequest {\n storage_slot: 0,\n new_value: 0,\n }\n }\n}\n\nimpl Hash for StorageUpdateRequest {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST)\n }\n}\n\nimpl Serialize<CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH> for StorageUpdateRequest {\n fn serialize(self) -> [Field; CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH] {\n [self.storage_slot, self.new_value]\n }\n}\n\nimpl Deserialize<CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH> for StorageUpdateRequest {\n fn deserialize(serialized: [Field; CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH]) -> Self {\n StorageUpdateRequest {\n storage_slot: serialized[0],\n new_value: serialized[1],\n }\n }\n}\n\nimpl StorageUpdateRequest {\n pub fn is_empty(self) -> bool {\n self.storage_slot == 0\n }\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/src/crates/types/src/contrakt/storage_update_request.nr"},"74":{"source":"use crate::{\n constants::{CONTRACT_STORAGE_READ_LENGTH, GENERATOR_INDEX__PUBLIC_DATA_READ}, hash::pedersen_hash,\n traits::{Deserialize, Hash, Empty, Serialize}\n};\n\nstruct StorageRead {\n storage_slot: Field,\n current_value: Field,\n}\n\nimpl Eq for StorageRead {\n fn eq(self, other: Self) -> bool {\n (self.storage_slot == other.storage_slot) & (self.current_value == other.current_value)\n }\n}\n\nimpl Empty for StorageRead { \n fn empty() -> Self {\n Self {\n storage_slot: 0,\n current_value: 0,\n }\n }\n}\n\nimpl Hash for StorageRead {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__PUBLIC_DATA_READ)\n }\n}\n\nimpl Serialize<CONTRACT_STORAGE_READ_LENGTH> for StorageRead {\n fn serialize(self) -> [Field; CONTRACT_STORAGE_READ_LENGTH] {\n [self.storage_slot, self.current_value]\n }\n}\n\nimpl Deserialize<CONTRACT_STORAGE_READ_LENGTH> for StorageRead {\n fn deserialize(serialized: [Field; CONTRACT_STORAGE_READ_LENGTH]) -> Self {\n Self {\n storage_slot: serialized[0],\n current_value: serialized[1],\n }\n }\n}\n\nimpl StorageRead {\n pub fn is_empty(self) -> bool {\n self.storage_slot == 0\n }\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/src/crates/types/src/contrakt/storage_read.nr"},"76":{"source":"use dep::std::cmp::Eq;\n\n// Trait: is_empty\n//\n// The general is_empty trait checks if a data type is is empty,\n// and it defines empty for the basic data types as 0.\n//\n// If a Field is equal to zero, then it is regarded as zero.\n// We will go with this definition for now, however it can be problematic \n// if a value can actually be zero. In a future refactor, we can \n// use the optional type for safety. Doing it now would lead to a worse devex\n// and would make it harder to sync up with the cpp code.\n// Preferred over Default trait to convey intent, as default doesn't necessarily mean empty.\ntrait Empty {\n fn empty() -> Self;\n}\n\nimpl Empty for Field { fn empty() -> Self {0} }\n\nimpl Empty for u1 { fn empty() -> Self {0} }\nimpl Empty for u8 { fn empty() -> Self {0} }\nimpl Empty for u16 { fn empty() -> Self {0} }\nimpl Empty for u32 { fn empty() -> Self {0} }\nimpl Empty for u64 { fn empty() -> Self {0} }\n\npub fn is_empty<T>(item: T) -> bool where T: Empty + Eq {\n item.eq(T::empty())\n}\n\npub fn is_empty_array<T, N>(array: [T; N]) -> bool where T: Empty + Eq {\n array.all(|elem| is_empty(elem))\n}\n\ntrait Hash {\n fn hash(self) -> Field;\n}\n\ntrait ToField {\n fn to_field(self) -> Field;\n}\n\nimpl ToField for Field {\n fn to_field(self) -> Field {\n self\n }\n}\n\n// docs:start:serialize\ntrait Serialize<N> {\n fn serialize(self) -> [Field; N];\n}\n// docs:end:serialize\n\n// docs:start:deserialize\ntrait Deserialize<N> {\n fn deserialize(fields: [Field; N]) -> Self;\n}\n// docs:end:deserialize","path":"/usr/src/noir-projects/noir-protocol-circuits/src/crates/types/src/traits.nr"},"79":{"source":"use dep::std::array;\nuse dep::std::cmp::Eq;\nuse crate::traits::{Empty, is_empty};\n\npub fn array_to_bounded_vec<T, N>(array: [T; N]) -> BoundedVec<T, N> where T: Empty + Eq {\n let mut len = 0;\n for elem in array {\n if !is_empty(elem) {\n len += 1;\n }\n }\n\n BoundedVec { storage: array, len, empty_value: T::empty() }\n}\n\n// Routine which validates that all zero values of an array form a contiguous region at the end, i.e.,\n// of the form: [*,*,*...,0,0,0,0] where any * is non-zero. Note that a full array of non-zero values is\n// valid.\npub fn validate_array<T, N>(array: [T; N]) where T: Empty + Eq {\n let array_length = array.len();\n\n let mut first_zero_pos = array_length;\n let mut last_non_zero_pos = 0;\n\n for i in 0..array_length {\n let is_empty = is_empty(array[i]);\n if !is_empty {\n last_non_zero_pos = i;\n } else if is_empty & (first_zero_pos == array_length) {\n first_zero_pos = i;\n }\n }\n assert((last_non_zero_pos as u64) <= (first_zero_pos as u64), \"invalid array\");\n}\n\n// Helper method to determine the number of non-zero/empty elements in a validated array (ie, validate_array(array) \n// should be true).\npub fn array_length<T, N>(array: [T; N]) -> Field where T: Empty + Eq {\n let mut length = 0;\n let mut end = false;\n for elem in array {\n end |= is_empty(elem);\n if !end {\n length += 1;\n }\n }\n length\n}\n\npub fn array_eq<T, N, S>(array: [T; N], expected: [T; S]) -> bool where T: Empty + Eq {\n let mut eq = array_length(array) == S;\n\n for i in 0..S {\n eq &= array[i].eq(expected[i]);\n }\n\n eq\n}\n\n#[test]\nfn smoke_validate_array() {\n let valid_array = [];\n validate_array(valid_array);\n\n let valid_array = [0];\n validate_array(valid_array);\n\n let valid_array = [1, 2, 3];\n validate_array(valid_array);\n\n let valid_array = [1, 2, 3, 0];\n validate_array(valid_array);\n\n let valid_array = [1, 2, 3, 0, 0];\n validate_array(valid_array);\n}\n\n#[test(should_fail_with = \"invalid array\")]\nfn smoke_validate_array_invalid() {\n let invalid_array = [0, 1];\n validate_array(invalid_array);\n}\n\n#[test(should_fail_with = \"invalid array\")]\nfn smoke_validate_array_invalid_case2() {\n let invalid_array = [0, 0, 0, 0, 1];\n validate_array(invalid_array);\n}\n\n#[test]\nfn test_empty_array_length() {\n assert_eq(array_length([]), 0);\n assert_eq(array_length([0]), 0);\n assert_eq(array_length([0, 0, 0]), 0);\n}\n\n#[test]\nfn test_array_length() {\n assert_eq(array_length([123]), 1);\n assert_eq(array_length([123, 456]), 2);\n assert_eq(array_length([123, 456, 0]), 2);\n assert_eq(array_length([123, 0, 456]), 1);\n assert_eq(array_length([0, 123, 0, 456]), 0);\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/src/crates/types/src/utils/arrays.nr"},"81":{"source":"// This is a quick struct made to pack 32 bytes into 4 u64s\n// and then pack those into two u128s.\n//\n// Creating a u256 was made for convenience.\n//\n// This is needed because in the cpp code, we have accumulate_sha256\n// which returns 2 field elements, one for the high and low limb.\nstruct U256 {\n // This is in big-endian order, typically because\n // sha256 is usually in big endian order.\n // Note: this means that inner[0] has the most significant 64 bits.\n inner : [u64; 4]\n}\n\nimpl U256 {\n pub fn from_bytes32(bytes: [u8; 32]) -> U256 {\n // We use addition rather than a bitwise OR as the bitshifts ensure that none of the bytes overlap each other.\n let high_0 = ((bytes[0] as u64) << 56)\n + ((bytes[1] as u64) << 48)\n + ((bytes[2] as u64) << 40)\n + ((bytes[3] as u64) << 32)\n + ((bytes[4] as u64) << 24)\n + ((bytes[5] as u64) << 16)\n + ((bytes[6] as u64) << 8)\n + (bytes[7] as u64);\n\n let high_1 = ((bytes[8] as u64) << 56)\n + ((bytes[9] as u64) << 48)\n + ((bytes[10] as u64) << 40)\n + ((bytes[11] as u64) << 32)\n + ((bytes[12] as u64) << 24)\n + ((bytes[13] as u64) << 16)\n + ((bytes[14] as u64) << 8)\n + (bytes[15] as u64);\n\n let low_0 = ((bytes[16] as u64) << 56)\n + ((bytes[17] as u64) << 48)\n + ((bytes[18] as u64) << 40)\n + ((bytes[19] as u64) << 32)\n + ((bytes[20] as u64) << 24)\n + ((bytes[21] as u64) << 16)\n + ((bytes[22] as u64) << 8)\n + (bytes[23] as u64);\n\n let low_1 = ((bytes[24] as u64) << 56)\n + ((bytes[25] as u64) << 48)\n + ((bytes[26] as u64) << 40)\n + ((bytes[27] as u64) << 32)\n + ((bytes[28] as u64) << 24)\n + ((bytes[29] as u64) << 16)\n + ((bytes[30] as u64) << 8)\n + (bytes[31] as u64);\n\n U256 { inner: [high_0, high_1, low_0, low_1] }\n }\n\n // We cannot represent u128 in the type system\n // so we cannot return a u128 type.\n // \n // This as conversion assumes that Field can store 128 bits of information\n // or else the conversion is lossy.\n //\n // TODO: Add a test for this.\n pub fn to_u128_limbs(self) -> [Field; 2] {\n let two_pow_64 = 2.pow_32(64);\n\n let high = (self.inner[0] as Field) * two_pow_64 + self.inner[1] as Field;\n let low = (self.inner[2] as Field) * two_pow_64 + self.inner[3] as Field;\n\n [high, low]\n }\n}\n\n#[test]\nfn smoke_u256_from_bytes32_all_zeroes() {\n let input = [0; 32];\n let result = U256::from_bytes32(input);\n assert(result.inner[0] == 0);\n assert(result.inner[1] == 0);\n assert(result.inner[2] == 0);\n assert(result.inner[3] == 0);\n}\n\n#[test]\nfn smoke_u256_from_bytes32_one_zero_zero_zero() {\n // We want to output [1,0,0,0]\n let input = [\n 0, 0, 0, 0, 0, 0, 0, 1,\n 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0\n ];\n let result = U256::from_bytes32(input);\n\n assert(result.inner[0] == 1);\n assert(result.inner[1] == 0);\n assert(result.inner[2] == 0);\n assert(result.inner[3] == 0);\n}\n\n#[test]\nfn smoke_u256_from_bytes32_test() {\n /*\n input: [ 0xAA, 0xBB, 0xCC, 0xDD, \n 0xEE, 0xFF, 0x00, 0x11, \n 0x22, 0x33, 0x44, 0x55, \n 0x66, 0x77, 0x88, 0x99, \n 0x11, 0x22, 0x33, 0x44, \n 0x55, 0x66, 0x77, 0x88, \n 0x99, 0xAA, 0xBB, 0xCC, \n 0xDD, 0xEE, 0xFF, 0x00\n ]\n output: inner[0]: 0xAABBCCDDEEFF0011\n inner[1]: 0x2233445566778899\n inner[2]: 0x1122334455667788\n inner[3]: 0x99AABBCCDDEEFF00\n */\n let input : [u8;32] = [\n 0xAA, 0xBB, 0xCC, 0xDD,\n 0xEE, 0xFF, 0x00, 0x11,\n 0x22, 0x33, 0x44, 0x55,\n 0x66, 0x77, 0x88, 0x99,\n 0x11, 0x22, 0x33, 0x44,\n 0x55, 0x66, 0x77, 0x88,\n 0x99, 0xAA, 0xBB, 0xCC,\n 0xDD, 0xEE, 0xFF, 0x00\n ];\n let result = U256::from_bytes32(input);\n\n assert(result.inner[0] == 0xAABBCCDDEEFF0011);\n assert(result.inner[1] == 0x2233445566778899);\n assert(result.inner[2] == 0x1122334455667788);\n assert(result.inner[3] == 0x99AABBCCDDEEFF00);\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/src/crates/types/src/utils/uint256.nr"},"85":{"source":"use crate::constants::{GENERATOR_INDEX__SIDE_EFFECT};\nuse dep::std::cmp::Eq;\nuse crate::traits::{Empty, Hash, Serialize, Deserialize};\n\ntrait Ordered {\n fn counter(self) -> u32;\n}\n\nstruct SideEffect{\n value: Field,\n counter: u32,\n}\n\nimpl Ordered for SideEffect {\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl Eq for SideEffect {\n fn eq(self, side_effect: SideEffect) -> bool {\n (self.value == side_effect.value)\n & (self.counter == side_effect.counter)\n }\n}\n\nimpl Empty for SideEffect {\n fn empty() -> Self {\n SideEffect {\n value: 0,\n counter: 0,\n }\n }\n}\n\nimpl Hash for SideEffect {\n fn hash(self) -> Field {\n dep::std::hash::pedersen_hash_with_separator(\n self.serialize() , GENERATOR_INDEX__SIDE_EFFECT)\n }\n}\n\nimpl Serialize<2> for SideEffect {\n fn serialize(self) -> [Field; 2] {\n [self.value, self.counter as Field]\n }\n}\n\nimpl Deserialize<2> for SideEffect {\n fn deserialize(values: [Field; 2]) -> Self {\n Self {\n value: values[0],\n counter: values[1] as u32,\n }\n }\n}\n\nstruct SideEffectLinkedToNoteHash{\n value: Field,\n note_hash: Field,\n counter: u32,\n}\n\nimpl Ordered for SideEffectLinkedToNoteHash {\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl Eq for SideEffectLinkedToNoteHash {\n fn eq(self, side_effect: SideEffectLinkedToNoteHash) -> bool {\n (self.value == side_effect.value)\n & (self.note_hash == side_effect.note_hash) \n & (self.counter == side_effect.counter)\n }\n}\n\nimpl Empty for SideEffectLinkedToNoteHash {\n fn empty() -> Self {\n SideEffectLinkedToNoteHash {\n value: 0,\n note_hash: 0,\n counter: 0,\n }\n }\n}\n\nimpl Hash for SideEffectLinkedToNoteHash {\n fn hash(self) -> Field {\n dep::std::hash::pedersen_hash_with_separator(\n self.serialize(),\n GENERATOR_INDEX__SIDE_EFFECT)\n }\n}\n\nimpl Serialize<3> for SideEffectLinkedToNoteHash {\n fn serialize(self) -> [Field; 3] {\n [self.value, self.note_hash, self.counter as Field]\n }\n}\n\nimpl Deserialize<3> for SideEffectLinkedToNoteHash {\n fn deserialize(values: [Field; 3]) -> Self {\n Self {\n value: values[0],\n note_hash: values[1],\n counter: values[2] as u32,\n }\n }\n}\n\n","path":"/usr/src/noir-projects/noir-protocol-circuits/src/crates/types/src/abis/side_effect.nr"},"88":{"source":"use crate::abis::{function_data::FunctionData, public_circuit_public_inputs::PublicCircuitPublicInputs};\nuse crate::address::AztecAddress;\nuse crate::constants::GENERATOR_INDEX__CALL_STACK_ITEM;\nuse crate::traits::Hash;\n\nstruct PublicCallStackItem {\n contract_address: AztecAddress,\n public_inputs: PublicCircuitPublicInputs,\n function_data: FunctionData,\n // True if this call stack item represents a request to execute a function rather than a\n // fulfilled execution. Used when enqueuing calls from private to public functions.\n is_execution_request: bool,\n}\n\nimpl Hash for PublicCallStackItem {\n fn hash(self) -> Field {\n let item = if self.is_execution_request {\n self.as_execution_request()\n } else {\n self\n };\n\n dep::std::hash::pedersen_hash_with_separator([\n item.contract_address.to_field(),\n item.function_data.hash(),\n item.public_inputs.hash(),\n ], GENERATOR_INDEX__CALL_STACK_ITEM)\n }\n}\n\nimpl PublicCallStackItem {\n fn as_execution_request(self) -> Self {\n let public_inputs = self.public_inputs;\n let mut request_public_inputs: PublicCircuitPublicInputs = dep::std::unsafe::zeroed();\n request_public_inputs.call_context = public_inputs.call_context;\n request_public_inputs.args_hash = public_inputs.args_hash;\n\n let call_stack_item = PublicCallStackItem {\n contract_address: self.contract_address,\n function_data: self.function_data,\n is_execution_request: true,\n public_inputs: request_public_inputs\n };\n call_stack_item\n }\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/src/crates/types/src/abis/public_call_stack_item.nr"},"89":{"source":"use crate::constants::GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST;\nuse dep::std::cmp::Eq;\nuse crate::traits::{Empty, Hash};\n\nstruct PublicDataUpdateRequest {\n leaf_slot : Field,\n new_value : Field\n}\n\nimpl Eq for PublicDataUpdateRequest {\n fn eq(self, update_request: PublicDataUpdateRequest) -> bool {\n (update_request.leaf_slot == self.leaf_slot)\n & (update_request.new_value == self.new_value)\n }\n}\n\nimpl Empty for PublicDataUpdateRequest {\n fn empty() -> Self {\n Self {\n leaf_slot : 0,\n new_value : 0\n }\n }\n}\n\nimpl Hash for PublicDataUpdateRequest {\n fn hash(self) -> Field {\n dep::std::hash::pedersen_hash_with_separator([\n self.leaf_slot,\n self.new_value\n ], GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST)\n }\n}\n\nimpl PublicDataUpdateRequest {\n pub fn is_empty(self) -> bool {\n (self.leaf_slot == 0) & (self.new_value == 0)\n }\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/src/crates/types/src/abis/public_data_update_request.nr"},"90":{"source":"use crate::{\n abis::{call_context::CallContext, side_effect::{SideEffect, SideEffectLinkedToNoteHash}},\n address::AztecAddress,\n constants::{\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL, MAX_NEW_NULLIFIERS_PER_CALL, MAX_NEW_COMMITMENTS_PER_CALL,\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_DATA_READS_PER_CALL,\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL, NUM_FIELDS_PER_SHA256, RETURN_VALUES_LENGTH,\n GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS, PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH\n},\n contrakt::{storage_read::StorageRead, storage_update_request::StorageUpdateRequest},\n hash::pedersen_hash, header::Header, traits::{Hash, Serialize, Deserialize}, utils::reader::Reader\n};\n\nstruct PublicCircuitPublicInputs{\n call_context: CallContext,\n\n args_hash: Field,\n return_values: [Field; RETURN_VALUES_LENGTH],\n\n contract_storage_update_requests: [StorageUpdateRequest; MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\n contract_storage_reads: [StorageRead; MAX_PUBLIC_DATA_READS_PER_CALL],\n\n // todo: add sideeffect ranges for the input to these hashes\n public_call_stack_hashes: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n new_commitments: [SideEffect; MAX_NEW_COMMITMENTS_PER_CALL],\n new_nullifiers: [SideEffectLinkedToNoteHash; MAX_NEW_NULLIFIERS_PER_CALL],\n new_l2_to_l1_msgs: [Field; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n\n unencrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\n\n // Here so that the gas cost of this request can be measured by circuits, without actually needing to feed in the\n // variable-length data.\n unencrypted_log_preimages_length: Field,\n\n // Header of a block whose state is used during public execution. Set by sequencer to be a header of a block\n // previous to the one in which the tx is included.\n historical_header: Header,\n\n prover_address: AztecAddress,\n}\n\nimpl Eq for PublicCircuitPublicInputs {\n fn eq(self, other: Self) -> bool {\n self.serialize() == other.serialize()\n }\n}\n\nimpl Serialize<PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH> for PublicCircuitPublicInputs {\n fn serialize(self) -> [Field; PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\n let mut fields: BoundedVec<Field, PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH> = BoundedVec::new(0); \n fields.extend_from_array(self.call_context.serialize()); \n fields.push(self.args_hash);\n fields.extend_from_array(self.return_values);\n for i in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL {\n fields.extend_from_array(self.contract_storage_update_requests[i].serialize());\n }\n for i in 0..MAX_PUBLIC_DATA_READS_PER_CALL {\n fields.extend_from_array(self.contract_storage_reads[i].serialize());\n }\n fields.extend_from_array(self.public_call_stack_hashes);\n\n for i in 0..MAX_NEW_COMMITMENTS_PER_CALL{\n fields.extend_from_array(self.new_commitments[i].serialize());\n }\n for i in 0..MAX_NEW_NULLIFIERS_PER_CALL{\n fields.extend_from_array(self.new_nullifiers[i].serialize());\n }\n fields.extend_from_array(self.new_l2_to_l1_msgs);\n fields.extend_from_array(self.unencrypted_logs_hash);\n fields.push(self.unencrypted_log_preimages_length);\n fields.extend_from_array(self.historical_header.serialize());\n fields.push(self.prover_address.to_field());\n fields.storage\n }\n}\n\nimpl Deserialize<PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH> for PublicCircuitPublicInputs {\n fn deserialize(serialized: [Field; PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH]) -> Self {\n // TODO(#4390): This should accept a reader ^ to avoid copying data.\n let mut reader = Reader::new(serialized);\n let inputs = PublicCircuitPublicInputs {\n call_context: reader.read_struct(CallContext::deserialize),\n args_hash: reader.read(),\n return_values: reader.read_array([0; RETURN_VALUES_LENGTH]),\n contract_storage_update_requests: reader.read_struct_array(StorageUpdateRequest::deserialize, [StorageUpdateRequest::empty(); MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL]),\n contract_storage_reads: reader.read_struct_array(StorageRead::deserialize, [StorageRead::empty(); MAX_PUBLIC_DATA_READS_PER_CALL]),\n public_call_stack_hashes: reader.read_array([0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL]),\n new_commitments: reader.read_struct_array(SideEffect::deserialize, [SideEffect::empty(); MAX_NEW_COMMITMENTS_PER_CALL]),\n new_nullifiers: reader.read_struct_array(SideEffectLinkedToNoteHash::deserialize, [SideEffectLinkedToNoteHash::empty(); MAX_NEW_NULLIFIERS_PER_CALL]),\n new_l2_to_l1_msgs: reader.read_array([0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL]),\n unencrypted_logs_hash: reader.read_array([0; NUM_FIELDS_PER_SHA256]),\n unencrypted_log_preimages_length: reader.read(),\n historical_header: reader.read_struct(Header::deserialize),\n prover_address: reader.read_struct(AztecAddress::deserialize),\n };\n\n reader.finish();\n inputs\n }\n}\n\nimpl Hash for PublicCircuitPublicInputs {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let pcpi: PublicCircuitPublicInputs = dep::std::unsafe::zeroed();\n let serialized = pcpi.serialize();\n let deserialized = PublicCircuitPublicInputs::deserialize(serialized);\n assert(pcpi.eq(deserialized));\n}\n\n#[test]\nfn hash_smoke() {\n let pcpi: PublicCircuitPublicInputs = dep::std::unsafe::zeroed();\n let _hashed = pcpi.hash();\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/src/crates/types/src/abis/public_circuit_public_inputs.nr"},"96":{"source":"use crate::{\n abis::function_selector::FunctionSelector,\n constants::{GENERATOR_INDEX__FUNCTION_DATA, FUNCTION_DATA_LENGTH}, hash::pedersen_hash,\n traits::{Serialize, Hash, Deserialize}\n};\n\nstruct FunctionData {\n // First four bytes of the abi encoding \n // of a function. \n selector : FunctionSelector,\n is_internal : bool,\n is_private : bool,\n is_constructor : bool,\n}\n\nimpl Eq for FunctionData {\n fn eq(self, other: Self) -> bool {\n self.selector.eq(other.selector) &\n self.is_internal == other.is_internal &\n self.is_private == other.is_private &\n self.is_constructor == other.is_constructor\n }\n}\n\nimpl Serialize<FUNCTION_DATA_LENGTH> for FunctionData {\n // A field is ~256 bits\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/3057): Since, function data can fit into a Field,\n // This method will simply return a bit packed Field instead of hashing\n fn serialize(self) -> [Field; FUNCTION_DATA_LENGTH] {\n [\n self.selector.to_field(),\n self.is_internal as Field,\n self.is_private as Field,\n self.is_constructor as Field,\n ]\n }\n}\n\nimpl Deserialize<FUNCTION_DATA_LENGTH> for FunctionData {\n fn deserialize(serialized: [Field; FUNCTION_DATA_LENGTH]) -> Self {\n Self {\n selector: FunctionSelector::from_field(serialized[0]),\n is_internal: serialized[1] as bool,\n is_private: serialized[2] as bool,\n is_constructor: serialized[3] as bool,\n }\n }\n}\n\nimpl Hash for FunctionData {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__FUNCTION_DATA)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let data: FunctionData = dep::std::unsafe::zeroed();\n let serialized = data.serialize();\n let deserialized = FunctionData::deserialize(serialized);\n assert(data.eq(deserialized));\n}\n\n#[test]\nfn empty_hash() {\n let data: FunctionData = dep::std::unsafe::zeroed();\n let hash = data.hash();\n\n // Value from function_data.test.ts \"computes empty item hash\" test\n assert_eq(hash, 0x200569267c0f73ac89aaa414239398db9445dd4ad3a8cf37015cd55b8d4c5e8d);\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/src/crates/types/src/abis/function_data.nr"},"97":{"source":"use dep::std::cmp::Eq;\n\nstruct AppendOnlyTreeSnapshot {\n root : Field,\n next_available_leaf_index : u32\n}\n\nglobal APPEND_ONLY_TREE_SNAPSHOT_LENGTH: Field = 2;\n\nimpl AppendOnlyTreeSnapshot {\n pub fn serialize(self) -> [Field; APPEND_ONLY_TREE_SNAPSHOT_LENGTH] {\n [self.root, self.next_available_leaf_index as Field]\n }\n\n pub fn deserialize(serialized: [Field; APPEND_ONLY_TREE_SNAPSHOT_LENGTH]) -> AppendOnlyTreeSnapshot {\n AppendOnlyTreeSnapshot { root: serialized[0], next_available_leaf_index: serialized[1] as u32 }\n }\n\n pub fn zero() -> Self {\n Self { root: 0, next_available_leaf_index: 0 }\n }\n}\n\nimpl Eq for AppendOnlyTreeSnapshot {\n fn eq(self, other : AppendOnlyTreeSnapshot) -> bool {\n (self.root == other.root) & (self.next_available_leaf_index == other.next_available_leaf_index)\n }\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/src/crates/types/src/abis/append_only_tree_snapshot.nr"},"100":{"source":"use crate::address::AztecAddress;\nuse dep::std::cmp::Eq;\nuse crate::traits::Empty;\n\nstruct CallerContext {\n msg_sender: AztecAddress,\n storage_contract_address: AztecAddress,\n}\n\nimpl Eq for CallerContext {\n fn eq(self, caller_context: CallerContext) -> bool {\n caller_context.msg_sender.eq(self.msg_sender)\n & caller_context.storage_contract_address.eq(self.storage_contract_address)\n }\n}\n\nimpl Empty for CallerContext {\n fn empty() -> Self {\n CallerContext {\n msg_sender: AztecAddress::zero(),\n storage_contract_address: AztecAddress::zero(),\n }\n }\n}\n\nimpl CallerContext {\n pub fn is_empty(self) -> bool {\n self.msg_sender.is_zero() & self.storage_contract_address.is_zero()\n }\n}\n\nstruct CallRequest {\n hash: Field,\n caller_contract_address: AztecAddress,\n caller_context: CallerContext,\n start_side_effect_counter: u32,\n end_side_effect_counter: u32,\n}\n\nimpl Eq for CallRequest {\n fn eq(self, call_request: CallRequest) -> bool {\n (call_request.hash == self.hash)\n & (call_request.caller_contract_address.eq(self.caller_contract_address))\n & (call_request.caller_context.eq(self.caller_context))\n & (call_request.start_side_effect_counter == self.start_side_effect_counter)\n & (call_request.end_side_effect_counter == self.end_side_effect_counter)\n }\n}\n\nimpl Empty for CallRequest {\n fn empty() -> Self {\n CallRequest {\n hash: 0,\n caller_contract_address: AztecAddress::zero(),\n caller_context: CallerContext::empty(),\n start_side_effect_counter: 0,\n end_side_effect_counter: 0,\n }\n }\n}\n\nimpl CallRequest {\n pub fn is_empty(self) -> bool {\n self.hash == 0\n }\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/src/crates/types/src/abis/call_request.nr"},"101":{"source":"use crate::{\n abis::function_selector::FunctionSelector, address::{EthAddress, AztecAddress},\n constants::{CALL_CONTEXT_LENGTH, GENERATOR_INDEX__CALL_CONTEXT}, hash::pedersen_hash,\n traits::{Deserialize, Hash, Serialize}\n};\n\n// docs:start:call-context\nstruct CallContext {\n msg_sender : AztecAddress,\n storage_contract_address : AztecAddress,\n portal_contract_address : EthAddress,\n\n function_selector : FunctionSelector,\n\n is_delegate_call : bool,\n is_static_call : bool,\n is_contract_deployment : bool,\n\n start_side_effect_counter : u32,\n}\n// docs:end:call-context\n\nimpl CallContext {\n fn assert_is_zero(self) {\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/3595)\n assert(self.msg_sender.to_field() == 0);\n assert(self.storage_contract_address.to_field() == 0);\n assert(self.portal_contract_address.to_field() == 0);\n assert(self.function_selector.to_field() == 0);\n assert(self.is_delegate_call == false);\n assert(self.is_static_call == false);\n assert(self.is_contract_deployment == false);\n assert(self.start_side_effect_counter == 0);\n }\n}\n\nimpl Eq for CallContext {\n fn eq(self, call_context: CallContext) -> bool {\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/3595)\n call_context.msg_sender.eq(self.msg_sender)\n & call_context.storage_contract_address.eq(self.storage_contract_address)\n & call_context.portal_contract_address.eq(self.portal_contract_address)\n & call_context.function_selector.eq(self.function_selector)\n & (call_context.is_delegate_call == self.is_delegate_call)\n & (call_context.is_static_call == self.is_static_call)\n & (call_context.is_contract_deployment == self.is_contract_deployment)\n & (call_context.start_side_effect_counter == self.start_side_effect_counter)\n }\n}\n\nimpl Hash for CallContext {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__CALL_CONTEXT)\n }\n}\n\nimpl Serialize<CALL_CONTEXT_LENGTH> for CallContext {\n fn serialize(self) -> [Field; CALL_CONTEXT_LENGTH] {\n [\n self.msg_sender.to_field(),\n self.storage_contract_address.to_field(),\n self.portal_contract_address.to_field(),\n self.function_selector.to_field(),\n self.is_delegate_call as Field,\n self.is_static_call as Field,\n self.is_contract_deployment as Field,\n self.start_side_effect_counter as Field,\n ]\n }\n}\n\nimpl Deserialize<CALL_CONTEXT_LENGTH> for CallContext {\n fn deserialize(serialized: [Field; CALL_CONTEXT_LENGTH]) -> CallContext {\n CallContext {\n msg_sender: AztecAddress::from_field(serialized[0]),\n storage_contract_address: AztecAddress::from_field(serialized[1]),\n portal_contract_address: EthAddress::from_field(serialized[2]),\n function_selector: FunctionSelector::from_field(serialized[3]),\n is_delegate_call: serialized[4] as bool,\n is_static_call: serialized[5] as bool,\n is_contract_deployment: serialized[6] as bool,\n start_side_effect_counter: serialized[7] as u32,\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let context: CallContext = dep::std::unsafe::zeroed();\n let serialized = context.serialize();\n let deserialized = CallContext::deserialize(serialized);\n assert(context.eq(deserialized));\n}\n\n#[test]\nfn hash_smoke() {\n let context: CallContext = dep::std::unsafe::zeroed();\n let _hashed = context.hash();\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/src/crates/types/src/abis/call_context.nr"},"104":{"source":"use crate::constants::GENERATOR_INDEX__PUBLIC_DATA_READ;\nuse dep::std::cmp::Eq;\nuse crate::traits::{Empty, Hash};\n\nstruct PublicDataRead {\n leaf_slot : Field,\n value : Field,\n}\n\nimpl Eq for PublicDataRead {\n fn eq(self, public_data_read: PublicDataRead) -> bool {\n (public_data_read.leaf_slot == self.leaf_slot) & (public_data_read.value == self.value)\n }\n}\n\nimpl Empty for PublicDataRead {\n fn empty() -> Self {\n Self {\n leaf_slot : 0,\n value : 0,\n }\n }\n}\n\nimpl Hash for PublicDataRead {\n fn hash(self) -> Field {\n dep::std::hash::pedersen_hash_with_separator([\n self.leaf_slot,\n self.value,\n ], GENERATOR_INDEX__PUBLIC_DATA_READ)\n }\n}\n\nimpl PublicDataRead {\n pub fn is_empty(self) -> bool {\n (self.leaf_slot == 0) & (self.value == 0)\n }\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/src/crates/types/src/abis/public_data_read.nr"},"105":{"source":"use crate::abis::{\n combined_accumulated_data::{\n CombinedAccumulatedData, FinalAccumulatedData, AccumulatedNonRevertibleData,\n CombinedAccumulatedDataBuilder\n},\n combined_constant_data::CombinedConstantData\n};\nuse crate::mocked::AggregationObject;\n\nstruct PrivateKernelInnerCircuitPublicInputs {\n aggregation_object: AggregationObject,\n max_non_revertible_side_effect_counter: u32,\n end: CombinedAccumulatedData,\n constants: CombinedConstantData,\n is_private: bool,\n}\n\nstruct PrivateKernelTailCircuitPublicInputs {\n aggregation_object: AggregationObject,\n end_non_revertible: AccumulatedNonRevertibleData,\n end: FinalAccumulatedData,\n constants: CombinedConstantData,\n is_private: bool,\n}\n\nstruct PublicKernelCircuitPublicInputs {\n aggregation_object: AggregationObject,\n end_non_revertible: AccumulatedNonRevertibleData,\n end: CombinedAccumulatedData,\n constants: CombinedConstantData,\n is_private: bool,\n}\n\nstruct PrivateKernelCircuitPublicInputsBuilder {\n aggregation_object: AggregationObject,\n max_non_revertible_side_effect_counter: u32,\n end: CombinedAccumulatedDataBuilder,\n constants: CombinedConstantData,\n is_private: bool,\n}\n\nimpl PrivateKernelCircuitPublicInputsBuilder {\n pub fn to_inner(self) -> PrivateKernelInnerCircuitPublicInputs {\n PrivateKernelInnerCircuitPublicInputs {\n aggregation_object: self.aggregation_object,\n max_non_revertible_side_effect_counter: self.max_non_revertible_side_effect_counter,\n end: self.end.finish(),\n constants: self.constants,\n is_private: self.is_private\n }\n }\n\n pub fn to_tail(\n self,\n end_non_revertible: AccumulatedNonRevertibleData\n ) -> PrivateKernelTailCircuitPublicInputs {\n PrivateKernelTailCircuitPublicInputs {\n aggregation_object: self.aggregation_object,\n end_non_revertible,\n end: self.end.to_final(),\n constants: self.constants,\n is_private: self.is_private\n }\n }\n}\n\nstruct PublicKernelCircuitPublicInputsBuilder {\n aggregation_object: AggregationObject,\n end_non_revertible: AccumulatedNonRevertibleData,\n end: CombinedAccumulatedDataBuilder,\n constants: CombinedConstantData,\n is_private: bool,\n}\n\nimpl PublicKernelCircuitPublicInputsBuilder {\n pub fn to_inner(self) -> PublicKernelCircuitPublicInputs {\n PublicKernelCircuitPublicInputs {\n aggregation_object: self.aggregation_object,\n end_non_revertible: self.end_non_revertible,\n end: self.end.finish(),\n constants: self.constants,\n is_private: self.is_private\n }\n }\n}\n\n","path":"/usr/src/noir-projects/noir-protocol-circuits/src/crates/types/src/abis/kernel_circuit_public_inputs.nr"},"107":{"source":"use crate::utils::field::field_from_bytes;\nuse dep::std::cmp::Eq;\nuse crate::traits::{Serialize, Deserialize};\n\nglobal SELECTOR_SIZE = 4;\n\nstruct FunctionSelector {\n // 1st 4-bytes of abi-encoding of function.\n inner: u32,\n}\n\nimpl Eq for FunctionSelector {\n fn eq(self, function_selector: FunctionSelector) -> bool {\n function_selector.inner == self.inner\n }\n}\n\nimpl Serialize<1> for FunctionSelector {\n fn serialize(self: Self) -> [Field; 1] {\n [self.inner as Field]\n }\n}\n\nimpl Deserialize<1> for FunctionSelector {\n fn deserialize(fields: [Field; 1]) -> Self {\n Self {\n inner: fields[0] as u32\n }\n }\n}\n\nimpl FunctionSelector {\n fn to_field(self) -> Field {\n self.inner as Field\n }\n\n pub fn from_u32(value: u32) -> Self {\n Self { inner: value }\n }\n\n pub fn from_field(value: Field) -> Self {\n Self { inner: value as u32 }\n }\n\n pub fn from_signature<N>(signature: str<N>) -> Self {\n let bytes = signature.as_bytes();\n let hash = dep::std::hash::keccak256(bytes, bytes.len() as u32);\n\n let mut selector_be_bytes = [0; SELECTOR_SIZE];\n for i in 0..SELECTOR_SIZE {\n selector_be_bytes[i] = hash[i];\n }\n\n FunctionSelector::from_field(field_from_bytes(selector_be_bytes, true))\n }\n\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/src/crates/types/src/abis/function_selector.nr"},"108":{"source":"use crate::address::{AztecAddress, EthAddress};\nuse crate::contract_class::ContractClassId;\nuse crate::constants::GENERATOR_INDEX__CONTRACT_LEAF;\nuse dep::std::cmp::Eq;\nuse crate::traits::{Empty, Hash};\n\nstruct NewContractData {\n contract_address: AztecAddress,\n portal_contract_address: EthAddress,\n contract_class_id: ContractClassId,\n}\n\nimpl Eq for NewContractData {\n fn eq(self, data: NewContractData) -> bool {\n data.contract_address.eq(self.contract_address)\n & data.portal_contract_address.eq(self.portal_contract_address)\n & data.contract_class_id.eq(self.contract_class_id)\n }\n}\n\nimpl Empty for NewContractData {\n fn empty() -> Self {\n Self {\n contract_address : AztecAddress::empty(),\n portal_contract_address : EthAddress::empty(),\n contract_class_id: ContractClassId::from_field(0),\n }\n }\n}\n\nimpl Hash for NewContractData {\n fn hash(self) -> Field {\n if self.is_empty() {\n 0 // We want to return 0 here since the contract_address is zero\n } else {\n dep::std::hash::pedersen_hash_with_separator([\n self.contract_address.to_field(),\n self.portal_contract_address.to_field(),\n self.contract_class_id.to_field(),\n ], GENERATOR_INDEX__CONTRACT_LEAF)\n }\n }\n}\n\nimpl NewContractData {\n pub fn is_empty(self) -> bool {\n (self.contract_address.to_field() == 0)\n & (self.portal_contract_address.to_field() == 0)\n & (self.contract_class_id.to_field() == 0)\n }\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/src/crates/types/src/abis/new_contract_data.nr"},"110":{"source":"use crate::abis::{\n function_data::FunctionData, private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_circuit_public_inputs::PublicCircuitPublicInputs\n};\nuse crate::address::AztecAddress;\nuse crate::constants::{GENERATOR_INDEX__CONTRACT_LEAF};\nuse crate::traits::Hash;\n\nstruct ContractClassId {\n inner: Field\n}\n\nimpl Eq for ContractClassId {\n fn eq(self, other: ContractClassId) -> bool {\n other.inner == self.inner\n }\n}\n\nimpl ContractClassId {\n pub fn compute(\n artifact_hash: Field,\n private_functions_root: Field,\n public_bytecode_commitment: Field\n ) -> Self {\n let hash = dep::std::hash::pedersen_hash_with_separator(\n [\n artifact_hash,\n private_functions_root,\n public_bytecode_commitment\n ],\n GENERATOR_INDEX__CONTRACT_LEAF\n ); // TODO(@spalladino): Update generator index\n\n ContractClassId::from_field(hash)\n }\n\n fn to_field(self) -> Field {\n self.inner as Field\n }\n\n pub fn from_field(value: Field) -> Self {\n Self { inner: value }\n }\n\n pub fn serialize(self: Self) -> [Field; 1] {\n [self.inner]\n }\n\n pub fn deserialize(fields: [Field; 1]) -> Self {\n Self { inner: fields[0] }\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/src/crates/types/src/contract_class.nr"},"122":{"source":"use dep::types::abis::public_call_data::PublicCallData;\nuse dep::types::abis::kernel_data::{PublicKernelData};\nuse dep::types::PublicKernelCircuitPublicInputs;\nuse dep::types::abis::kernel_circuit_public_inputs::PublicKernelCircuitPublicInputsBuilder;\nuse crate::common;\nuse dep::std::unsafe;\n\nstruct PublicKernelAppLogicCircuitPrivateInputs {\n previous_kernel: PublicKernelData,\n public_call: PublicCallData,\n}\n\nimpl PublicKernelAppLogicCircuitPrivateInputs {\n\n // this is the only difference between the two PublicKernels' logic:\n fn validate_inputs(self) {\n let previous_call_is_private = self.previous_kernel.public_inputs.is_private;\n assert(\n previous_call_is_private == false, \"Previous kernel must be public when in this public kernel version\"\n );\n }\n\n fn public_kernel_app_logic(self) -> PublicKernelCircuitPublicInputs {\n // construct the circuit outputs\n let mut public_inputs: PublicKernelCircuitPublicInputsBuilder = unsafe::zeroed();\n\n // initialise the end state with our provided previous kernel state\n common::initialize_end_values(self.previous_kernel, &mut public_inputs);\n\n // validate the inputs common to all invocation circumstances\n common::validate_inputs(self.public_call);\n\n // validate the inputs unique to having a previous public kernel\n self.validate_inputs();\n\n // Pops the item from the call stack and validates it against the current execution.\n let call_request = public_inputs.end.public_call_stack.pop();\n common::validate_call_against_request(self.public_call, call_request);\n\n common::update_public_end_values(self.public_call, &mut public_inputs);\n\n common::accumulate_unencrypted_logs(\n self.public_call,\n self.previous_kernel.public_inputs.end.unencrypted_logs_hash,\n self.previous_kernel.public_inputs.end.unencrypted_log_preimages_length,\n &mut public_inputs\n );\n\n public_inputs.to_inner()\n }\n}\n\nmod tests {\n use crate::{\n public_kernel_app_logic::PublicKernelAppLogicCircuitPrivateInputs,\n utils::{\n assert_eq_public_data_reads, assert_eq_public_data_update_requests, compute_public_data_reads,\n compute_public_data_update_requests\n }\n };\n use dep::types::{\n abis::{\n kernel_circuit_public_inputs::PublicKernelCircuitPublicInputs, public_data_read::PublicDataRead,\n public_data_update_request::PublicDataUpdateRequest,\n side_effect::{SideEffect, SideEffectLinkedToNoteHash}\n },\n hash::{compute_l2_to_l1_hash, compute_logs_hash, silo_commitment, silo_nullifier},\n tests::{kernel_data_builder::PreviousKernelDataBuilder, public_call_data_builder::PublicCallDataBuilder},\n utils::{arrays::array_eq}\n };\n use dep::types::constants::{MAX_PUBLIC_DATA_READS_PER_CALL, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL};\n\n struct PublicKernelAppLogicCircuitPrivateInputsBuilder {\n previous_kernel: PreviousKernelDataBuilder,\n public_call: PublicCallDataBuilder,\n }\n\n impl PublicKernelAppLogicCircuitPrivateInputsBuilder {\n pub fn new() -> Self {\n let previous_kernel = PreviousKernelDataBuilder::new().is_public();\n let public_call = PublicCallDataBuilder::new();\n\n PublicKernelAppLogicCircuitPrivateInputsBuilder { previous_kernel, public_call }\n }\n\n pub fn is_delegate_call(&mut self) -> Self {\n let _ = self.public_call.is_delegate_call();\n *self\n }\n\n pub fn get_current_public_data_reads(self) -> [PublicDataRead; MAX_PUBLIC_DATA_READS_PER_CALL] {\n let read_requests = self.public_call.public_inputs.contract_storage_reads.storage;\n compute_public_data_reads(self.public_call.contract_address, read_requests)\n }\n\n pub fn get_current_public_data_update_requests(self) -> [PublicDataUpdateRequest; MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL] {\n compute_public_data_update_requests(\n self.public_call.contract_address,\n self.public_call.public_inputs.contract_storage_update_requests.storage\n )\n }\n\n pub fn execute(&mut self) -> PublicKernelCircuitPublicInputs {\n let public_call = self.public_call.finish();\n // Adjust the call stack item hash for the current call in the previous iteration.\n let hash = public_call.call_stack_item.hash();\n let is_delegate_call = public_call.call_stack_item.public_inputs.call_context.is_delegate_call;\n self.previous_kernel.push_public_call_request(hash, is_delegate_call);\n let previous_kernel = self.previous_kernel.to_public_kernel_data();\n\n let kernel = PublicKernelAppLogicCircuitPrivateInputs { previous_kernel, public_call };\n\n kernel.public_kernel_app_logic()\n }\n\n pub fn succeeded(&mut self) {\n let _ = self.execute();\n }\n\n pub fn failed(&mut self) {\n let _ = self.execute();\n }\n }\n\n #[test]\n fn public_kernel_circuit_with_public_previous_kernel_should_succeed() {\n let mut builder = PublicKernelAppLogicCircuitPrivateInputsBuilder::new();\n builder.succeeded();\n }\n\n // TODO: Find another way to test this. Currently it will crash because we are popping from an empty array:\n // The application panicked (crashed). Message: Expected array index to fit in u64\n // #[test(should_fail_with=\"Public call stack can not be empty\")]\n // fn public_previous_kernel_empty_public_call_stack_should_fail() {\n // let builder = PublicKernelAppLogicCircuitPrivateInputsBuilder::new();\n // let previous_kernel = builder.previous_kernel.finish();\n // let public_call = builder.public_call.finish();\n // let kernel = PublicKernelAppLogicCircuitPrivateInputs {\n // previous_kernel,\n // public_call,\n // };\n //\n // let _ = kernel.public_kernel_app_logic();\n // }\n\n #[test(should_fail_with=\"Previous kernel must be public when in this public kernel version\")]\n fn public_previous_kernel_private_previous_kernel_should_fail() {\n let mut builder = PublicKernelAppLogicCircuitPrivateInputsBuilder::new();\n builder.previous_kernel = PreviousKernelDataBuilder::new();\n\n builder.failed();\n }\n\n #[test]\n fn circuit_outputs_should_be_correctly_populated_with_previous_commitments() {\n let mut builder = PublicKernelAppLogicCircuitPrivateInputsBuilder::new();\n let contract_address = builder.public_call.contract_address;\n // Setup 2 new commitments on the previous kernel.\n builder.previous_kernel.append_new_commitments(2);\n let previous = builder.previous_kernel.end.new_commitments.storage;\n // Setup 2 new commitments on the current public inputs.\n let current = [\n SideEffect { value: previous[1].value + 1, counter: 3 },\n SideEffect { value: previous[1].value + 2, counter: 4 }\n ];\n builder.public_call.public_inputs.new_commitments.extend_from_array(current);\n let siloed = current.map(|c: SideEffect| silo_commitment(contract_address, c.value));\n let new_commitments = [\n previous[0], previous[1], SideEffect { value: siloed[0], counter: 3 }, SideEffect { value: siloed[1], counter: 4 }\n ];\n\n let public_inputs = builder.execute();\n\n assert(array_eq(public_inputs.end.new_commitments, new_commitments));\n }\n\n #[test]\n fn circuit_outputs_should_be_correctly_populated_with_previous_update_requests() {\n let mut builder = PublicKernelAppLogicCircuitPrivateInputsBuilder::new();\n // Setup 2 data writes on the previous kernel.\n builder.previous_kernel.append_public_data_update_requests(2);\n let previous = builder.previous_kernel.end.public_data_update_requests.storage;\n // Setup 2 data writes on the current public inputs.\n builder.public_call.append_update_requests(2);\n let current = builder.get_current_public_data_update_requests();\n let public_data_update_requests = [previous[0], previous[1], current[0], current[1]];\n\n let public_inputs = builder.execute();\n assert_eq_public_data_update_requests(\n public_inputs.end.public_data_update_requests,\n public_data_update_requests\n );\n }\n\n #[test]\n fn circuit_outputs_should_be_correctly_populated_with_previous_read_requests() {\n let mut builder = PublicKernelAppLogicCircuitPrivateInputsBuilder::new();\n\n // Setup 2 data reads on the previous kernel.\n builder.previous_kernel.append_public_data_read_requests(2);\n let previous = builder.previous_kernel.end.public_data_reads.storage;\n // Setup 2 data reads on the current public inputs.\n builder.public_call.append_read_requests(2);\n let current = builder.get_current_public_data_reads();\n let public_data_read_requests = [previous[0], previous[1], current[0], current[1]];\n let public_inputs = builder.execute();\n\n assert_eq_public_data_reads(\n public_inputs.end.public_data_reads,\n public_data_read_requests\n );\n }\n\n #[test]\n fn circuit_outputs_should_be_correctly_populated_with_previous_nullifiers() {\n let mut builder = PublicKernelAppLogicCircuitPrivateInputsBuilder::new();\n let contract_address = builder.public_call.contract_address;\n\n // Setup 2 new nullifiers on the previous kernel.\n builder.previous_kernel.append_new_nullifiers(2);\n let previous = builder.previous_kernel.end.new_nullifiers.storage;\n // Setup 2 new commitments on the current public inputs.\n\n let current = [\n SideEffectLinkedToNoteHash { value: previous[2].value + 1, note_hash: 0, counter: 3 }, SideEffectLinkedToNoteHash { value: previous[2].value + 2, note_hash: 0, counter: 4 }\n ];\n\n let siloed = current.map(\n |current: SideEffectLinkedToNoteHash| \n SideEffectLinkedToNoteHash { value: silo_nullifier(contract_address, current.value), note_hash: current.note_hash, counter: current.counter }\n );\n\n builder.public_call.public_inputs.new_nullifiers.extend_from_array(current);\n // There are 3 nullifiers in the previous kernel. The first one is the tx nullifier.\n let new_nullifiers = [previous[0], previous[1], previous[2], siloed[0], siloed[1]];\n\n let public_inputs = builder.execute();\n\n assert(array_eq(public_inputs.end.new_nullifiers, new_nullifiers));\n }\n\n #[test]\n fn circuit_outputs_should_be_correctly_populated_with_previous_l2_to_l1_msg() {\n let mut builder = PublicKernelAppLogicCircuitPrivateInputsBuilder::new();\n\n let contract_address = builder.public_call.contract_address;\n let portal_contract_address = builder.public_call.portal_contract_address;\n // Setup 1 new l2 to l1 message on the previous kernel.\n let previous = [12345];\n\n builder.previous_kernel.end.new_l2_to_l1_msgs.extend_from_array(previous);\n // Setup 1 new l2 to l1 message on the current public inputs.\n let current = [67890];\n builder.public_call.public_inputs.new_l2_to_l1_msgs.extend_from_array(current);\n let tx_context = builder.previous_kernel.tx_context;\n let version = tx_context.version;\n let chain_id = tx_context.chain_id;\n let siloed = current.map(|c| compute_l2_to_l1_hash(contract_address, version, portal_contract_address, chain_id, c));\n let new_l2_to_l1_msgs = [previous[0], siloed[0]];\n\n let public_inputs = builder.execute();\n assert(array_eq(public_inputs.end.new_l2_to_l1_msgs, new_l2_to_l1_msgs));\n }\n // TODO: Break up this test into smaller tests.\n #[test]\n fn circuit_outputs_should_be_correctly_populated_with_previous_public_kernel_logs() {\n let mut builder = PublicKernelAppLogicCircuitPrivateInputsBuilder::new();\n // Logs for the current call stack.\n let unencrypted_logs_hash = [26, 47];\n let unencrypted_log_preimages_length = 50;\n builder.public_call.set_unencrypted_logs(unencrypted_logs_hash, unencrypted_log_preimages_length);\n\n // Logs for the previous call stack.\n let prev_encrypted_logs_hash = [80, 429];\n let prev_encrypted_log_preimages_length = 13;\n let prev_unencrypted_logs_hash = [956, 112];\n let prev_unencrypted_log_preimages_length = 24;\n builder.previous_kernel.set_encrypted_logs(prev_encrypted_logs_hash, prev_encrypted_log_preimages_length);\n builder.previous_kernel.set_unencrypted_logs(\n prev_unencrypted_logs_hash,\n prev_unencrypted_log_preimages_length\n );\n\n let public_inputs = builder.execute();\n\n assert_eq(public_inputs.end.encrypted_log_preimages_length, prev_encrypted_log_preimages_length);\n assert_eq(\n public_inputs.end.unencrypted_log_preimages_length, unencrypted_log_preimages_length + prev_unencrypted_log_preimages_length\n );\n\n assert_eq(public_inputs.end.encrypted_logs_hash, prev_encrypted_logs_hash);\n\n let expected_unencrypted_logs_hash = compute_logs_hash(prev_unencrypted_logs_hash, unencrypted_logs_hash);\n assert_eq(public_inputs.end.unencrypted_logs_hash, expected_unencrypted_logs_hash);\n }\n\n #[test(should_fail_with=\"No contract storage update requests are allowed for static calls\")]\n fn previous_public_kernel_fails_if_contract_storage_update_requests_on_static_call() {\n let mut builder = PublicKernelAppLogicCircuitPrivateInputsBuilder::new();\n builder.public_call.public_inputs.call_context.is_static_call = true;\n builder.public_call.append_update_requests(1);\n\n builder.failed();\n }\n\n #[test(should_fail_with=\"curent contract address must not match storage contract address for delegate calls\")]\n fn previous_public_kernel_fails_if_incorrect_storage_contract_on_delegate_call() {\n let mut builder = PublicKernelAppLogicCircuitPrivateInputsBuilder::new().is_delegate_call();\n\n builder.public_call.contract_address = builder.public_call.public_inputs.call_context.storage_contract_address;\n\n builder.failed();\n }\n\n #[test(should_fail_with=\"new_commitments must be empty for static calls\")]\n fn public_kernel_fails_creating_new_commitments_on_static_call() {\n let mut builder = PublicKernelAppLogicCircuitPrivateInputsBuilder::new();\n builder.public_call.public_inputs.call_context.is_static_call = true;\n builder.public_call.public_inputs.new_commitments.push(SideEffect { value: 1, counter: 0 });\n\n builder.failed();\n }\n\n #[test(should_fail_with=\"new_nullifiers must be empty for static calls\")]\n fn public_kernel_fails_creating_new_nullifiers_on_static_call() {\n let mut builder = PublicKernelAppLogicCircuitPrivateInputsBuilder::new();\n builder.public_call.public_inputs.call_context.is_static_call = true;\n builder.public_call.public_inputs.new_nullifiers.push(SideEffectLinkedToNoteHash { value: 1, note_hash: 0, counter: 0 });\n\n builder.failed();\n }\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/src/crates/public-kernel-lib/src/public_kernel_app_logic.nr"},"123":{"source":"use dep::types::{address::AztecAddress, constants::GENERATOR_INDEX__PUBLIC_LEAF_INDEX};\n\npub fn compute_public_data_tree_index(contract_address: AztecAddress, storage_slot: Field) -> Field {\n dep::std::hash::pedersen_hash_with_separator(\n [\n contract_address.to_field(),\n storage_slot\n ],\n GENERATOR_INDEX__PUBLIC_LEAF_INDEX\n )\n}\n\npub fn compute_public_data_tree_value(value: Field) -> Field {\n // as it's a public value, it doesn't require hashing.\n // leaving this function here in case we decide to change this.\n value\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/src/crates/public-kernel-lib/src/hash.nr"},"127":{"source":"use dep::types::{\n abis::{\n call_request::CallRequest, public_call_stack_item::PublicCallStackItem,\n combined_accumulated_data::{CombinedAccumulatedData, CombinedAccumulatedDataBuilder},\n kernel_circuit_public_inputs::PublicKernelCircuitPublicInputsBuilder,\n new_contract_data::NewContractData, kernel_data::{PrivateKernelTailData, PublicKernelData},\n public_call_data::PublicCallData, public_circuit_public_inputs::PublicCircuitPublicInputs,\n public_data_read::PublicDataRead, public_data_update_request::PublicDataUpdateRequest,\n side_effect::{SideEffect, SideEffectLinkedToNoteHash}\n},\n address::AztecAddress,\n contrakt::{storage_read::StorageRead, storage_update_request::StorageUpdateRequest},\n constants::{\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL, MAX_NEW_COMMITMENTS_PER_CALL, MAX_NEW_NULLIFIERS_PER_CALL,\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,\n MAX_PUBLIC_DATA_READS_PER_CALL, NUM_FIELDS_PER_SHA256\n},\n hash::{silo_commitment, silo_nullifier, compute_l2_to_l1_hash, accumulate_sha256},\n utils::{arrays::{array_length, array_to_bounded_vec}}, traits::is_empty_array\n};\nuse crate::hash::{compute_public_data_tree_index, compute_public_data_tree_value};\n\n// Validates inputs to the kernel circuit that are common to all invocation scenarios.\npub fn validate_inputs(public_call: PublicCallData) {\n // Validates commons inputs for all type of kernel inputs\n let this_call_stack_item: PublicCallStackItem = public_call.call_stack_item;\n assert(\n this_call_stack_item.public_inputs.call_context.is_contract_deployment == false, \"Contract deployment cannot be a public function\"\n );\n assert(\n !this_call_stack_item.contract_address.eq(AztecAddress::zero()), \"Contract address cannot be zero\"\n );\n assert(this_call_stack_item.function_data.selector.to_field() != 0, \"Function signature cannot be zero\");\n assert(\n this_call_stack_item.function_data.is_constructor == false, \"Constructors cannot be public functions\"\n );\n assert(\n this_call_stack_item.function_data.is_private == false, \"Cannot execute a private function with the public kernel circuit\"\n );\n assert(public_call.bytecode_hash != 0, \"Bytecode hash cannot be zero\");\n}\n\npub fn initialize_end_values(\n previous_kernel: PublicKernelData,\n circuit_outputs: &mut PublicKernelCircuitPublicInputsBuilder\n) {\n // Initialises the circuit outputs with the end state of the previous iteration\n circuit_outputs.constants = previous_kernel.public_inputs.constants;\n\n // Ensure the arrays are the same as previously, before we start pushing more data onto them in other\n // functions within this circuit:\n let start = previous_kernel.public_inputs.end;\n\n circuit_outputs.end.new_commitments = array_to_bounded_vec(start.new_commitments);\n circuit_outputs.end.new_nullifiers = array_to_bounded_vec(start.new_nullifiers);\n\n circuit_outputs.end.private_call_stack = array_to_bounded_vec(start.private_call_stack);\n circuit_outputs.end.public_call_stack = array_to_bounded_vec(start.public_call_stack);\n circuit_outputs.end.new_l2_to_l1_msgs = array_to_bounded_vec(start.new_l2_to_l1_msgs);\n\n circuit_outputs.end.public_data_update_requests = array_to_bounded_vec(start.public_data_update_requests);\n circuit_outputs.end.public_data_reads = array_to_bounded_vec(start.public_data_reads);\n\n // Public kernel does not modify encrypted logs values --> we just copy them to output\n circuit_outputs.end.encrypted_logs_hash = start.encrypted_logs_hash;\n circuit_outputs.end.encrypted_log_preimages_length = start.encrypted_log_preimages_length;\n\n circuit_outputs.end.new_contracts = array_to_bounded_vec(previous_kernel.public_inputs.end.new_contracts);\n}\n\nfn perform_static_call_checks(public_call: PublicCallData) {\n let public_inputs = public_call.call_stack_item.public_inputs;\n if public_inputs.call_context.is_static_call {\n // No state changes are allowed for static calls:\n let new_commitments_length = array_length(public_inputs.new_commitments);\n assert(new_commitments_length == 0, \"new_commitments must be empty for static calls\");\n\n let new_nullifiers_length = array_length(public_inputs.new_nullifiers);\n assert(new_nullifiers_length == 0, \"new_nullifiers must be empty for static calls\");\n\n let update_requests_length = array_length(public_inputs.contract_storage_update_requests);\n assert(\n update_requests_length == 0, \"No contract storage update requests are allowed for static calls\"\n );\n }\n}\n\nfn is_valid_caller(request: CallRequest, public_call: PublicCallData) -> bool {\n let call_context = public_call.call_stack_item.public_inputs.call_context;\n let valid_caller_context = request.caller_context.msg_sender.eq(call_context.msg_sender)\n & request.caller_context.storage_contract_address.eq(call_context.storage_contract_address);\n request.caller_contract_address.eq(public_call.call_stack_item.contract_address)\n & (request.caller_context.is_empty() | valid_caller_context)\n}\n\nfn validate_call_requests<N>(\n call_requests: BoundedVec<CallRequest, N>,\n hashes: [Field; N],\n public_call: PublicCallData\n) {\n assert_eq(\n array_length(hashes), call_requests.len(), \"call requests length does not match the expected length\"\n );\n for i in 0..N {\n let hash = hashes[i];\n if hash != 0 {\n let request = call_requests.get_unchecked(i);\n assert_eq(request.hash, hash, \"call stack hash does not match call request hash\");\n assert(is_valid_caller(request, public_call), \"invalid caller\");\n }\n }\n}\n\npub fn update_public_end_values(public_call: PublicCallData, circuit_outputs: &mut PublicKernelCircuitPublicInputsBuilder) {\n // Updates the circuit outputs with new state changes, call stack etc\n circuit_outputs.is_private = false;\n\n // If this call is a static call, certain operations are disallowed, such as creating new state.\n perform_static_call_checks(public_call);\n\n // Update public call stack.\n let public_call_requests = array_to_bounded_vec(public_call.public_call_stack);\n let hashes = public_call.call_stack_item.public_inputs.public_call_stack_hashes;\n validate_call_requests(public_call_requests, hashes, public_call);\n circuit_outputs.end.public_call_stack.extend_from_bounded_vec(public_call_requests);\n\n propagate_new_nullifiers(public_call, circuit_outputs);\n propagate_new_commitments(public_call, circuit_outputs);\n\n propagate_new_l2_to_l1_messages(public_call, circuit_outputs);\n\n propagate_valid_public_data_update_requests(public_call, circuit_outputs);\n\n propagate_valid_public_data_reads(public_call, circuit_outputs);\n}\n\nfn propagate_valid_public_data_update_requests(\n public_call: PublicCallData,\n circuit_outputs: &mut PublicKernelCircuitPublicInputsBuilder\n) {\n let contract_address = public_call.call_stack_item.contract_address;\n let update_requests = public_call.call_stack_item.public_inputs.contract_storage_update_requests;\n\n let mut public_data_update_requests : BoundedVec<PublicDataUpdateRequest, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX> = BoundedVec::new(PublicDataUpdateRequest::empty());\n\n for i in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX {\n let update_request = update_requests[i];\n if (!update_request.is_empty()) {\n let public_data_update_request = PublicDataUpdateRequest {\n leaf_slot: compute_public_data_tree_index(contract_address, update_request.storage_slot),\n new_value: compute_public_data_tree_value(update_request.new_value)\n };\n\n public_data_update_requests.push(public_data_update_request);\n }\n }\n circuit_outputs.end.public_data_update_requests.extend_from_bounded_vec(public_data_update_requests);\n}\n\nfn propagate_valid_public_data_reads(public_call: PublicCallData, circuit_outputs: &mut PublicKernelCircuitPublicInputsBuilder) {\n let contract_address = public_call.call_stack_item.contract_address;\n let read_requests = public_call.call_stack_item.public_inputs.contract_storage_reads;\n\n let mut public_data_reads : BoundedVec<PublicDataRead, MAX_PUBLIC_DATA_READS_PER_CALL> = BoundedVec::new(PublicDataRead::empty());\n\n for i in 0..MAX_PUBLIC_DATA_READS_PER_CALL {\n let read_request: StorageRead = read_requests[i];\n if !read_request.is_empty() {\n let public_data_read = PublicDataRead {\n leaf_slot: compute_public_data_tree_index(contract_address, read_request.storage_slot),\n value: compute_public_data_tree_value(read_request.current_value)\n };\n public_data_reads.push(public_data_read);\n }\n }\n circuit_outputs.end.public_data_reads.extend_from_bounded_vec(public_data_reads);\n}\n\nfn propagate_new_commitments(\n public_call: PublicCallData,\n circuit_outputs: &mut PublicKernelCircuitPublicInputsBuilder\n) {\n let public_call_public_inputs = public_call.call_stack_item.public_inputs;\n\n let new_commitments = public_call.call_stack_item.public_inputs.new_commitments;\n let storage_contract_address = public_call_public_inputs.call_context.storage_contract_address;\n\n let mut siloed_new_commitments : BoundedVec<SideEffect, MAX_NEW_COMMITMENTS_PER_CALL> = BoundedVec::new(SideEffect::empty());\n for i in 0..MAX_NEW_COMMITMENTS_PER_CALL {\n let new_commitment = new_commitments[i].value;\n if new_commitment != 0 {\n let siloed_new_commitment = silo_commitment(storage_contract_address, new_commitment);\n siloed_new_commitments.push(SideEffect { value: siloed_new_commitment, counter: new_commitments[i].counter });\n }\n }\n circuit_outputs.end.new_commitments.extend_from_bounded_vec(siloed_new_commitments);\n}\n\nfn propagate_new_nullifiers(\n public_call: PublicCallData,\n circuit_outputs: &mut PublicKernelCircuitPublicInputsBuilder\n) {\n let new_nullifiers = public_call.call_stack_item.public_inputs.new_nullifiers;\n let storage_contract_address = public_call.call_stack_item.public_inputs.call_context.storage_contract_address;\n\n // Enhance commitments and nullifiers with domain separation whereby domain is the contract.\n let mut siloed_new_nullifiers : BoundedVec<SideEffectLinkedToNoteHash,MAX_NEW_NULLIFIERS_PER_CALL> = BoundedVec::new(SideEffectLinkedToNoteHash::empty());\n for i in 0..MAX_NEW_NULLIFIERS_PER_CALL {\n let new_nullifier = new_nullifiers[i].value;\n if new_nullifier != 0 {\n let siloed_new_nullifier = silo_nullifier(storage_contract_address, new_nullifier);\n siloed_new_nullifiers.push(\n SideEffectLinkedToNoteHash {\n value: siloed_new_nullifier,\n counter: new_nullifiers[i].counter,\n note_hash: new_nullifiers[i].note_hash\n }\n );\n }\n }\n\n circuit_outputs.end.new_nullifiers.extend_from_bounded_vec(siloed_new_nullifiers);\n}\n\nfn propagate_new_l2_to_l1_messages(public_call: PublicCallData, public_inputs: &mut PublicKernelCircuitPublicInputsBuilder) {\n // new l2 to l1 messages\n let public_call_public_inputs = public_call.call_stack_item.public_inputs;\n let portal_contract_address = public_call.portal_contract_address;\n let storage_contract_address = public_call_public_inputs.call_context.storage_contract_address;\n\n let new_l2_to_l1_msgs = public_call_public_inputs.new_l2_to_l1_msgs;\n let mut new_l2_to_l1_msgs_to_insert : BoundedVec<Field, MAX_NEW_L2_TO_L1_MSGS_PER_CALL> = BoundedVec::new(0);\n for i in 0..MAX_NEW_L2_TO_L1_MSGS_PER_CALL {\n let msg_is_zero = new_l2_to_l1_msgs[i] == 0;\n if msg_is_zero == false {\n let new_l2_to_l1_msgs = compute_l2_to_l1_hash(\n storage_contract_address,\n public_inputs.constants.tx_context.version,\n portal_contract_address,\n public_inputs.constants.tx_context.chain_id,\n new_l2_to_l1_msgs[i]\n );\n new_l2_to_l1_msgs_to_insert.push(new_l2_to_l1_msgs)\n }\n }\n public_inputs.end.new_l2_to_l1_msgs.extend_from_bounded_vec(new_l2_to_l1_msgs_to_insert);\n}\n\n/**\n * @brief Accumulates unencrypted logs hashes and lengths.\n * @param The type of kernel input\n * @param public_kernel_inputs The inputs to this iteration of the kernel circuit\n * @param circuit_outputs The circuit outputs to be populated\n * @note See the following thread if not clear:\n * https://discourse.aztec.network/t/proposal-forcing-the-sequencer-to-actually-submit-data-to-l1/426\n * @note Used by public kernels which had previous iterations.\n */\npub fn accumulate_unencrypted_logs(\n public_call: PublicCallData,\n previous_unencrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\n previous_unencrypted_log_preimages_length: Field,\n public_inputs: &mut PublicKernelCircuitPublicInputsBuilder\n) {\n let public_call_public_inputs = public_call.call_stack_item.public_inputs;\n\n let current_unencrypted_logs_hash = public_call_public_inputs.unencrypted_logs_hash;\n public_inputs.end.unencrypted_logs_hash = accumulate_sha256([\n U128::from_integer(previous_unencrypted_logs_hash[0]), \n U128::from_integer(previous_unencrypted_logs_hash[1]),\n U128::from_integer(current_unencrypted_logs_hash[0]),\n U128::from_integer(current_unencrypted_logs_hash[1])\n ]);\n\n // Add log preimages lengths from current iteration to accumulated lengths\n let current_unencrypted_log_preimages_length = public_call_public_inputs.unencrypted_log_preimages_length;\n public_inputs.end.unencrypted_log_preimages_length =\n previous_unencrypted_log_preimages_length + current_unencrypted_log_preimages_length;\n}\n\n/**\n * @brief Validates that the call stack item for this circuit iteration is at the top of the call stack\n * @param builder The circuit builder\n * @param public_kernel_inputs The inputs to this iteration of the kernel circuit\n */\npub fn validate_call_against_request(public_call: PublicCallData, request: CallRequest) {\n // TODO: this logic might need to change to accommodate the weird edge 3 initial txs (the 'main' tx, the 'fee' tx,\n // and the 'gas rebate' tx).\n let call_stack_item = public_call.call_stack_item;\n\n assert(\n request.hash == call_stack_item.hash(), \"calculated public_kernel_inputs_hash does not match provided public_kernel_inputs_hash at the top of the call stack\"\n );\n\n let call_context = call_stack_item.public_inputs.call_context;\n\n if (call_stack_item.function_data.is_internal) {\n assert(\n call_stack_item.contract_address.eq(call_context.msg_sender), \"msg_sender must be self for internal calls\"\n );\n }\n\n if call_context.is_delegate_call {\n let caller_context = request.caller_context;\n assert(!caller_context.is_empty(), \"caller context cannot be empty for delegate calls\");\n assert(\n call_context.msg_sender.eq(caller_context.msg_sender), \"call stack msg_sender does not match expected msg_sender for delegate calls\"\n );\n assert(\n call_context.storage_contract_address.eq(caller_context.storage_contract_address), \"call stack storage address does not match expected contract address for delegate calls\"\n );\n assert(\n !call_stack_item.contract_address.eq(call_context.storage_contract_address), \"curent contract address must not match storage contract address for delegate calls\"\n );\n } else {\n let caller_contract_address = request.caller_contract_address;\n assert(\n call_context.msg_sender.eq(caller_contract_address), \"call stack msg_sender does not match caller contract address\"\n );\n assert(\n call_context.storage_contract_address.eq(call_stack_item.contract_address), \"call stack storage address does not match expected contract address\"\n );\n }\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/src/crates/public-kernel-lib/src/common.nr"},"131":{"source":"use dep::public_kernel_lib::{PublicKernelAppLogicCircuitPrivateInputs};\nuse dep::types::{PublicKernelCircuitPublicInputs};\n\nunconstrained fn main(input: PublicKernelAppLogicCircuitPrivateInputs) -> distinct pub PublicKernelCircuitPublicInputs {\n input.public_kernel_app_logic()\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/src/crates/public-kernel-app-logic-simulated/src/main.nr"}}}