@aztec/protocol-contracts 0.33.0 → 0.34.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.
- package/dest/artifacts/ContractClassRegisterer.json +1 -1
- package/dest/artifacts/ContractInstanceDeployer.json +1 -1
- package/dest/artifacts/GasToken.json +1 -1
- package/dest/artifacts/MultiCallEntrypoint.json +1 -1
- package/package.json +4 -4
- package/src/artifacts/ContractClassRegisterer.json +1 -1
- package/src/artifacts/ContractInstanceDeployer.json +1 -1
- package/src/artifacts/GasToken.json +1 -1
- package/src/artifacts/MultiCallEntrypoint.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"noir_version":"0.26.0+bdc49d8e1897105afd5ee87ac62b5afb93744d61","name":"GasToken","functions":[{"name":"pay_fee","is_unconstrained":true,"custom_attributes":["aztec(public)"],"abi":{"parameters":[{"name":"inputs","type":{"kind":"struct","path":"authwit::aztec::context::inputs::public_context_inputs::PublicContextInputs","fields":[{"name":"call_context","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext","fields":[{"name":"msg_sender","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"storage_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"portal_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"function_selector","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"historical_header","type":{"kind":"struct","path":"authwit::aztec::protocol_types::header::Header","fields":[{"name":"last_archive","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"content_commitment","type":{"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment","fields":[{"name":"tx_tree_height","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}]}},{"name":"state","type":{"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference","fields":[{"name":"l1_to_l2_message_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference","fields":[{"name":"note_hash_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}}]}},{"name":"public_global_variables","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}]},"visibility":"private"},{"name":"fee_limit","type":{"kind":"field"},"visibility":"private"}],"param_witnesses":{"fee_limit":[{"start":34,"end":35}],"inputs":[{"start":0,"end":34}]},"return_type":{"abi_type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_circuit_public_inputs::PublicCircuitPublicInputs","fields":[{"name":"call_context","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext","fields":[{"name":"msg_sender","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"storage_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"portal_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"function_selector","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"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":"nullifier_read_requests","type":{"kind":"array","length":2,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"nullifier_non_existent_read_requests","type":{"kind":"array","length":2,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"contract_storage_update_requests","type":{"kind":"array","length":16,"type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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_note_hashes","type":{"kind":"array","length":16,"type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"struct","path":"authwit::aztec::protocol_types::messaging::l2_to_l1_message::L2ToL1Message","fields":[{"name":"recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"content","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":"unencrypted_logs_hash","type":{"kind":"field"}},{"name":"unencrypted_log_preimages_length","type":{"kind":"field"}},{"name":"historical_header","type":{"kind":"struct","path":"authwit::aztec::protocol_types::header::Header","fields":[{"name":"last_archive","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"content_commitment","type":{"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment","fields":[{"name":"tx_tree_height","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}]}},{"name":"state","type":{"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference","fields":[{"name":"l1_to_l2_message_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference","fields":[{"name":"note_hash_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}}]}},{"name":"prover_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}}]},"visibility":"public"},"return_witnesses":[35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232]},"bytecode":"H4sIAAAAAAAA/+2dZ3hUR5b3byuAoKEROQloMhiFVqslIYLUkm2MMcYY2xhHLLIwIAzCNo7jOE7jsT0557EneTx5xpM8YWd3dnYnR0/O835893ne98N+4Nmq23WGv4pbbVrcYs/F5z7P4Vadrlv1O/86t1rS7S5SQen4h7KUKVcrWxicetDrRXPOndnRGmNfOZ+cqYRwViWEszohnDUJ4axNCOeohHCOTghnXUI4xySEc2xCONMJ4RyXEM7xCeHMJIRzQkI46xPCOTEhnJMSwjk5IZxTEsI5NSGc0xLCOT0hnDMSwjkzIZyzEsI5OyGcDQnhnJMQzrkJ4ZyXEM5sQjjnJ4RzQYycK4CT/ha+yJwXm/MSc15qzsvMebk5n2dirDF13WejsiZlzdZrLZpZmf6jeN56rU1ZQVm7sg7zWta81qlspbIuZauUrVa2RtlaZd3Keowmvcr6lJ2v7AJlFypbp+wiZeuVXaxsg7JLlG1UdqmyTcouU7ZZ2eXKtii7QtmVyq5SttViuVrZNmXXKLtW2XXKrld2g7IblW1XdpOyfmU7lO1UtkvZbmV7lO1Vtk/ZgLL9ym5WdkDZQWWHlA0qO6zsFmVHlB1VNqTsmLJbLc1uU3a7suPK7rA471R2l7K7ld2j7F5lr1F2n7L7lT2g7EFlDyl7WNlrlT2i7FFljyl7XNkTyl6n7Ellr1f2lLKnlT2j7A3K3qjsTcrerOwtyt6q7G3K3m5Y6EZ4h7J3KnuXsncre4+y9yp7n7L3K/uAsg8q+5CyDyt7Vtlzyj6i7KPKPqbs48o+oex5ZZ9U9oKyTyn7tLLPKPusss8p+7yyLyj7orIvKXtR2ZeVfUXZV5V9TdnXlb2k7BvKvqnsW8q+rexflH1H2b8q+zdl31X275bm31P2H8r+U9n3je8H5vxDc/6ROf/YnH9izj8155+Z88/N+Rfm/Etz/pU5v2zOvzbn35jzb835d+b8e3P+gzn/0Zz/ZM5/Nue/mPNfzflv5vx3c9bPx7obSuW64ORRDGJacwq7u/Tfx0lM+/mbfrZTbV6jc9b4a0ydzinjrzX1Wss/ytRHWf3UmXqd5c+Yesby15t6veWfZOqTLP8UU59i+WeYOp2Lxj/X1Oda/vmmPh/6SZvXSkKUTtpXbVwp8FG+VoGv1viqwTeKugPfaOOrBR/lwyjwjTG+0eAba3x14Esb3xjwjTO+seAbb3xp8GWMbxz4JhjfePDVG18GfBONbwL4JhlfPfgmG99E8E0xvkngm2p8k8E3zfimgG+68U0F3wzjmwa+mcY3HXyzjG8G+GYb30zwmds0mAW+OcY3G3xzja8BfPOMbw74ssY3F3zzjW8e+BYYXxZ8dB/PB98i41tgfDqnaB0MrzH+KvAtonsffIvpvgffErrnwbeU7nfwLYOxybec7n/wnWd8lM/6tQ5TLgZxrX35Hbrfzrj7VT3rfrvi7zen19JVwUmtizBOJ2i12pRj/AxBK46dMkbjkL8GyuuhLbUjPWhNIna9zqw05dVlruuwrstAm5UR8ReDeOPvsni6LGY9J2uBw0PO7pGcPe2j4pzdCm3t3KP3x3MxZy8Bjvhztq1Ncva0j4pzdhe0tXOPflY7F3P2GuDwkLOdfnI2n5OcLf0dJQiic49+bzgXc3YvcMSfs+2Ss6d/VJyzr4G2du7R77DnYs4eA474c7azU342OO2j4px9EtrauUd/TzkXc/YB4PCQsztknT3to+KcfSe0tXOP/rZ3Lubs08ARf852ecrZNsnZoPRMLAiic4/+znwu5ux7gCP+nN0pf589/aPinP0itLVzj555nIs5+wlT1s8ZfmCeMzSA74fGNwd8P6JnguD7sfHNA99P4Nkg+X5Kzw3B9zPjWwC+n1vPYLXvF8a3CHy/NL7F4PuV8S0B38vGtxR8vza+ZeD7jfEtB99vje888P3O+FaA7/fG1wi+PxhfE/j+aHzN4PuT8bWA78/GlwPfX4yvFXx/Nb48+P5mfG3g+7vxFcD3D+NrNz79TJKefX3H+OqAvxjEl6Np0IqOlFUvQrkJeJrj52lLwxinw9Pslyf8rkljxFgtHsaqdC5agCfngUf32xp/v+F7Ut6KieKm8TLQZhHEmfcQZwrGpb6pngceyktcW6hdExNG8uEalo9gbIufMR81r1RvA0by5fxqlq90Lcl71aeQw7k4HZ424PFwH7Z6yoPw9y96fzsRxLtutFtaReUXtSmAfu0e9EvBuNQ31Wk8YRZmYRZmYRZmYRZmYRZmYRZmYRZmYRZmYRZmYRZmYRZmYRbmojALszALszALcyDMuTM7hFmYhVmYhVmYhVmYhVmYhVmYE8mM30HA7xlRuyYmjORrBZ62+HnCz9PTd86of/19uhOpk+M2xz5uIfwceiOMVwQOGq8G2jw662TbqqpSeTy8jt9La7F8vr7bk4KxqG+q03jjIR78rhGxZWPjye/0E2chp/cBHQNa5yx98XsySyyfnq9xVafGXQzim4eRfv8Ov5dmEFkzVieAsSYBjLUJYByVAMbRCWCsSwDjmAQw/nO/acaM6QQwjksA4/gEMGYSwDghAYz1CWCcmADGSQlgnJwAxikJYJyaAMZpCWCcngDGGQlgnJkAxlkJYJydAMaGBDDOSQDj3AQwzksAYzYBjPMTwLggAYwLhTEWxiV+GfPM9qNrZbYfXQ6fAeJYHp4R5fF51OnEjvt5+divKg1jnA4P7iWXi9DMA2N+pIy+9o3DPepOhydqL7lmv4z5kTJ6eq7cOtJ92nBvu2a/jPkz2Uuu4Emztgp4CqBZW4RmHhjzI2X09XmKNIxxOjz4GYtChGYeGPMjZdQ8se+/bTRrr4CnAzRrj9DMA2N+pIyax8Pe4qFmHRXwdIJmHRGaeWDMj5RR86z0pFlnBTwrQbPOCM04MSJPnPtzYuw4lod97SuOHfd/TxLjmAQwjk0AYzoBjOMSwDg+AYyZBDBOSABjfQIYJyaAcVICGCcngHFKAhinJoBxWgIYpyeAcUYCGGcmgHFWAhhnJ4CxIQGM8nuhMP5vMyJPNj6eYX//wLFWMYh9VQRPylPsOJaP/1ev0tiJIWmMXQlg9P1/KIqOwiiMwij3tejInVF0FB2F8dxjbE4Ao8y1MHJiTMIaLoyJyMf8SBk1z5r4eULNVlfAswY0o+uaE8C4KgGMXX4Z8yNl1Dxr4+cJNVtTAc9a0Iyua/bLmB8po+bpjp8n1GxtBTzdoNnaCM08MOZHyqh5euLnCTXrroCnBzTrjtDMA2N+pIx14I+RJ9SspwKeImjWE6GZB8b8SBk1T2/8PKFmxQp4ekGzYoRmHhjzI2XUPH3x84Sa9VbA0wea9UZo5oExP1JGzXN+/DyhZn0V8JwPmvVFaOaBMT9SRs1zQfw8oWbnV8BzAWh2foRmXBlXJoCxKwGMSdBRGIWRE6Pc16IjJ0bRUXQUxnOPUX4Of/UwrkoAo8y1MArjuc14YfyMhUoZL/Ssmac4w/9jaJ0V0/lWTBlog7qv8xBnCsalvqm+DuZBmIU5ihk/L0KsaWjXyYSRfBcAz0Wx8xRyaYtHH+XWsYs86+MnztI6tj6I1v0i0J3aYK6u9xBnCsalvqm+HuahEuauBDKLzqKzi1l0Fp1dzKKz6OxiFp1FZxez6Cw6u5hFZ9HZxSw6i84uZtFZdHYxi86is4tZdBadXcyis+jsYhadRWcXs+gsOruYRWfR2cUsOovOLmbRWXQOAtFZdBadc2d2iM6mLDqLzi5m0Vl0djGLziNjxr3qiDUN7VYzYSTfOuC5OH6eQtri0UfKqhehfLFnfTzFGX7ufUMQrfvFoDu1wftrg4c4UzAu9U31DTAPlTB3JZBZdB4ZM+4fSaxpaLeGCSP51gPPJfHzFNIWjz7KrWOXeNbHU5zhOrYxiNb9EtCd2uD9tdFDnCkYl/qm+kaYB2EW5ihm3NOVWNPQbi0TRvJtAJ5LY+fJ59IWjz7KrWOXetbHT5yldWxTEK37paA7tcFc3eQhzhSMS31TfRPMQyXMXQlkFp1FZxez6Cw6u5hFZ9HZxSw6i84uZtFZdHYxi86is4tZdBadXcyis+jsYhadRWcXs+j86tFZ89D/VUasaWjXzYSRfBuB57LYedpyaYtHH+WeO1zmWR8/cZaeO2wOonW/DHSnNnh/bfYQZwrGpb6pvhnm4Vxn7kogs+TG2WGW3BBmF7PkhjC7mCU3hNnFLLkhzC5myQ1hdjFLbgizi1lyQ5hdzJIbwuxiltwQZhez5IYwu5glN4TZxSy5IcwuZskNYXYxS24Is4uZQ25onh5TJtY0tOthwki+TcBzefw8hbTFo49yn9u53LM+nuIMP7ezJYjW/XLQndrg/bXFQ5wpGJf6pvoWmAdhFuYo5gyMR6zpYPi9w4GRfJuB54r4eQppi0cf5daxKzzr4ynOcB27MojW/QrQndpgrl7pIc4UjEt9U/1KmAdhFuYoZs3Ta8rEmoZ2vUwYybcFeK6Kn6eQtnj0UW4du8qzPp7iDNexrUG07leB7tQGc3WrhzhTMC71TfWtMA/CLMxRzJqnz5SJNQ3t+pgwku9K4Lk6fp5C2uLRR7l17GrP+niKM1zHtgXRul8NulMbzNVtHuJMwbjUN9W3wTwIszBHMWueRlMm1jS0a2TCSL6twHNN/DyFtMWjj3Lr2DWe9fEUZ7iOXRtE634N6E5tMFev9RBnCsalvql+LcxDJcxdCWQWnUfGrHlaTJlY09CuhQkj+bYBz3Xx8xTSFo8+yq1j13nWx1Oc4Tp2fRCt+3WgO7XB++t6D3GmYFzqm+rXwzxUwtyVQGbReWTMmidnysSahnY5JozkuxZ4boidp7S/MfLoo9w6doNnffzEWVrHbgyidb8BdKc2eH/d6CHOFIxLfVP9RpgHYRZmYRZmYRZmYRZmYRZmYRZmYRZmYRZmYRZmYRZmYebNrHlaTZlY09CulQkj+a4Hnu2x85SeOyCPPso9d9juWR8/cZaeO9wUROu+HXSnNpirN3mIMwXjUt9Uvwnm4SZhFmZhFmZhFmZhFmZhFmZhFmZhFmZhFmZhFmZhFmZhZs2sefKmTKxpaJdnwki+G4GnP36eQtri0Ue55w79nvXxFGf43GFHEK17P+hObTBXd3iIMwXjUt9U3wHzIMzCHMWsedpMmVjT0K6NCSP5bgKenbHzlJ6fIo8+yq1jOz3r4yfO0jq2K4jWfSfoTm0wV3d5iDMF41LfVN8F81AJc1cCmUVn0dnFLDqLzi5m0Vl0djGLzqKzi1l0Fp1dzKKz6OxiFp1FZxez6Cw6u5hFZ9HZxSw6v3p01jwFUybWNLQrMGEk3w7g2R07T1subfHoo9xzh92e9fETZ+m5w54gWvfdoDu1wftrj4c4UzAu9U31PTAP5zpzVwKZJTfODrPkhjC7mCU3hNnFLLkhzC5myQ1hdjFLbgizi1lyQ5hdzJIbwuxiltwQZhez5IYwu5glN4TZxSy5IcwuZskNYXYxS24Is4tZckOYXcwcckPztJsysaahXTsTRvLtAp698fMU0haPPsp9bmevZ308xRl+bmdfEK37XtCd2uD9tc9DnCkYl/qm+j6YB2EW5ihmzdNhysSahnYdTBjJR2tFFfgWmfMJi/NEBZx7XuHQfQyYvkZHMNbA69vHls71Ds6i8dO1e4EX6ym4htrq+PaPID5bd9uB8VUDA42leW825QErDmp7M3Bhe1yHcb5rja/Zur4G2hwce7Lt/rEnNdh75hqcoonO+6UWsx73sN9xc680LmqM96Cnz6a24s9jNEf2OlYDbe6DOToGWnlgG/a52Zpg+HqxO4LtLmA7fhbyZ5mlkx73Xr/j5l9pXP36cuNfBq8/eBbyenkEF467x8M82OPRvYV5Q68/BvnxCOh1nnl9KfTzRMTryyNe9xRX3o7rPCsu/Ax8Koj3nsN7C9fwXeCnNs/A+59mot+PikG8OY8/N1DMeBShvBM08rFmeoozp/vdYfqK8x7RWvVbWu21tML9pnaAfv0e9Cv3PRQar1LmKgbMmBfZIN68uCn+mPITVB9jQNebLH0xLtpLMc73DN0H7b9WC+Ph/81F+0zSWkTtcS2iNs/BWpQJTh6YGx7+X6bWcmsR7uVJx3JmPAVmPK3MeOYz42lkxjObGc8+ZjxTmfFMYMYzhhlPNTOePmY8Pcx41jDj6WTGs4AZTz8zniZmPA3MeKYx46lnxjOWGU8NM552Zjx5ZjwLmfG0MOOZw4xnOjOeicx40sx4apnxLGbGU2TGs5YZzyJmPHOZ8Qww45nBjGcSM55xzHhGMeNZyoyngxlPGzOeHDOeecx4ZjLjmcyMZwUznvHMeEYz41nCjGcZM55eZjzdzHhWM+PJMuOZxYxnCjOeDDOeOmY8KQY86eDUzwji/9faD74q61r9ftfUcPL1642/Cq65zpSrI/q+Hnz02aTrIq5Fna6HWIqmnDuzI9QJxypCncYbDxzXMeGpY8aTYcYzhRnPLGY8WWY8q5nxdDPj6WXGs4wZzxJmPKOZ8YxnxrOCGc9kZjwzmfHMY8aTY8bTxoyngxnPUmY8o5jxjGPGM4kZzwxmPAPMeOYy41nEjGctM54iM57FzHhqmfGkmfFMZMYznRnPHGY8Lcx4FjLjyTPjaWfGU8OMZywznnpmPNOY8TQw42lixtPPjGcBM55OZjxrmPH0MOPpY8ZTzYxnDDOeCcx4pjLj2ceMZzYznkZmPPOZ8bQy4ykw41nOjKcqgqffEw99/oj6pnq/Xy3CPauu9RTTNaYv2q+S+Gm8Gmiz0jx8qDdzQn7i2h4xP6QNta2K0I32n90O9eJpxng6+8/S2KNh7O0R8fVAfFGcReOna28AXqyn4BpqWwfjxL3/LI1VDQw4N5i310RwXXvmXKdw4hh479BYWsdtFksxGK77NuDCem1w6hzgvLiui5qXKvBtszjszzeesOq1EWPWwOuXQz5pna+G/oumnDuzI9zPkcYOIE48ilAmBl/rpKc4w700t1oxbbNiykCbayHOrR7iTMG41DfVt8I8VMJcxYAZ5y8b39jhe9hV8cf0z30XSderLH0xritMOe59F680fdXCeFfAuJebciqI937YYvqi/RyJ43LwU5u9sBYhM65z+J6xHco3WNfUQb/FIL78xM94B6AZHkUobwGeKz3weIoznLvNVkw3WDFloA2+V2/2ECfmEvVN9c3AQweuUz7y4HTm3LUHKAee7cx4Csx4WpnxzGfG08iMZzYznn3MeKYy45nAjGcMM55qZjx9zHh6mPGsYcbTyYxnATOeJmY8Dcx4pjHjqWfGM5YZTw0znq3MeNqZ8eSZ8SxkxtPCjGcOM57pzHgmMuNJM+OpZcazmBlPkRnPWmY8i5jxzGXGM8CMZwYznknMeMYx4xnFjGcpM54OZjxtzHhyzHjmMeOZyYxnMjOeFcx4xjPjGc2MZwkznmXMeHqZ8XQz41nNjCfLjGcWM54pzHgyzHjqmPGkGPC49iSl17eCjz7DdAP4LjPlK8FXFTEGPSveDD56HkB96PfPlQ2n9o06+frcFo5VhDqNh3uSXsaEp44ZT4YZzxRmPLOY8WSZ8axmxtPNjKeXGc8yZjxLmPGMZsYznhnPCmY8k5nxzGTGM48ZT44ZTxszng5mPEuZ8YxixjOOGc8kZjwzmPEMMOOZy4xnETOetcx4isx4FjPjqWXGk2bGM5EZz3RmPHOY8bQw41nIjCfPjKedGc9WZjw1zHjGMuOpZ8YzjRlPAzOeJmY8C5jxdDLjWcOMp4cZTx8znmpmPGOY8UxgxjOVGc8+ZjyzmfE0MuOZz4ynlRlPgRnPdmY8y5nxVJ0dnnAvQtzvjrjwKEJ5M/D4+L+tPcWZw8+9xblnptZqk6XVVkurDLTZAvpt8qBfCsalvqlO41XKvIABM+ZFNog3Ly6NP6Z/7nFIul5q6YtxXWLKce9xuNH0VQvjXQLjXmzKqRjH1X1tMH3RHofEcTH4qc0M80G++sC9X93G+Oen7OdVaTzXfnUceArMeFqZ8cxnxtPIjGc2M559zHimMuOZwIxnDDOeamY8m5jx9DHj6WHGs4YZTyczngXMeJqY8TQw45nGjKeeGc9YZjw1zHjamfHkmfEsZMbTwoxnDjOe6cx4JjLjSTPjqWXGs5gZT5EZz1pmPIuY8cxlxjPAjGcGM55JzHjGMeMZxYxnKTOeDmY8bcx4csx45jHjmcmMZzIznhXMeMYz4xnNjGcJM55lzHh6mfF0M+NZzYwny4xnFjOeKcx4Msx46pjxpBjwuPaHo9c3ga/Kula/3zXBfm7rjb8KrrnIlKsj+l4PPvps0kUR16JO6yGWoinnzuwIdcKxilCn8XB/uIuY8NQx48kw45nCjGcWM54sM57VzHi6mfH0MuNZxoxnCTOe0cx4xjPjWcGMZzIznpnMeOYx48kx42ljxtPBjGcpM55RzHjGMeOZxIxnBjOeAWY8c5nxLGLGs5YZT5EZz2JmPLXMeNLMeCYy45nOjGcOM54WZjwLmfHkmfG0M+OpYcYzlhlPPTOeacx4GpjxNDHjWcCMp5MZzxpmPD3MePqY8WxixlPNjGcMM54JzHimMuPZx4xnNjOeRmY885nxtDLjKTDjWc6MpyqCx9deWPT5I+qb6pv8ahHuhbXOU0wXmr5qTb/ET+PVQJvnzJtPvZkT8hPXxoj5IW2obVWEbieC4Z9vq2S/rT2vcODYo2HsjRHxfRLii+IsGj9duwF4sZ6Ca6htHYxzBvuJtdoO5KsGhgth3HVnPu4pHBgvxkljaZ0usHQpWvpdAFxYx3ttI4yxAeK8wIoTrw9Akw3As8lqVwzc+Yj1WmhD19bA6y9B3mi9z4f+i6acO7Mj3A8S49NHyqoXoUwMvtZDT3GG+9StsmK6wIopA23WQZyrPMSZgnGpb6qvgnmohHkBA2acv2wQ73tVV/wx/XPfRtK1y9IX42o25bj3bVxp+qqF8Zph3JtNORXEez/sN33Rvo3EcTP4qc3PYS1CZlzncM2MWsNXQkzUbzGILz/x890BaIZHEcr7gWelBx5PcYZzd8CKaaMVUwbabIA4D3iIE3OJ+qb6AeChowp4fOTB6cy5a69PDjwFZjytzHjmM+NpZMYzmxnPPmY8U5nxTGDGs4oZzxhmPNXMePqY8fQw41nDjKeTGU8TM54GZjzTmPHUM+MZy4ynhhlPOzOePDOehcx4WpjxzGHGM50Zz0RmPGlmPLXMeBYz4yky41nLjGcRM565zHgGmPHMYMYziRnPOGY8o5jxLGXG08GMp40ZT44ZzzxmPDOZ8UxmxrOCGc94ZjwbmPGMZsazhBnPMmY8vcx4upnxrGbGk2XGM4sZzxRmPBlmPHXMeFIMeFx7fdLrq8BHnxnCfUIPmvJK8FVFjEHPZg+Aj54HUB/6/XNlw6l9o06+PieFYxWhTuPhXp8HmfDUMePJMOOZwoxnFjOeLDOe1cx4upnx9DLjWcaMZwkzntHMeDYw4xnPjGcFM57JzHhmMuOZx4wnx4ynjRlPBzOepcx4RjHjGceMZxIznhnMeAaY8cxlxrOIGc9aZjxFZjyLmfHUMuNJM+OZyIxnOjOeOcx4WpjxLGTGk2fG086Mp4YZz1hmPPXMeKYx42lgxtPEjKeTGc8aZjw9zHj6mPFUM+MZw4xnFTOeCcx4pjLj2ceMZzYznkZmPPOZ8bQy4ykw41nOjKfq7PAU8P8aDoALjyKUDwCPj/3cPMWZw8+ZxblXmtbqkKXVBkurDLTZD/od8qBfCsalvqlO4wmzMLuYNQ/97kWs+PnHTiaM5FvllaeQS0PMdJRbHw8Bj4/3D0+6h+vYoBVTZ4Tu1AZzddBDnFH3DtUHI8bOBvFqcfg0tDgcwXP4LGtB41XKvD+BzKKz6OxiFp1FZxez6Cw6u5hFZ9HZxSw6i84uZtFZdHYxi86is4tZdBadXcyis+jsYhadRWcXs+gsOruYRWfR2cUsOovOLmbRWXR2MYvOorOLWXQWnV3MorPo7GIWnUVnF7PoLDq7mEVn0dnFzEFnzUN7exJrGtqtZsJIvgN+ecLvG60Ohh8pq16E8mHgOeRBH09xhp8hv8WKaXWE7tQG769bPMQZde9Q/RaYh0qYBxPILDqPjFnz0B4IxJqGdmuYMJLvkF+ecB1bEww/yq1jtwCPj3XeU5zhOnbEimlNhO7UBu+vIx7ijLp3qH4E5kGYhTmKWfPQ3oPEmoZ2a5kwku+wV558+P3GtcHwo9w6dgR4fKzznnQP17GjVkxrI3SnNpirRz3EGXXvUP0ozEMlzIMJZBadRWcXs+gsOruYRWfR2cUsOovOLmbRWXR2MYvOorOLWXQWnV3MorPo7GLen0Bm0Vl0djGLziNj1jz0f6oSaxradTNhJN8tXnnawucO3cHwo9xzh6PA4+O5jCfdw+cOQ1ZM3RG6Uxu8v4Y8xBl171B9CObhXGceTCCz5MbZYZbcEGYXs+SGMLuYJTeE2cUsuSHMLmbJDWF2MUtuCLOLWXJDmF3MkhvC7GKW3BBmF7PkhjC7mCU3hNnFLLkhzC5myQ1hdjFLbgizi5lDbmieHlMm1jS062HCSL4jfnnCfQ96guFHuc/tDAHPUQ/6eIoz/NzOMSumngjdqQ3eX8c8xBl171D9GMyDMAtzFHMGxiPWdDD83uHASL6jfnnCdawYDD/KrWPHgMfHOu8pznAdu9WKqRihO7XBXL3VQ5xR9w7Vb4V5EGZhjmLWPL3wuj7S0K6XCSP5hvzyhOtYbzD8KLeO3Qo8PtZ5T3GG69htVky9EbpTG8zV2zzEGXXvUP02mAdhFuYoZs3TZ8rEmoZ2fUwYyXfML0+4jvUFw49y69htwONjnfcUZ7iO3W7F1BehO7XBXL3dQ5xR9w7Vb4d5qIR5MIHMovPImDVPiykTaxratTBhJN+tfnnCdawlGH6UW8duBx4f67ynOMN17LgVU0uE7tQG76/jHuKMuneofhzmoRLmwQQyi84jY9Y8OVMm1jS0yzFhJN9tXnlK+4LmguFHuXXsOPD4WOc96R6uY3dYMeUidKc2eH/d4SHOqHuH6nfAPAizMAuzMAuzMAuzMAuzMAuzMAuzMAuzMAuzMAuzMAszb2bN00rjmXMa2rUyYSTf7V55Ss8dWoPhR7nnDncAj4/nMp50D5873GnF1BqhO7XBXL3TQ5xR9w7V74R5EGZhFmZhFmZhFmZhFmZhFmZhFmZhFmZhFmZhFmZhFmbezJonb8rEmoZ2eSaM5Dvulyf83lY+GH6Ue+5wJ/D4eC7jKc7wucNdVkz5CN2pDebqXR7ijLp3qH4XzIMwC3MUs+ZpM2ViTUO7NiaM5LvDK0/p+WlbMPwot47dBTw+1nlPuofr2N1WTG0RulMbzNW7PcQZde9Q/W6Yh0qYBxPILDqLzi5m0Vl0djGLzqKzi1l0Fp1dzKKz6OxiFp1FZxez6Cw6u5hFZ9HZxSw6i84uZtH51aOz5imYMrGmoV2BCSP57vTK0xY+dygEw49yzx3uBh4fz2U86R4+d7jHiqkQoTu1wfvrHg9xRt07VL8H5uFcZx5MILPkxtlhltwQZhez5IYwu5glN4TZxSy5IcwuZskNYXYxS24Is4tZckOYXcySG8LsYpbcEGYXs+SGMLuYJTeE2cUsuSHMLmbJDWF2MUtuCLOLmUNuaJ52UybWNLRrZ8JIvrv88oT7HrQHw49yn9u5B3ju9qCPpzjDz+3ca8XUHqE7tcH7614PcUbdO1S/F+ZBmIU5ilnzdJgysaahXQcTRvLdDTzkOzFynlbbgTEHMMa+CB3OYNxTOHCMFDDQWFXKXmOxFI2f2r4GuLBeC9d0QH/7XuE6zTFgjRl1XdH47bYnrHottKFra+D1C6aXzvVWG+wbc2UAyrYGdRZf0ZRzZ3a06lxsihhrX/xjhe+pTcHwo9x7KuZoh4fYPcUZvqfeZ8XUZMWUgTYDEOd9HuJMwbjUN9Xvg3mohHm/ML9qmDVPoykTaxraNTJhtN8TPPGE61hjMPwot47dBzwe1ptWT3GG69j9VkyNEbpTG1zH7vcQZ9S9Q/X7YR4qYd4vzK8aZj32A/GPHa4HODbpE1g8dDzgWQtPcYbrwYNBtMY0Xgba4Jw/6CHOFIxLfVP9QZiHSpgHE8gsOo+MWY/9UPxjh+sBjk36BBYPHQ951sJTnOF68HAQrTGNl4E2mKcPe4gzBeNS31R/GOahEubBBDKLziNj1mO/NvaxS3uP4tikT2Dx0PFaz1r4ibO0HjwSRGtM42WgDebpIx7iTMG41DfVH4F5EGZhFmZhFmZhFmZhFmZhFmZhFmZhFmZhFmZhFmZhFmbezHrsR2Mfu/T3exyb9AksHjoe9ayFnzhLf79/LIjWmMbLQBuc88c8xJmCcalvqj8G8yDMwizMwizMwizMwizMwizMwizMwizMwizMwizMwizMvJn12I/HP3b4fRwcm/QJLB46Hveshac4w7/fPxFEa0zjZaANzvkTHuJMwbjUN9WfgHkQZmGOYtZjvy72sUvP83Bs0ieweOh4nWct/MRZWg+eDKI1pvEy0Abn/EkPcaZgXOqb6k/CPFTCPJhAZtFZdHYxi86is4tZdBadXcyis+jsYhadRWcXs+gsOruYRWfR2cUsOovOLmbRWXR2MYvOrx6d9divj33stvDv9zg26RNYPHS83rMWfuIs/f3+qSBaYxovA20wT5/yEGcKxqW+qf4UzMO5zjyYQGbJjbPDLLkhzC5myQ1hdjFLbgizi1lyQ5hdzJIbwuxiltwQZhez5IYwu5glN4TZxSy5IcwuZskNYXYxS24Is4tZckOYXcySG8LsYpbcEGYXM4fc0GM/Hf/Y4ffZcWzSJ7B46Hjasxae4gw///JMEK0xjZeBNpinz3iIMwXjUt9UfwbmQZiFOYoZ75O6+MYOPw9HY1SZs/a9wZSrwfdGU64B35tMuRZ8bzblUeB7iymPBt9bIR7yvc2Ul4Dv7abcCL53mPI+8L3TlO8D37tM+X7wvduUHwDfe0z5QfC915QfAt/7TPlh8L3flF8Lvg+Y8iPg+6ApPwq+D5nyY+D7sCk/Dr5nTfkJ8D1nyq8D30dM+UnwfdSUXw++j5nyU+D7uCkvBN8nInzPm/J+8H0ywveCKY8B36dMeSz4Pg1lOn/GlMeB77OmPB58nzPlDPg+b8oTwPcFU64H3xdNeSL4vmTKk8D3oilPBt+XTXkK+L5iylPB91VTnga+r5nydPB93ZRngO8lU54Jvm+Y8izwfdOUZ4PvW6bcAL5vmzLO0b+Y8tPgo3XgGfDROvAG8NE68Ebw0TrwJvDROvBm8NE68Bbw0TrwVvBR7rwNfJQ7bwcf5c47wEe5807wUe68C3yUO+8GH+XOe8BHufNe8FHuvA98lDvvBx/lzgfAR7nzQfBR7nwIfJQ7HwYf5c6z4KPceQ58lDsfAR/lzkfBR7nzMfBR7nwcfHNM+RPgm2vKz4Nvnil/EnxZU34BfPNN+VPgW2DKuC7Q+vMZ8C0y5c+Cb7Epfw589F7yefAtNeUvgG+ZKX8RfMtN+UvgO8+UXwTfClP+Mvjo/eor4Gsy5a+Cr9mUvwa+FlP+OvhypvwS+FpN+Rvgy5vyN8HXZsrfAl/BlL8NvnZTpnVB3391wFgM4vu5BzWio9zvIsSAPCfi48llgAfHysUeeyH8/YTmuMr0S7mbg7HzsY9d+t2I8qbG9Ju3xq6BNm+ZdXJuKGeqzXUt1nW6TZvVN12zGPxtVt/1Jt5WT/HmLSbiRh2ozTsMk34ve9EsjHVwTYxsebz/A9AQjyKUicGPVoUcrj2nw9MKPPHfJ6W/D/jICby34lxDMP+J2c61DLTJg35tHvTDe536pjqNJ8zCLMzCLMzCLMzCLMzCLMzCLMzCLMzCLMzCLMzCLMzCLMzCXBRmYRZmYRZmYQ6EOXdmhzALszALszALszALszALszALcyKZNU+zKRMrfk+lmQkj+fC7Fq3x8+Twu0HUv/5ewcfhewW+v19Sa/pdYcVcA23+z+yTbV8w5fHwOs2bay49fE+l7FzSeOMhnlbgIbZsbDz5nX7iLOQmBKXvWbVYsTVbceH3kzCXXoT5omvoe2b4vbEm0MdDrofzRWNR3/bcYE7lwEflRmD0oTWuqXRf0PeS8DtC1ObbRlv6flL8a1Yh5/P+KUBMxeDUHKuBNt+FNeB7pozf0WsG3V6OeJ2OlFUvQpn00zF3xB9zOL+dwFmEcXDslcAa09itOHbKGI1D/hoo/2r2ybbUjvQgrYld3yP03Uxkt69rtK7LQJv2iPiLQbzxd1g8HRaznpPvQ569DO+DvtakdodGi0EjaoM/D3j4vl/kGkkcNJ5uQ/M/ymqD793U5k+wRulYaJ3H/TLs9wWfP3/RWNQ31aN+RmwFRjtGnR8nUid5X+3fw/0vWC/i/h7uf0EOpYAjsPpfAf0T16jA/d5Cbf6/9T7q42dtnEtbT9SZ2vw3rENLzGYH44NTf77F78Sejd9f8Pu3RajTePjzUotfnrKatkVoWm10pHkuxM5UumdpvbZ/t8Gfd6jNaIup3QOTn1iHv6eS/rmIWKnNuIaTumRMGfeEwN8b5kS8TkfKqheh7PnniHB+u4CzGET/DLMKWGMauxXHpp/haBzy10C5oeFkW2pHepDWxK7vW/rZD9nt6/LWdRlo0xkRfzGIN377Z8qVFrOek4mQZ5RHPn9m6nRotAI0ojaLwEfrNbXH34dxLf/f+n04E5y6luP7kZ+fe6LfZ+y/D0W9x6+wWPE9fgWss+mItvbfvWhPqRj3Xwj3ixjlQS/c7yoAfQJLwwD0ojhrPfCMDU7ueXV0aPBI/97dW3b370oBWo2FiWdEPwH1KvBjuTrCdwLOuM0Xbg9I23zh9oBVlkS4vRi1p22HqF4M4p1K4qGj3FQSg6/U0lNJW5WZqbz6yMDQbpyvWotzpHOpX6u2+qiKuN7V55jgVK1iXZMIbiH0nzKQ+rUaI4aeCD0xdQaK7gctpH6f1euq/ruqXosmBqU92SYHpT3X9B5rek81vYea3jNN75Gmt/zRS5NewvQeZ3pPM72HWTYo7VG2AHi+A4z6vUb/PqX3GNN7ii0LSnuG6T3C9PqnfwfXv3Pr9xq9Duq1Va+X+v1I//ysf4bTP9Pon9/0+5d+r9U/W+j32tXK1ihbq6xbWY/RuldZn7LzlV2g7EJl65RdpGy9souVbVB2ibKNyi5VtknZZco2K7tc2RZlVyi7UtlVyrYqu1rZNmXXKLtW2XXKrld2g7IblW1XdpOyfmU7lO1UtkvZbmV7lO0NSvtxDgSlPQZvVnZA2UFlh4LSvsqHld2i7Iiyo8qGlB1Tdquy25Tdruy4sjuU3ansLmV3K7tH2b3KXhOU9ve8Pyjt36n363woKO3HqffffCQo7a+p99N8PCjtl6n3x3wyKO1/+VRQ2uvwmaC0l6Heu1DvVaj3JtR7Eeq9B/Veg3pvQb2XoN47UO8VqPcG1HsBvjco7fX3/qC0l5/eu0/v1af35tN78T0XlPba03vrfSwo7Z2n98p7PijthfdCUNrr7tNBaS87vXed3qtO702n96LTe8/pveb03nJ6Lzm9d5zeK07vDaf3gnspKO319s2gtJeb3rtN79Wmc/Jflf2bsu8q+3dl31P2H8r+U9n3lf1A2Q+V/UjZj5X9RNlPlf1M2c+V/ULZL5X9StnLyn6t7DfKfqvsd8p+r+wPyv6o7E/K/qzsL8r+quxvyv6u7B/ByT0McaG40WzaSPsM7uw/cCA7NJjtP3p095Gh7Qf7b9++Y2Bo+9GBO3bjZU+by2h9XLd7t7pqMLtvYO8+bPesabfG1K8oraPZowcGh7K57CH1rxpw8Lbdu5qz+NrR7MFjR4eyR4f6jwxl9xwZPJhtbcZ+O83AtI1i75Ej/cezA4d27b49O3hsKDu4J7tj8NihXUfxou5xI4p1s7mMlpr+oaHdBw8P6SuPHtsxdKR/51D2toGhfVk13u4je1Q0ePWecX4UmJ7x0++zE0ag7PMTRqTs181lDacq279rV0nUwVtP1fRnE/zEfv70M5npN5vt6eafevXBYweGBg4fOO4O6VuzRyD7H2ePTL//O/sMSP/fCAetMhdMNvWLy8c2qmEEgpzXcPpswf8ANm131BcaBQA=","debug_symbols":"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"},{"name":"balance_of_public","is_unconstrained":true,"custom_attributes":[],"abi":{"parameters":[{"name":"owner","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]},"visibility":"private"}],"param_witnesses":{"owner":[{"start":0,"end":1}]},"return_type":{"abi_type":{"kind":"field"},"visibility":"public"},"return_witnesses":[1]},"bytecode":"H4sIAAAAAAAA/81XUWvbMBCWbCe246bNHsc20C8octjDBoN5r3vc2HNwF2cEkhhsh3X78aF2cke/qGpKiUx74Jx0ku+++6ScZCkOIunpxIc2Ctsy0vo8SR360tLA+YvaEdgzV/E+6umwcxIc88KStI/HHZoTts8QxiXZed4bsEnAPnCNXetpF983MJs5ZNAeAJ7APZ60pzx1BJzvHOKVtJ7IlW9wdQlzhsBf2AN/EuKyb+5zvOdi9l4BZtwXSrjdF5H7nKZXrY8YeI0MfjGvEbUd7kstKD7H5HgjiHtBbSnc1t6EfAXkm3FcgJ3nfCA9EYc9Jyz8xO7XJz1V4zge4pGvAE8i7OdLbHCGZw6OfYfxMbU9sHG+vsX3GGy8dpeWd5GnMeSSUVufJ3ueMFYG/TFoaWB8aTyhBU9ftZTXh31zP+yXi30tveoppwn5GpBfxs/xApjzmfSE1oTtjCs+sT4817PwthPH///n1OvFE4KxQ4gdW/LLAKsNZ0Z2rBuMF/t4D+C5EcQ54zxKTQPi8wEDrg3bPPFwPfB9YcktsfCAdRD5jMR9jXN5F8Q7ZubQb4c9EMdy6rzAO2YPd+l0BHzWTVnlf4ofRT6XAC0wYKJG6Dvoe2DHtm+x7UAnkDLH7Wy8DQZg8wyK8PMH/woPPnkz0vo82dcyDnjqu/qxee9JfyH988C/qldlo7TatL/5alX+LebXCsdqtd7WjaqbvGrUoirXKr1Gv59IvyX9raryf2q5mRe3qtw2qlyom3K7mdf40lfS70j/bkOrplR5XRdVM1vnt7ObZTOrl/8LcQfJYpPTXRAAAA==","debug_symbols":"5drfiuIwFAbwd+m1LDnJ+ZP4KstedGddEMQZRndhEd9907GJHSqWkRn5incNnvT8UuSzjT00m+endr9+3u6a5aFx37RZfj80u5d22413+/Z13yy9t7BoVttf3WFKx0Xze71Z5YHJcTGqTlSKk2qtVXehlFN0fa045lpMucmPReYYFidicRIWhxyYh8A8HswTwDwM5hEwD1g4E1g6E1g8E1g+e7B89mD57MHy2X9CPpNj6qvJpXhdVDhu4qRq2ldqCudThp7N82TLPNk6T7bNkx3nyZ78JQpOp9hEUtjEOuwxLg7m+1qmM4dykzdPcGAeAvN4ME8A8zCYR8A8CuYxME8E84DlM4PlM4PlM4PlM4PlM4PlM4PlM4PlM4PlM4PlM4Pls3xtPp960B16fEqOitYeFq9fV1IrT1T5MA32XMqVDXAihhMJnEjhRAYninCidHeR1J0Xje6d6EIG5+59dQjB1+puq3ZUbBL7WkvnrVzvTitV9zArpYdZqX+YlYaHWSmDr7RW58M0XOmJL/PmKzg/xsoffHkq39D5Vvjswpgf582fvpkgm+KbLz3Ihv/Iir8kEir3N0G8jETm7i9y10WX403rhXU8ftY0uWWS3jLJbpkUb5mUPjgpj/62r+v252bVvSjZffhn+1Tem8zD/b+X0yfH/w=="},{"name":"compute_note_hash_and_nullifier","is_unconstrained":true,"custom_attributes":[],"abi":{"parameters":[{"name":"contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]},"visibility":"private"},{"name":"nonce","type":{"kind":"field"},"visibility":"private"},{"name":"storage_slot","type":{"kind":"field"},"visibility":"private"},{"name":"note_type_id","type":{"kind":"field"},"visibility":"private"},{"name":"serialized_note","type":{"kind":"array","length":20,"type":{"kind":"field"}},"visibility":"private"}],"param_witnesses":{"contract_address":[{"start":0,"end":1}],"nonce":[{"start":1,"end":2}],"note_type_id":[{"start":3,"end":4}],"serialized_note":[{"start":4,"end":24}],"storage_slot":[{"start":2,"end":3}]},"return_type":{"abi_type":{"kind":"array","length":4,"type":{"kind":"field"}},"visibility":"public"},"return_witnesses":[24,25,26,27]},"bytecode":"H4sIAAAAAAAA/+2YzW7CMAyA0xL6B+3+2PiZtPW4YytxmHbqQ+wFEKs0LjDRbo8/rYZYNWHsMvdgCUtR0jQ4n+2SOHHUXu6b4ph2ryl9dSz4vjB19j/JGXVlXXI6QjhdIZw9Rk5gG6luv1PdgV+5GfsCGD0BjL4AxkAAYyiAMRLAOBDAOBTAGAtgTAQwXghgvBTAeCWA8VoA440AxpEAxlsBjHcCGMeMjA5h1KY9acq0KTO1P7O/mP5AtVJwMczzJeTsOPlEHQrkJi4+6Lavh9ykD/ld0od3DD3d2uCx25DNQa/PrdfkZuh3j/jEs2ICc89In2a3MX8OiD/Z9Gad+W73baN/8Ozqk2f0VWjajHcwOZ3bMSUkcyoTI2xPyVgch/5wSYxBIM/E+Id//E5bv0vIGO8X+wvFa79v8fgWc98wgUCuMtGtX2w2zvsx0Bvx6z2IubZiEpF+HPNo6kvTN+SPw5yuH4rYTKUg7SHx/YCfJ+/Izl1MY6PrW/GuIYnlq8DyVULGxMR/SQf+c8i8qJtygJyZz8ynmAfq8D+OffQ91q5lC827cHyojtcTVoNwQpoYOgYO3sGCChsJbGi+ajeNiBgbG2C4WIDFFjYbOHjCwQ4OTnAwgcR/TOY4lQzThBnlwdRPpn59X1XpcrOut4tlnb5tyipdb+r0syrTj+3qa1GX8FxW6ge2C+5aGhsAAA==","debug_symbols":"nZBLCoAgFEX38sYSUvRzK9HgZQaCqKgFIe49JVpAzu6HMzkRlOEYpNEeWATatAOwJYK3qMvgA7oArJ16AkLvOc00ETikEjmPfVpJgcYaaKqB5gqooz+h3C50EjclipZynpp/lnINt32f9AA="},{"name":"mint_public","is_unconstrained":true,"custom_attributes":["aztec(public)"],"abi":{"parameters":[{"name":"inputs","type":{"kind":"struct","path":"authwit::aztec::context::inputs::public_context_inputs::PublicContextInputs","fields":[{"name":"call_context","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext","fields":[{"name":"msg_sender","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"storage_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"portal_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"function_selector","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"historical_header","type":{"kind":"struct","path":"authwit::aztec::protocol_types::header::Header","fields":[{"name":"last_archive","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"content_commitment","type":{"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment","fields":[{"name":"tx_tree_height","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}]}},{"name":"state","type":{"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference","fields":[{"name":"l1_to_l2_message_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference","fields":[{"name":"note_hash_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}}]}},{"name":"public_global_variables","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}]},"visibility":"private"},{"name":"to","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]},"visibility":"private"},{"name":"amount","type":{"kind":"field"},"visibility":"private"}],"param_witnesses":{"amount":[{"start":35,"end":36}],"inputs":[{"start":0,"end":34}],"to":[{"start":34,"end":35}]},"return_type":{"abi_type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_circuit_public_inputs::PublicCircuitPublicInputs","fields":[{"name":"call_context","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext","fields":[{"name":"msg_sender","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"storage_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"portal_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"function_selector","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"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":"nullifier_read_requests","type":{"kind":"array","length":2,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"nullifier_non_existent_read_requests","type":{"kind":"array","length":2,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"contract_storage_update_requests","type":{"kind":"array","length":16,"type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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_note_hashes","type":{"kind":"array","length":16,"type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"struct","path":"authwit::aztec::protocol_types::messaging::l2_to_l1_message::L2ToL1Message","fields":[{"name":"recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"content","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":"unencrypted_logs_hash","type":{"kind":"field"}},{"name":"unencrypted_log_preimages_length","type":{"kind":"field"}},{"name":"historical_header","type":{"kind":"struct","path":"authwit::aztec::protocol_types::header::Header","fields":[{"name":"last_archive","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"content_commitment","type":{"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment","fields":[{"name":"tx_tree_height","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}]}},{"name":"state","type":{"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference","fields":[{"name":"l1_to_l2_message_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference","fields":[{"name":"note_hash_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}}]}},{"name":"prover_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}}]},"visibility":"public"},"return_witnesses":[36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233]},"bytecode":"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","debug_symbols":"5d3djmTJdd3xd+lrwjixv4OvYvhiLNMAAWIoiGMDBjHv7pLUmV2EctgT03X+XA1eiRIzT0TN6b1mavO3xL9++tOf/+WHn/745x//8un3f/10/Tdb9un3//2vn/7yrz/8+O//l7/89MO//fTp99fvPv3hx//19j9//t2n//3HP/3h0++t8+f/8bv/+IYffyOOv5HH36jjb/TxN+b4G/v0G3b9+m/87r98bvrxyZl8fnZFP56+bn263fp0v/XpcevT89an161P71ufPrc+fd/5dL91Vv3WWfVbZ9VvnVX/pj/vbz+6f/7o27+ML89f6/H8vvf5cX3b8/PL89//9fny/HXz8+3m5/vNz4+bn583P79ufn7f/Py5+fn73ufnzfOb3za/8fjkWxA8P+uPZ9uNz/Ybn/1tM2tXPR5u/iqTM29+ft38/L75+XPz8/e9z6/r5uevm59vNz/fb37+zfNbN89v3Ty/dfP81s3zWzfPb988v33z/PbN89s3z2/fPL998/z2zfPbN89v3zy/ffP8zs3zOzfP79w8v3Pz/M7N8zs3z+/cPL9z8/zOzfM7N8/vvnl+97fN7+XPXx6vtL95/otPZ+Tj01nXq9uY1G0SvE2t/fh02cvblNRtWuo2I3WbLXQbvy6p2yyp25jUbVzqNiF1G6Us9kspi/1SymK/lLLYL6ksXlJZvKSyeEll8ZLK4iWVxUsqi5dUFi+pLF5SWbykstikstikstikstikstikstikstikstikstikstikstilstilstilstilstilstilstilstilstilstilsjiksjiksjiksjiksjiksjiksjiksjiksjiksjiksjilsjilsjilsjilsjilsjilsjilsjilsjilsjilsriksriksriksriksriksriksriksriksriksriksrilsrilsrilsrilsrilsrilsrilsrilsrilsrilsniksniksniksniksniksniksniksniksniksniksnhLZfGWyuItlcVbKou3VBZL9e5cqnfnUr07l+rduVTvLqR6dyHVuwup3l1I9e7iUsrikOrdhVTvLqR6dyHVuwup3l1I9e5CqncXUr27kOrdhVTvLqR6dyHVuwup3l1I9e5CqncXUr27kOrdhVTvLqR6dyHVuwup3l1I9e5CqncXUr27kOrdhVTvLqR6dyHV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UrfZSrchWye/4jZL6jYmdRuXug2ZxV+zxZtsnfyK2yh5/V1KXn+XktffpeT1dyt5/d1L6jYmdRuXuo1UFrdUFkt1p7ZUd2pLdae2VHdqS3Wn9khl8Uhl8Uhl8Uhl8Uhl8Uhl8Uhl8Uhl8Uhl8ZbK4i2VxVsqi7dUFm+pLN5SWbylsnhLZfFWSr91XUrx93Ydpfx7u45SAL5dRykB365z8Ef581dOWhmPr6zzr9j5V/z8K3H+lTz/Sp1/pc+/MudfOX/7dv727fzt2/nbt/O3b+dv387fvp2/fTt/+3b+9u387fv52/fzt+/nb9/P376fv30/f/t+/vb9/O37+dv387cf528/zt9+nL/9OH/7cf724/ztx/nbj/O3H+dvP87ffp6//Tx/+3n+9vP87ef528/zt5/nbz/P336ev/08f/t1/vbr/O3X+duv87df52+/zt9+nb/9On/7df726/zt9/nb7/O33+dvv8/ffp+//T5/+33+9vv87ff52+/ztz/nb3/O3/6cv/05f/tz/vbn/O3P+duf87c/529/zt/+Pn/7+/zt7/O3v8/f/j5/+/v87e/zt7/P3/4+f/v7+O2v6zr/yjr/ip1/xc+/EudfyfOv1PlX+vwrc/6V87d/vutb57u+db7rW+e7vnW+61vnu751vutb57u+db7rW+e7vnW+61vnu751vutb57u+db7rW+e7vnW+61vnu751vutb57u+db7rW+e7vnW+61vnu751vutb57u+db7rW+e7vnW+61vnu751vutb57u+db7rW+e7vnW+61vnu751vutb57u+db7rW+e7vnW+61vnu751vutb57u+db7rW+e7vnW+61vnu751vutb57u+db7rW+e7vnW+61vnu751vutb57u+db7rW+e7vnW+61vnu751vutb57u+db7rW+e7vnW+61vnu751vutb57u+db7rW+e7vnW+61vnu751vutb57u+db7rW+e7vnW+61vnu751vutb57u+db7rW+e7vnW+61vnu751vutb57u+db7rW+e7vnW+61vnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7r8/Ndn5/v+vx81+fnuz4/3/X5+a7Pz3d9fr7r8/Ndn5/v+vzb/pvVqufzJ2u/axVf+1VjuZ//9RHXl+f6l5ssmZuYzE1c5iYhc5OUuUnJ3KRlbjIyN9kqNzGZjDWZjDWZjDWZjDWZjDWZjDWZjDWZjDWZjDWZjHWZjHWZjHWZjHWZjHWZjHWZjHWZjHWZjHWZjHWZjA2ZjA2ZjA2ZjA2ZjA2ZjA2ZjA2ZjA2ZjA2ZjA2ZjE2ZjE2ZjE2ZjE2ZjE2ZjE2ZjE2ZjE2ZjE2ZjE2ZjC2ZjC2ZjC2ZjC2ZjC2ZjC2ZjC2ZjC2ZjC2ZjC2ZjG2ZjG2ZjG2ZjG2ZjG2ZjG2ZjG2ZjG2ZjG2ZjG2ZjB2ZjB2ZjB2ZjB2ZjB2ZjB2ZjB2ZjB2ZjB2ZjB2ZjN0yGbtlMnbLZOyWydgtk7FbJmO3TMZumYzdMhm7VTI2LpWMjUslY+NSydi4VDI2LpWMjUslY+NSydi4VDI2LpWMjUsmY2V6XiHT8wqZnlfI9LxCpucVMj2vkOl5hUzPK2R6XiHT8wqZnlfI9LxCpucVMj2vkOl5hUzPK2R6XiHT8wqZnlfI9LxCpucVMj2vkOl5hUzPK2R6XiHT8wqZnlfI9LxCpucVMj2vkOl5hUzPK2R6XiHT8wqZnlfI9LxCpucVMj2vkOl5hUzPK2R6XiHT8wqZnlfI9LxCpucVMj2vkOl5hUzPK2R6XiHT8wqZnlfI9LxCpucVMj2vkOl5hUzPK2R6XiHT8wqZnlfI9LxCpucVMj2vkOl5hUzPK2R6XiHT8wqZnlfI9LxCpucVMj2vkOl5hUzPK2R6XiHT8wqZnlfI9LxCpucVMj2vkOl5hUzPK2R6XiHT8wqZnlfI9LxCpucVMj2vkOl5hUzPK2R6XiHT80qZ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"},{"name":"check_balance","is_unconstrained":true,"custom_attributes":["aztec(public)"],"abi":{"parameters":[{"name":"inputs","type":{"kind":"struct","path":"authwit::aztec::context::inputs::public_context_inputs::PublicContextInputs","fields":[{"name":"call_context","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext","fields":[{"name":"msg_sender","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"storage_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"portal_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"function_selector","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"historical_header","type":{"kind":"struct","path":"authwit::aztec::protocol_types::header::Header","fields":[{"name":"last_archive","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"content_commitment","type":{"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment","fields":[{"name":"tx_tree_height","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}]}},{"name":"state","type":{"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference","fields":[{"name":"l1_to_l2_message_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference","fields":[{"name":"note_hash_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}}]}},{"name":"public_global_variables","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}]},"visibility":"private"},{"name":"fee_limit","type":{"kind":"field"},"visibility":"private"}],"param_witnesses":{"fee_limit":[{"start":34,"end":35}],"inputs":[{"start":0,"end":34}]},"return_type":{"abi_type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_circuit_public_inputs::PublicCircuitPublicInputs","fields":[{"name":"call_context","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext","fields":[{"name":"msg_sender","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"storage_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"portal_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"function_selector","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"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":"nullifier_read_requests","type":{"kind":"array","length":2,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"nullifier_non_existent_read_requests","type":{"kind":"array","length":2,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"contract_storage_update_requests","type":{"kind":"array","length":16,"type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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_note_hashes","type":{"kind":"array","length":16,"type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"struct","path":"authwit::aztec::protocol_types::messaging::l2_to_l1_message::L2ToL1Message","fields":[{"name":"recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"content","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":"unencrypted_logs_hash","type":{"kind":"field"}},{"name":"unencrypted_log_preimages_length","type":{"kind":"field"}},{"name":"historical_header","type":{"kind":"struct","path":"authwit::aztec::protocol_types::header::Header","fields":[{"name":"last_archive","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"content_commitment","type":{"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment","fields":[{"name":"tx_tree_height","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}]}},{"name":"state","type":{"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference","fields":[{"name":"l1_to_l2_message_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference","fields":[{"name":"note_hash_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}}]}},{"name":"prover_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}}]},"visibility":"public"},"return_witnesses":[35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232]},"bytecode":"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","debug_symbols":"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I+X2xSPl9sUj5fbFI+X2xSPl9sUj5fbFI+X2xSPl9sUj5fbFI+X2xSPl9r3iaLWylNsXj5Tb94qj1cpSbl88Um7fK45WK0u5fa84Wq0s5fa94mi1spTb94qj1cpSbt8rjlYrS7l98Ui5ffFIuX3xSLl9rzharSzl9sUj5fa94mi1spTb94qj1cpSbt8rjlYrS7l9rzharSzl9r3iaLWylNv3iqPVylJu3yuOVCublttnWm6fabl9puX22SPVyqbl9pmW22dabp9puX2m5faZlttnWm6fabl9puX2mZbbZ1pun2m5fabl9pmW22dabp9puX2m5faZlttnWm6fabl9puX2mZbbZ1pun2m5fabl9pmW22dabp9puX2m5faZlttnWm6fabl9puX2mZbbZ1pun2m5fabl9pmW22dabp9puX2m5faZlttnWm6fabl9puX2mZbbZ1pun2m5fabl9pmW22dabp9puX2m5faZlttnWm6fabl9puX2mZbbZ1pun2m5fabl9pmW22dabp9puX2m5faZlttnWm6fabl9puX2mZbbZ1pun2m5fabl9pmW22dabp9puX2m5faZlttnWm6fabl9puX2mZbbZ1pun2m5fabl9pmW22dabp9puX2m5faZlttnWm6fabl9puX2mZbbZ1pu39Fy+46W23e03L6j5fadR6qVj5bbd7TcvqPl9h0tt+9ouX0H1cXGz9vTc+PDOKEVB/yt7M/Mp6fd7HwYp7XijFQcUoj6IXFMKw74A4a/fpx5i3PufM/TMf322feJb83hzHt4/yWHj19y+KsR/i1OacVprTgjFYd0oX5IHNOKI1LIb3HQiu16i+OPfxgntOJcrTipFae04rRWnJGKE49WHNOKc7TiaLVyaLVyaLVyaLVyaLVyaLVyaLXy1Wrlq9XKV6uVr1YrX61WvlqtfLVa+Wq18tVq5avVyqnVyqnVyqnVyqnVyqnVyqnVyqnVyqnVyqnVyqnVyqXVyqXVyqjtMxNvcZ7zfBjnasVJrTilFae14oxUHNT2+QFxTCvO0YrjP1ecD0miDq04VytOasVBsa94R3ee+hDd6ZaKM6YV52jFca04oRXnasUh/1+o2X2LY24fximtOK0VZ5Ti+COFm/ojhZv6c7TiuFac0IpzteKkVhwpCcAfKQnAHykJwE2rlU2rlU2rlU2rlU2rlU2rlU2rlbXULNdSs1xLzXItNcu11Cw/Wq18tFr5aLXy0Wrlo9XKR6uVj1YrH61Wdq1Wdq1Wdq1Wdq1Wdq0adK0adK0adK0adK0a/Fj5OfkO2jzf+puET76/5j/utfhxr90f91r+uNdq+drrP/3f3/zH737zP3//2z+93vjb//h//vBvf/7dH//w6T/++f/9+3/9L3/9/w=="},{"name":"claim_public","is_unconstrained":true,"custom_attributes":["aztec(public)"],"abi":{"parameters":[{"name":"inputs","type":{"kind":"struct","path":"authwit::aztec::context::inputs::public_context_inputs::PublicContextInputs","fields":[{"name":"call_context","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext","fields":[{"name":"msg_sender","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"storage_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"portal_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"function_selector","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"historical_header","type":{"kind":"struct","path":"authwit::aztec::protocol_types::header::Header","fields":[{"name":"last_archive","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"content_commitment","type":{"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment","fields":[{"name":"tx_tree_height","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}]}},{"name":"state","type":{"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference","fields":[{"name":"l1_to_l2_message_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference","fields":[{"name":"note_hash_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}}]}},{"name":"public_global_variables","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}]},"visibility":"private"},{"name":"to","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]},"visibility":"private"},{"name":"amount","type":{"kind":"field"},"visibility":"private"},{"name":"secret","type":{"kind":"field"},"visibility":"private"}],"param_witnesses":{"amount":[{"start":35,"end":36}],"inputs":[{"start":0,"end":34}],"secret":[{"start":36,"end":37}],"to":[{"start":34,"end":35}]},"return_type":{"abi_type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_circuit_public_inputs::PublicCircuitPublicInputs","fields":[{"name":"call_context","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext","fields":[{"name":"msg_sender","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"storage_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"portal_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"function_selector","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"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":"nullifier_read_requests","type":{"kind":"array","length":2,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"nullifier_non_existent_read_requests","type":{"kind":"array","length":2,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"contract_storage_update_requests","type":{"kind":"array","length":16,"type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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_note_hashes","type":{"kind":"array","length":16,"type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"struct","path":"authwit::aztec::protocol_types::messaging::l2_to_l1_message::L2ToL1Message","fields":[{"name":"recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"content","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":"unencrypted_logs_hash","type":{"kind":"field"}},{"name":"unencrypted_log_preimages_length","type":{"kind":"field"}},{"name":"historical_header","type":{"kind":"struct","path":"authwit::aztec::protocol_types::header::Header","fields":[{"name":"last_archive","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"content_commitment","type":{"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment","fields":[{"name":"tx_tree_height","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}]}},{"name":"state","type":{"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference","fields":[{"name":"l1_to_l2_message_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference","fields":[{"name":"note_hash_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}}]}},{"name":"prover_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}}]},"visibility":"public"},"return_witnesses":[37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234]},"bytecode":"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","debug_symbols":"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1ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye416e416e416e416e41/f4F278kcAfGfgjE38k8Ufw08e9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9voF7fQP3+gbu9Q3c6xu41zdwr2/gXt/Avb6Be30D9/oG7vUN3OsbuNc3cK9v4F7fwL2+gXt9A/f6Bu71DdzrG7jXN3Cvb+Be38C9voF7fQP3+gbu9Q3c6xu41zdwr2/gXt/Avb6Be30D9/oG7vUN3OsbuNc3cK9v4F7fwL2+gXt9A/f6Bu71DdzrG7jXN3Cvb+Be38C9voF7fQP3+gbu9Q3c6xu41zdwr2/gXt/Avb6Be30D9/oG7vUN3OsbuNc3cK9v4F7fwL2+gXt9A/f6Bu71DdzrG7jXN3Cvb+Be38C9voF7fQP3+gbu9Q3c6xu41zdwr2/gXt/Avb6Be30D9/oG7vUN3OsbuNc3cK9v4F7fwL2+gXt9A/f6Bu71DdzrG7jXN3Cvb+Be38C9voF7fQP3+gbu9Q3c65u41zdxr2/iXt/Evb6Je30T9/om7vVN3OubuNc3ca9v4l7fxL2+iXt9E/f6Ju71Tdzrm7jXN3Gvb+Je38S9vol7fRP3+ibu9U3c65u41zdxr2/iXt/Evb6Je30T9/om7vVN3OubuNc3ca9v4l7fxL2+iXt9E/f6Ju71Tdzrm7jXN3Gvb+Je38S9vol7fRP3+ibu9U3c65u41zdxr2/iXt/Evb6Je30T9/om7vVN3OubuNc3ca9v4l7fxL2+iXt9E/f6Ju71Tdzrm7jXN3Gvb+Je38S9vol7fRP3+ibu9U3c65u41zdxr2/iXt/Evb6Je30T9/om7vVN3OubuNc3ca9v4l7fxL2+iXt9E/f6Ju71Tdzrm7jXN3Gvb+Je38S9vol7fRP3+ibu9U3c65u41zdxr2/iXt/Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb6Fe30L9/oW7vUt3OtbuNe3cK9v4V7fwr2+hXt9C/f6Fu71LdzrW7jXt3Cvb+Fe38K9voV7fQv3+hbu9S3c61u417dwr2/hXt/Cvb6Fe30L9/oW7vUt3OtbuNe3cK9v4V7fwr2+hXt9C/f6Fu71LdzrW7jXt3Cvb+Fe38K9voV7fQv3+hbu9S3c61u417dwr2/hXt/Cvb6Fe30L9/oW7vUt3OtbuNe3cK9v4V7fwr2+hXt9C/f6Fu71LdzrW7jXt3Cvb+Fe38K9voV7fQv3+hbu9S3c61u417dwr2/hXt/Cvb6Fe30L9/oW7vUt3OtbuNe3cK9v4V7fwr2+hXt9C/f6Fu71LdzrW7jXt3Cvb+Fe38K9voV7fQv3+hbu9S3c61u417dwr2/hXt/Cvb6Fe30L9/oW7vUt2OuzA/b6Ho8I/ojijxj+iOOPBP7IwB+Z+COJP4KfvuCnL/jpC376gp++4Kcv+OkLfvqCn77gpy/46St++oqfvuKnr/jpK376ip++4qev+OkrfvqKn77hp2/46Rt++oafvuGnb/jpG376hp++4adv+Ok7fvqOn77jp+/46Tt++o6fvuOn7/jpO376jp9+4Kcf+OkHfvqBn37gpx/46Qd++oGffuCnH/jpD/z0B376Az/9gZ/+wE9/4Kc/8NMf+OkP/PQHfvoTP/2Jn/7ET3/ipz/x05/46U/89Cd++hM//YmffuKnn/jpJ376iZ9+4qef+OknfvqJn37ip5/46S/89Bd++gs//YWf/sJPf+Gnv/DTX/jpL/z0ca9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9PcK9Pzr2+UPnxUMT4w2P/8NtnzfLHZ83WL58dryXG/iXm/iVy/xJr+xLn3ubXLiH7l9D9S9j+JXz/Evuje+6P7rk/uuf+6J77ozv3R3fuj+7cH925P7pzf3Tn/ujO/dGd+6M790d37o/utT+61/7oXvuje+2P7rU/utf+6F77o3vtj+61P7rX9ujW49i/hOxfQvcvYfuX8P1LxP4lxv4l5v4lcv8S+6Nb9ke37I9u2R/dsj+6ZX90y/7olv3RLfujW/ZHt+yPbt0f3bo/unV/dOv+6Nb90a37o1v3R7fuj27dH926P7ptf3Tb/ui2/dFt+6Pb9ke37Y9u2x/dtj+6bX902/7o9v3R7fuj2/dHt++Pbt8f3b4/un1/dPv+6Pb90e37ozv2R3fsj+7YH92xP7pjf3TH/uiO/dEd+6M79kd37I/usT+6x/7oHvuje+yP7rE/uvf3qun+XjXd36um+3vVdH+vmu7vVdP9vWq6v1dN9/eq6f5eNd3fq6b7e9V0f6+a7u9V0/29arq/V03396rp/l413d+rpvt71XR/r5ru71XT/b1qur9XTff3qun+XjXd36um+3vVdH+vmu7vVdP9vWq6v1dN9/eq6f5eNd3fq2b7e9Vsf6+a7e9Vs/29anb4/iVi/xJj/xJz/xK5f4n90b2/V83296rZ/l4129+rZvt71Wx/r5rt71Wz/b1qtr9Xzfb3qtn+XjXb36tm+3vVbH+vmu3vVbP9vWq2v1fN9veq2f5eNdvfq2b7e9Vsf6+a7e9Vs/29ara/V83296rZ/l4129+rZvt71Wx/r5rt71Wz/b1qtr9Xzfb3qtn+XjXb36tm+3vVbH+vmu3vVbP9vWq2v1fN9veq2f5eNdvfq2b7e9Vsf6+a7e9Vs/29ara/V83296rZ/l4129+rZvt71Wx/r5rt71Wz/b1qtr9Xzfb3qtn+XjXb36tm+3vVbH+vmu3vVbP9vWq2v1fN9veq2f5eNdvfq2b7e9Vsf6+a7e9Vs/29ara/V83296rZ/l4129+rZvt71Wx/r5rt71Wz/b1qtr9Xzfb3qtn+XjXb36tm+3vVbH+vmu3vVbP9vWq2v1fN9veq+f5eNd/fq+b7e9V8f6+aH75/idi/xNi/xNy/RO5fYn907+9V8/29ar6/V83396r5/l4139+r5vt71Xx/r5rv71Xz/b1qvr9Xzff3qvn+XjXf36vm+3vVfH+vmu/vVfP9vWq+v1fN9/eq+f5eNd/fq+b7e9V8f6+a7+9V8/29ar6/V83396r5/l4139+r5vt71Xx/r5rv71Xz/b1qvr9Xzff3qvn+XjXf36vm+3vVfH+vmu/vVfMv6FWb+uOzD+fpD0v8/tmVz/fKIfbzw8fJZ+Vh8D4//CjOv374qV0ba7fG2r2x9misfTTWPhtrz8baV1/tX9DM+X3aG9fV0biujsZ19QsaZr9Pe+O6OhrX1dG4ro7GdXU0rquzcV2djevqbFxXZ+O6+gWt6t+nvXFdnY3r6mxcV2fjujob19VsXFezcV3NxnU1G9fVL4BEvk9747qajetqNq6r2biuZuO6uhrX1dW4rq7GdXU1rqtfgGd9n/bGdXU1rqtrY119LpH7l/h0lXJdzyVCKk8gPo/AfaN2aaxdG2u3xtq9sfZorH001j4ba8/G2hvXVWlcV6VxXZXGdVUa19XPA77fqL1xXZXGdVUa11VpXFelcV3VxnVVG9dVbVxXtXFd/Txa/43aG9dVbVxXtXFd1cZ1VRvXVWtcV61xXbXGddUa19XPD7X4Ru2N66o1rqvWuK5a47pqjeuqN66r3riueuO66hvr6nMJ37/E57PlPJ5LTD1dIrcv8flJI4/r6fOzvk6X0P1L2P4lfP8SsX+JT19PRjzjYvyNP1Fz/xK5f4m1fYnPD1K4XkL2L6H7l7D9S/j+JWL/Evuje+yP7rE/usf+6J77o3vuj+65P7rn/uie+6N77o/uuT+65/7onvuje+6P7twf3bk/unN/dOf+6M790Z37ozv3R/fnKb+R8Vxi5ekSuX+JtX2Jz6Nt10vI/iV0/xK2fwnfv0TsX2LsX2J/dK/90b22R/c4jv1LyP4ldP8Stn8J379E7F9i7F9i7l8i9y+xP7plf3TL/uiW/dEt+6Nb9ke37I9u2R/dsj+6P9/QPeX52al+usTavsTn26Ovl5D9S+j+JWz/Er5/idi/xNi/xNy/xP7o1v3Rbfuj2/ZHt+2Pbtsf3bY/um1/dNv+6Lb90W37o9v2R7fvj27fH92+P7p9f3T7/uj2/dHt+6Pb90e374/uz/8q1rT5XCKOsyU+/6tY10vI/iV0/xK2fwnfv0TsX2LsX2LuXyL3L7E/usf+6B77o3vsj+6xP7rH/uge+6N77I/usT+6x/7oHvuje+6P7rk/uuf+6J77o3vuj+65P7rn/uie+6N77o/uuT+6c3905/7ozv3RnfujO/dH9+d71Wbaj8+m/HGJ3z+7/ClnjZ//7iRrveQMLjmTS05yyVlUcj7fh/e1coRLjnLJsVI5PyHTw8Yf9Pz+4Vivztjj54vFjpd2b6w9GmsfjbXPxtqTVvt4iXj8W+2p9tVW+zyOxtqlsXZtrJ23rj7+ReapfZxr562r19p56+q1dt66eq2dOL/nc5rGw4440y7E+f1SO2+eyfG8z6xjnGrnzTMr7PX3Jj/VzptnrrXz5plr7bz392vtvPf3a+28+f1Su/Lm92vtvPf3X7RPO9XOe3+/1s5bV1foS3ueaieuqz4utBPX1UvtxHX1UjtxXb3UTlxX11PEWutUO3FdfcFpf0M7Cn48HzstaUOeX+OPKNzZV3YN//Fh11/qpvtrDS1YwwrW8II1omCNUbDGLFgjC9ZY+9c4pzq+eI2COPeCOPeCOPeCOPeCOPeCOPeCOPeCOPeCOI+COI+COI+COI+COI+COI+COI+COI+COI+COI+COB8FcT4K4nwUxPkoiPNREOejIM5HQZyPgjgfBXE+CuJ8FsT5LIjzWRDnsyDOZ0Gcz4I4nwVxPgvifBbE+SyI8yyI8yyI8yyI8yyI8yyI8yyI8yyI8yyI8yyI8yyI81UQ56sgzldBnK+COF8Fcb4K4nwVxPkqiPNVEOdrf5zncRSsIQVraMEaVrCGF6wRBWuMgjVmwRpZsEZBnEtBnEtBnEtBnEtBnEtBnEtBnEtBnEtBnEtBnEtBnGtBnGtBnGtBnGtBnGtBnGtBnGtBnGtBnGtBnGtBnFtBnBf0w2VBP1wW9MNlQT9cFvTDZUE/XBb0w2VBP1wW9MPl5/vh1sPX+fHh9bhKvT79GvGTn++H+8Aan47ztTJ/fFiO47CzRT4d6Ovxjp+L/EI2nnYtj+MJPAz92Yic8+yk5/O9Yb/0ioucfXa94Mo4/Bf65jUdJT/fltfmm8bbfNPxNt90vs03zbf5putdvunnW1fbfFN5m2+qb/NN3+aO9PmW5jbftPqO9Ppby8Nv/PvfdPrP+aL+h2/61D4aa5+NtWdj7auv9nE01i6NtWtj7dZYuzfW3riujsZ1dTSuq6NxXR2N6+psXFdn47o6G9fV2biufh7w+UbtjevqbFxXZ+O6OhvX1dm4rmbjupqN62o2rqvZuK5+Hqj7Ru2N62o2rqvZuK5m47qajevqalxXV+O6uhrX1dW4rn4eYP1G7Y3r6mpcV1fjuroa19XVt66uo29dXUffurqOvnV1HX3r6jr61tV19K2r6+hbV9fRt66uo29dXUfjuiqN66o0rqvSuK5K47r6+QEN36i9cV2VxnVVGtdVaVxXpXFd1cZ1VRvXVW1cV7VxXf38QJRv1N64rmrjuqqN66o2rqvauK5a47pqjeuqNa6r1riufn4A0Tdqb1xXrXFdtcZ11RrXVWtcV71xXfXGddUb11VvXFfLJ219pfbGddUb11VvXFe9cV31xnU1GtfVaFxXo3FdjcZ1tXw601dqb1xXG89bWo3nLa3G85ZW43lLq/G8pdV43tJqPG9pNZ63tBrPW1qN5y2txvOWVuN5S6vxvKXVeN7SajxvaTWet7Qaz1tajectrcbzllbjeUur8byl1Xje0mo8b2k1nre0Gs9bWo3nLa3G85ZW43lLq/G8pdV43tJqPG9pNZ63tBrPW1qN5y2txvOWVuN5S6vxvKXVeN7SajxvaTWet7Qaz1tajectrcbzllbfeUt+9J239NDetq4+tLetqw/tbevqQ3vbuvrQ3rauPrS3rasP7W3r6kN727r60N64rvadt/TQ3riu9p239NDeuK72nbf00N64rvadt/TQ3riu9p239NDeuK72nbf00N64rvadt/TQ3riu9p239NDeuK72nbf00N64rvadt/TQ3riu9p239NDeuK72nbf00N64rvadt/TQ3riu9p239NDeuK72nbf00N64rvadt/TQ3riu9p239NDeuK72nbf00N64rvadt/TQ3riu9p239NDeuK72nbf00N64rvadt/TQ3riu9p239NDeuK72nbf00N64rvadt/TQ3riu9p239NDeuK72nbf00N64rvadt/TQ3riu9p239NDeuK72nbf00N64rvadt/TQ3riu9p239NDeuK72nbf00N64rvadt/TQ3riu9p239NDeuK72nbf00N64rvadt/TQ3riu9p239NDeuK72nbf00N64rvadt/TQ3riu9p239NDeuK72nbf00N64rvadt/TQ3riu9p239NDeuK72nbf00N63rkrjeUvSeN6SNJ63JI3nLcnRt65K43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSet6SN5y1p43lL2njekjaet6RH37qqjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI1nrdkjectWeN5S9Z43pIdfeuqNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUveeN6SN5635I3nLXnjeUt+9K2r3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1F43lL0XjeUjSetxSN5y3F0beuRuN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrc0Gs9bGo3nLY3G85ZG43lL4+hbV0fjeUuj8byl0Xje0mg8b2k0nrc0Gs9bGo3nLY3G85ZG43lLo/G8pdF43tJoPG9pNJ63NBrPWxqN5y2NxvOWRuN5S6PxvKXReN7SaDxvaTSetzQaz1sajectjcbzlkbjeUuj8byl0Xje0mg8b2k0nrc0Gs9bGo3nLY3G85YG87yljOdHJf+g/UyEvDSI/VR8nHxWbI3nh93+8OHnphAX7O/bFOKbwLdtCvPoqe/bFOK7y/dtCvGl6Ps2hfi29X2b4vem/L4pxPfD79sU4ovn923KfaM92ZT7RnuyKfeN9vdNYR769n2bct9oTzblvtGebMp9oz3ZFL835fdNuW+0J5ty32hPNuW+0Z5syn2jPdmU+0b7+6Ywj1v8vk25b7Qnm3LfaE825b7RnmyK35vy+6bcN9qTTblvtCebct9oTzblvtGebMp9o/19U5gHnX7fptw32pNNuW+0J5ty32hPNsXvTfl9U+4b7cmm3Dfak025b7Qnm3LfaE825b7R/r4pzCOGv29T7hvtyabcN9qTTel4o31q98baee+H6S/tY9X+YeS9H37jpvDeD79xU3jvh9+4Kbz3w+/bFOJR2d+4Kbz3w2/cFN774TduCu/98Bs3xe9N+X1T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"}],"outputs":{"structs":{"functions":[{"kind":"struct","path":"GasToken::mint_public_abi","fields":[{"name":"parameters","type":{"kind":"struct","path":"GasToken::mint_public_parameters","fields":[{"name":"to","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"amount","type":{"kind":"field"}}]}}]},{"kind":"struct","path":"GasToken::claim_public_abi","fields":[{"name":"parameters","type":{"kind":"struct","path":"GasToken::claim_public_parameters","fields":[{"name":"to","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"amount","type":{"kind":"field"}},{"name":"secret","type":{"kind":"field"}}]}}]},{"kind":"struct","path":"GasToken::check_balance_abi","fields":[{"name":"parameters","type":{"kind":"struct","path":"GasToken::check_balance_parameters","fields":[{"name":"fee_limit","type":{"kind":"field"}}]}}]},{"kind":"struct","path":"GasToken::pay_fee_abi","fields":[{"name":"parameters","type":{"kind":"struct","path":"GasToken::pay_fee_parameters","fields":[{"name":"fee_limit","type":{"kind":"field"}}]}},{"name":"return_type","type":{"kind":"field"}}]}]},"globals":{"storage":[{"kind":"struct","fields":[{"name":"balances","value":{"kind":"struct","fields":[{"name":"slot","value":{"kind":"integer","sign":false,"value":"1"}},{"name":"typ","value":{"kind":"string","value":"Map<AztecAddress, PublicMutable<U128>>"}}]}}]}]}},"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 u64 { fn eq(self, other: u64) -> bool { self == other } }\nimpl Eq for u32 { fn eq(self, other: u32) -> bool { self == other } }\nimpl Eq for u8 { fn eq(self, other: u8) -> bool { self == other } }\nimpl Eq for u1 { fn eq(self, other: u1) -> 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<T> Eq for [T] where T: Eq {\n fn eq(self, other: [T]) -> bool {\n let mut result = self.len() == other.len();\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 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 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 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 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<T> Ord for [T] 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]) -> Ordering {\n let mut result = self.len().cmp(other.len());\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 len: u64,\n}\n\nimpl<T, MaxLen> BoundedVec<T, MaxLen> {\n pub fn new() -> Self {\n let zeroed = crate::unsafe::zeroed();\n BoundedVec { storage: [zeroed; MaxLen], len: 0 }\n }\n\n pub fn get(mut self: Self, index: u64) -> T {\n assert(index as u64 < self.len);\n self.storage[index]\n }\n\n pub fn get_unchecked(mut self: Self, index: u64) -> T {\n self.storage[index]\n }\n\n pub fn push(&mut self, elem: T) {\n assert(self.len < 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) -> u64 {\n self.len\n }\n\n pub fn max_len(_self: BoundedVec<T, MaxLen>) -> u64 {\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_slice(&mut self, slice: [T]) {\n let new_len = self.len + slice.len();\n assert(new_len as u64 <= MaxLen as u64, \"extend_from_slice out of bounds\");\n for i in 0..slice.len() {\n self.storage[self.len + i] = slice[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] = vec.get_unchecked(i);\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] = crate::unsafe::zeroed();\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}\n","path":"std/collections/bounded_vec.nr"},"20":{"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 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 // 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 // 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#[builtin(modulus_num_bits)]\npub fn modulus_num_bits() -> u64 {}\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 by modding\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"},"30":{"source":"mod poseidon;\nmod mimc;\nmod poseidon2;\nmod pedersen;\n\nuse crate::default::Default;\nuse crate::uint128::U128;\n\n#[foreign(sha256)]\n// docs:start:sha256\npub fn sha256<N>(input: [u8; N]) -> [u8; 32]\n// docs:end:sha256\n{}\n\n#[foreign(sha256)]\n// docs:start:sha256_slice\npub fn sha256_slice(input: [u8]) -> [u8; 32]\n// docs:end:sha256_slice\n{}\n\n#[foreign(blake2s)]\n// docs:start:blake2s\npub fn blake2s<N>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake2s\n{}\n\n#[foreign(blake2s)]\n// docs:start:blake2s_slice\npub fn blake2s_slice(input: [u8]) -> [u8; 32]\n// docs:end:blake2s_slice\n{}\n\n#[foreign(blake3)]\n// docs:start:blake3\npub fn blake3<N>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake3\n{}\n\n#[foreign(blake3)]\n// docs:start:blake3_slice\npub fn blake3_slice(input: [u8]) -> [u8; 32]\n// docs:end:blake3_slice\n{}\n\n// docs:start:pedersen_commitment\nstruct PedersenPoint {\n x : Field,\n y : Field,\n}\n\npub fn pedersen_commitment<N>(input: [Field; N]) -> PedersenPoint {\n // docs:end:pedersen_commitment\n pedersen_commitment_with_separator(input, 0)\n}\n\n// docs:start:pedersen_commitment_slice\npub fn pedersen_commitment_slice(input: [Field]) -> PedersenPoint {\n pedersen_commitment_with_separator_slice(input, 0)\n}\n// docs:end:pedersen_commitment_slice\n\n#[foreign(pedersen_commitment)]\npub fn __pedersen_commitment_with_separator<N>(input: [Field; N], separator: u32) -> [Field; 2] {}\n\n#[foreign(pedersen_commitment)]\npub fn __pedersen_commitment_with_separator_slice(input: [Field], separator: u32) -> [Field; 2] {}\n\npub fn pedersen_commitment_with_separator<N>(input: [Field; N], separator: u32) -> PedersenPoint {\n let values = __pedersen_commitment_with_separator(input, separator);\n PedersenPoint { x: values[0], y: values[1] }\n}\n\npub fn pedersen_commitment_with_separator_slice(input: [Field], separator: u32) -> PedersenPoint {\n let values = __pedersen_commitment_with_separator_slice(input, separator);\n PedersenPoint { x: values[0], y: values[1] }\n}\n\n// docs:start:pedersen_hash\npub fn pedersen_hash<N>(input: [Field; N]) -> Field\n// docs:end:pedersen_hash\n{\n pedersen_hash_with_separator(input, 0)\n}\n\n// docs:start:pedersen_hash_slice\npub fn pedersen_hash_slice(input: [Field]) -> Field\n// docs:end:pedersen_hash_slice\n{\n pedersen_hash_with_separator_slice(input, 0)\n}\n\n#[foreign(pedersen_hash)]\npub fn pedersen_hash_with_separator<N>(input: [Field; N], separator: u32) -> Field {}\n\n#[foreign(pedersen_hash)]\npub fn pedersen_hash_with_separator_slice(input: [Field], separator: u32) -> Field {}\n\npub fn hash_to_field(inputs: [Field]) -> Field {\n let mut inputs_as_bytes = &[];\n\n for input in inputs {\n let input_bytes = input.to_le_bytes(32);\n for i in 0..32 {\n inputs_as_bytes = inputs_as_bytes.push_back(input_bytes[i]);\n }\n }\n\n let hashed_input = blake2s_slice(inputs_as_bytes);\n crate::field::bytes32_to_field(hashed_input)\n}\n\n#[foreign(keccak256)]\n// docs:start:keccak256\npub fn keccak256<N>(input: [u8; N], message_size: u32) -> [u8; 32]\n// docs:end:keccak256\n{}\n\n#[foreign(keccak256)]\n// docs:start:keccak256_slice\npub fn keccak256_slice(input: [u8], message_size: u32) -> [u8; 32]\n// docs:end:keccak256_slice\n{}\n\n#[foreign(poseidon2_permutation)]\npub fn poseidon2_permutation<N>(_input: [Field; N], _state_length: u32) -> [Field; N] {}\n\n#[foreign(sha256_compression)]\npub fn sha256_compression(_input: [u32; 16], _state: [u32; 8]) -> [u32; 8] {}\n\n// Generic hashing support. \n// Partially ported and impacted by rust.\n\n// Hash trait shall be implemented per type.\ntrait Hash{\n fn hash<H>(self, state: &mut H) where H: Hasher;\n}\n\n// Hasher trait shall be implemented by algorithms to provide hash-agnostic means.\n// TODO: consider making the types generic here ([u8], [Field], etc.)\ntrait Hasher{\n fn finish(self) -> Field;\n \n fn write(&mut self, input: [Field]);\n}\n\n// BuildHasher is a factory trait, responsible for production of specific Hasher.\ntrait BuildHasher<H> where H: Hasher{\n fn build_hasher(self) -> H;\n}\n\nstruct BuildHasherDefault<H>;\n\nimpl<H> BuildHasher<H> for BuildHasherDefault<H>\nwhere \n H: Hasher + Default\n{\n fn build_hasher(_self: Self) -> H{\n H::default()\n }\n}\n\nimpl<H> Default for BuildHasherDefault<H>\nwhere \n H: Hasher + Default\n{\n fn default() -> Self{\n BuildHasherDefault{}\n } \n}\n\nimpl Hash for Field {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, &[self]);\n }\n}\n\nimpl Hash for u8 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, &[self as Field]);\n }\n}\n\nimpl Hash for u32 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, &[self as Field]);\n }\n}\n\nimpl Hash for u64 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, &[self as Field]);\n }\n}\n\nimpl Hash for i8 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, &[self as Field]);\n }\n}\n\nimpl Hash for i32 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, &[self as Field]);\n }\n}\n\nimpl Hash for i64 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, &[self as Field]);\n }\n}\n\nimpl Hash for bool {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, &[self as Field]);\n }\n}\n\nimpl Hash for () {\n fn hash<H>(_self: Self, _state: &mut H) where H: Hasher {}\n}\n\nimpl Hash for U128 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, &[self.lo as Field, self.hi as Field]);\n }\n}\n\nimpl<T, N> Hash for [T; N] where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<T> Hash for [T] where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.len().hash(state);\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<A, B> Hash for (A, B) where A: Hash, B: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n }\n}\n\nimpl<A, B, C> Hash for (A, B, C) where A: Hash, B: Hash, C: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n }\n}\n\nimpl<A, B, C, D> Hash for (A, B, C, D) where A: Hash, B: Hash, C: Hash, D: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n }\n}\n\nimpl<A, B, C, D, E> Hash for (A, B, C, D, E) where A: Hash, B: Hash, C: Hash, D: Hash, E: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n self.4.hash(state);\n }\n}\n","path":"std/hash.nr"},"33":{"source":"// Regular merkle tree means a append-only merkle tree (Explain why this is the only way to have privacy and alternatives if you don't want it)\n// Currently we assume that it is a binary tree, so depth k implies a width of 2^k\n// XXX: In the future we can add an arity parameter\n// Returns the merkle root of the tree from the provided leaf, its hashpath, using a pedersen hash function.\npub fn compute_merkle_root<N>(leaf: Field, index: Field, hash_path: [Field; N]) -> Field {\n let n = hash_path.len();\n let index_bits = index.to_le_bits(n as u32);\n let mut current = leaf;\n for i in 0..n {\n let path_bit = index_bits[i] as bool;\n let (hash_left, hash_right) = if path_bit {\n (hash_path[i], current)\n } else {\n (current, hash_path[i])\n };\n current = crate::hash::pedersen_hash([hash_left, hash_right]);\n }\n current\n}\n","path":"std/merkle.nr"},"35":{"source":"use crate::hash::{Hash, Hasher};\nuse crate::cmp::{Ordering, Ord, Eq};\nuse crate::default::Default;\n\nstruct Option<T> {\n _is_some: bool,\n _value: T,\n}\n\nimpl<T> Option<T> {\n /// Constructs a None value\n pub fn none() -> Self {\n Self { _is_some: false, _value: crate::unsafe::zeroed() }\n }\n\n /// Constructs a Some wrapper around the given value\n pub fn some(_value: T) -> Self {\n Self { _is_some: true, _value }\n }\n\n /// True if this Option is None\n pub fn is_none(self) -> bool {\n !self._is_some\n }\n\n /// True if this Option is Some\n pub fn is_some(self) -> bool {\n self._is_some\n }\n\n /// Asserts `self.is_some()` and returns the wrapped value.\n pub fn unwrap(self) -> T {\n assert(self._is_some);\n self._value\n }\n\n /// Returns the inner value without asserting `self.is_some()`\n /// Note that if `self` is `None`, there is no guarantee what value will be returned,\n /// only that it will be of type `T`.\n pub fn unwrap_unchecked(self) -> T {\n self._value\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, returns the given default value.\n pub fn unwrap_or(self, default: T) -> T {\n if self._is_some { self._value } else { default }\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, calls the given function to return\n /// a default value.\n pub fn unwrap_or_else<Env>(self, default: fn[Env]() -> T) -> T {\n if self._is_some {\n self._value\n } else {\n default()\n }\n }\n\n /// Asserts `self.is_some()` with a provided custom message and returns the contained `Some` value\n fn expect<N, MessageTypes>(self, message: fmtstr<N, MessageTypes>) -> T {\n assert(self.is_some(), message);\n self._value\n }\n\n /// If self is `Some(x)`, this returns `Some(f(x))`. Otherwise, this returns `None`.\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> Option<U> {\n if self._is_some {\n Option::some(f(self._value))\n } else {\n Option::none()\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns the given default value.\n pub fn map_or<U, Env>(self, default: U, f: fn[Env](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns `default()`.\n pub fn map_or_else<U, Env1, Env2>(self, default: fn[Env1]() -> U, f: fn[Env2](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default()\n }\n }\n\n /// Returns None if self is None. Otherwise, this returns `other`.\n pub fn and(self, other: Self) -> Self {\n if self.is_none() {\n Option::none()\n } else {\n other\n }\n }\n\n /// If self is None, this returns None. Otherwise, this calls the given function\n /// with the Some value contained within self, and returns the result of that call.\n ///\n /// In some languages this function is called `flat_map` or `bind`.\n pub fn and_then<U, Env>(self, f: fn[Env](T) -> Option<U>) -> Option<U> {\n if self._is_some {\n f(self._value)\n } else {\n Option::none()\n }\n }\n\n /// If self is Some, return self. Otherwise, return `other`.\n pub fn or(self, other: Self) -> Self {\n if self._is_some { self } else { other }\n }\n\n /// If self is Some, return self. Otherwise, return `default()`.\n pub fn or_else<U, Env>(self, default: fn[Env]() -> Self) -> Self {\n if self._is_some { self } else { default() }\n }\n\n // If only one of the two Options is Some, return that option.\n // Otherwise, if both options are Some or both are None, None is returned.\n pub fn xor(self, other: Self) -> Self {\n if self._is_some {\n if other._is_some { Option::none() } else { self }\n } else if other._is_some {\n other\n } else {\n Option::none()\n }\n }\n\n /// Returns `Some(x)` if self is `Some(x)` and `predicate(x)` is true.\n /// Otherwise, this returns `None`\n pub fn filter<Env>(self, predicate: fn[Env](T) -> bool) -> Self {\n if self._is_some {\n if predicate(self._value) {\n self\n } else {\n Option::none()\n }\n } else {\n Option::none()\n }\n }\n\n /// Flattens an Option<Option<T>> into a Option<T>.\n /// This returns None if the outer Option is None. Otherwise, this returns the inner Option.\n pub fn flatten(option: Option<Option<T>>) -> Option<T> {\n if option._is_some {\n option._value\n } else {\n Option::none()\n }\n }\n}\n\nimpl<T> Default for Option<T> {\n fn default() -> Self {\n Option::none()\n }\n}\n\nimpl<T> Eq for Option<T> where T: Eq {\n fn eq(self, other: Self) -> bool {\n if self._is_some == other._is_some {\n if self._is_some {\n self._value == other._value\n } else {\n true\n }\n } else {\n false\n }\n }\n}\n\nimpl<T> Hash for Option<T> where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n self._is_some.hash(state);\n if self._is_some {\n self._value.hash(state);\n }\n }\n}\n\n// For this impl we're declaring Option::none < Option::some\nimpl<T> Ord for Option<T> where T: Ord {\n fn cmp(self, other: Self) -> Ordering {\n if self._is_some {\n if other._is_some {\n self._value.cmp(other._value)\n } else {\n Ordering::greater()\n }\n } else {\n if other._is_some {\n Ordering::less()\n } else {\n Ordering::equal()\n }\n }\n }\n}\n","path":"std/option.nr"},"44":{"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 { lo: lo as Field, hi: hi as Field }\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 { lo, hi }\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 { lo: lo as Field, hi: hi as Field }\n }\n\n fn decode_ascii(ascii: u8) -> Field {\n if ascii < 58 {\n ascii - 48\n } else if ascii < 71 {\n ascii - 55\n } else {\n ascii - 87\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 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 { lo, hi }\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 { lo, hi }\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 underflow\");\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"},"60":{"source":"use crate::context::{PrivateContext, PublicContext, Context};\nuse dep::protocol_types::{hash::pedersen_hash, traits::ToField};\nuse crate::state_vars::storage::Storage;\n\n// docs:start:map\nstruct Map<K, V> {\n context: Context,\n storage_slot: Field,\n state_var_constructor: fn(Context, Field) -> V,\n}\n// docs:end:map\n\nimpl<K, T> Storage<T> for Map<K, T> {}\n\nimpl<K, V> Map<K, V> {\n // docs:start:new\n pub fn new(\n context: Context,\n storage_slot: Field,\n state_var_constructor: fn(Context, Field) -> V\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Map { context, storage_slot, state_var_constructor }\n }\n // docs:end:new\n\n // docs:start:at\n pub fn at(self, key: K) -> V where K: ToField {\n // TODO(#1204): use a generator index for the storage slot\n let derived_storage_slot = pedersen_hash([self.storage_slot, key.to_field()], 0);\n\n let state_var_constructor = self.state_var_constructor;\n state_var_constructor(self.context, derived_storage_slot)\n }\n // docs:end:at\n}\n","path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/map.nr"},"63":{"source":"use crate::context::Context;\nuse crate::oracle::storage::storage_read;\nuse crate::oracle::storage::storage_write;\nuse dep::protocol_types::traits::{Deserialize, Serialize};\nuse crate::state_vars::storage::Storage;\n\n// docs:start:public_mutable_struct\nstruct PublicMutable<T> {\n context: Context,\n storage_slot: Field,\n}\n// docs:end:public_mutable_struct\n\nimpl<T> Storage<T> for PublicMutable<T> {}\n\nimpl<T> PublicMutable<T> {\n // docs:start:public_mutable_struct_new\n pub fn new(\n // Note: Passing the contexts to new(...) just to have an interface compatible with a Map.\n context: Context,\n storage_slot: Field\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n PublicMutable { context, storage_slot }\n }\n // docs:end:public_mutable_struct_new\n\n // docs:start:public_mutable_struct_read\n pub fn read<T_SERIALIZED_LEN>(self) -> T where T: Deserialize<T_SERIALIZED_LEN> {\n assert(self.context.private.is_none(), \"PublicMutable reads only supported in public functions\");\n let fields = storage_read(self.storage_slot);\n T::deserialize(fields)\n }\n // docs:end:public_mutable_struct_read\n\n // docs:start:public_mutable_struct_write\n pub fn write<T_SERIALIZED_LEN>(self, value: T) where T: Serialize<T_SERIALIZED_LEN> {\n assert(self.context.private.is_none(), \"PublicMutable writes only supported in public functions\");\n let fields = T::serialize(value);\n storage_write(self.storage_slot, fields);\n }\n // docs:end:public_mutable_struct_write\n}\n","path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/public_mutable.nr"},"76":{"source":"use crate::{\n context::{\n inputs::PublicContextInputs, interface::ContextInterface, interface::PublicContextInterface,\n gas::GasOpts\n},\n messaging::process_l1_to_l2_message,\n oracle::{arguments, public_call::call_public_function_internal}, hash::hash_args_array\n};\nuse dep::protocol_types::{\n abis::{\n global_variables::GlobalVariables, function_selector::FunctionSelector,\n private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_call_stack_item::PublicCallStackItem,\n public_circuit_public_inputs::PublicCircuitPublicInputs, read_request::ReadRequest,\n side_effect::{SideEffect, SideEffectLinkedToNoteHash}\n},\n address::{AztecAddress, EthAddress},\n constants::{\n MAX_NEW_NOTE_HASHES_PER_CALL, MAX_NEW_L2_TO_L1_MSGS_PER_CALL, MAX_NEW_NULLIFIERS_PER_CALL,\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_DATA_READS_PER_CALL,\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL,\n MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL,\n RETURN_VALUES_LENGTH\n},\n contrakt::{storage_read::StorageRead, storage_update_request::StorageUpdateRequest}, header::Header,\n messaging::l2_to_l1_message::L2ToL1Message, utils::reader::Reader\n};\n\nstruct PublicContext {\n inputs: PublicContextInputs,\n side_effect_counter: u32,\n\n args_hash : Field,\n return_values : BoundedVec<Field, RETURN_VALUES_LENGTH>,\n\n nullifier_read_requests: BoundedVec<ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,\n nullifier_non_existent_read_requests: BoundedVec<ReadRequest, MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL>,\n contract_storage_update_requests: BoundedVec<StorageUpdateRequest, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL>,\n contract_storage_reads: BoundedVec<StorageRead, MAX_PUBLIC_DATA_READS_PER_CALL>,\n public_call_stack_hashes: BoundedVec<Field, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\n\n new_note_hashes: BoundedVec<SideEffect, MAX_NEW_NOTE_HASHES_PER_CALL>,\n new_nullifiers: BoundedVec<SideEffectLinkedToNoteHash, MAX_NEW_NULLIFIERS_PER_CALL>,\n\n new_l2_to_l1_msgs: BoundedVec<L2ToL1Message, MAX_NEW_L2_TO_L1_MSGS_PER_CALL>,\n\n unencrypted_logs_hash: Field,\n unencrypted_logs_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 prover_address: AztecAddress,\n}\n\nimpl PublicContext {\n pub fn new(inputs: PublicContextInputs, args_hash: Field) -> PublicContext {\n PublicContext {\n inputs,\n side_effect_counter: inputs.start_side_effect_counter,\n args_hash,\n return_values: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n nullifier_non_existent_read_requests: BoundedVec::new(),\n contract_storage_update_requests: BoundedVec::new(),\n contract_storage_reads: BoundedVec::new(),\n public_call_stack_hashes: BoundedVec::new(),\n new_note_hashes: BoundedVec::new(),\n new_nullifiers: BoundedVec::new(),\n new_l2_to_l1_msgs: BoundedVec::new(),\n unencrypted_logs_hash: 0,\n unencrypted_logs_preimages_length: 0,\n historical_header: inputs.historical_header,\n prover_address: AztecAddress::zero() // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n // encrypted_logs_preimages: Vec::new(),\n // unencrypted_logs_preimages: Vec::new(),\n }\n }\n\n pub fn call_public_function_no_args(\n self: &mut Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> [Field; RETURN_VALUES_LENGTH] {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false, false)\n }\n\n pub fn static_call_public_function_no_args(\n self: &mut Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> [Field; RETURN_VALUES_LENGTH] {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, true, false)\n }\n\n pub fn delegate_call_public_function_no_args(\n self: &mut Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> [Field; RETURN_VALUES_LENGTH] {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false, true)\n }\n\n pub fn call_public_function_with_packed_args(\n self: &mut Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let side_effect_counter = self.side_effect_counter;\n // TODO get next value from output of `call_public_function_internal`\n self.side_effect_counter += 1;\n\n call_public_function_internal(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter,\n is_static_call,\n is_delegate_call\n )\n }\n\n pub fn finish(self) -> PublicCircuitPublicInputs {\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n let unencrypted_logs_hash = 0;\n let unencrypted_log_preimages_length = 0;\n\n // Compute the public call stack hashes\n let pub_circuit_pub_inputs = PublicCircuitPublicInputs {\n call_context: self.inputs.call_context, // Done\n args_hash: self.args_hash, // Done\n nullifier_read_requests: self.nullifier_read_requests.storage,\n nullifier_non_existent_read_requests: self.nullifier_non_existent_read_requests.storage,\n contract_storage_update_requests: self.contract_storage_update_requests.storage,\n contract_storage_reads: self.contract_storage_reads.storage,\n return_values: self.return_values.storage,\n new_note_hashes: self.new_note_hashes.storage,\n new_nullifiers: self.new_nullifiers.storage,\n public_call_stack_hashes: self.public_call_stack_hashes.storage,\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\n start_side_effect_counter: self.inputs.start_side_effect_counter,\n end_side_effect_counter: self.side_effect_counter,\n unencrypted_logs_hash,\n unencrypted_log_preimages_length,\n historical_header: self.inputs.historical_header,\n prover_address: self.prover_address,\n revert_code: 0\n };\n pub_circuit_pub_inputs\n }\n}\n\nimpl ContextInterface for PublicContext {\n fn msg_sender(self) -> AztecAddress {\n self.inputs.call_context.msg_sender\n }\n\n fn this_address(self) -> AztecAddress {\n self.inputs.call_context.storage_contract_address\n }\n\n fn this_portal_address(self) -> EthAddress {\n self.inputs.call_context.portal_contract_address\n }\n\n fn chain_id(self) -> Field {\n self.inputs.public_global_variables.chain_id\n }\n\n fn version(self) -> Field {\n self.inputs.public_global_variables.version\n }\n\n fn selector(self) -> FunctionSelector {\n self.inputs.call_context.function_selector\n }\n\n fn get_args_hash(self) -> Field {\n self.args_hash\n }\n\n fn get_header(self) -> Header {\n self.historical_header\n }\n\n fn push_new_note_hash(&mut self, note_hash: Field) {\n let side_effect = SideEffect { value: note_hash, counter: self.side_effect_counter };\n self.new_note_hashes.push(side_effect);\n self.side_effect_counter = self.side_effect_counter + 1;\n }\n\n fn push_new_nullifier(&mut self, nullifier: Field, _nullified_commitment: Field) {\n let side_effect = SideEffectLinkedToNoteHash {\n value: nullifier,\n note_hash: 0, // cannot nullify pending notes in public context\n counter: self.side_effect_counter\n };\n self.new_nullifiers.push(side_effect);\n self.side_effect_counter = self.side_effect_counter + 1;\n }\n}\n\nimpl PublicContextInterface for PublicContext {\n fn block_number(self) -> Field {\n self.inputs.public_global_variables.block_number\n }\n\n fn timestamp(self) -> u64 {\n self.inputs.public_global_variables.timestamp\n }\n\n fn coinbase(self) -> EthAddress {\n self.inputs.public_global_variables.coinbase\n }\n\n fn fee_recipient(self) -> AztecAddress {\n self.inputs.public_global_variables.fee_recipient\n }\n\n fn push_nullifier_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.side_effect_counter };\n self.nullifier_read_requests.push(request);\n self.side_effect_counter = self.side_effect_counter + 1;\n }\n\n fn push_nullifier_non_existent_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.side_effect_counter };\n self.nullifier_non_existent_read_requests.push(request);\n self.side_effect_counter = self.side_effect_counter + 1;\n }\n\n fn message_portal(&mut self, recipient: EthAddress, content: Field) {\n let message = L2ToL1Message { recipient, content };\n self.new_l2_to_l1_msgs.push(message);\n }\n\n // We can consume message with a secret in public context because the message cannot be modified and therefore\n // there is no front-running risk (e.g. somebody could front run you to claim your tokens to your address).\n fn consume_l1_to_l2_message(&mut self, content: Field, secret: Field, sender: EthAddress) {\n let this = (*self).this_address();\n let nullifier = process_l1_to_l2_message(\n self.historical_header.state.l1_to_l2_message_tree.root,\n this,\n sender,\n self.chain_id(),\n self.version(),\n content,\n secret\n );\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_new_nullifier(nullifier, 0)\n }\n\n fn accumulate_encrypted_logs<N>(&mut self, log: [Field; N]) {\n let _void1 = self;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n fn accumulate_unencrypted_logs<T>(&mut self, log: T) {\n let _void1 = self;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n fn call_public_function<ARGS_COUNT>(\n self: &mut Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n _gas: GasOpts\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n fn static_call_public_function<ARGS_COUNT>(\n self: &mut Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n _gas: GasOpts\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, true, false)\n }\n\n fn delegate_call_public_function<ARGS_COUNT>(\n self: &mut Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, false, true)\n }\n}\n","path":"/usr/src/noir-projects/aztec-nr/aztec/src/context/public_context.nr"},"87":{"source":"use crate::{\n hash::{compute_secret_hash, compute_message_hash, compute_message_nullifier},\n oracle::get_l1_to_l2_membership_witness::get_l1_to_l2_membership_witness\n};\n\nuse dep::std::merkle::compute_merkle_root;\nuse dep::protocol_types::{constants::L1_TO_L2_MSG_TREE_HEIGHT, address::{AztecAddress, EthAddress}, utils::arr_copy_slice};\n\npub fn process_l1_to_l2_message(\n l1_to_l2_root: Field,\n storage_contract_address: AztecAddress,\n portal_contract_address: EthAddress,\n chain_id: Field,\n version: Field,\n content: Field,\n secret: Field\n) -> Field {\n let secret_hash = compute_secret_hash(secret);\n let message_hash = compute_message_hash(\n portal_contract_address,\n chain_id,\n storage_contract_address,\n version,\n content,\n secret_hash\n );\n\n let returned_message = get_l1_to_l2_membership_witness(storage_contract_address, message_hash, secret);\n let leaf_index = returned_message[0];\n let sibling_path = arr_copy_slice(returned_message, [0; L1_TO_L2_MSG_TREE_HEIGHT], 1);\n\n // Check that the message is in the tree\n // This is implicitly checking that the values of the message are correct\n let root = compute_merkle_root(message_hash, leaf_index, sibling_path);\n assert(root == l1_to_l2_root, \"Message not in state\");\n\n compute_message_nullifier(message_hash, secret, leaf_index)\n}\n","path":"/usr/src/noir-projects/aztec-nr/aztec/src/messaging.nr"},"100":{"source":"use dep::protocol_types::{address::AztecAddress, constants::L1_TO_L2_MESSAGE_ORACLE_CALL_LENGTH};\n\n// Obtains membership witness (index and sibling path) for a message in the L1 to L2 message tree.\n#[oracle(getL1ToL2MembershipWitness)]\nfn get_l1_to_l2_membership_witness_oracle(\n _contract_address: AztecAddress,\n _message_hash: Field,\n _secret: Field\n) -> [Field; L1_TO_L2_MESSAGE_ORACLE_CALL_LENGTH] {}\n\nunconstrained pub fn get_l1_to_l2_membership_witness(\n contract_address: AztecAddress,\n message_hash: Field,\n secret: Field\n) -> [Field; L1_TO_L2_MESSAGE_ORACLE_CALL_LENGTH] {\n get_l1_to_l2_membership_witness_oracle(contract_address, message_hash, secret)\n}\n","path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/get_l1_to_l2_membership_witness.nr"},"106":{"source":"use dep::protocol_types::traits::{Deserialize, Serialize};\n\n#[oracle(storageRead)]\nfn storage_read_oracle<N>(_storage_slot: Field, _number_of_elements: Field) -> [Field; N] {}\n\nunconstrained fn storage_read_oracle_wrapper<N>(_storage_slot: Field) -> [Field; N] {\n storage_read_oracle(_storage_slot, N)\n}\n\npub fn storage_read<N>(storage_slot: Field) -> [Field; N] {\n storage_read_oracle_wrapper(storage_slot)\n}\n\n#[oracle(storageWrite)]\nfn storage_write_oracle<N>(_storage_slot: Field, _values: [Field; N]) -> [Field; N] {}\n\nunconstrained pub fn storage_write<N>(storage_slot: Field, fields: [Field; N]) {\n let _hash = storage_write_oracle(storage_slot, fields);\n}\n","path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/storage.nr"},"109":{"source":"mod globals;\nmod inputs;\n\nmod private_context;\nmod public_context;\nmod avm_context;\nmod interface;\nmod gas;\n\nuse interface::ContextInterface;\nuse private_context::PrivateContext;\nuse public_context::PublicContext;\nuse avm_context::AvmContext;\n\nstruct Context {\n private: Option<&mut PrivateContext>,\n public: Option<&mut PublicContext>,\n avm: Option<&mut AvmContext>,\n}\n\nimpl Context {\n pub fn private(context: &mut PrivateContext) -> Context {\n Context { private: Option::some(context), public: Option::none(), avm: Option::none() }\n }\n\n pub fn public(context: &mut PublicContext) -> Context {\n Context { public: Option::some(context), private: Option::none(), avm: Option::none() }\n }\n\n pub fn avm(context: &mut AvmContext) -> Context {\n Context { avm: Option::some(context), public: Option::none(), private: Option::none() }\n }\n\n pub fn none() -> Context {\n Context { public: Option::none(), private: Option::none(), avm: Option::none() }\n }\n}\n","path":"/usr/src/noir-projects/aztec-nr/aztec/src/context.nr"},"111":{"source":"use dep::protocol_types::{\n address::{AztecAddress, EthAddress},\n constants::{\n GENERATOR_INDEX__L1_TO_L2_MESSAGE_SECRET, GENERATOR_INDEX__NULLIFIER, ARGS_HASH_CHUNK_COUNT,\n GENERATOR_INDEX__FUNCTION_ARGS, ARGS_HASH_CHUNK_LENGTH\n},\n traits::Hash, hash::{pedersen_hash, silo_nullifier}\n};\n\nuse dep::protocol_types::hash::sha256_to_field;\n\npub fn compute_secret_hash(secret: Field) -> Field {\n // TODO(#1205) This is probably not the right index to use\n pedersen_hash([secret], GENERATOR_INDEX__L1_TO_L2_MESSAGE_SECRET)\n}\n\npub fn compute_message_hash(\n sender: EthAddress,\n chain_id: Field,\n recipient: AztecAddress,\n version: Field,\n content: Field,\n secret_hash: Field\n) -> Field {\n let mut hash_bytes = [0 as u8; 192];\n let sender_bytes = sender.to_field().to_be_bytes(32);\n let chain_id_bytes = chain_id.to_be_bytes(32);\n let recipient_bytes = recipient.to_field().to_be_bytes(32);\n let version_bytes = version.to_be_bytes(32);\n let content_bytes = content.to_be_bytes(32);\n let secret_hash_bytes = secret_hash.to_be_bytes(32);\n\n for i in 0..32 {\n hash_bytes[i] = sender_bytes[i];\n hash_bytes[i + 32] = chain_id_bytes[i];\n hash_bytes[i + 64] = recipient_bytes[i];\n hash_bytes[i + 96] = version_bytes[i];\n hash_bytes[i + 128] = content_bytes[i];\n hash_bytes[i + 160] = secret_hash_bytes[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\n// The nullifier of a l1 to l2 message is the hash of the message salted with the secret and index of the message hash\n// in the L1 to L2 message tree\npub fn compute_message_nullifier(message_hash: Field, secret: Field, leaf_index: Field) -> Field {\n pedersen_hash(\n [message_hash, secret, leaf_index],\n GENERATOR_INDEX__NULLIFIER\n )\n}\n\npub fn compute_siloed_nullifier(address: AztecAddress, nullifier: Field) -> Field {\n silo_nullifier(address, nullifier)\n}\n\nstruct ArgsHasher {\n fields: [Field],\n}\n\nimpl Hash for ArgsHasher {\n fn hash(self) -> Field {\n hash_args(self.fields)\n }\n}\n\nimpl ArgsHasher {\n pub fn new() -> Self {\n Self { fields: [] }\n }\n\n pub fn add(&mut self, field: Field) {\n self.fields = self.fields.push_back(field);\n }\n\n pub fn add_multiple<N>(&mut self, fields: [Field; N]) {\n for i in 0..N {\n self.fields = self.fields.push_back(fields[i]);\n }\n }\n}\n\npub fn hash_args_array<N>(args: [Field; N]) -> Field {\n hash_args(args.as_slice())\n}\n\npub fn hash_args(args: [Field]) -> 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() {\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() {\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#[test]\nfn compute_var_args_hash() {\n let mut input = ArgsHasher::new();\n for i in 0..800 {\n input.add(i as Field);\n }\n let hash = input.hash();\n assert(hash == 0x05a1023fef839ac88731f49ae983e172c1b600a3c8f3393ad0ac25d819ac0f0f);\n}\n","path":"/usr/src/noir-projects/aztec-nr/aztec/src/hash.nr"},"130":{"source":"pub fn field_from_bytes<N>(bytes: [u8; N], big_endian: bool) -> Field {\n assert(bytes.len() < 32, \"field_from_bytes: N must be less than 32\");\n let mut as_field = 0;\n let mut offset = 1;\n for i in 0..N {\n let mut index = i;\n if big_endian {\n index = N - i - 1;\n }\n as_field += (bytes[index] as Field) * offset;\n offset *= 256;\n }\n\n as_field\n}\n\n// Convert a 32 byte array to a field element by truncating the final byte\npub fn field_from_bytes_32_trunc(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..15 {\n // covers bytes 16..30 (31 is truncated and ignored)\n low = low + (bytes32[15 + 15 - i] as Field) * v;\n v = v * 256;\n // covers bytes 0..14\n high = high + (bytes32[14 - i] as Field) * v;\n }\n // covers byte 15\n low = low + (bytes32[15] as Field) * v;\n\n low + high * v\n}\n\n// TODO to radix returns u8, so we cannot use bigger radixes. It'd be ideal to use a radix of the maximum range-constrained integer noir supports\npub fn full_field_less_than(lhs: Field, rhs: Field) -> bool {\n lhs.lt(rhs)\n}\n\npub fn full_field_greater_than(lhs: Field, rhs: Field) -> bool {\n rhs.lt(lhs)\n}\n\n#[test]\nunconstrained fn bytes_field_test() {\n // Tests correctness of field_from_bytes_32_trunc against existing methods\n // Bytes representing 0x543e0a6642ffeb8039296861765a53407bba62bd1c97ca43374de950bbe0a7\n let inputs = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28, 151, 202, 67, 55, 77, 233, 80, 187, 224, 167\n ];\n let field = field_from_bytes(inputs, true);\n let return_bytes = field.to_be_bytes(31);\n for i in 0..31 {\n assert_eq(inputs[i], return_bytes[i]);\n }\n // 32 bytes - we remove the final byte, and check it matches the field\n let inputs2 = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28, 151, 202, 67, 55, 77, 233, 80, 187, 224, 167, 158\n ];\n let field2 = field_from_bytes_32_trunc(inputs2);\n let return_bytes2 = field.to_be_bytes(31);\n\n for i in 0..31 {\n assert_eq(return_bytes2[i], return_bytes[i]);\n }\n assert_eq(field2, field);\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/field.nr"},"147":{"source":"use crate::{\n crate::address::{eth_address::EthAddress, partial_address::PartialAddress, public_keys_hash::PublicKeysHash},\n constants::{AZTEC_ADDRESS_LENGTH, GENERATOR_INDEX__CONTRACT_ADDRESS},\n contract_class_id::ContractClassId, hash::pedersen_hash, grumpkin_point::GrumpkinPoint,\n traits::{Empty, ToField, Serialize, Deserialize}, utils\n};\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_LENGTH> for AztecAddress {\n fn serialize(self: Self) -> [Field; AZTEC_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn deserialize(fields: [Field; AZTEC_ADDRESS_LENGTH]) -> 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 deployer: AztecAddress\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 deployer\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\n#[test]\nfn compute_address() {\n let point = GrumpkinPoint { x: 1, y: 2 };\n let contract_address_salt = 3;\n let contract_class_id = ContractClassId::from_field(4);\n let initialization_hash = 5;\n let portal_contract_address = EthAddress::from_field(6);\n let deployer = AztecAddress::from_field(7);\n\n let address = AztecAddress::compute_from_public_key(\n point,\n contract_class_id,\n contract_address_salt,\n initialization_hash,\n portal_contract_address,\n deployer\n );\n\n let expected_computed_address_from_preimage = 0x027ea2b41ced2ec9a98305984e96dd28518536a4628883ccdc06e38aa8997220;\n assert(address.to_field() == expected_computed_address_from_preimage);\n}\n\n#[test]\nfn compute_address_from_partial_and_pubkey() {\n let point = GrumpkinPoint { x: 1, y: 2 };\n let partial_address = PartialAddress::from_field(3);\n\n let address = AztecAddress::compute(PublicKeysHash::compute(point), partial_address);\n let expected_computed_address_from_partial_and_pubkey = 0x0447f893197175723deb223696e2e96dbba1e707ee8507766373558877e74197;\n assert(address.to_field() == expected_computed_address_from_partial_and_pubkey);\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr"},"152":{"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 u32 { fn empty() -> Self {0} }\nimpl Empty for u64 { fn empty() -> Self {0} }\nimpl Empty for U128 { fn empty() -> Self {U128::from_integer(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\nimpl ToField for bool { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u1 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u8 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u32 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u64 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for U128 {\n fn to_field(self) -> Field {\n self.to_integer()\n }\n}\n\ntrait FromField {\n fn from_field(value: Field) -> Self;\n}\n\nimpl FromField for Field {\n fn from_field(value: Field) -> Self {\n value\n }\n}\n\nimpl FromField for bool { fn from_field(value: Field) -> Self { value as bool } }\nimpl FromField for u1 { fn from_field(value: Field) -> Self { value as u1 } }\nimpl FromField for u8 { fn from_field(value: Field) -> Self { value as u8 } }\nimpl FromField for u32 { fn from_field(value: Field) -> Self { value as u32 } }\nimpl FromField for u64 { fn from_field(value: Field) -> Self { value as u64 } }\nimpl FromField for U128 {\n fn from_field(value: Field) -> Self {\n U128::from_integer(value)\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\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/traits.nr"},"196":{"source":"use crate::traits::{Serialize, Deserialize};\n\nglobal BOOL_SERIALIZED_LEN: Field = 1;\nglobal U8_SERIALIZED_LEN: Field = 1;\nglobal U32_SERIALIZED_LEN: Field = 1;\nglobal U64_SERIALIZED_LEN: Field = 1;\nglobal U128_SERIALIZED_LEN: Field = 1;\nglobal FIELD_SERIALIZED_LEN: Field = 1;\n\nimpl Serialize<BOOL_SERIALIZED_LEN> for bool {\n fn serialize(self) -> [Field; BOOL_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<BOOL_SERIALIZED_LEN> for bool {\n fn deserialize(fields: [Field; BOOL_SERIALIZED_LEN]) -> bool {\n fields[0] as bool\n }\n}\n\nimpl Serialize<U8_SERIALIZED_LEN> for u8 {\n fn serialize(self) -> [Field; U32_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<U8_SERIALIZED_LEN> for u8 {\n fn deserialize(fields: [Field; U8_SERIALIZED_LEN]) -> Self {\n fields[0] as u8\n }\n}\n\nimpl Serialize<U32_SERIALIZED_LEN> for u32 {\n fn serialize(self) -> [Field; U32_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<U32_SERIALIZED_LEN> for u32 {\n fn deserialize(fields: [Field; U32_SERIALIZED_LEN]) -> Self {\n fields[0] as u32\n }\n}\n\nimpl Serialize<U64_SERIALIZED_LEN> for u64 {\n fn serialize(self) -> [Field; U64_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<U64_SERIALIZED_LEN> for u64 {\n fn deserialize(fields: [Field; U64_SERIALIZED_LEN]) -> Self {\n fields[0] as u64\n }\n}\n\nimpl Serialize<U128_SERIALIZED_LEN> for U128 {\n fn serialize(self) -> [Field; 1] {\n [self.to_integer()]\n }\n\n}\n\nimpl Deserialize<U128_SERIALIZED_LEN> for U128 {\n fn deserialize(fields: [Field; U128_SERIALIZED_LEN]) -> Self {\n U128::from_integer(fields[0])\n }\n}\n\nimpl Serialize<FIELD_SERIALIZED_LEN> for Field {\n fn serialize(self) -> [Field; U32_SERIALIZED_LEN] {\n [self]\n }\n}\n\nimpl Deserialize<FIELD_SERIALIZED_LEN> for Field {\n fn deserialize(fields: [Field; FIELD_SERIALIZED_LEN]) -> Self {\n fields[0]\n }\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/type_serialization.nr"},"199":{"source":"use crate::address::{AztecAddress, EthAddress};\nuse crate::mocked::VerificationKey;\nuse crate::abis::function_selector::FunctionSelector;\nuse crate::abis::contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage;\nuse crate::contract_class_id::ContractClassId;\nuse crate::utils::{uint256::U256, field::field_from_bytes_32_trunc};\nuse crate::constants::{\n FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__SILOED_NOTE_HASH, GENERATOR_INDEX__OUTER_NULLIFIER,\n GENERATOR_INDEX__VK, GENERATOR_INDEX__CONSTRUCTOR, GENERATOR_INDEX__PARTIAL_ADDRESS,\n GENERATOR_INDEX__CONTRACT_ADDRESS, GENERATOR_INDEX__NOTE_HASH_NONCE,\n GENERATOR_INDEX__UNIQUE_NOTE_HASH\n};\nuse crate::traits::Hash;\nuse crate::messaging::l2_to_l1_message::L2ToL1Message;\nuse crate::merkle_tree::root::root_from_sibling_path;\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 let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\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 silo_note_hash(address: AztecAddress, inner_commitment: Field) -> Field {\n pedersen_hash(\n [\n address.to_field(),\n inner_commitment\n ],\n GENERATOR_INDEX__SILOED_NOTE_HASH\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\npub fn 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\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n rollup_version_id: Field,\n chain_id: Field,\n message: L2ToL1Message\n) -> Field {\n let mut bytes: BoundedVec<u8, 160> = BoundedVec::new();\n\n let inputs = [\n contract_address.to_field(), rollup_version_id, message.recipient.to_field(), chain_id, message.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\n// Computes sha256 hash of 2 input hashes.\n//\n// NB: This method now takes in two 31 byte fields - it assumes that any input\n// is the result of a sha_to_field hash and => is truncated\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//\npub fn accumulate_sha256(input: [Field; 2]) -> Field {\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 // Concatentate two fields into 32x2 = 64 bytes\n // accumulate_sha256 assumes that the inputs are pre-truncated 31 byte numbers\n let mut hash_input_flattened = [0; 64];\n for offset in 0..input.len() {\n let input_as_bytes = input[offset].to_be_bytes(32);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n\n sha256_to_field(hash_input_flattened)\n}\n\npub fn compute_logs_hash(previous_log_hash: Field, current_log_hash: Field) -> Field {\n accumulate_sha256(\n [\n previous_log_hash,\n current_log_hash\n ]\n )\n}\n\npub fn compute_note_hash_nonce(first_nullifier: Field, commitment_index: u64) -> Field {\n pedersen_hash(\n [\n first_nullifier,\n commitment_index as Field\n ],\n GENERATOR_INDEX__NOTE_HASH_NONCE\n )\n}\n\npub fn compute_unique_siloed_note_hash(nonce: Field, siloed_note_hash: Field) -> Field {\n pedersen_hash(\n [\n nonce,\n siloed_note_hash\n ],\n GENERATOR_INDEX__UNIQUE_NOTE_HASH\n )\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\n#[test]\nfn smoke_sha256_to_field() {\n let full_buffer = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\n 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,\n 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,\n 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,\n 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,\n 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,\n 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,\n 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159\n ];\n let result = sha256_to_field(full_buffer);\n\n assert(result == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184c7);\n\n // to show correctness of the current ver (truncate one byte) vs old ver (mod full bytes):\n let result_bytes = sha256(full_buffer);\n let truncated_field = crate::utils::field::field_from_bytes_32_trunc(result_bytes);\n assert(truncated_field == result);\n let mod_res = result + (result_bytes[31] as Field);\n assert(mod_res == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184e0);\n}\n\n#[test]\nfn compute_l2_l1_hash() {\n // All zeroes\n let hash_result = compute_l2_to_l1_hash(AztecAddress::from_field(0), 0, 0, L2ToL1Message::empty());\n assert(hash_result == 0xb393978842a0fa3d3e1470196f098f473f9678e72463cb65ec4ab5581856c2);\n\n // Non-zero case\n let message = L2ToL1Message { recipient: EthAddress::from_field(3), content: 5 };\n let hash_result = compute_l2_to_l1_hash(AztecAddress::from_field(1), 2, 4, message);\n assert(hash_result == 0x3f88c1044a05e5340ed20466276500f6d45ca5603913b9091e957161734e16);\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr"},"209":{"source":"// general util packages/modules are usually bad practice\n// because there is no criteria for what we should not put in here.\n// Reducing the size of this package would be welcome.\n\nmod arrays;\nmod field;\nmod reader;\nmod uint256;\n\n// if predicate == true then return lhs, else return rhs\npub fn conditional_assign(predicate: bool, lhs: Field, rhs: Field) -> Field {\n if predicate { lhs } else { rhs }\n}\n\npub fn arr_copy_slice<T, N, M>(src: [T; N], mut dst: [T; M], offset: u64) -> [T; M] {\n for i in 0..dst.len() {\n dst[i] = src[i + offset];\n }\n dst\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils.nr"},"275":{"source":"mod lib;\n\ncontract GasToken {\n use dep::aztec::protocol_types::{abis::function_selector::FunctionSelector, address::{AztecAddress, EthAddress}};\n use dep::aztec::{hash::compute_secret_hash, state_vars::{PublicMutable, Map}};\n\n use crate::lib::{calculate_fee, get_bridge_gas_msg_hash};\n\n #[aztec(storage)]\n struct Storage {\n balances: Map<AztecAddress, PublicMutable<U128>>,\n }\n\n #[aztec(public)]\n fn claim_public(to: AztecAddress, amount: Field, secret: Field) {\n let content_hash = get_bridge_gas_msg_hash(to, amount);\n\n // Consume message and emit nullifier\n context.consume_l1_to_l2_message(content_hash, secret, context.this_portal_address());\n\n let new_balance = storage.balances.at(to).read() + U128::from_integer(amount);\n storage.balances.at(to).write(new_balance);\n }\n\n // TODO(@just-mitch): remove this function before mainnet deployment\n // convenience function for testing\n // the true canonical gas token contract will not have this function\n #[aztec(public)]\n fn mint_public(to: AztecAddress, amount: Field) {\n let amount = U128::from_integer(amount);\n let new_balance = storage.balances.at(to).read().add(amount);\n\n storage.balances.at(to).write(new_balance);\n }\n\n #[aztec(public)]\n fn check_balance(fee_limit: Field) {\n let fee_limit = U128::from_integer(fee_limit);\n assert(storage.balances.at(context.msg_sender()).read() >= fee_limit, \"Balance too low\");\n }\n\n #[aztec(public)]\n fn pay_fee(fee_limit: Field) -> Field {\n let fee_limit_u128 = U128::from_integer(fee_limit);\n let fee = calculate_fee(context);\n assert(fee <= fee_limit_u128, \"Fee too high\");\n\n let sender_new_balance = storage.balances.at(context.msg_sender()).read() - fee;\n storage.balances.at(context.msg_sender()).write(sender_new_balance);\n\n let recipient_new_balance = storage.balances.at(context.fee_recipient()).read() + fee;\n storage.balances.at(context.fee_recipient()).write(recipient_new_balance);\n\n let rebate = fee_limit_u128 - fee;\n rebate.to_field()\n }\n\n // utility function for testing\n unconstrained fn balance_of_public(owner: AztecAddress) -> pub Field {\n storage.balances.at(owner).read().to_field()\n }\n}\n","path":"/usr/src/noir-projects/noir-contracts/contracts/gas_token_contract/src/main.nr"},"276":{"source":"use dep::aztec::prelude::{AztecAddress, EthAddress};\nuse dep::aztec::context::PublicContext;\nuse dep::aztec::protocol_types::hash::sha256_to_field;\n\npub fn calculate_fee(_context: PublicContext) -> U128 {\n U128::from_integer(1)\n}\n\npub fn get_bridge_gas_msg_hash(owner: AztecAddress, amount: Field) -> Field {\n let mut hash_bytes = [0; 68];\n let recipient_bytes = owner.to_field().to_be_bytes(32);\n let amount_bytes = amount.to_be_bytes(32);\n\n for i in 0..32 {\n hash_bytes[i + 4] = recipient_bytes[i];\n hash_bytes[i + 36] = amount_bytes[i];\n }\n\n // Function selector: 0x3e87b9be keccak256('mint_public(bytes32,uint256)')\n hash_bytes[0] = 0x3e;\n hash_bytes[1] = 0x87;\n hash_bytes[2] = 0xb9;\n hash_bytes[3] = 0xbe;\n\n let content_hash = sha256_to_field(hash_bytes);\n content_hash\n}\n","path":"/usr/src/noir-projects/noir-contracts/contracts/gas_token_contract/src/lib.nr"}}}
|
|
1
|
+
{"noir_version":"0.26.0+425566d21af1be0580432962b7065cb172e5eb16","name":"GasToken","functions":[{"name":"balance_of_public","is_unconstrained":true,"custom_attributes":[],"abi":{"parameters":[{"name":"owner","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]},"visibility":"private"}],"param_witnesses":{"owner":[{"start":0,"end":1}]},"return_type":{"abi_type":{"kind":"field"},"visibility":"public"},"return_witnesses":[1]},"bytecode":"H4sIAAAAAAAA/81XUWvbMBCWbCe246bNHsc20C8octjDBoN5r3vc2HNwF2cEkhhsh3X78aF2cke/qGpKiUx74Jx0ku+++6ScZCkOIunpxIc2Ctsy0vo8SR360tLA+YvaEdgzV/E+6umwcxIc88KStI/HHZoTts8QxiXZed4bsEnAPnCNXetpF983MJs5ZNAeAJ7APZ60pzx1BJzvHOKVtJ7IlW9wdQlzhsBf2AN/EuKyb+5zvOdi9l4BZtwXSrjdF5H7nKZXrY8YeI0MfjGvEbUd7kstKD7H5HgjiHtBbSnc1t6EfAXkm3FcgJ3nfCA9EYc9Jyz8xO7XJz1V4zge4pGvAE8i7OdLbHCGZw6OfYfxMbU9sHG+vsX3GGy8dpeWd5GnMeSSUVufJ3ueMFYG/TFoaWB8aTyhBU9ftZTXh31zP+yXi30tveoppwn5GpBfxs/xApjzmfSE1oTtjCs+sT4817PwthPH///n1OvFE4KxQ4gdW/LLAKsNZ0Z2rBuMF/t4D+C5EcQ54zxKTQPi8wEDrg3bPPFwPfB9YcktsfCAdRD5jMR9jXN5F8Q7ZubQb4c9EMdy6rzAO2YPd+l0BHzWTVnlf4ofRT6XAC0wYKJG6Dvoe2DHtm+x7UAnkDLH7Wy8DQZg8wyK8PMH/woPPnkz0vo82dcyDnjqu/qxee9JfyH988C/qldlo7TatL/5alX+LebXCsdqtd7WjaqbvGrUoirXKr1Gv59IvyX9raryf2q5mRe3qtw2qlyom3K7mdf40lfS70j/bkOrplR5XRdVM1vnt7ObZTOrl/8LcQfJYpPTXRAAAA==","debug_symbols":"5drfiuIwFAbwd+m1LDnJ+ZP4KstedGddEMQZRndhEd9907GJHSqWkRn5incNnvT8UuSzjT00m+endr9+3u6a5aFx37RZfj80u5d22413+/Z13yy9t7BoVttf3WFKx0Xze71Z5YHJcTGqTlSKk2qtVXehlFN0fa045lpMucmPReYYFidicRIWhxyYh8A8HswTwDwM5hEwD1g4E1g6E1g8E1g+e7B89mD57MHy2X9CPpNj6qvJpXhdVDhu4qRq2ldqCudThp7N82TLPNk6T7bNkx3nyZ78JQpOp9hEUtjEOuwxLg7m+1qmM4dykzdPcGAeAvN4ME8A8zCYR8A8CuYxME8E84DlM4PlM4PlM4PlM4PlM4PlM4PlM4PlM4PlM4PlM4Pls3xtPp960B16fEqOitYeFq9fV1IrT1T5MA32XMqVDXAihhMJnEjhRAYninCidHeR1J0Xje6d6EIG5+59dQjB1+puq3ZUbBL7WkvnrVzvTitV9zArpYdZqX+YlYaHWSmDr7RW58M0XOmJL/PmKzg/xsoffHkq39D5Vvjswpgf582fvpkgm+KbLz3Ihv/Iir8kEir3N0G8jETm7i9y10WX403rhXU8ftY0uWWS3jLJbpkUb5mUPjgpj/62r+v252bVvSjZffhn+1Tem8zD/b+X0yfH/w=="},{"name":"claim_public","is_unconstrained":true,"custom_attributes":["aztec(public)"],"abi":{"parameters":[{"name":"inputs","type":{"kind":"struct","path":"authwit::aztec::context::inputs::public_context_inputs::PublicContextInputs","fields":[{"name":"call_context","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext","fields":[{"name":"msg_sender","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"storage_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"portal_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"function_selector","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"historical_header","type":{"kind":"struct","path":"authwit::aztec::protocol_types::header::Header","fields":[{"name":"last_archive","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"content_commitment","type":{"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment","fields":[{"name":"tx_tree_height","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}]}},{"name":"state","type":{"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference","fields":[{"name":"l1_to_l2_message_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference","fields":[{"name":"note_hash_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}}]}},{"name":"public_global_variables","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}]},"visibility":"private"},{"name":"to","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]},"visibility":"private"},{"name":"amount","type":{"kind":"field"},"visibility":"private"},{"name":"secret","type":{"kind":"field"},"visibility":"private"}],"param_witnesses":{"amount":[{"start":35,"end":36}],"inputs":[{"start":0,"end":34}],"secret":[{"start":36,"end":37}],"to":[{"start":34,"end":35}]},"return_type":{"abi_type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_circuit_public_inputs::PublicCircuitPublicInputs","fields":[{"name":"call_context","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext","fields":[{"name":"msg_sender","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"storage_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"portal_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"function_selector","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"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":"nullifier_read_requests","type":{"kind":"array","length":2,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"nullifier_non_existent_read_requests","type":{"kind":"array","length":2,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"contract_storage_update_requests","type":{"kind":"array","length":16,"type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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_note_hashes","type":{"kind":"array","length":16,"type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"struct","path":"authwit::aztec::protocol_types::messaging::l2_to_l1_message::L2ToL1Message","fields":[{"name":"recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"content","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":"unencrypted_logs_hash","type":{"kind":"field"}},{"name":"unencrypted_log_preimages_length","type":{"kind":"field"}},{"name":"historical_header","type":{"kind":"struct","path":"authwit::aztec::protocol_types::header::Header","fields":[{"name":"last_archive","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"content_commitment","type":{"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment","fields":[{"name":"tx_tree_height","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}]}},{"name":"state","type":{"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference","fields":[{"name":"l1_to_l2_message_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference","fields":[{"name":"note_hash_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}}]}},{"name":"prover_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}}]},"visibility":"public"},"return_witnesses":[37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234]},"bytecode":"H4sIAAAAAAAA/+29CZQVRdbvm1UcsPBYJc6zloLzdKooBRyPrbbarXY7tRMqs9CoKIMKCiKFiCgyz/M8j+I8a3d/X8+jrd1OICDa/fq+e9e6b637vXcf72WcE/+uP5vMQ50y49QujVwrVkbujIj92zsiIyLnsiC//CMMZTbeKgwnB3sv2J+168w3W2oSLCvjkrOshXCWtxDOVi2EM9VCOFu3EM42LYRzvxbCWdFCONu2EM79WwhnuoVwHtBCOCtbCGdVC+E8sIVwtmshnAe1EM6DWwjnIS2E89AWwnlYC+E8vIVwHtFCOI9sIZxHtRDOo1sI5zEthPPYFsJ5XAvhPL6FcJ7QQjirWwjniS2E86QWwtm+hXB2SJDzTOLEvYVT7PpUuz7Nrk+36zPsGnnPsjam7PbZYTgnDOcaPrHP3FyoDUPHMNSJfeeF4fwwdApDZ7uv2u7rEoYLwnBhGC4Kw8VhuCQMl1pfXBaG74Xh8jBcEYYrw/D9MFwVhqvDcE0YfhCGH4bh2jBcF4brw/CjMPw4DDeE4cYw3BSGm8NwSxh+EoZbw3CbYLk9DHeE4c4wdA3DXWG4Owz3hKFbGLqHoUcYeoahVxh6h6FPGO4NQ98w9AvDT8PQPwz3heH+MDwQhgFheDAMD4VhYBgGhWFwGIaE4eEwPBKGR4XPhoZhWBgeC8PjgnN4GEaE4YkwjAzDk2EYFYb6MIwOw1NhGBOGp8MwNgzPhGFcGJ4Nw3NhGB+G58MwIQwTwzApDJPDMCUMU8MwLQzTwzAjDDPDMCsMs8MwJwxzLQsOhHlhmB+GBWFYGIZFYVgchiVhWBqGZWFYHoYVYVgZhlVhWB2GNWFYG4Z1YVgfhg1h2BiGTWHYHIYXwrAlDC+G4aUwvByGV8LwahheC8PrYXgjDG+G4a0wvB2Gd8LwbhjeC8P7YfhZGH4ehl+E4T/C8J9h+GUYfhWGX4fhN8Lnvw3D78Lw+zD8wcr+aNd/sus/2/Vf7PoDu/6rXX9o1x/Z9d/s+u92/bFdf2LXn9r1Z3b9uV1vtettdv2FXW+36x12vdOuv7TrXXb9lV1/bdfmfuMfbUdQETQs2SChPqeudw9zvwHOlPczzb2yVnYf1tVWnrLbWJdZeWu73VrI29jtNqKcCrtdIeRVdrtKyNvZ7XZCfrDdPljID7Xbhwr5kXYb66yVH2+3jxfyE+32iVRO2u7LOyK/MrJWVlRGMrTXcpK1trJWJGuD4ki2n5W1JhnaQxuStbWy/Ui2v5VVkCxtZW1JdoCV7U+ySitLk6zKyg4g2YFWVkmydlZWRbKDrOxAkh1sZe1IdoiVHUSyQ63sYJIdZmWHkOxwKzuUZEdY2WEkO9LKDifZUVZ2BMmOtrIjSXaMlR1FsmOt7GiSHWdlx5DseCs7lmQnWNlxJKu2suNJdqKVnUCyk6ysmmTtrexEknWwspNIhuO9Pckw3+hgZabtob/M5bHycpKdgj6CZKeifyDZaegbSHY6+gWSnUG6ITsT/QTJzrIytHuz73wbzwZJ9ZG1vUy5nZIuNyzZlNsl+XIzps+9IGjwdZb0dCJfXWjjCT67UcO6y2yAHshTFP8BpUU6+AN9F9hNf9TZxi8skO98ka+K0nSOsD8bJGt/F8HTRTCbOrmUOJJvsx1rfJtt9FJ0m72N0sq2h3H029hmryMOB232PN9mG70U3Wb7UFrZ9jCn+za22TuJw0Gb7eKmzdZmfJvNX28Jgui2h/OLb2Ob7UccybfZ83ybbfxSdJsdRWll28O57rexzT5CHMm32U5d/Nyg0UvRbXYipZVtD9ddvo1t9inicNBme/l+ttFL0W12PqWVbQ/XAL+NbXYKcSTfZrs4arMdfZsN8vfOgiC67eF69LexzS4ijuTbbE9/fbbxS9Ft9jVKK9se7o18G9vsBhs39xn+aO8zHEuyP1nZcST7M+4dkuwvVnYCyT6ge4iQ/RX3F0n2oZWdRLKPrKw9yf5mZR1I9ndxT9fIPrayU0j2iZWdSrJPrew0kn1mZaeT7HMrO4NkW63sTJJts7KzSPaFlZ1Nsu1Wdg7JdljZuSTbaWUZkn1pZTUk22VltST7yso6kuxrK6sj2T+s7DwrM/cuce/rF1ZWQXmyQXJtNE18WMrEdpbidW55MlXEw7oS78vDiUKafN4Y288nHgdjQCZNOhrDw/135+R5alyNSVXkd9ibJl3nkV0XOLCrUL8MfVXB3uNkmvYzo4Oxo5bHTpSN7QuJEbLOxIj+FcePGWP+RbwOjqXcPAP68J42OM4nOdIMOrmB7X9YWSXtP4/s6Sxkjtplrl1AF8rGNs87YE/n0jPWNpaxk2B01UeUkS7MHZtDdxCjm+eJHYnnYkc8sl+B7otLoDtu7gt93H9hKTS+XEjMFzlgNuVekny5ub4IzzzgnAd6eAzPkg+Ssol1l4myIU9R/OCyvRngD/SFYDdtmdtOXL4LRD5+T/niCPuzCdt/ieDhOjaLqZP9yho4HBwPuTZwseDA9vnku0tifHcx+Q5pTibfOZj/5Xx3keDBdqcS6i5rRt2F7HbVb8oxBH14KfrsOqH7QqG72HMCPmdydU5Q6j6bx6Es+SApm4rts88t0GfLvrexffb5Ip/GPrtDM/bZfI3vkhjfRfXZp5DvXMxhCs3HLyIezD25P+vomKdM8HQknqjzb+w/rwQ+6yh81rGAz/ha2UURjK7Ov+PGJD7/hqyzW5/ljg3YjPPrTsJnKUpzAD3/fiUdtw7aXG2x19H4PCz56zt1mWKvaV5APC6uKzi6jpXhtr87SLatybbfUfiK277r88RC18J4zuqZPbNn9sye2TN7Zs/smT2zZ/bMntkze2bP7Jk9s2f2zJ7ZM3tmz+yZPbNn9sye2TN7Zs/smT2zZ/bMntkze2bP7Jk9s2f+7jHz+xH87Q6kK8X7EY1hhKwL8VyQPE/uefrTbFko37xX8JPyBr3JPzdfl3sOvSPpyxIH9KUoTa/yhrR32HjcNwXOFzKX7zby+3tZ2oa+SrKB308GW3ViPLU93dhZlzH/5WhLvu4k/MvvGZ0hZKa+DqR/Lrh4B6PYd0L4mEI8yXcs+P0m1pX8u0x1e3wDrDzY8zji/tbVO33os/DeknynL0VpBpY31A3et2wV7NkHRr0LiLKR5zSSXyLKbmfzgqO1KL8T5UWaIdS3TG3V4DMH/W0tfwsnIFt5yVIcDG7Go/z7VBcUwXMR8STfnvPvUzkYdzN8DCT9PlXcdwZ4PEcaft/XwbvWBd+3hz7P7Jk9s2f2zJ7ZM3tmz+yZPbNn9sye2TN7Zs/smT2zZ/bMntkze+asZ/bMntkze2bPHHjmzDdbPLNn9sye2TN7Zs/smT2zZ/bMnrlFMhse+X9V/pdLFyWMkDl+By33PD3+bY3yzXsFY+i9AtfvgeCdh9OFzfw/9vdbNaQdZ+OVwd7vncXVpat/psXVJfRVkj0XEQ/YqhPjyb9PlbydDe9TXSBs6yLs4veIuC1NpfqS/1VOk39K8S6j/C+prBtuUxeSDHG3/22t2+P9DPmeIfTxe0TzrW/bBa76rLqMy+OH/2mXDfZuY/yvuyXUByyzcX6Xrgv5bUvEfixlYjtLcfjP2HxZ8jbn6vd7xJklPaz7cmJNSHcN6y6zAXogT1H8hVYNaZEO/oCvwV5JnMwu83UU+aooTTbC/mzC9l8meC4TzKZOVlI720LjoKs+KRtE++g08hHS8HzAwft+kX2kfN/apEH9txFpeOxGmjeoj4p7n12OCy7nX/K/2NiOmiNeRIzSRvne+Xf9fdnfUH+R9Puyv6E2VBbs/W9OlH86lQ+uNkH82II0fxDly7kp8vD7uEjzZ+ovWtt3xyuDveeh/O5qKc4z4r7bAH08r+Fje1+2G2b+R202QWZuE8zC8wSk+VTU2SUx3HURebfG5IWv5H9ceV7I43SW8iTjh/wxf5mw5XTSA1uQ5ksxB0x+3pKfAyZv655zEvQDF0bYijT/pGPtXzTHQz3xecf/jtiPpdAcEP4zNl+RvM25+r2SOLOkh3V/n1gT0l3DujEHhB7IUxT/f6hPRzr4A74GuzlGMI9idpnvYpGvitJcHmF/NkjW/isEzxWC2dTJf6d29r9pDuiqr748xkenk4+Qhr9VJP8PHzfGuPj2QaExhv9LLPtNHidLySavL0XNEZAGeXmOsL9lbmf9LNPK62aY3+5Ozq4Mf7OGv0fE36ypc+DPYs+jwcDXhOxUeY/vCWUTZqwrgvE8YkS+VsR4viPGYv5PfT4x8j+3wejiO1H8TarGMHYiRv6OEhg7O2LsVARjZ2JEvjbE6Oo7T52LYOxCjMi3HzG6ON9v6vd9eOypoLWLvrzYb/5EjT1tidHFdRy+jt0YRr5mjnz7E6OL6618b6QxjBcTI18HAaOLuVCxc3W+ZoN8BxDjpY4YLymC8VJi5HNvMGYdMV5aBGOWGJkXjMmfU+YZs0Uw8jVjyA8kxu85YrysCMbvESPytSNGF9e106S3MYyXEyPyHUSMDs55c4yXF8HI54bIdzAxXumI8YoiGK8kRuQ7hBhdnL+mSW9jGL9PjMh3KDFe5Yjx+0UwXkWMyHcYMV7tiPGqIhivJkbkO5wYr3HEeHURjNcQI/IdQYw/cMR4TRGMPyBG5DuSGH/oiPEHRTD+kBiR7yhivNYR4w+LYLyWGJHvaGK8zhHjtUUwXkeMyHcMMV7viPG6IhivJ0bkO5YYf+SI8foiGH9EjMh3HDH+2BHjj4pg/DExIt/xxHiDI8YfF8F4AzEi3wnEeKMjxhuKYLyRGJGvmhhvcsR4YxGMNxEj8p1IjDc7YrypCMabiRH5TiLGWxwx3lwE4y3EiHztifEnjhhvKYLxJ8R4SwTjrY4Yf1IE463EiHxnEONtyTPmvot9axGMtxHP7cnz5Hx2WxE8t7vlyX1T/rYIXXcmrytXF3cEjbf9TuLpmjxPri7uLIIHDFWUj312V/KMOZ91LYLxLuK5O3menM/uKoLnbvLZXRE+uyd5xpzP7i6C8R7i6ZY8T85n9xTB0y1o8Nk9ET7rnjxjzmfdimDsTjw9kufJ+ax7ETw9yGfdI3zWM3nGnM96FMHYk3h6Jc+T81nPInh6kc96Rvisd/KMOZ/1KoKxN/H0SZ4n57PeRfD0IZ/1jvDZvckz5nzWpwjGe4mnb/I8OZ/dWwRPX/LZvRE+65c8Y85nfYtg7Ec8P02eJ+ezfkXw/JR81i/CZ/0dMf60CMb+ETxJPkNTRTys635Htt8XNN52MFRRPmZ8wBHj/UUwPkCMyMf31wc4YnygCMYBxIh8fH/9QUeMA4pgfJAYkY/vrz/kiPHBIhgfIkbk4/vrAx0xPlQE40BiRD6+vz7IEePAIhgHESPzgnGwI8ZBRTAOJi7k4/vrQxwxDi6CcQgxIh/fX3/YEeOQIhgfJkbk4/vrjzhifLgIxkeIEfn4/vqjjhgfKYLxUWJEPr6/PtQR46NFMA4lRuTj++vDHDEOLYJxGDEiH99ff8wR47AiGB8jRuTj++uPO2J8rAjGx4kR+fj++nBHjI8XwTicGJGP76+PcMQ4vAjGEcSIfHx//QlHjCOKYHyCGJGP76+PdMT4RBGMI4kR+fj++pOOGEcWwfgkMSIf318f5YjxySIYRxEj8vE5V70jxlFFMNYT4yjP+J1gZJ7q5HgybDvrGq3A9tERPAm+/7iH7azrKQW2g6GlMXIb0srYvwUwej96Rs/47WP0x7X3oyZG70fvR8/47WO8vQUw+rr2jJoYW0If7hlbRHusbSqj4RmTPE/OZ08VwTOGfIZ8t7cAxtEtgLHeLWNtUxkNz9PJ8+R8NqYInqfJZ8h3u1vG2qYyGp6xyfPkfPZ0ETxjyWdPR/jMAWNtUxkNzzPJ8+R8NrYInmfIZ2MjfOaAsbapjIZnXPI8OZ89UwTPOPLZMxE+c8BY21RGw/Ns8jw5n40rgudZ8tm4CJ85YKxtKqPheS55npzPni2C5zny2bMRPnPAWNtURsMzPnmenM+eK4JnPPnsuQifOWCsbSqj4Xk+eZ6cz8YXwfM8+Wx8hM+0MvZvAYz1LYCxJfjRM3pGTYz+uPZ+1MTo/ej96Bm/fYx+Hv7dYRzdAhh9XXtGz/jtZpyQPGNdsYwTHPvMkZ25f1lNFDaNFzZVURr2+0QHdpaRXpSN7YlUD57ZM0cx8/MiYE1TulFKGCF7nngmJc5Tl0kLHrMU6scmOfaPGzvz/djkINrvk8jvSMNtdbIDO8tIL8rG9mSqh2KY61sgs/ez93Mcs/ez93Mcs/ez93Mcs/ez93Mcs/ez93Mcs/ez93Mcs/ez93Mcs/ez93Mcs/ez93Mcs/ez93Mcs/ez93Mcs/ez93Mcs/ez93Mcs/ez93Mcs/ez93Mcs/ez93Mcs/ez93Mcs/ez93Mcs/ez93Mcs/ez93Mcs/dz05gND74fB9Y0pXtKCSNkE4lnSvI8dWnBY5YysZ2l+BTH/nFkZ+6596lBtN+nkN+Rho+vqQ7sLCO9KBvbU6keimGub4HM3s9NYzY8+KYjWNOUbowSRsgmE8+05Hnq0oLHLIX6sWmO/ePIzlw/Nj2I9vs08jvS8PE13YGdZaQXZWN7OtWDZ/bMUcyGB99ZBWua0j2thBGyqcQzI3Ge2kxa8JilUD82w7F/3NiZ78dmBtF+n0F+RxpuqzMd2FlGelE2tmdSPRTDXN8Cmb2fvZ/jmL2fvZ/jmL2fvZ/jmL2fvZ/jmL2fvZ/jmL2fvZ/jmL2fvZ/jmL2fvZ/jmL2fvZ/jmL2fvzt+NjxjbRysaUo3VgkjZNOJZ1biPB0zacFjlkL3HWY59o8bO/P3HWYH0X6fRX5HGj6+Zjuws4z0omxsz6Z6+LYz17dAZt82SsPs24ZnjmP2bcMzxzH7tuGZ45h92/DMccy+bXjmOGbfNjxzHLNvG545jtm3Dc8cx+zbhmeOY/ZtwzPHMfu24ZnjmH3b8MxxzL5teOY4Zt82PHMcs4a2YXiesXGwpindM0oYIZtJPHOS56lLCx6zFHpuZ45j/ziyM/fcztwg2u9zyO9Iw8fXXAd2lpFelI3tuVQPntkzRzEbnnE2DtY0pRunhBGy2cQzL3meurTgMUuhfmyeY/84sjPXj80Pov0+j/yONNxW5zuws4z0omxsz6d68MyeOYrZ8Dxr42BNU7pnlTBCNpd4FiTPU5cWPGYp1I8tcOwfR3bm+rGFQbTfF5DfkYbb6kIHdpaRXpSN7YVUDws9s2eOYDY8z9k4WNOU7jkljJDNJ55FyfPUpQWPWQr1Y4sc+8eRnbl+bHEQ7fdF5Hek4ba62IGdZaQXZWN7MdWDZ/bMUcyG51YbB2ua0t2qhBGyhcSzJHmeurTgMUuhfmyJY/84sjPXjy0Nov2+hPyONNxWlzqws4z0omxsL6V6KIa5vgUyez83jdnw3GHjYE1TujuUMEK2mHiWJc9TlxY8ZinUjy1z7B9Hdub6seVBtN+Xkd+Rho+v5Q7sLCO9KBvby6keimGub4HM3s9NYzY8XW0crGlK11UJI2RLiWdF4jz57xszj1kK9WMrHPvHjZ35fmxlEO33FeR3pOHja6UDO8tIL8rG9kqqB8/smT2zZ/bMntkze2bP7Jk9s2f2zJ7ZM3tmz+yZPbNn9sy6mQ3P3TYO1jSlu1sJI2TLiWdV4jz5+w7MY5ZC9x1WOfaPGzvz9x1WB9F+X0V+Rxpuq6sd2FlGelE2tldTPXhmz+yZPbNn9sye2TN7Zs/smT2zZ/bMntkze2bP7Jk9s2fWzWx4utk4WNOUrpsSRshWEs+a5Hnq0oLHLIXuO6xx7B9HdubuO6wNov2+hvyONNxW1zqws4z0omxsr6V68MyeOYrZ8PSwcbCmKV0PJYyQrSaedYnz5O+fMo9ZCvVj6xz7x42d+X5sfRDt93Xkd6ThtrregZ1lpBdlY3s91UMxzPUtkNn72fs5jtn7uTTM3s/ez3HM3s/ez3HM3s/ez3HM3s/ez3HM3s/ez3HM3s/ez3HM3s/ez3HM3s/ez3HMGvxseHrZOFjTlK6XEkbI1hLPhsR5OmbSgscshe47bHDsHzd25u87bAyi/b6B/I40fHxtdGBnGelF2djeSPXwbWeub4HMvm2Uhtm3Dc8cx+zbhmeOY/ZtwzPHMfu24ZnjmH3b8MxxzL5teOY4Zt82PHMcs28bnjmO2bcNzxzH7NuGZ45j9m3DM8cx+7bhmeOYfdvwzHHMvm145jhmDW3D8PSxcbCmKV0fJYyQrSeeTcnz1KUFj1kKPbezybF/HNmZe25ncxDt903kd6Th42uzAzvLSC/KxvZmqgfP7JmjmA1PXxsHa5rS9VXCCNlGtzy1acFjlkL92Gbi2ZI4T12uX91cBM8W4nkhcZ58v5q8nZmMKfdFYk+qXOOrl4SvNgtfVVEaZnjJgf/KSC/Kxjb0eWbP7Jk9s2f2zJ7ZM3tmz+yZPbNn9sye2TN7Zs/smT2zZ/bMntkzZz2zZ/bMntkze+bAM2e+2eKZPbNn9sye2TN7Zs/smT2zZ/bMntkze+ZmZuZ3QcCapnSblDBC9gLxQFadFE9N/r2Jl5IuN1ObKQ/LeFnYZco28tftNuzZbeWvRqQ3fK85qAdT568Eey5lYjtLcbCZfG/YeAe7NoxvJ8+Ye/fkHVtWa1vu24LH6H6X+BPSXcO6y2yAHshTFJ9SGfx7eZf2w1evN+wO3rPrckrL+98kvW9E5HlLpKuwad+jMrJBQ/3CZ1WU5i1K+0YB3grKkw2S9e/bgvdtYaup86cqGzjeSp6jtoxsbWXLfVX4qDnad5T/Xbdv6IGc2/eqyoa0+2pnleQ7pDX9BtrrqxG2ZYNkbXtT+OxNwVMozdvBvm19k2x9I6LsYo7FN4rQF3UMN/cxOp2O0TcdcbwmOF4TfimnuBxvwSzH27ci0hsbXndgA4+bWAqNt2Az+d6x8ZPt2jC+nzxjrj/6mS0L/dH7gsfo/jnxJ6S7hnWjP4IeyFMUf5fG25/T/ndsnNvtL+y6nNLyfj5u34nI865Ih/H2F1RGNmioX/isitK8S2nfKcBbQXmyQbL+fV/wvi9sNXX+Ah3L7ybPUct9Csbbt4SPmqN9R/nfdfuGnqj2/SGNt/tqZ5XkO6Q1/UbUOOGqbck5ynuCp1Ca94N92/oe2fpORNnFHIvvFKEv6hhu7mP0Z3SMuhr3Xxccrwu/mPZ1po3fTmwfE9uLibPV7vE9AhzD4IC+FKVJn9yQ9nPLZlb4DsYmsme9kBkb1iVuQ96/0IWysQ19hjHq20Prk+fJsJ3JfTuiY29T1urEeevqjP9WBQ31yv6DvhSl+Yet93bWvlUOmNzYmm8rK8mmLLULthVp/s/KBr/8Dxs3bRv/ndtIfst1bmI/lkJzU/jP2Lw8eZtzx/gy4sySHta9lFgT0l3DujFOQw/kKYr/fzROIx38AV+D3SRdYePMLvOtFfmqKM2KCPuzQbL2Lxc8ywWzqZP/Se0M7cgwrXHEtCKI9tF68hHScF+2wQEPf3Mtuf6yc6cKsiE53nx/uZzqLkt+gb4UpWlr6xP9ZfLHeL6/TN7WPY9f9JdrImxFmqqqBr+0o/4Q/cxa8tsJEfuxFOov4T9j85Lkbc71l4uJM0t6WPciYk1Idw3rRn8JPZCnKH58VUNapIM/4Guwmy4GfQ6zy3yrRL4qSrM0wv5skKz9SwTPEsFs6uQQamcnUH+50hHT0hgf8fdAkYb7Mgf9d60pl/97m0y5Pbq4GQPz/eUSqrss+QX6UpTmNNFfJn+M5/tLV+M9H6em3JURtiLN2dSOz6X+UM7PzP5LIvZjKdRfwn/G5oXJ25zrLxcQZ5b0sO75xJqQ7hrWjf4SeiBPUfxi6i+RDv6Arxfatekv0ecwu8y3XOSrojSLIuzPBsnav1DwLBTMpk5qqZ1dQv3lMkdMi2J8tIZ8hDTclznovzvyOWqC/WVvN2Ngvr9cSHWXJb9AX4rSXCX6y4UOmFyO93ycmnKXRdiKNNdSO76e+kM5PzP774rYj6VQf7nQro3N85K3OddfziXOLOlh3XOINSHdNawb/SX0QJ6ieFfqL5EO/oCvwW76S/Q5zC7zLRH5qijN/Aj7s0Gy9s8TPPMEs6mTG6id3UX95WJHTPNjfLSSfIQ0q0iGa6tIb9o6jh++7urgutIe54YoG9t8rQWyxU55ajPFfiuZz+VcjIOuzvUPtOXIPg+2V5NdrtprXL1zHTs4N8/d918c7Lk0du6L+O4EeaqIh3UtcGT7wqDxti+I4EnQ9kwV8bAuB2Nmzvb5QeNt57FFng+Yss6ycVzvNP38cOrnHVzn7GN4+X5BljigL0VpPu/QkPZJy8b32nisdHAfq4+b+3X5e45rhR/k/boUpXma5recF1zo91AG3+tD2vKgoY/Cvt0iLfcrmwrkk3F575Pb3AZigmwhyRZG6F5MumUeGZfsbM95JMP+W+2ax0rI+Dp8Nkh2vIj7p8JGYoStPG9x8M+UyPmW1F1Fflms1Gc8/5sf4cc7IrjvUMDN7bEUdb1Y8EjdVeSX+Up9xnW9OMKPXSO4uyrg1nhcdxV+1OazfR3Xd0dw362AW+Nxfbfwozaf7eu47hbB3U0Bt8bjuluwpx+1+Wxfx3WPCO4eCrg1Htc9hB+1+Wxfx3WvCO5eCrg1Hte9hB+1+Wxfx3WfCO5S/I+zJR7XfYQftflsX8d13wjuvgq4NR7XfYUftflsX8d1HclgwyCSIe/1JEPZPyL7XDwTz/eBsBS6XsrPeK51wOPIzty1xDXCpmXCpipKcwrZ6erZ2nWCB9trSDdk1YnprnH2zLy539SW/Lpa+JftWpm8/tpinw9dSTzJ33/rmbvPuLIIHr7P6OIZXTd25t9j4ec9kyo36hnPlcJXVZSGGVzcUyz0jD70eWbP7Jk9s2f2zJ7ZM3tmz+yZPbNn9sye2TN7Zs/smT2zZ/bMntkzZz2zZ/bMntkze+bAM2e+2eKZPbNn9sye2TN7Zs/smT2zZ/bMntkze2bP7Jk9s2f2zJ7ZM3tmz+yZPbNn9sye2TN7Zs/smT2zZ/bMntkze2bP7Jk9s2f2zJ7ZM3tmz+yZPbNn9sye2TN7Zs/smT2zZ/bMntkze2bP7Jk9s2f2zJ7ZM3tmz+yZPbNn9sye2TN7Zs/smT2zZ/bMntkze2bP7Jk9s2f2zJ7ZM3tmz+yZPbNn9sye2TPneFbZOFjTlG6VEkbIVhAPZNVJ8dRkMmxnYuVmajPlYRmLhF2mbCOfY7dhz24rnxeR3vDNdVAPps4XBHsuZWI7S3GwmXyzbXyDXRvGGckzZgzPdFtWa1vuDMFjdE8j/oR017DuMhugB/IUxc87OPj3Mo32w1dzGnYHU+26nNLy/lmkd3ZEnpkiXYVNO5XKyAYN9QufVVGamZR2dgHeCsqTDZL17wzBO0PYaur81IMbOGYmz1FbRra2suXOEz5qjvYd5X/X7Rt6otr3Dw9uSLuvdlZJvkNa02+gvc6LsC0bJGvbLOGzWYKnUJoZwb5tnUW2zo4ou5hjcXYR+qKO4eY+RjvTMbrBEcdcwYFt6CuneGPH29kR6R31MzXc/rEUGm/BZvLB55vsmse8bJBsfzTFloX+aJrgMbonE39CumtYN/oj6IE8RfGeNN5Opv2y/zTLJLsup7S8n/vBGRF5ZL+I8XYSlZENGuoXPquiNHxczyjAW0F5skGy/p0meKcJW02d30LHsoM+JXK8lf1nc7TvKP+7bt/QE9W+h9J4u692Vkm+Q1rTb6C9zo6wLRu4m0tkaZt9GZeG5+9xtk4nW2dElF3MsTijCH1Rx3BzH6N96Bjd5IhjpuDANvSVU7yx4+2MiPSu5i7c/rEUGm/BZvLB5/Ptmse8bJBsfzTRloX+aLLgMbonEH9CumtYN/oj6IE8RfFJNN5OoP1R56/P23U5peX93A9Oi8gj+0WMt89TGdmgoX7hsypKw8f1tAK8FZQnGyTr38mCd7Kw1dR5PR3LDvqUyPFW9p/N0b6j/O+6fUNPVPteQePtvtpZJfkOaU2/gfY6I8K2bOBuLpGlbfZlXBqev8fZOoVsnRZRdjHH4rQi9EUdw819jE6lY3SKIw553j9V+KWc4nK8BbMcbydFpDc2zHFgA4+bWAqNtzxPxTG40a4N4/jkGXP90WhbFvqj8YLH6K4n/oR017Bu9EfQA3mK4m/TeFtP++Erbrf97bqc0vJ+Pm4nRuSZINJhvO1PZWSDhvqFz6oozQRKO7EAbwXlyQbJ+ne84B0vbDV1vomO5QnJc9Ryn4LxdpLwUXO07yj/u27f0BPVvj+g8XZf7aySfIe0pt+IGidctS05R3le8BRKMz7Yt63Pk60TI8ou5licWIS+qGO4uY/R9+gY3eiIY47gwDb0lVO8sePtxIj0jvqZGm7/WAqNt2Az+eDzhXbNY142SLY/ut2Whf6oXvAY3ZuJPyHdNawb/RH0QJ6i+L9ovN1M+2X/aZYX7Lqc0vJ+7gfHR+SR/SLG2xeojGzQUL/wWRWl4eN6fAHeCsqTDZL1b73grRe2mjr/nI5lB31K5Hgr+8/maN9R/nfdvqEnqn23OqQh7b7aWSX5DmlNv4H2OjHCtmzgbi6RpW32ZVwanr/H2TqabB0fUXYxx+L4IvRFHcPNfYz+dzpGFzrimCA4sA195RRv7Hg7PiK9q7kLt38shcZbsJl88Pkau+YxLxsk2x9tsWWhP9oseIzuF4k/Id01rBv9EfRAnqL4MbY/CihdKog+f33JrsspLe/nfrA+Io/sFzHevkRlZIOG+oXPqigNH9f1BXgrKE82SNa/mwXvZmGrqfPKQxo4HPQpkeOt7D+bo31H+d91+4aeqPZdQ+PtvtpZJfkOaU2/gfY6PsK2bOBuLpGlbfZlXBqev8fZejvZWh9RdjHHYn0R+qKO4eY+Ro+nY3SNIw553o9tHoMc6M6Ydnu20GVsPp9sXpe43tpc37Ce9GWJA/pSlOYP7RvSXmDZTNtcaffjOfi4Z+OXJW5D4Wfjoc8w4pn45U55anN1uSrYcyk051lGPMsT58nUuLGzZ+ZAW85KYQdsrya7Vjiwq1C98/sPKx3oTpMOLIXqeGUEz+4EeaqIh3W5eBfF2L40aLztSyJ4ErQ9U0U8rGuhI9sXBY23faFdVwV7v9fiiDHX/5wj9Jv++jYaSxz0w32MH1aSvixxQF+K0iylsaRrxFiyiPzkoB33ceP//Ji6QPhhiaiPFKXpYW1vF+TbEr9fZPKiP0UZleRPpDXna3LM2y3Scn+1qkC+INizX5VjO7fl5cQE2VKSLY3QvYJ0yzxBsOfxJfvzKtpXbteuxs1Cx/XyCJ7blPFcq4ynRhlPVhnPicp4FivjGaqMp04Zz2HKeE5TxnO/Mp62ynjOVcbTTRnPTcp4TlfGc5UynpHKeC5UxnOsMp7BynjaKeN5WhnPvcp4Usp47lTGc70ynu8p45mvjKe9Mp7HlPGcr4znCGU8A5TxpJXx9FDGc4synmuU8VysjOd4ZTwPK+M5WBnPWGU8/ZTxtFHGc5cynh8r4zlVGc8VynhOVsYzXBlPZ2U8RynjeUgZT6UynkXKeHop47lVGc8PlfFcqoynWhnPo8p4OirjOUsZzzPKeO5TxnOoMp4KZTyjlPHco4znRmU831fG84QynguU8RyjjGeQMp4DlfH0UcbTShnPHcp4zlbGc50ynlplPJcp4zlJGc8wZTznKeM5XBnPOGU8Dyjj2V8ZT3dlPDcr47laGc+TynguUsZzhjKe45TxDFHGc5Aynr7KeFor4+mqjOdHynguV8bTQRnP48p4OinjOVIZz7PKeB5UxnOAMp6nlPH0VMZzjjKenyjj+YEynkuU8ZygjOcRZTyHKOP5qTKe/ZTx3K2M50xlPDco4zlFGc+VynhGKOPpoowno4znOWU8A5XxHK2Mp0oZzxhlPL2V8ZQp4EkHe3+fkb9NO59k+MbcIpLhu3SnkKw8QgeeDVlBMnyPAGWY+ddLJ+/NUE558I29VhEMyyNYV0XkLYXfWVeWtqGvkjhWKeHprYxnjDKeKmU8RyvjGaiM5zllPBllPF2U8YxQxnOlMp5TlPHcoIznTGU8dyvj2U8Zz0+V8RyijOcRZTwnKOO5RBnPD5Tx/EQZzznKeHoq43lKGc8ByngeVMbzrDKeI5XxdFLG87gyng7KeC5XxvMjZTxdlfG0VsbTVxnPQcp4hijjOU4ZzxnKeC5SxvOkMp6rlfHcrIynuzKe/ZXxPKCMZ5wynsOV8ZynjGeYMp6TlPFcpoynVhnPdcp4zlbGc4cynlbKePoo4zlQGc8gZTzHKOO5QBnPE8p4vq+M50ZlPPco4xmljKdCGc+hynjuU8bzjDKes5TxdFTG86gynmplPJcq4/mhMp5blfH0UsazSBlPpTKeh5TxHKWMp7MynuHKeE5WxnOFMp5TlfH8WBnPXcp42ijj6aeMZ6wynoOV8TysjOd4ZTwXK+O5RhnPLcp4eijjSSvjGaCM5whlPOcr43lMGU97ZTzzlfF8TxnP9cp47lTGk1LGc68ynqeV8bRTxjNYGc+xynguVMYzUhnPVcp4TlfGc5Mynm7KeM5VxtNWGc/9ynhOU8ZzmDKeOmU8Q5XxLFbGc6IynqwynhplPNcq47lNGU95BM98Rzz4Xh3KxvZ8t77ImHJXJl5uTc6mZbas1rZc8ENfitK8b192aWfrBHJwLY2oH/hmGfkoeVsytWnBE1jGQDAGwj7DszBxnppMmnQ0hmch8SxInCdT48bOfNucZ8vanWC5xldzha9WCl9VUZp55L+5DvxXRnpRNrahzzN7Zs/smT2zZ/bMntkze+bmYjY8OB8Ca5rSLVPCCNkCYsQ1cpxHmnPTw45o4F2SOG9N7nyD9WWJA/pSlObB9g1pj7Js5nx3qfBvnM9dnOMV8jn0VZI9C4lnmSOeJYJnSYQvEK8OkqtPU+6cxMvN1JZH1Kcp28hn223o3W3l8yLSuzruTHtDXWMpdN0BbCbfLBvn61nTk2fMHWvTbFk41qYLHqN7KvEnpLuGdZfZAD2QpyjeGQ+8UboU+Wp2w+5gil2XU1reP5P0zorIMyMiXRmlCawfUL/wWRWlmUFpZxXgraA82SBZ/04XvNOFrabOz6D+fI4jDjlmY3sO+WC2A91p0oGl0DEIhirKt8gtY+76ZEboN/VyGdXLrMT15sdZ1pclDm6vSNOZxtkraZxdaPezn+dQudi/mMrE/mtsOe0CZ+2vY5p0YynUBrhNLkyep8aRnbn6XCBsWixsqqI03K5dzYHmCB5sL6B6KIb5lBbIPF8Bs6M52Hl8zyFBmzqab/O0Jb/OE/7lOTTaMd6PNsf7XCFzNb4UGttmEyPawFzicXWuN1/wSN2VFL+DfDZLyAzjTEeMswQjtmcSI/w3i3iSHwfzPLMFj9RdSfGu5LMZQuZonp5jnCEYsT2dGOG/GcQzwxHPTMEjdVdS/G7y2TQh4/OLbMKM0wQjtqcSI/w3jXimOeKJm49PIx7Eu5HPpgiZYZzsiFGe42B7MjHCf1OIx9U5zFTBI3VXUrwH+WySkBnGiY4YJwlGbE8kRvhvEvFMcsQzWfBI3ZUU70U+myBkhvF5R4wTBCO2nydG+G8C8UxwxDNR8EjdlRTvQz4bL2SGcbQjxvGCEdujiRH+G0884x3xPC94pO5Kivcln9ULmWHs74ixXjBiuz8xwn/1xFPviGe04JG6Kyl+Swn8E1eH7B/E7yUeV9f+b7dl4ZoEdC8h3bi2n/T1SOhK2bLBspTkSLOcrl1UUtp79+E3B88lduRnAMuF35aT7pXJ687w85gpW+5KoTtFaTZZv5l8q62slc23TOTjZ09RNvJwXa0SZeN60orE7e2YYe7Wgpv9gDQvCqbVDpjc2Lrns7/w//MRtiLNa0c0+OUNG09TXU0gv/06Yj+WQtfn4D9j89rkbc7V7zrizJIe1r2eWBPSXcO6cc8BeiBPUfxXdCwhHfwBX4Pd9EdrbJzZZb7+Il8VpVkTYX82SNb+tYJnrWA2dfI2tbNf03VyB/1bjmlNjI+WkY+Qhq+5uZo7y+uP4IA+nl+3EWmQN0Vp/iz6KKRN8jliU+6qxP2R74/hexyvsJH7LqT5SNi6xgGTG1v3PD7kWMu2Is2ndJx8Tv0t6r0/+e2/RezHUqg/dtwn5Op3A3Fmg+j+aCOxJqS7hnWjP4YeyFMU/xf1x0gHf8DXYDf9MfpxZpf5Joh8VZRmXYT92SBZ++X4sF4wmzr5gtrZf6P+OPm5zp5jpPTRAvIR0iwj364U+ZCe+03UUxuRht/DQZr/qwR9CR/zaP9gWUNMSPNfgin5OVK+f0ve1j3rVs732Vak2U3tDj/05OdueL55YMR+LIX6N/jP2LwheZszfMyjfjdE6N5ErAnprmHd6N+gB/IUxauObEiLdPAHfA1207+hr2B2mW+ByFdFadZH2J8N3PTvKHuDYDZ10urIhjjakctrMutjfLSSfIQ09eTb1SIfrkkUmhciDfLyvPBwayv6ktsd2duf+LK0DX18faUjycBZRzL44zySwW/nkwzHVieSoV/pTDL4uQvJ0EYuIBmOkQtJhjZ0Eck22/jFJHvBxi8h2RYbv5RkL9p4lmQv2fhlJHvZxr9Hslds/HKSvWrjV5DsNRu/kmSv2/j3SfaGjV9Fsjdt/GqSvWXj15DsbRv/AcnesfEfkuxdG7+WZO/Z+HUke9/GryfZz2z8RyT7uY3/mGS/sPEbSPYfNn4jyf7Txm8i2S9t/GaS/crGf0KyX9v4bST7jY3fSbLf2vhdJPudjd9Dst/beHeS/cHGe5Lsjzbem2R/svF+JPuzjf+UZH+x8ftI9oGN30+yv9r4AyT70MYHkOwjG3+QZH+z8YdI9ncbH0iyj218EMk+sfHBJPvUxoeQ7DMbf5hkn9v4IyTbauOPkmybjQ8l2Rc2Poxk2238MZLtsPHHSbbTxoeT7EsbH0GyXTb+BMm+svGRJPvaxp8k2T9snO8d/B82Xh0k22//M2hYqkk39Jk0/7LxNiIN8qYoTTcab8wYh74efb+Roa+fQDL09fUkQ1/PYyb6er62hb5+HcnQ1/M5F/p6nqegr99IMvT1m0iGvn4zydDXv0Ay9PVbSJa18RdJhr7+JZKhr3+ZZOjrXyEZ+vpXSYa+/jWSoa9/nWTo698gGfr6N0mGvv4tkqGvf5tk6OvfIRn6+ndJdp2Nv0cy9PXvkwx9/c9Ihr7+5yRDX/8LkqGv/w+Soa//T5Khr/8lyXCs/ZNk6P9/RTL0/78mGfr/35AM/f9vSYb+/3ckQ///e5Kh//8DydD//5FkuCe1mmQYE/5EMowJfyYZxoS/kAxjwgcke8DG/0oyjAkfkgxjwkckw5jwN5JhTPg7yTAmfEwyjAmfkAxjwqckw5jwGckwJnxOMowJW0mGMWEbyTAmfEEyjAnbSYYxYQfJMCbsJBnGhC9JhjFhF8lG2vhXJMOYgDGigmTZINlxAM8YYv6O7SdLoHu20D27hLpnCt0zS6h7utA9vYS65ftAU0uoe7LQPbmEuicK3RNLqDvuHLkUukcL3aNLqNv3Lb5vKZVu37fo61sqKT7Krs01/JFCZhh3OWKELpSN7V3EKM/PKyieNM9Xgifq2gDiT5HPnhAywzjCEeMTghHbha5zVFA8aZ5dgifqGgviY8hnXwqZYdzpiPFLwYjtncQozwkqKJ40zwjBI3Xz9aunyWfDhcww7nDEOFwwYnsHMcrrbhUUT5pnp+CJuuaH+Fjy2eNCZhi3O2J8XDBiezsxyuuXFRRPmmeH4Im6dor4M+Szx4TMMA5zxPiYYMR2oevAFRRPmme74Im6Bo34OPLZF0JmGLc5YvxCMGJ7GzHKayYVFE+aZ5jgkbr5+v6z5LOhQmYYtzpiHCoYsb2VGOV9iQqKJ82zTfBE3RNB/Dny2aNCZhg/d8T4qGDE9ufEuNXGHyWeRx3xbBU8pdQd9/5vKXTHvUdbCt1x76OWQnfce52l0B33fmQpdMe9Z1gK3XHv65VCd3+hu38Jdce9P8a6H0ledy336VjKxHaW4o8Qj4t+35GduWcbcV8oweffc3X3mfDVo8JXVcHezytUkCxBO3M8jwgebENfscwdFDBzu6gOkm0XnyZvUy2+dQK/fir8y3YNceTTuOtJQ0qgO+66TCl0x13fKIXuuOsEpdAdd75dCt1x562l0B13/lcK3XHnUaXQvVXo3lpC3XHnI6XQHXc+UgrdcecjpdAddz5SCt1x5yOl0B13PlIK3XHnI6XQHXc+UgrdcecjpdDt5y1+3lIq3X7e4uctpdLt5y1+3lIq3X7eEj1v4bh57xPXYfh/CXjOvCw5ttz7wHhuHd+hAsdgkiPNI0fl1+0CP9dyodvPtfxcq1S6/VzLz7VKpdvPtfxcq1S6NVwjwhytOeYt0N0c8xbobo55C3Q3x7wFuptj3gLdzTFvge7mmLdAd3PMW6B7awl1x72bVsp5C3Q3x7wFuptj3gLdzTFvge7mmLdAd3PMW6C7OeYt0N0c8xbo9vMW97r9vMXPW0ql289b/LylVLr9vMXPW0qlW8O8BWX7+0Tudfv7RM03b0HZ/j6Re93+PlHzzVtQtr9P5F63v0/k5y2l0u3nLX7eUird39V5i7+W23x9i7+WWzrd/lpudN9SFTQs5SXg4SVL8SieRcp45ivj2aSM501lPAuU8fRXxvNLZTw1ynhOVMZzmDKetsp4zlXGc5oynm7KeF5RxrNWGc+Xynh2KuM5XRnPscp4ZinjmamMp50ynreV8TytjCeljOcFZTy/UsbztTKe9sp4jlDGk1bG85oynh7KeB5XxrNdGc96ZTzTlPFMVcZzvDKeg5XxvKuMZ6wynjbKeF5UxvOkMp6vlPFMUMZzqjKek5XxHKWMp1IZzxvKeHop4/lCGc82ZTwblfHcqoxnkjKeicp4qpXxnKWM5xllPIcq46lQxjNKGc8TynhGKON5WRnPSmU8xyjjmauMZ7YyngOV8byljKePMp5Wyng2K+Mpxf+jiuG5QxnP2cp4apXxnKSMZ7wyntHKeA5XxjNOGc/+ynheVcYzXBnPDmU865TxnKGM5zhlPAcp45mhjGe6Mp53lPH0VcbTWhnPFmU8XZXx/FMZz+3KeDoo4zlSGc+zyngOUMbzujKep5TxPKaMZ5gynnOU8WxQxjNFGc9kZTwnKOM5RBnPe8p49lPG85IynruV8ZypjKdeGc9IZTy7lPFklPE8p4znaGU8Vcp4xijjGaqMZ6synjIFPGniCEiG/Z+RrFzkNfOTd05u2P+xlZdTnkE23iqi7I9Jhn8ED4rIy376mGzJ2njmmy05P7GuLG1DXyVxDFLCs1UZz1BlPGOU8VQp4zlaGc9zyngyynh2KeMZqYynXhnPmcp47lbG85Iynv2U8bynjOcQZTwnKOOZrIxnijKeDcp4zlHGM0wZz2PKeJ5SxvO6Mp4DlPE8q4znSGU8HZTx3K6M55/KeLoq49mijKe1Mp6+ynjeUcYzXRnPDGU8BynjOU4ZzxnKeNYp49mhjGe4Mp5XlfHsr4xnnDKew5XxjFbGM14Zz0nKeGqV8ZytjOcOZTyfKePZrIynlTKePsp43lLGc6AyntnKeOYq4zlGGc9KZTwvK+MZoYznCWU8o5TxVCjjOVQZzzPKeM5SxlOtjGeiMp5JynhuVcazURnPNmU8Xyjj6aWM5w1lPJXKeI5SxnOyMp5TlfFMUMbzlTKeJ5XxvKiMp40ynrHKeN5VxnOwMp7jlfFMVcYzTRnPemU825XxPK6Mp4cynteU8aSV8RyhjKe9Mp6vlfH8ShnPC8p4Usp4nlbG87YynnbKeGYq45mljOdYZTynK+PZqYznS2U8a5XxvKKMp5syntOU8ZyrjKetMp7DlPGcqIynRhnPL5Xx9FfGs0AZz5vKeDYp45mvjGeRMp7yCJ7PHPHge2MoG9ufufVFxpQ70JFNf7dltbblgh/6UpSmt32ZrJ2tE8jBNSSifuAbpC2P8Ntu67shtJ1tpI199rGw7v1I95AI++4j+6I4s1aOvJ8QL2+XUR6krSA9xdgn60wKmK8VMfyd9H5C/E3UuxeHsfErsjdL25+UQPcuoXtXCXWPELpHlFD3TqF7Zwl17xC6d5RQ93ahe3sJdQ8TuoeVUPc2oXtbCXVvFbq3llD3fKF7fgl1zxa6Z5dQ90yhe2YJdU8XuqeXUPdUoXtqCXVPFronl1D3RKF7Ygl19xe6+5dQ92ihe7TQzfMvPAOIeeJA2m4sU2PmiX+zZfE8kefB2D87Zp54MvmqnPIWmieeLPQwR9R8jvObZYjIHzU/zQoenmfzNp/jDIzQ14rS/j2CwSyfCRtkXLKx//4mePc1z25NaZA3RftXUz1ViPKzNp75Zsse82CU/ZVgcql7l9C9q4S6RwjdI0qoe6fQvbOEuncI3TtKqHu70L29hLqHCd3DSqh7m9C9rYS6twrdW0uoe77QPb+EumcL3bNLqHum0D2zhLqnC93TS6h7qtA9tYS6Jwvdk0uoe6LQPbGEuvsL3f1LqHu00D06QreD69m16WDPeZlZysR2luJ8jdvFOYEjO3PXzh+yZX2D66578RpffSR89TfhqypK8xD57yMH/uNrzigb29BXLHMHBczcLqqDZNvFg8nbVGu+F9KW/Pqg8C/b9aEjn8adj3xYAt1x5yOl0B13PlIK3XHnI6XQHXc+UgrdcecjpdAddz5SCt1x5yOl0L1V6N5aQt1x5yOl0B13PlIK3XHnI6XQHXc+UgrdcecjpdAddz5SCt1x5yOl0B13PlIK3XHnI6XQ7ectft5SKt1+3uLnLaXS7ectft5SKt1+3hI/bxlg4wleB8ywDnM/Gtd3BpDev9p4WYJ6TVkP2LJStmxw/JXkSHP28fl1u8DP4Vzo9nM4P4crlW4/h/NzuFLp9nM4P4crlW4N154wR2uOeQt0N8e8BbqbY94C3c0xb4Hu5pi3QHdzzFuguznmLdDdHPMW6N5aQt1x77KUct4C3c0xb4Hu5pi3QHdzzFuguznmLdDdHPMW6G6OeQt0N8e8Bbr9vMW9bj9v8fOWUun28xY/bymVbj9v8fOWUunWMG9B2f4+kXvd/j5R881bULa/T+Ret79P1HzzFpTt7xO51+3vE/l5S6l0+3mLn7eUSvd3dd7ir+U2X9/ir+WWTre/lhvdt3C8PNj3t7YGRrA/4IA9LRhhAy9Zij9APC6+W+zIztwz1R8Imz4UNlVRGv627wcO7CwjvSgb2x8QD5Zy4nHRDhpT58yzSBnPfGU8m5TxvKmMZ4Eynv7KeH6pjKdGGc+JyngOU8bTVhnPucp4TlPG000ZzyvKeNYq4/lSGc9OZTynK+M5VhnPLGU8M5XxtFPG87YynqeV8aSU8bygjOdXyni+VsbTXhnPEcp40sp4XlPG00MZz+PKeLYr41mvjGeaMp6pyniGKOM5XhnPwcp43lXGM1YZTxtlPC8q43lSGc9XyngmKOM5VRnPUcp4KpXxvKGMp5cyni+U8WxTxrNRGc+tyngmKeOZqIynWhnPWcp4nlHGc6gyngplPKOU8TyhjGeEMp6XlfGsVMZzjDKeucp4ZivjOVAZz1vKePoo42mljGezMp47lPGcrYynVhnPScp4xivjGa2M53BlPOOU8eyvjOdVZTzDlfHsUMazThnPGcp4jlPGc5AynhnKeKYr43lHGU9fZTytlfFsUcbTVRnPP5Xx3K6M50hlPM8q4zlAGc/rynieUsbzmDKeYcp4zlHGs0EZzxRlPJOV8ZygjOcQZTzvKePZTxnPS8p47lbGc6YynnplPCOV8exSxvORMp6MMp7nlPEcrYynShnPGGU8Q5XxbFXGU6aAJx3s/a2zNO3/iGT4JteHJLvfxgeSrDxCB541+IBkeF8aZZj5169P3rts9pOr75CxrixtQ18lcdyvhGerMp6hynjGKOOpUsZztDKe55TxZJTxfKSMZ5cynpHKeOqV8ZypjOduZTwvKePZTxnPe8p4DlHGc4IynsnKeKYo49mgjOccZTzDlPE8poznKWU8ryvjOUAZz7PKeI5UxnO7Mp5/KuPpqowHz7Np4WmtjKevMp53lPFMV8YzQxnPQcp4jlPGc4YynnXKeHYo4xmujOdVZTz7K+MZp4zncGU8o5XxjFfGc5IynlplPGcr47lDGc9mZTytlPH0UcbzljKeA5XxzFbGM1cZzzHKeFYq43lZGc8IZTxPKOMZpYynQhnPocp4nlHGc5YynmplPBOV8UxSxnOrMp6Nyni2KeP5QhlPL2U8byjjqVTGc5QynlOV8UxQxvOVMp4nlfG8qIynjTKescp43lXGc7AynuOV8QxRxjNVGc80ZTzrlfFsV8bzuDKeHsp4XlPGk1bGc4QynvbKeL5WxvMrZTwvKONJKeN5WhnP28p42injmamMZ5YynmOV8ZyujGenMp4vlfGsVcbzijKebsp4TlPGc64ynrbKeA5TxnOiMp4aZTy/VMbTXxnPAmU8byrj2aSMZ74ynkXKeMojeD5yxPOV4ME29JlvI42y8SftOk37RxHjEEeM0IWysT2EGCH7ini+csSzS/hsl9BtePAO+kjyGfbz98afdMQIXSgb208SI2T8/c9djnhGCJ+NELoND74L9gT5DPv5G4ojHTFCF8rG9khihIz/WTrGEc9O4bOdwheGB9eOviSfYf/TxDjCESN0oewxwj9crzuJZ6cjnh3CZzuEbsMz1saHk8+wfywxfumIEbpQNra/JEbI+N9VOxzxbBc+2y50Gx48A/o4+Qz7+X/Uwx0xQhfKxvZwYoRsO/Fsd8QzTPhsmNBtePCe4GPkM+znf9o97ogRulA2th8nRsj4Hw/jHPFsEz7bJnxhePAtkC/IZ9jP/1UZ5ogRulD2OOEfrtdtxLPNEc9W4bOtQrfhwfcZh5LPsJ+/Ff2FI0boQtnY/oIYIdtKPFsd8cwXPpsvdBsePAO8iHyG/bcS41BHjNCFsrE9lBghm088tzrimS18Nlv4wvDgPci55DPs53/ybnXECF0oG9tbiREy/gf3HY54ZgqfzRS+MDz4Ns0s8hn283/GXNUrdKFsbEfV60zi6eqIZ7rw2XThC8OD70/OIJ9hP//rwlW9QhfKxnZUvfK/D+92xDNV+Gyq8IXh6Wbj08hn2N+NGF3VK3ShbGxH1etU4unmiGey8Nlk4QvD08PGp5DPsL8HMbqqV+hC2diOqlf+h1IPRzwThc8mCl8YHrz7MIl8hv29iLGbI0boQtnY7kaMkE0knl6OePoLn/UXvjA8eB99AfkM+/sQo6t6hS6Uje2oeu1PPH0c8YwWPhstfGF4+tr4ePIZ9vclRlf1Cl0oG9tR9cr/b+/riGe+4Jkf4QtXumcL3bNLqHum0D2zhLqnC93TS6h7qtA9tYS6Jwvdk0uoe6LQPbGEuvsL3f1LqHu00D26hLr98f3dOr6bcyz5rh7fzdmnNmff4uctvl8rlW4/b9E9b9mdnO4Mn59WJFgun5vju+t8jWMCybrZeD3JcO1mJclwDWwtyXAtcR3JcE12Pcm22vivSIZ7BItIhvs880m2zcb5ev0XNj6bZLivxteocY9rJslwD4yvy+Le5nSS4Z4iX4vEPcepJMN9Y77+hnu4k0mGe7x8zWmsjU8kGe6Z83UW3FPvTzI8F8HXFvCMwmiS4RmGX5IMz6b8k2R4JqQvyUZGyPDczwaSfWXjG0n2pI1vItkoG99MMjzz9ALJ8EzUFpLh2bIXSYZ/QL5Esr/Y+Msku8/GXyHZn238VZL91MZfI1k/G3+dZH+y8TdIttrG3yTZvTb+Fsl62/jbJPujjb9Dsj/Y+Lsk62nj75Gsu41/TbLf23gfkpXbeC+S4ZuXPUiG98q6kQzf3r+bZPheQleS4Z9Sd5CswsZvJRmeJd9KMnwfme//4h3S50iG/35sI1mljX9BMvwP8VmS4ZuR40iG97KGkQzfZudnHvC9ge0kwz+i+HkSfPfsGZLhWfUdJMP3jvn5HbyjOpZk+I/HTpLhWzD8vBT+t/g0yfDNxTEkw3tNI0iGb7/zM2v4nsEukuEfVCNJVm3jT5HsRBv/imQn2Tg/f4l3YEeRrION879h7W9b/90vGNkpNv4ByfBNGv437Gk2/heS4V2q+0iG783/mWRn2vhPSYbvtvUj2dk2/ieS4X9Lq0mGdzruJRn+A9mbZHh2/48kw/eN/0Cyjjbek2R1Nt6dZOfZOPoFc/zxuYU5vrPEstCuzbEr7w+bJfPNltycC+N0SrDMJDnSXGwbSjubdlYM97yIvNmYvIHNi3EWZVQSCzNCdn37Bt1XtN87zxy7Zt9lg6R8V5MxNsyIsZ99hzTXCPshB9fSCPthN8+R0CZ5zlUr/GR4bmvfYP+/6yBI1v6ZMfZzfSHNjcL+mY2wX7ZFfl92TiN9MjPGJ8m3iUxtOtjzOkFgbQ2ErYFgc1NHmRpHdmai2q+sqypKU0N2znBgZ6FrJDOoHophrlXAzPVXHSR7vjs9eZtqzbyuLfl1uvDvDPLznAhbpznys6x39DHQx9ea2og0yJuiNA9QX5aOSGv6msvsJNL0WcutfJldmzwLhczYv8CR/dCFsrENfYZxiY0vbAaecwWPSYM5RBuRBnlTlGYY1Yfhnps4d02OG222tfDjXGJCmhFivIMcXEuFPZVkD89dZidvSyZq7gb/ziZbkGa08K+L+YQbW/fsZ1O23CURtiLNMzSvfNbG01Qny8lvsyP2Yyk07sN/jvrhXP1OI84s6WHd8lnABHTXsO6yYM++FfIUxWe1b0grr/fD12A3xwj6WGaX+eaIfFWUZkaE/dmgNPdMoM/UyfPUzmbTvDT5vit6DISPziUfIc08kmF84vk29vPYtcQR9zzBje0lxAgZX5uW44Xx82E0JuOa+iKnNtT0LiM/4TiDnnNIvtDGMd6dI+xMUZrVoj9OfpyuzbDv0YfAjgXEhDTrxXgn622VjaOMSrIHactpP/btFmlXULmF8rEus6wUeUy7WRTBtEzoqaC8id1zqslk4vhXEt8Kwcx8S4nPwTytN7dJtFvo4XaLY062W24jSPO2aLdzEufOt1t5PW2h3Z5DTEjzvmi38j4/2i3KqCR7kLY82HsuuFtscxo+Nji+TOQxbWCpSOdyjJDH7DmCh/syWd98zQ9pfifOk2Ta3DUZe/He+BX3KuFzk2etkBn71ziyH7pQNrahzzDiHuta8slassfkw3VoHltWU/psgsxgSwmW1SRHmr+Ltr4mhnteRN5PY/LCVzjezyZfSf8ZP6ygPNlE/NAzd8wvj7FlBdmCNNtFP7TcAZMbW/N1voxsMuWui7AVab6ieeY/6HwFdbKe/PZfEfuxFDqfgf8czQMz/DwO6ndJhO56Yk1I917v/5SRHshTFP9fdD6DdPAHfA12c4ygf2d2mW+NyFdFaZZG2J8NkrV/ieBZIphNnfyL2tl/0fnMSkdMS2N8dDb5CGnWko/WOeKRYwc4oM+kQf23EWmQN0VpyuwNWHd9VH6utD6GezlxL4vhXk/c/05D3JxX9ssbqPylVA7n4TEMafYX5S+NKX92RN7KmLyBzYtrIzyGRc23J1OerI1nvtGSH8PqhS3wL/czSHOIaB/JH/v5MSx5W/PHy+1kkyl3ZYStSHNkhwa/HG3jaaoTnsecHrEfS6ExDP4zNr+QvM25+t1CnFnSw7pfJNaEdNewboxh0AN5iuKndWhIi3TwB3wNdnOM4DkyZpf5lop8VZRmc4T92SBZ+18QPC8IZlMnx1E7QztyeW1rc4yP1pOPkIavtSV//lOXa58rBQ/6QegrNIYhL49hNaK/5bkm591E5fPclvPwWIA05zVyrJkRkbdzTN4g2POaLY8FYOG6uJ3yZG08842W/FiwWdgC/3K/iTSXiLFgswMmN7bueWzK+zNsK9JcTsfoldTXy3Ha7L85Yj+WQmOB4/4oV78vEWc2iO4LXybWhHTXsG6MBdADeYriN9FYgHTwB3wNdnOMYAxhdplvmchXRWm2RNifDZK1X45NLwpmUydXUzu7mcYCV+dYW2J8xNeDkWY9+Wh94jznFxwL/n1+EjQcp4XGAqTpKvrbJeRrzjuFypfnBcgTdV7QrZHnBZMi8vbcx3kB7lXyWAAWPi9Ift7YM3LeCP9yv4k0/cRYsMUBk6M58h7HJsaC+ghbkeYBOkYfjJj383zgiSaeFzjuj3L1+wpxZoPovvBVYk1Idw3rxlgAPZCnKD6CxgKkgz/ga7CbYwRjCLPLfEtFvipK81KE/dkgWfvl2PSyYDZ1Moja2RM0FiQ/z9pzfJY+4rEAaZaQj5I/T+lccCyAPr52UWgsQJqnRX8rr3sg70YqX54XIE/UecGzjTwvmBiR9/l9nBc8b+M8FoCFzwuSnzf2jJw3wr/cbyLNVDEWvOSAyeU5+8tkkyl3c4StSDOLjtE5+zgvWN3E8wLH/VGufl8jzmwQ3Re+TqwJ6a5h3RgLoAfyFMVX0ViAdPAHfA12/u8Ns8t8y0S+KkrzSoT92SBZ++XY9KpgNnUyn9rZahoLkp9n7Tk+Sx/xWIA0fB0x+bGp+x7XqFE2+kHo4/mzHAuQl+femxs5b19I5fOYwnl4LECal0T5K2PKHx+R99WYvIHNO9rGeSyQY7WbeWPPyHkj/Mv9JtK8LcaCVxwwuTxnf5VsMuVuibAVaX5Gx+gvqK9HnfB84IOI/VgKjQWO+6Nc/b5BnNkgui98k1gT0l3DujEWQA/kKYr/hcYCpIM/4Guwm2MEYwizy3wrRb4qSvNahP3ZIFn75dj0umA2dfJLamcf0FiQ/Dxrz/FZ+qiefIQ0S0mGZ6f4OxI4fvi5qmWOuOW1LWwvI0bI+BsC8v648fP59LwYzg/4m9bJXw/LP8PL96uzpOcskuNeP8Y97OP75EizU/THaxPnzt/fl894bRA+TVGar8V4J5/xwn0alMHPwyFtOe3Hvt0i7WIqt1A+Gd8o8ph2M1+ki9JTQXmTfoaX+dcJzipiiHqGcCHxJV//mch2Cz3cbjFvku2W2wjS/N+i3a5KnLs2EzVPgx2riOnfz2XvY54W1W5hD9Jy+8O+3WKb0/CxwfF1Io9pAwtFOpfPIclj9izBVai++VlSpGl7cn6NZ3hlWlM/w+1HPviaH39vZouQubx+HDfW8PMK8tkHRzx1UTxnCh6+19tGpOFnM5DmMKqPqPvEyPsy2Sb7gARsy/l6I/ExywaSI83RgntjDPerEXmPi8kb2LyYD6MMfiZlI/kh+WOuro6f/YMtqLd1ZAvStCdb3PT7dXWl6F9wHvZihK1Ic9rJDX45w8bTVCd8LbNLxH4shc7D+NnO5MeiTORYtCpC9wpiTUh3DevGeRj08DUQxDuf3JB2hfAXfA12HgOZXebbKPLxe0mrI+zPBsnav0rwrBLMpk7OpnaGduTmXCDPtDrGR1vIR0jj9lmS2oJjDD+Ph/ovNMYgzWWiv5X3HJCXz983Uzmch8cCpLmykWPYWxF5r47JG9i8uCbBYwFYuC4cPENXx21DjgVRc6vrxViw2gGTG1v3PDYxFqyPsBVpbqJj9Bbq6+U4bfb3itiPpdBY4Lg/inzPKKovXEasCemuYd0YC6AH8hTFe9JYIO9hwtdg5/ehmV3m2yzy8fvhKyPszwbJ2i/HphWC2dTJbdTOetFY4OD8uibqXBM+4rHg3/ciSIZzIf4Gpzx3cjmGyWcMsM3PHkPG8xxXzzzI92fOFP4pNIbxdQqkeUict8q0pn18XJmPmxW+14dv+RnZ+TaO7/aZcroImfHJBY58Al0oG9sXEGMnG+9SesbaxjJ2FoyG5yIHPkuTXiyFxouLiOdCBzyO7MyNQxcLmy4QNlVRmg5k58UO7CwjvSgb2xeTbhd1zr7AmHyq8EWK0owT88c4P6IM0367RNiSdWwLyq6juGvdlwjdnYTudLBnPQdB4ePrEmK+1AGzKfey5MvNHV/fs2WhTUFPJ7LpcvJBUjaxbszzoAfyFMUX0DwP6eAPjF9gryROZpf5LhL5qihNNsL+bML2XyZ4LhPMpk6m0twumzxHhutUlt2JfHdZjO+y5Duk4fGviyPfXSp4LhW6DQ/mOBeTDHMF8Kdp/3kl4Jb93sUR3JBdQoxRc53OyTMWnOt0JkbILiWeSxz5TNb1qcI/PC63EWmQN0Vptog5s0xrjrt/kV37JW5XTW4O1zrYcyk0xuxHPG0S58nUmO/h45vu9/YefG3NzQOurb2u9/09eg8c1Lffg7f2G/xA70GDyogU9AcJ+rJgT0t2U5pWJC+nOMtTEbLdEes0eQUs6aDhDwBtSAZd+5EM5SN9WxtvRTqyNp75ZkuNq1pLk7+wFGpFbcjm1g549g8a/qIwaPCAgd3v7X1j7+69uGmkBGahZoNtbipRzaZc5MM6TSZDb1yzKRcu4iaC9GgiyXcIGZUdAn5+Yavy1oH9BveO6gK+aV2afa1EGeUR+ePKbBvs7atERyDAnUzll1lIsy9lnWEqwlRMhYXC8WAcaWalZuQ0X482I4/pEw8O8n/1ODTI/7XD/KXDfLzR/IXjqCDfI5u/api/aBwX5P+SYf6KUR3k/3pxUpD/q0UH4voFsZq/VpjR7bQg/xcK89cJc4XIPN1gnjo7J8h/QdI84mO+Xm6+Bm5mTeZszMw0zMzazALNyG9GfHPWaK4gmJHUzFLMCHxp0DB7NbN1M3u9IgxXhuH7YbgqDFeH4Zow/CAMPwzDtWG4LgzXh+FHYfhxGG4Iw41huCkMN4fhljD8JMj/yeW2IP+WtPnTy51B/i8wdwX5P8TcE+T/HtM9yP9ZpmeQ/+tM7yD/Rxrz94u+Qf4PGubPGv2D/J847g/yf+4YEIYHw/BQGAaGYVAYBgf5v388HIZHwvBokP9TjPlri/lLi/kDy/Ag/1cT8xeTkUH+TyOjgvxTiqOD/B9KxgT5P6SMDfJ/aDF/gnk2yP9hZnyQf8vG/B1rYpB/Y9N8FcS8GWq+oGrexjRv55u3+s1Xe2cF+a+9mK/7mS/Vma+XmafCzBfJFgb5r7AtDvJvK5mnIs3VYnOV3Fw9NldmzR0Kc/Xe3LUwVwfNnWxzFdTcuTJXys3VWHMV0jyxYa7qmrtq5iqjecLCPHlgnlgwT12aJ0TN3SdzV8zcuTJ/FnonyP856L0wvB+Gn4Xh50G+Lf5HGP4zyP8RyvyR69dh+E0YfhuG3wX5v4T8Icj/feRPQf6PKH8J8n9a+WsYPgzyf2f5Wxj+HoaPw/BJGD4Nw2dh+DzI/9lnW5D/I8/2IP/nm51B/o81u4L8n2HMH4v+EeTblVm4w3jI9jYn2u3ugwf3vv/BwdWDB1TfP+S+wf0evG9o9SP9BvetHvBw74F97hvwCGeeZ3uHo+z2ZQMHdh9a3e+BXr0frR4wZHD1gD7VPQYMeaDXIM70us107N4au/fqFa/s162+Aenvm6j0E5sPPyC6prBtnzfFITubkqltqmkGfV3ZBGUVVU3IdGpTMn2/KZnGNCVT90OakOm9w5uQ6Wr7UeJD7fZ14elEOKeofmDA4DBr9aDB3RvmFmZZZtMfbLcfHDKob3zpG23qJh0WW45ogj1/spmKbXofNkXZ/2yisv/VFGWHHdk0Zfc0Md/Dlg6n5zflZ5vVg+4Lm0Ym10C63xfm6d3rnGreNyis2kGDTcsZOLi6z8AB91fXnMPl9jquCcb3t5nwL7OeoeqcBYMG9R44+J77uz96T49+g+8Z1G/YHq11VtOyrTquaS4763g3LruofX7dyI7+0vZN8PDVTcl0Q1My3d++ad4d2sR8w5sCWd+UTKtspojubtCQHoMHdu85OB5zXVM0vvVNNL7XFI2/bWIt/K24NvxJU9i+aEomnKUVa1DrJuZr26EoRxzQoQk2HdyUTJkmGlRXnEGdmsJ2cVMy3dlEg+4pzqAeTWHr25RMY5po0LjiDBrfFLYpTcm0qYkGvVicQa80he2tpmTaYTM1qT/+qika/+ubaPx/m6Kxwl5uK7bSDm1ivqNsvkZW9rEnN8Gmk5qSKdtEg64ozqCrmsJ2XVMyPdhEg55pirIXilAW/P+5BMDAANsGAA==","debug_symbols":"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1ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye41ye416e416e416e416e41/f4F278kcAfGfgjE38k8Ufw08e9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsW9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9PsO9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9Pse9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9vsC9voF7fQP3+gbu9Q3c6xu41zdwr2/gXt/Avb6Be30D9/oG7vUN3OsbuNc3cK9v4F7fwL2+gXt9A/f6Bu71DdzrG7jXN3Cvb+Be38C9voF7fQP3+gbu9Q3c6xu41zdwr2/gXt/Avb6Be30D9/oG7vUN3OsbuNc3cK9v4F7fwL2+gXt9A/f6Bu71DdzrG7jXN3Cvb+Be38C9voF7fQP3+gbu9Q3c6xu41zdwr2/gXt/Avb6Be30D9/oG7vUN3OsbuNc3cK9v4F7fwL2+gXt9A/f6Bu71DdzrG7jXN3Cvb+Be38C9voF7fQP3+gbu9Q3c6xu41zdwr2/gXt/Avb6Be30D9/oG7vUN3OsbuNc3cK9v4F7fwL2+gXt9A/f6Bu71DdzrG7jXN3Cvb+Be38C9voF7fQP3+gbu9Q3c65u41zdxr2/iXt/Evb6Je30T9/om7vVN3OubuNc3ca9v4l7fxL2+iXt9E/f6Ju71Tdzrm7jXN3Gvb+Je38S9vol7fRP3+ibu9U3c65u41zdxr2/iXt/Evb6Je30T9/om7vVN3OubuNc3ca9v4l7fxL2+iXt9E/f6Ju71Tdzrm7jXN3Gvb+Je38S9vol7fRP3+ibu9U3c65u41zdxr2/iXt/Evb6Je30T9/om7vVN3OubuNc3ca9v4l7fxL2+iXt9E/f6Ju71Tdzrm7jXN3Gvb+Je38S9vol7fRP3+ibu9U3c65u41zdxr2/iXt/Evb6Je30T9/om7vVN3OubuNc3ca9v4l7fxL2+iXt9E/f6Ju71Tdzrm7jXN3Gvb+Je38S9vol7fRP3+ibu9U3c65u41zdxr2/iXt/Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb7Evb6Fe30L9/oW7vUt3OtbuNe3cK9v4V7fwr2+hXt9C/f6Fu71LdzrW7jXt3Cvb+Fe38K9voV7fQv3+hbu9S3c61u417dwr2/hXt/Cvb6Fe30L9/oW7vUt3OtbuNe3cK9v4V7fwr2+hXt9C/f6Fu71LdzrW7jXt3Cvb+Fe38K9voV7fQv3+hbu9S3c61u417dwr2/hXt/Cvb6Fe30L9/oW7vUt3OtbuNe3cK9v4V7fwr2+hXt9C/f6Fu71LdzrW7jXt3Cvb+Fe38K9voV7fQv3+hbu9S3c61u417dwr2/hXt/Cvb6Fe30L9/oW7vUt3OtbuNe3cK9v4V7fwr2+hXt9C/f6Fu71LdzrW7jXt3Cvb+Fe38K9voV7fQv3+hbu9S3c61u417dwr2/hXt/Cvb6Fe30L9/oW7vUt2OuzA/b6Ho8I/ojijxj+iOOPBP7IwB+Z+COJP4KfvuCnL/jpC376gp++4Kcv+OkLfvqCn77gpy/46St++oqfvuKnr/jpK376ip++4qev+OkrfvqKn77h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t/TQ3riu9p239NDeuK72nbf00N64rvadt/TQ3riu9p239NDeuK72nbf00N64rvadt/TQ3riu9p239NDeuK72nbf00N64rvadt/TQ3riu9p239NDeuK72nbf00N64rvadt/TQ3riu9p239NDeuK72nbf00N64rvadt/TQ3riu9p239NDeuK72nbf00N64rvadt/TQ3riu9p239NDeuK72nbf00N64rvadt/TQ3riu9p239NDeuK72nbf00N64rvadt/TQ3riu9p239NDeuK72nbf00N64rvadt/TQ3riu9p239NDeuK72nbf00N64rvadt/TQ3riu9p239NDeuK72nbf00N64rvadt/TQ3riu9p239NDeuK72nbf00N64rvadt/TQ3riu9p239NDeuK72nbf00N64rvadt/TQ3riu9p239NDeuK72nbf00N63rkrjeUvSeN6SNJ63JI3nLcnRt65K43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSetySN5y1J43lL0njekjSet6SN5y1p43lL2njekjaet6RH37qqjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI2nrekjectaeN5S9p43pI1nrdkjectWeN5S9Z43pIdfeuqNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUvWeN6SNZ63ZI3nLVnjeUveeN6SN5635I3nLXnjeUt+9K2r3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1543lL3njekjeet+SN5y1F43lL0XjeUjSetxSN5y3F0beuRuN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrcUjectReN5S9F43lI0nrc0Gs9bGo3nLY3G85ZG43lL4+hbV0fjeUuj8byl0Xje0mg8b2k0nrc0Gs9bGo3nLY3G85ZG43lLo/G8pdF43tJoPG9pNJ63NBrPWxqN5y2NxvOWRuN5S6PxvKXReN7SaDxvaTSetzQaz1sajectjcbzlkbjeUuj8byl0Xje0mg8b2k0nrc0Gs9bGo3nLY3G85YG87yljOdHJf+g/UyEvDSI/VR8nHxWbI3nh93+8OHnphAX7O/bFOKbwLdtCvPoqe/bFOK7y/dtCvGl6Ps2hfi29X2b4vem/L4pxPfD79sU4ovn923KfaM92ZT7RnuyKfeN9vdNYR769n2bct9oTzblvtGebMp9oz3ZFL835fdNuW+0J5ty32hPNuW+0Z5syn2jPdmU+0b7+6Ywj1v8vk25b7Qnm3LfaE825b7RnmyK35vy+6bcN9qTTblvtCebct9oTzblvtGebMp9o/19U5gHnX7fptw32pNNuW+0J5ty32hPNsXvTfl9U+4b7cmm3Dfak025b7Qnm3LfaE825b7R/r4pzCOGv29T7hvtyabcN9qTTel4o31q98baee+H6S/tY9X+YeS9H37jpvDeD79xU3jvh9+4Kbz3w+/bFOJR2d+4Kbz3w2/cFN774TduCu/98Bs3xe9N+X1T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"},{"name":"mint_public","is_unconstrained":true,"custom_attributes":["aztec(public)"],"abi":{"parameters":[{"name":"inputs","type":{"kind":"struct","path":"authwit::aztec::context::inputs::public_context_inputs::PublicContextInputs","fields":[{"name":"call_context","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext","fields":[{"name":"msg_sender","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"storage_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"portal_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"function_selector","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"historical_header","type":{"kind":"struct","path":"authwit::aztec::protocol_types::header::Header","fields":[{"name":"last_archive","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"content_commitment","type":{"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment","fields":[{"name":"tx_tree_height","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}]}},{"name":"state","type":{"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference","fields":[{"name":"l1_to_l2_message_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference","fields":[{"name":"note_hash_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}}]}},{"name":"public_global_variables","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}]},"visibility":"private"},{"name":"to","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]},"visibility":"private"},{"name":"amount","type":{"kind":"field"},"visibility":"private"}],"param_witnesses":{"amount":[{"start":35,"end":36}],"inputs":[{"start":0,"end":34}],"to":[{"start":34,"end":35}]},"return_type":{"abi_type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_circuit_public_inputs::PublicCircuitPublicInputs","fields":[{"name":"call_context","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext","fields":[{"name":"msg_sender","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"storage_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"portal_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"function_selector","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"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":"nullifier_read_requests","type":{"kind":"array","length":2,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"nullifier_non_existent_read_requests","type":{"kind":"array","length":2,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"contract_storage_update_requests","type":{"kind":"array","length":16,"type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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_note_hashes","type":{"kind":"array","length":16,"type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"struct","path":"authwit::aztec::protocol_types::messaging::l2_to_l1_message::L2ToL1Message","fields":[{"name":"recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"content","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":"unencrypted_logs_hash","type":{"kind":"field"}},{"name":"unencrypted_log_preimages_length","type":{"kind":"field"}},{"name":"historical_header","type":{"kind":"struct","path":"authwit::aztec::protocol_types::header::Header","fields":[{"name":"last_archive","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"content_commitment","type":{"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment","fields":[{"name":"tx_tree_height","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}]}},{"name":"state","type":{"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference","fields":[{"name":"l1_to_l2_message_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference","fields":[{"name":"note_hash_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}}]}},{"name":"prover_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}}]},"visibility":"public"},"return_witnesses":[36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233]},"bytecode":"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","debug_symbols":"5d3djmTJdd3xd+lrwjixv4OvYvhiLNMAAWIoiGMDBjHv7pLUmV2EctgT03X+XA1eiRIzT0TN6b1mavO3xL9++tOf/+WHn/745x//8un3f/10/Tdb9un3//2vn/7yrz/8+O//l7/89MO//fTp99fvPv3hx//19j9//t2n//3HP/3h0++t8+f/8bv/+IYffyOOv5HH36jjb/TxN+b4G/v0G3b9+m/87r98bvrxyZl8fnZFP56+bn263fp0v/XpcevT89an161P71ufPrc+fd/5dL91Vv3WWfVbZ9VvnVX/pj/vbz+6f/7o27+ML89f6/H8vvf5cX3b8/PL89//9fny/HXz8+3m5/vNz4+bn583P79ufn7f/Py5+fn73ufnzfOb3za/8fjkWxA8P+uPZ9uNz/Ybn/1tM2tXPR5u/iqTM29+ft38/L75+XPz8/e9z6/r5uevm59vNz/fb37+zfNbN89v3Ty/dfP81s3zWzfPb988v33z/PbN89s3z2/fPL998/z2zfPbN89v3zy/ffP8zs3zOzfP79w8v3Pz/M7N8zs3z+/cPL9z8/zOzfM7N8/vvnl+97fN7+XPXx6vtL95/otPZ+Tj01nXq9uY1G0SvE2t/fh02cvblNRtWuo2I3WbLXQbvy6p2yyp25jUbVzqNiF1G6Us9kspi/1SymK/lLLYL6ksXlJZvKSyeEll8ZLK4iWVxUsqi5dUFi+pLF5SWbykstikstikstikstikstikstikstikstikstikstikstilstilstilstilstilstilstilstilstilstilsjiksjiksjiksjiksjiksjiksjiksjiksjiksjiksjilsjilsjilsjilsjilsjilsjilsjilsjilsjilsriksriksriksriksriksriksriksriksriksriksrilsrilsrilsrilsrilsrilsrilsrilsrilsrilsniksniksniksniksniksniksniksniksniksniksnhLZfGWyuItlcVbKou3VBZL9e5cqnfnUr07l+rduVTvLqR6dyHVuwup3l1I9e7iUsrikOrdhVTvLqR6dyHVuwup3l1I9e5CqncXUr27kOrdhVTvLqR6dyHVuwup3l1I9e5CqncXUr27kOrdhVTvLqR6dyHVuwup3l1I9e5CqncXUr27kOrdhVTvLqR6dyHV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UrfZSrchWye/4jZL6jYmdRuXug2ZxV+zxZtsnfyK2yh5/V1KXn+XktffpeT1dyt5/d1L6jYmdRuXuo1UFrdUFkt1p7ZUd2pLdae2VHdqS3Wn9khl8Uhl8Uhl8Uhl8Uhl8Uhl8Uhl8Uhl8Uhl8ZbK4i2VxVsqi7dUFm+pLN5SWbylsnhLZfFWSr91XUrx93Ydpfx7u45SAL5dRykB365z8Ef581dOWhmPr6zzr9j5V/z8K3H+lTz/Sp1/pc+/MudfOX/7dv727fzt2/nbt/O3b+dv387fvp2/fTt/+3b+9u387fv52/fzt+/nb9/P376fv30/f/t+/vb9/O37+dv387cf528/zt9+nL/9OH/7cf724/ztx/nbj/O3H+dvP87ffp6//Tx/+3n+9vP87ef528/zt5/nbz/P336ev/08f/t1/vbr/O3X+duv87df52+/zt9+nb/9On/7df726/zt9/nb7/O33+dvv8/ffp+//T5/+33+9vv87ff52+/ztz/nb3/O3/6cv/05f/tz/vbn/O3P+duf87c/529/zt/+Pn/7+/zt7/O3v8/f/j5/+/v87e/zt7/P3/4+f/v7+O2v6zr/yjr/ip1/xc+/EudfyfOv1PlX+vwrc/6V87d/vutb57u+db7rW+e7vnW+61vnu751vutb57u+db7rW+e7vnW+61vnu751vutb57u+db7rW+e7vnW+61vnu751vutb57u+db7rW+e7vnW+61vnu751vutb57u+db7rW+e7vnW+61vnu751vutb57u+db7rW+e7vnW+61vnu751vutb57u+db7rW+e7vnW+61vnu751vutb57u+db7rW+e7vnW+61vnu751vutb57u+db7rW+e7vnW+61vnu751vutb57u+db7rW+e7vnW+61vnu751vutb57u+db7rW+e7vnW+61vnu751vutb57u+db7rW+e7vnW+61vnu751vutb57u+db7rW+e7vnW+61vnu751vutb57u+db7rW+e7vnW+61vnu751vutb57u+db7rW+e7vnW+61vnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7r8/Ndn5/v+vx81+fnuz4/3/X5+a7Pz3d9fr7r8/Ndn5/v+vzb/pvVqufzJ2u/axVf+1VjuZ//9RHXl+f6l5ssmZuYzE1c5iYhc5OUuUnJ3KRlbjIyN9kqNzGZjDWZjDWZjDWZjDWZjDWZjDWZjDWZjDWZjDWZjHWZjHWZjHWZjHWZjHWZjHWZjHWZjHWZjHWZjHWZjA2ZjA2ZjA2ZjA2ZjA2ZjA2ZjA2ZjA2ZjA2ZjA2ZjE2ZjE2ZjE2ZjE2ZjE2ZjE2ZjE2ZjE2ZjE2ZjE2ZjC2ZjC2ZjC2ZjC2ZjC2ZjC2ZjC2ZjC2ZjC2ZjC2ZjG2ZjG2ZjG2ZjG2ZjG2ZjG2ZjG2ZjG2ZjG2ZjG2ZjB2ZjB2ZjB2ZjB2ZjB2ZjB2ZjB2ZjB2ZjB2ZjB2ZjN0yGbtlMnbLZOyWydgtk7FbJmO3TMZumYzdMhm7VTI2LpWMjUslY+NSydi4VDI2LpWMjUslY+NSydi4VDI2LpWMjUsmY2V6XiHT8wqZnlfI9LxCpucVMj2vkOl5hUzPK2R6XiHT8wqZnlfI9LxCpucVMj2vkOl5hUzPK2R6XiHT8wqZnlfI9LxCpucVMj2vkOl5hUzPK2R6XiHT8wqZnlfI9LxCpucVMj2vkOl5hUzPK2R6XiHT8wqZnlfI9LxCpucVMj2vkOl5hUzPK2R6XiHT8wqZnlfI9LxCpucVMj2vkOl5hUzPK2R6XiHT8wqZnlfI9LxCpucVMj2vkOl5hUzPK2R6XiHT8wqZnlfI9LxCpucVMj2vkOl5hUzPK2R6XiHT8wqZnlfI9LxCpucVMj2vkOl5hUzPK2R6XiHT8wqZnlfI9LxCpucVMj2vkOl5hUzPK2R6XiHT8wqZnlfI9LxCpucVMj2vkOl5hUzPK2R6XiHT80qZnlfK9LxSpueVMj2vvFQyNmV6XinT80qZnlfK9LxSpueVMj2vlOl5pUzPK2V6XinT80qZnlfK9LxSpueVMj2vlOl5pUzPK2V6XinT80qZnlfK9LxSpueVMj2vlOl5pUzPK2V6XinT80qZnlfK9LxSpueVMj2vlOl5pUzPK2V6XinT80qZnlfK9LxSpueVMj2vlOl5pUzPK2V6XinT80qZnlfK9LxSpueVMj2vlOl5pUzPK2V6XinT80qZnlfK9LxSpueVMj2vlOl5pUzPK2V6XinT80qZnlfK9LxSpueVMj2vlOl5pUzPK2V6XinT80qZnlfK9LxSpueVMj2vlOl5pUzPK2V6XinT80qZnlfK9LxSpueVMj2vlOl5pUzPK2V6XinT80qZnlfK9LxSpueVMj2vlOl5pUzPK2V6XinT80qZnlfK9LxSpueVMj2vlOl5lUzPq2R6XiXT8yqZnlddKhlbMj2vkul5lUzPq2R6XiXT8yqZnlfJ9LxKpudVMj2vkul5lUzPq2R6XiXT8yqZnld9Y89r78+f7OXfeJNv7Hl95E2WzE1M5iYuc5OQuUnK3KRkbvIyY9eyxxFrZX7lPu5XPQ5x/5JwES8+3PkIw97x5cHX80KjdqEtdqHX5a9/5IWW2oXsIy6U63mh3O8v9DjFkVPiI06ZeZ7y7q/Yu1PyQ055Zk1c/uqUQk75hUgbf5xiV33llL0eH9715bN1vfho7HkEd17x5S/u2vt5o5G70Va7UVxyN1pyNzK5G7ncjULuRil3o5K7kVxmh1xmh1xmp1xmp1xmp1xm5wdk9rri8c+tb793zt+/06/fk9VzT/blH+zKnxeP7/Xi+b1evL7Xi3/97yfvVie/cPG330aev5dEvT/lxa8lbZ8/G3+zk6nnjUbuRlvtRnXJ3WjJ3cjkbuRyNwq5G6XcjUruRnKZXXKZXXKZ3XKZ3XKZ3XKZ3XKZ3XKZ3XKZ3XKZ3XKZ3XKZ3XKZPXKZPXKZPXKZPXKZPXKZPXKZPXKZPXKZPXKZPXKZveUye8tl9pbL7C2X2Vsus7dcZm+5zN5ymb3lMnurZXZfapndl1pm96WW2X2pZXZfapndl1pm96WW2X2pZXZfapndl1xmL7nMXnKZveQye8ll9pLL7CWX2Usus5dcZi+5zF5ymW1ymW1ymW1ymW1ymW1ymW1ymW1ymW1ymW1ymW1yme1yme1yme1yme1yme1yme1yme1yme1yme1yme1ymR1ymR1ymR1ymR1ymR1ymR1ymR1ymR1ymR1ymR1ymZ1ymZ1ymZ1ymZ1ymZ1ymZ1ymZ1ymS3Xg2y5HmTL9SBbrgfZcj3IlutBtlwPsuV6kC3Xg2y5HmTL9SBbrgfZcj3IlutBtlwPsuV6kC3Xg2y5HmTL9SBbrgfZcj3IlutBtlwPsuV6kC3Xg2y5HmTL9SBbrgfZcj3IlutBtlwPsuV6kC3Xg2y5HmTL9SBbrgfZcj3IlutBtlwPsuV6kC3Xg2y5HmTL9SBHrgc5cj3IketBjlwPci61zB65HuTI9SBHrgc5cj3IketBjlwPcuR6kCPXgxy5HuTI9SBHrgc5cj3IketBjlwPcuR6kCPXgxy5HuTI9SBHrgc5cj3IketBjlwPcuR6kCPXgxy5HuTI9SBHrgc5cj3IketBjlwPcuR6kCPXgxy5HuTI9SBHrgc5cj3IketBjlwPcuR6kCPXgxy5HuTI9SBHrgc5cj3IketBjlwPcuR6kCPXgxy5HuTI9SBHrgc5cj3IketBjlwPcuR6kCPXgxy5HuTI9SBHrgc5cj3IketBjlwPcuR6kCPXgxy5HuTI9SBHrgc5cj3IketBjlwPcuR6kCPXgxy5HuTI9SBHrgc5cj3IketBjlwPcuR6kCPXgxy5HuTI9SBHrgc5cj3IketBjlwPcuR6kCPXgxy5HuTI9SBHrgc5cj3IketBjlwPcuR6kFuuB7nlepBbrge55XqQ+1LL7C3Xg9xyPcgt14Pccj3ILdeD3HI9yC3Xg9xyPcgt14Pccj3ILdeD3HI9yC3Xg9xyPcgt14Pccj3ILdeD3HI9yC3Xg9xyPcgt14Pccj3ILdeD3HI9yC3Xg9xyPcgt14Pccj3ILdeD3HI9yC3Xg9xyPcgt14Pccj3ILdeD3HI9yC3Xg9xyPcgt14Pccj3ILdeD3HI9yC3Xg9xyPcgt14Pccj3ILdeD3HI9yC3Xg9xyPcgt14Pccj3ILdeD3HI9yC3Xg9xyPcgt14Pccj3ILdeD3HI9yC3Xg9xyPcgt14Pccj3ILdeD3HI9yC3Xg9xyPcgt14Pccj3ILdeD3HI9yC3Xg9xyPcgt14Pccj3ILdeD3HI9yC3Xg9xyPcgt14Pccj3ILdeD3HI9yC3Xg9xyPcgt14Pccj3ILdeD3HI9yC3Xg9w39yAfpzRyyodka9bzlJ6//1d3VV+PD1fvL39995e/vlvtTnZ9TGfxg++0BO9kgndywTuF4J0Sv1Ou553m+ps7vchlvx6Pdnd7fjrixYc75/Nne8eXO1/Pn7X+iX7W/if6Weef6Gfd/zw/67rEf9bnp9/+5X7/sz5+gPW9/wAm/gPMPH+Ad3+E3v0Arv4D9OMHiMtf/QDxvf8AX/8HDMuv/ABx1eNOcXW+OqU+4pQdz18Cr5d/mho5ZT7glOX1PCVenrI/5JR8npKv3v6vqKP+ilP6y8+yr1enrI8+ZV6dYh9wiq3HvITZy1McOSU+4pR8/km2evVnzBI5pZBTXs++Peds2bu/hb4+Za/HlXa9W8xcry709p/Iff5sXu8G+G1T8rzRyN1oq93oF6qV/8gbLbkbmdyNXO5GIXejlLtRyd1ILrNdLrNdLrNDLrNDLrNDLrNDLrPjAzL77Te052/D17vfCl7e6XGh6ysPredvGrX9/W/jj4vn93rx+l4v3t/rxed7vfj+Ti+eX/+707sV2y9cPPbzd9Nc9vPfX8i9Rd2XD+fPX1nI5Xr8pJ72alWWS/wHuL72A9gH/ABp9rxT2av37MgpgZySyCmFnNLIKYOcsolT6kJOWcgpyOwXMvuFzH4hs1/I7Bcy+4XMfiGz38jsNzL7jcx+I7PfyOw3MvuNzH4js9/I7Dcy+4PM/iCzP8jsDzL7g8z+ILM/yOwPMvuDzP4gs7+R2d/I7G9k9jcy+xuZ/Y3M/kZmfyOzv5HZ38Tsr+tCTlnIKYac4sgpgZySyCmFnNLIKYOcgsz+QmZ/IbO/kNlfyOwvZPYXMvsLmf2FzP5CZn8hs2/I7Bsy+4bMviGzb8jsGzL7hsy+IbNvyOwbMvuOzL4js+/I7Dsy+47MviOz78jsOzL7jsy+I7MfyOwHMvuBzH4gsx/I7Acy+4HMfiCzH8jsBzL7icx+IrOPuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuL6FuD5DXJ8hrs8Q12eI67MrkFMSOaWQUxo5ZZBTkNlHXJ8hrs8Q12eI6zPE9Rni+gxxfYa4PkNcnyGuzxDXZ4jrM8T1GeL6DHF9hrg+Q1yfIa7PENdniOszxPUZ4voMcX2GuD5DXJ8hrs8Q12eI6zPE9Rni+gxxfYa4PkNcnyGuzxDXZ4jrM8T1GeL6DHF9hrg+Q1yfIa7PENdniOszxPUZ4voMcX2GuD5DXJ8hrs8Q12eI6zPE9Rni+gxxfYa4PkNcnyGuzxDXZ4jrM8T1GeL6DHF9hrg+Q1yfIa7PENdniOszxPUZ4voMcX2GuD5DXJ8hrs8Q12eI6zPE9Rni+gxxfYa4PkNcnyGuzxDXZ4jrM8T1GeL6DHF9hrg+Q1yfIa7PEdfniOtzxPU54vr8CuSURE4p5JRGThnkFGT2EdfniOtzxPU54voccX2OuD5HXJ8jrs8R1+eI63PE9Tni+hxxfY64PkdcnyOuzxHX54jrc8T1OeL6HHF9jrg+R1yfI67PEdfniOtzxPU54voccX2OuD5HXJ8jrs8R1+eI63PE9Tni+hxxfY64PkdcnyOuzxHX54jrc8T1OeL6HHF9jrg+R1yfI67PEdfniOtzxPU54voccX2OuD5HXJ8jrs8R1+eI63PE9Tni+hxxfY64PkdcnyOuzxHX54jrc8T1OeL6HHF9jrg+R1yfI67PEdfniOtzxPU54voccX2OuD5HXJ8jrs8R1+eI63PE9Tni+hxxfY64PkdcnyOuzxHX54jrC8T1BeL6AnF9gbi+uAI5JZFTCjmlkVMGOQWZfcT1BeL6AnF9gbi+QFxfIK4vENcXiOsLxPUF4voCcX2BuL5AXF8gri8Q1xeI6wvE9QXi+gJxfYG4vkBcXyCuLxDXF4jrC8T1BeL6AnF9gbi+QFxfIK4vENcXiOsLxPUF4voCcX2BuL5AXF8gri8Q1xeI6wvE9QXi+gJxfYG4vkBcXyCuLxDXF4jrC8T1BeL6AnF9gbi+QFxfIK4vENcXiOsLxPUF4voCcX2BuL5AXF8gri8Q1xeI6wvE9QXi+gJxfYG4vkBcXyCuLxDXF4jrC8T1BeL6AnF9gbi+QFxfIK4vENcXiOsLxPUF4voCcX2BuL5AXF8gri8Q1xeI6wvE9QXi+hJxfYm4vkRcXyKuL69ATknklEJOaeSUQU5BZh9xfYm4vkRcXyKuLxHXl4jrS8T1JeL6EnF9ibi+RFxfIq4vEdeXiOtLxPUl4voScX2JuL5EXF8iri8R15eI60vE9SXi+hJxfYm4vkRcXyKuLxHXl4jrS8T1JeL6EnF9ibi+RFxfIq4vEdeXiOtLxPUl4voScX2JuL5EXF8iri8R15eI60vE9SXi+hJxfYm4vkRcXyKuLxHXl4jrS8T1JeL6EnF9ibi+RFxfIq4vEdeXiOtLxPUl4voScX2JuL5EXF8iri8R15eI60vE9SXi+hJxfYm4vkRcXyKuLxHXl4jrS8T1JeL6EnF9ibi+RFxfIq4vEdeXiOtLxPUl4voScX2JuL5CXF8hrq8Q11eI66srkFMSOaWQUxo5ZZBTkNlHXF8hrq8Q11eI6yvE9RXi+gpxfYW4vkJcXyGurxDXV4jrK8T1FeL6CnF9hbi+QlxfIa6vENdXiOsrxPUV4voKcX2FuL5CXF8hrq8Q11eI6yvE9RXi+gpxfYW4vkJcXyGurxDXV4jrK8T1FeL6CnF9hbi+QlxfIa6vENdXiOsrxPUV4voKcX2FuL5CXF8hrq8Q11eI6yvE9RXi+gpxfYW4vkJcXyGurxDXV4jrK8T1FeL6CnF9hbi+QlxfIa6vENdXiOsrxPUV4voKcX2FuL5CXF8hrq8Q11eI6yvE9RXi+gpxfYW4vkJcXyGurxDXV4jrK8T1FeL6CnF9hbi+QlxfIa6vEdfXiOtrxPU14vr6CuSURE4p5JRGThnkFGT2EdfXiOtrxPU14voacX2NuL5GXF8jrq8R19eI62vE9TXi+hpxfY24vkZcXyOurxHX14jra8T1NeL6GnF9jbi+RlxfI66vEdfXiOtrxPU14voacX2NuL5GXF8jrq8R19eI62vE9TXi+hpxfY24vkZcXyOurxHX14jra8T1NeL6GnF9jbi+RlxfI66vEdfXiOtrxPU14voacX2NuL5GXF8jrq8R19eI62vE9TXi+hpxfY24vkZcXyOurxHX14jra8T1NeL6GnF9jbi+RlxfI66vEdfXiOtrxPU14voacX2NuL5GXF8jrq8R19eI62vE9TXi+hpxfY24vkZcXyOurxHX14jrG8T1DeL6BnF9g7i+uQI5JZFTCjmlkVMGOQWZfcT1DeL6BnF9g7i+QVzfIK5vENc3iOsbxPUN4voGcX2DuL5BXN8grm8Q1zeI6xvE9Q3i+gZxfYO4vkFc3yCubxDXN4jrG8T1DeL6BnF9g7i+QVzfIK5vENc3iOsbxPUN4voGcX2DuL5BXN8grm8Q1zeI6xvE9Q3i+gZxfYO4vkFc3yCubxDXN4jrG8T1DeL6BnF9g7i+QVzfIK5vENc3iOsbxPUN4voGcX2DuL5BXN8grm8Q1zeI6xvE9Q3i+gZxfYO4vkFc3yCubxDXN4jrG8T1DeL6BnF9g7i+QVzfIK5vENc3iOsbxPUN4voGcX2DuL5BXN8grm8Q1zeI6xvE9Q3i+jbi+jbi+jbi+jbi+vYVyCmJnFLIKY2cMsgpyOwjrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8jrm8Trs8vwvW9nbKQUww5xZFTAjklkVMKOaWRUwY5BZn9hcz+QmZ/IbO/kNlfyOwvZPYXMvsLmf2FzP5CZt+Q2Tdk9g2ZfUNm35DZN2T2DZl9Q2bfkNk3ZPYdmX1HZt+R2Xdk9h2ZfUdm35HZd2T2HZl9R2Y/kNkPZPYDmf1AZj+Q2Q9k9gOZ/UBmP5DZD2T2E5n9RGY/kdlPZPYTmf1EZj+R2U9k9hOZ/URmv5DZL2T2C5n9Qma/kNkvZPYLmf1CZr+Q2S9k9huZ/UZmv5HZb2T2G5n9Rma/kdlvZPYbmf1GZn+Q2R9k9geZ/UFmf5DZH2T2B5n9QWZ/kNkfZPY3Mvsbmf2NzP5GZn8js7+R2d/I7G9k9jcy+4jrW4jrW4jrW4jrW4jrW1cgpyRySiGnNHLKIKcgs4+4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4voW4PkNcnyGuzxDXZ4jrsyuQUxI5pZBTGjllkFOQ2UdcnyGuzxDXZ4jrM8T1GeL6DHF9hrg+Q1yfIa7PENdniOszxPUZ4voMcX2GuD5DXJ8hrs8Q12eI6zPE9Rni+gxxfYa4PkNcnyGuzxDXZ4jrM8T1GeL6DHF9hrg+Q1yfIa7PENdniOszxPUZ4voMcX2GuD5DXJ8hrs8Q12eI6zPE9Rni+gxxfYa4PkNcnyGuzxDXZ4jrM8T1GeL6DHF9hrg+Q1yfIa7PENdniOszxPUZ4voMcX2GuD5DXJ8hrs8Q12eI6zPE9Rni+gxxfYa4PkNcnyGuzxDXZ4jrM8T1GeL6DHF9hrg+Q1yfIa7PENdniOszxPUZ4voMcX2GuD5DXJ8hrs8R1+eI63PE9Tni+vwK5JRETinklEZOGeQUZPYR1+eI63PE9Tni+hxxfY64PkdcnyOuzxHX54jrc8T1OeL6HHF9jrg+R1yfI67PEdfniOtzxPU54voccX2OuD5HXJ8jrs8R1+eI63PE9Tni+hxxfY64PkdcnyOuzxHX54jrc8T1OeL6HHF9jrg+R1yfI67PEdfniOtzxPU54voccX2OuD5HXJ8jrs8R1+eI63PE9Tni+hxxfY64PkdcnyOuzxHX54jrc8T1OeL6HHF9jrg+R1yfI67PEdfniOtzxPU54voccX2OuD5HXJ8jrs8R1+eI63PE9Tni+hxxfY64PkdcnyOuzxHX54jrc8T1OeL6HHF9jrg+R1yfI67PEdfniOsLxPUF4voCcX2BuL64AjklkVMKOaWRUwY5BZl9xPUF4voCcX2BuL5AXF8gri8Q1xeI6wvE9QXi+gJxfYG4vkBcXyCuLxDXF4jrC8T1BeL6AnF9gbi+QFxfIK4vENcXiOsLxPUF4voCcX2BuL5AXF8gri8Q1xeI6wvE9QXi+gJxfYG4vkBcXyCuLxDXF4jrC8T1BeL6AnF9gbi+QFxfIK4vENcXiOsLxPUF4voCcX2BuL5AXF8gri8Q1xeI6wvE9QXi+gJxfYG4vkBcXyCuLxDXF4jrC8T1BeL6AnF9gbi+QFxfIK4vENcXiOsLxPUF4voCcX2BuL5AXF8gri8Q1xeI6wvE9QXi+gJxfYG4vkBcXyCuLxDXF4jrC8T1BeL6EnF9ibi+RFxfIq4vr0BOSeSUQk5p5JRBTkFmH3F9ibi+RFxfIq4vEdeXiOtLxPUl4voScX2JuL5EXF8iri8R15eI60vE9SXi+hJxfYm4vkRcXyKuLxHXl4jrS8T1JeL6EnF9ibi+RFxfIq4vEdeXiOtLxPUl4voScX2JuL5EXF8iri8R15eI60vE9SXi+hJxfYm4vkRcXyKuLxHXl4jrS8T1JeL6EnF9ibi+RFxfIq4vEdeXiOtLxPUl4voScX2JuL5EXF8iri8R15eI60vE9SXi+hJxfYm4vkRcXyKuLxHXl4jrS8T1JeL6EnF9ibi+RFxfIq4vEdeXiOtLxPUl4voScX2JuL5EXF8iri8R15eI60vE9SXi+hJxfYm4vkJcXyGurxDXV4jrqyuQUxI5pZBTGjllkFOQ2UdcXyGurxDXV4jrK8T1FeL6CnF9hbi+QlxfIa6vENdXiOsrxPUV4voKcX2FuL5CXF8hrq8Q11eI6yvE9RXi+gpxfYW4vkJcXyGurxDXV4jrK8T1FeL6CnF9hbi+QlxfIa6vENdXiOsrxPUV4voKcX2FuL5CXF8hrq8Q11eI6yvE9RXi+gpxfYW4vkJcXyGurxDXV4jrK8T1FeL6CnF9hbi+QlxfIa6vENdXiOsrxPUV4voKcX2FuL5CXF8hrq8Q11eI6yvE9RXi+gpxfYW4vkJcXyGurxDXV4jrK8T1FeL6CnF9hbi+QlxfIa6vENdXiOsrxPUV4voKcX2FuL5CXF8hrq8R19eI62vE9TXi+voK5JRETinklEZOGeQUZPYR19eI62vE9TXi+hpxfY24vkZcXyOurxHX14jra8T1NeL6GnF9jbi+RlxfI66vEdfXiOtrxPU14voacX2NuL5GXF8jrq8R19eI62vE9TXi+hpxfY24vkZcXyOurxHX14jra8T1NeL6GnF9jbi+RlxfI66vEdfXiOtrxPU14voacX2NuL5GXF8jrq8R19eI62vE9TXi+hpxfY24vkZcXyOurxHX14jra8T1NeL6GnF9jbi+RlxfI66vEdfXiOtrxPU14voacX2NuL5GXF8jrq8R19eI62vE9TXi+hpxfY24vkZcXyOurxHX14jra8T1NeL6GnF9jbi+RlxfI66vEdfXiOsbxPUN4voGcX2DuL65AjklkVMKOaWRUwY5BZl9xPUN4voGcX2DuL5BXN8grm8Q1zeI6xvE9Q3i+gZxfYO4vkFc3yCubxDXN4jrG8T1DeL6BnF9g7i+QVzfIK5vENc3iOsbxPUN4voGcX2DuL5BXN8grm8Q1zeI6xvE9Q3i+gZxfYO4vkFc3yCubxDXN4jrG8T1DeL6BnF9g7i+QVzfIK5vENc3iOsbxPUN4voGcX2DuL5BXN8grm8Q1zeI6xvE9Q3i+gZxfYO4vkFc3yCubxDXN4jrG8T1DeL6BnF9g7i+QVzfIK5vENc3iOsbxPUN4voGcX2DuL5BXN8grm8Q1zeI6xvE9Q3i+gZxfYO4vkFc3yCubxDXN4Tri1/4/3J2ff7S9ZXnm5t//ujbv4znp9dazwPq7gP67gPm7gP2zQe8Rk8fecC6+wC7+wC/+4C4+4BvnOTO5wHz+oC6+4C++4C5+4B98wF23X3AuvsAu/sAv/uAuPuAuyfZ7p5ku3uS7e5Jtrsn2b9xkvPL3w8mXx6w7j7A7j7A7z4g7j4g7z6g7j6g7z5g7j5g33xA3D3Jcfckx92THHdPctw9yXH3JMfdkxx3T3LcPclx9yTn3ZOcd09y3j3Jefck592TnHdPct49yXn3JOfdk5x3T3LdPcl19yTX3ZNcd09y3T3Jdfck192TXHdPct09yXX3JL/GL1b9+Xt+vfv1+qrn1/y3fS1+29fyt32tftvX+jd97fV/yF/2+M+Tqubl1+K3fS1/29fqt32tD7/29r/93x/+7Y8//M8//eEvb9/493/z//z4Lz/98c8/fv5ff/p///qf/87P/x8="},{"name":"pay_fee","is_unconstrained":true,"custom_attributes":["aztec(public)"],"abi":{"parameters":[{"name":"inputs","type":{"kind":"struct","path":"authwit::aztec::context::inputs::public_context_inputs::PublicContextInputs","fields":[{"name":"call_context","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext","fields":[{"name":"msg_sender","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"storage_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"portal_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"function_selector","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"historical_header","type":{"kind":"struct","path":"authwit::aztec::protocol_types::header::Header","fields":[{"name":"last_archive","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"content_commitment","type":{"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment","fields":[{"name":"tx_tree_height","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}]}},{"name":"state","type":{"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference","fields":[{"name":"l1_to_l2_message_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference","fields":[{"name":"note_hash_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}}]}},{"name":"public_global_variables","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}]},"visibility":"private"},{"name":"fee_limit","type":{"kind":"field"},"visibility":"private"}],"param_witnesses":{"fee_limit":[{"start":34,"end":35}],"inputs":[{"start":0,"end":34}]},"return_type":{"abi_type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_circuit_public_inputs::PublicCircuitPublicInputs","fields":[{"name":"call_context","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext","fields":[{"name":"msg_sender","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"storage_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"portal_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"function_selector","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"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":"nullifier_read_requests","type":{"kind":"array","length":2,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"nullifier_non_existent_read_requests","type":{"kind":"array","length":2,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"contract_storage_update_requests","type":{"kind":"array","length":16,"type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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_note_hashes","type":{"kind":"array","length":16,"type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"struct","path":"authwit::aztec::protocol_types::messaging::l2_to_l1_message::L2ToL1Message","fields":[{"name":"recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"content","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":"unencrypted_logs_hash","type":{"kind":"field"}},{"name":"unencrypted_log_preimages_length","type":{"kind":"field"}},{"name":"historical_header","type":{"kind":"struct","path":"authwit::aztec::protocol_types::header::Header","fields":[{"name":"last_archive","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"content_commitment","type":{"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment","fields":[{"name":"tx_tree_height","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}]}},{"name":"state","type":{"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference","fields":[{"name":"l1_to_l2_message_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference","fields":[{"name":"note_hash_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}}]}},{"name":"prover_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}}]},"visibility":"public"},"return_witnesses":[35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232]},"bytecode":"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","debug_symbols":"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"},{"name":"compute_note_hash_and_nullifier","is_unconstrained":true,"custom_attributes":[],"abi":{"parameters":[{"name":"contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]},"visibility":"private"},{"name":"nonce","type":{"kind":"field"},"visibility":"private"},{"name":"storage_slot","type":{"kind":"field"},"visibility":"private"},{"name":"note_type_id","type":{"kind":"field"},"visibility":"private"},{"name":"serialized_note","type":{"kind":"array","length":20,"type":{"kind":"field"}},"visibility":"private"}],"param_witnesses":{"contract_address":[{"start":0,"end":1}],"nonce":[{"start":1,"end":2}],"note_type_id":[{"start":3,"end":4}],"serialized_note":[{"start":4,"end":24}],"storage_slot":[{"start":2,"end":3}]},"return_type":{"abi_type":{"kind":"array","length":4,"type":{"kind":"field"}},"visibility":"public"},"return_witnesses":[24,25,26,27]},"bytecode":"H4sIAAAAAAAA/+2YzW7CMAyA0xL6B+3+2PiZtPW4YytxmHbqQ+wFEKs0LjDRbo8/rYZYNWHsMvdgCUtR0jQ4n+2SOHHUXu6b4ph2ryl9dSz4vjB19j/JGXVlXXI6QjhdIZw9Rk5gG6luv1PdgV+5GfsCGD0BjL4AxkAAYyiAMRLAOBDAOBTAGAtgTAQwXghgvBTAeCWA8VoA440AxpEAxlsBjHcCGMeMjA5h1KY9acq0KTO1P7O/mP5AtVJwMczzJeTsOPlEHQrkJi4+6Lavh9ykD/ld0od3DD3d2uCx25DNQa/PrdfkZuh3j/jEs2ICc89In2a3MX8OiD/Z9Gad+W73baN/8Ozqk2f0VWjajHcwOZ3bMSUkcyoTI2xPyVgch/5wSYxBIM/E+Id//E5bv0vIGO8X+wvFa79v8fgWc98wgUCuMtGtX2w2zvsx0Bvx6z2IubZiEpF+HPNo6kvTN+SPw5yuH4rYTKUg7SHx/YCfJ+/Izl1MY6PrW/GuIYnlq8DyVULGxMR/SQf+c8i8qJtygJyZz8ynmAfq8D+OffQ91q5lC827cHyojtcTVoNwQpoYOgYO3sGCChsJbGi+ajeNiBgbG2C4WIDFFjYbOHjCwQ4OTnAwgcR/TOY4lQzThBnlwdRPpn59X1XpcrOut4tlnb5tyipdb+r0syrTj+3qa1GX8FxW6ge2C+5aGhsAAA==","debug_symbols":"nZBLCoAgFEX38sYSUvRzK9HgZQaCqKgFIe49JVpAzu6HMzkRlOEYpNEeWATatAOwJYK3qMvgA7oArJ16AkLvOc00ETikEjmPfVpJgcYaaKqB5gqooz+h3C50EjclipZynpp/lnINt32f9AA="},{"name":"check_balance","is_unconstrained":true,"custom_attributes":["aztec(public)"],"abi":{"parameters":[{"name":"inputs","type":{"kind":"struct","path":"authwit::aztec::context::inputs::public_context_inputs::PublicContextInputs","fields":[{"name":"call_context","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext","fields":[{"name":"msg_sender","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"storage_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"portal_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"function_selector","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"historical_header","type":{"kind":"struct","path":"authwit::aztec::protocol_types::header::Header","fields":[{"name":"last_archive","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"content_commitment","type":{"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment","fields":[{"name":"tx_tree_height","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}]}},{"name":"state","type":{"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference","fields":[{"name":"l1_to_l2_message_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference","fields":[{"name":"note_hash_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}}]}},{"name":"public_global_variables","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}]},"visibility":"private"},{"name":"fee_limit","type":{"kind":"field"},"visibility":"private"}],"param_witnesses":{"fee_limit":[{"start":34,"end":35}],"inputs":[{"start":0,"end":34}]},"return_type":{"abi_type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_circuit_public_inputs::PublicCircuitPublicInputs","fields":[{"name":"call_context","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext","fields":[{"name":"msg_sender","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"storage_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"portal_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"function_selector","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"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":"nullifier_read_requests","type":{"kind":"array","length":2,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"nullifier_non_existent_read_requests","type":{"kind":"array","length":2,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"contract_storage_update_requests","type":{"kind":"array","length":16,"type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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_note_hashes","type":{"kind":"array","length":16,"type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"struct","path":"authwit::aztec::protocol_types::messaging::l2_to_l1_message::L2ToL1Message","fields":[{"name":"recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"content","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":"unencrypted_logs_hash","type":{"kind":"field"}},{"name":"unencrypted_log_preimages_length","type":{"kind":"field"}},{"name":"historical_header","type":{"kind":"struct","path":"authwit::aztec::protocol_types::header::Header","fields":[{"name":"last_archive","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"content_commitment","type":{"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment","fields":[{"name":"tx_tree_height","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}]}},{"name":"state","type":{"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference","fields":[{"name":"l1_to_l2_message_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference","fields":[{"name":"note_hash_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"authwit::aztec::protocol_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":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}}]}}]}},{"name":"prover_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}}]},"visibility":"public"},"return_witnesses":[35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232]},"bytecode":"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","debug_symbols":"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I+X2xSPl9sUj5fbFI+X2xSPl9sUj5fbFI+X2xSPl9sUj5fbFI+X2xSPl9r3iaLWylNsXj5Tb94qj1cpSbl88Um7fK45WK0u5fa84Wq0s5fa94mi1spTb94qj1cpSbt8rjlYrS7l98Ui5ffFIuX3xSLl9rzharSzl9sUj5fa94mi1spTb94qj1cpSbt8rjlYrS7l9rzharSzl9r3iaLWylNv3iqPVylJu3yuOVCublttnWm6fabl9puX22SPVyqbl9pmW22dabp9puX2m5faZlttnWm6fabl9puX2mZbbZ1pun2m5fabl9pmW22dabp9puX2m5faZlttnWm6fabl9puX2mZbbZ1pun2m5fabl9pmW22dabp9puX2m5faZlttnWm6fabl9puX2mZbbZ1pun2m5fabl9pmW22dabp9puX2m5faZlttnWm6fabl9puX2mZbbZ1pun2m5fabl9pmW22dabp9puX2m5faZlttnWm6fabl9puX2mZbbZ1pun2m5fabl9pmW22dabp9puX2m5faZlttnWm6fabl9puX2mZbbZ1pun2m5fabl9pmW22dabp9puX2m5faZlttnWm6fabl9puX2mZbbZ1pun2m5fabl9pmW22dabp9puX2m5faZlttnWm6fabl9puX2mZbbZ1pu39Fy+46W23e03L6j5fadR6qVj5bbd7TcvqPl9h0tt+9ouX0H1cXGz9vTc+PDOKEVB/yt7M/Mp6fd7HwYp7XijFQcUoj6IXFMKw74A4a/fpx5i3PufM/TMf322feJb83hzHt4/yWHj19y+KsR/i1OacVprTgjFYd0oX5IHNOKI1LIb3HQiu16i+OPfxgntOJcrTipFae04rRWnJGKE49WHNOKc7TiaLVyaLVyaLVyaLVyaLVyaLVyaLXy1Wrlq9XKV6uVr1YrX61WvlqtfLVa+Wq18tVq5avVyqnVyqnVyqnVyqnVyqnVyqnVyqnVyqnVyqnVyqnVyqXVyqXVyqjtMxNvcZ7zfBjnasVJrTilFae14oxUHNT2+QFxTCvO0YrjP1ecD0miDq04VytOasVBsa94R3ee+hDd6ZaKM6YV52jFca04oRXnasUh/1+o2X2LY24fximtOK0VZ5Ti+COFm/ojhZv6c7TiuFac0IpzteKkVhwpCcAfKQnAHykJwE2rlU2rlU2rlU2rlU2rlU2rlU2rlbXULNdSs1xLzXItNcu11Cw/Wq18tFr5aLXy0Wrlo9XKR6uVj1YrH61Wdq1Wdq1Wdq1Wdq1Wdq0adK0adK0adK0adK0a/Fj5OfkO2jzf+puET76/5j/utfhxr90f91r+uNdq+drrP/3f3/zH737zP3//2z+93vjb//h//vBvf/7dH//w6T/++f/9+3/9L3/9/w=="}],"outputs":{"structs":{"functions":[{"kind":"struct","path":"GasToken::pay_fee_abi","fields":[{"name":"parameters","type":{"kind":"struct","path":"GasToken::pay_fee_parameters","fields":[{"name":"fee_limit","type":{"kind":"field"}}]}},{"name":"return_type","type":{"kind":"field"}}]},{"kind":"struct","path":"GasToken::check_balance_abi","fields":[{"name":"parameters","type":{"kind":"struct","path":"GasToken::check_balance_parameters","fields":[{"name":"fee_limit","type":{"kind":"field"}}]}}]},{"kind":"struct","path":"GasToken::mint_public_abi","fields":[{"name":"parameters","type":{"kind":"struct","path":"GasToken::mint_public_parameters","fields":[{"name":"to","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"amount","type":{"kind":"field"}}]}}]},{"kind":"struct","path":"GasToken::claim_public_abi","fields":[{"name":"parameters","type":{"kind":"struct","path":"GasToken::claim_public_parameters","fields":[{"name":"to","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"amount","type":{"kind":"field"}},{"name":"secret","type":{"kind":"field"}}]}}]}]},"globals":{"storage":[{"kind":"struct","fields":[{"name":"balances","value":{"kind":"struct","fields":[{"name":"slot","value":{"kind":"integer","sign":false,"value":"1"}},{"name":"typ","value":{"kind":"string","value":"Map<AztecAddress, PublicMutable<U128>>"}}]}}]}]}},"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 u64 { fn eq(self, other: u64) -> bool { self == other } }\nimpl Eq for u32 { fn eq(self, other: u32) -> bool { self == other } }\nimpl Eq for u8 { fn eq(self, other: u8) -> bool { self == other } }\nimpl Eq for u1 { fn eq(self, other: u1) -> 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<T> Eq for [T] where T: Eq {\n fn eq(self, other: [T]) -> bool {\n let mut result = self.len() == other.len();\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 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 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 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 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<T> Ord for [T] 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]) -> Ordering {\n let mut result = self.len().cmp(other.len());\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 len: u64,\n}\n\nimpl<T, MaxLen> BoundedVec<T, MaxLen> {\n pub fn new() -> Self {\n let zeroed = crate::unsafe::zeroed();\n BoundedVec { storage: [zeroed; MaxLen], len: 0 }\n }\n\n pub fn get(mut self: Self, index: u64) -> T {\n assert(index as u64 < self.len);\n self.storage[index]\n }\n\n pub fn get_unchecked(mut self: Self, index: u64) -> T {\n self.storage[index]\n }\n\n pub fn push(&mut self, elem: T) {\n assert(self.len < 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) -> u64 {\n self.len\n }\n\n pub fn max_len(_self: BoundedVec<T, MaxLen>) -> u64 {\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_slice(&mut self, slice: [T]) {\n let new_len = self.len + slice.len();\n assert(new_len as u64 <= MaxLen as u64, \"extend_from_slice out of bounds\");\n for i in 0..slice.len() {\n self.storage[self.len + i] = slice[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] = vec.get_unchecked(i);\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] = crate::unsafe::zeroed();\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}\n","path":"std/collections/bounded_vec.nr"},"20":{"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 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 // 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 // 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#[builtin(modulus_num_bits)]\npub fn modulus_num_bits() -> u64 {}\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 by modding\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"},"30":{"source":"mod poseidon;\nmod mimc;\nmod poseidon2;\nmod pedersen;\n\nuse crate::default::Default;\nuse crate::uint128::U128;\n\n#[foreign(sha256)]\n// docs:start:sha256\npub fn sha256<N>(input: [u8; N]) -> [u8; 32]\n// docs:end:sha256\n{}\n\n#[foreign(sha256)]\n// docs:start:sha256_slice\npub fn sha256_slice(input: [u8]) -> [u8; 32]\n// docs:end:sha256_slice\n{}\n\n#[foreign(blake2s)]\n// docs:start:blake2s\npub fn blake2s<N>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake2s\n{}\n\n#[foreign(blake2s)]\n// docs:start:blake2s_slice\npub fn blake2s_slice(input: [u8]) -> [u8; 32]\n// docs:end:blake2s_slice\n{}\n\n#[foreign(blake3)]\n// docs:start:blake3\npub fn blake3<N>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake3\n{}\n\n#[foreign(blake3)]\n// docs:start:blake3_slice\npub fn blake3_slice(input: [u8]) -> [u8; 32]\n// docs:end:blake3_slice\n{}\n\n// docs:start:pedersen_commitment\nstruct PedersenPoint {\n x : Field,\n y : Field,\n}\n\npub fn pedersen_commitment<N>(input: [Field; N]) -> PedersenPoint {\n // docs:end:pedersen_commitment\n pedersen_commitment_with_separator(input, 0)\n}\n\n// docs:start:pedersen_commitment_slice\npub fn pedersen_commitment_slice(input: [Field]) -> PedersenPoint {\n pedersen_commitment_with_separator_slice(input, 0)\n}\n// docs:end:pedersen_commitment_slice\n\n#[foreign(pedersen_commitment)]\npub fn __pedersen_commitment_with_separator<N>(input: [Field; N], separator: u32) -> [Field; 2] {}\n\n#[foreign(pedersen_commitment)]\npub fn __pedersen_commitment_with_separator_slice(input: [Field], separator: u32) -> [Field; 2] {}\n\npub fn pedersen_commitment_with_separator<N>(input: [Field; N], separator: u32) -> PedersenPoint {\n let values = __pedersen_commitment_with_separator(input, separator);\n PedersenPoint { x: values[0], y: values[1] }\n}\n\npub fn pedersen_commitment_with_separator_slice(input: [Field], separator: u32) -> PedersenPoint {\n let values = __pedersen_commitment_with_separator_slice(input, separator);\n PedersenPoint { x: values[0], y: values[1] }\n}\n\n// docs:start:pedersen_hash\npub fn pedersen_hash<N>(input: [Field; N]) -> Field\n// docs:end:pedersen_hash\n{\n pedersen_hash_with_separator(input, 0)\n}\n\n// docs:start:pedersen_hash_slice\npub fn pedersen_hash_slice(input: [Field]) -> Field\n// docs:end:pedersen_hash_slice\n{\n pedersen_hash_with_separator_slice(input, 0)\n}\n\n#[foreign(pedersen_hash)]\npub fn pedersen_hash_with_separator<N>(input: [Field; N], separator: u32) -> Field {}\n\n#[foreign(pedersen_hash)]\npub fn pedersen_hash_with_separator_slice(input: [Field], separator: u32) -> Field {}\n\npub fn hash_to_field(inputs: [Field]) -> Field {\n let mut inputs_as_bytes = &[];\n\n for input in inputs {\n let input_bytes = input.to_le_bytes(32);\n for i in 0..32 {\n inputs_as_bytes = inputs_as_bytes.push_back(input_bytes[i]);\n }\n }\n\n let hashed_input = blake2s_slice(inputs_as_bytes);\n crate::field::bytes32_to_field(hashed_input)\n}\n\n#[foreign(keccak256)]\n// docs:start:keccak256\npub fn keccak256<N>(input: [u8; N], message_size: u32) -> [u8; 32]\n// docs:end:keccak256\n{}\n\n#[foreign(keccak256)]\n// docs:start:keccak256_slice\npub fn keccak256_slice(input: [u8], message_size: u32) -> [u8; 32]\n// docs:end:keccak256_slice\n{}\n\n#[foreign(poseidon2_permutation)]\npub fn poseidon2_permutation<N>(_input: [Field; N], _state_length: u32) -> [Field; N] {}\n\n#[foreign(sha256_compression)]\npub fn sha256_compression(_input: [u32; 16], _state: [u32; 8]) -> [u32; 8] {}\n\n// Generic hashing support. \n// Partially ported and impacted by rust.\n\n// Hash trait shall be implemented per type.\ntrait Hash{\n fn hash<H>(self, state: &mut H) where H: Hasher;\n}\n\n// Hasher trait shall be implemented by algorithms to provide hash-agnostic means.\n// TODO: consider making the types generic here ([u8], [Field], etc.)\ntrait Hasher{\n fn finish(self) -> Field;\n \n fn write(&mut self, input: [Field]);\n}\n\n// BuildHasher is a factory trait, responsible for production of specific Hasher.\ntrait BuildHasher<H> where H: Hasher{\n fn build_hasher(self) -> H;\n}\n\nstruct BuildHasherDefault<H>;\n\nimpl<H> BuildHasher<H> for BuildHasherDefault<H>\nwhere \n H: Hasher + Default\n{\n fn build_hasher(_self: Self) -> H{\n H::default()\n }\n}\n\nimpl<H> Default for BuildHasherDefault<H>\nwhere \n H: Hasher + Default\n{\n fn default() -> Self{\n BuildHasherDefault{}\n } \n}\n\nimpl Hash for Field {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, &[self]);\n }\n}\n\nimpl Hash for u8 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, &[self as Field]);\n }\n}\n\nimpl Hash for u32 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, &[self as Field]);\n }\n}\n\nimpl Hash for u64 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, &[self as Field]);\n }\n}\n\nimpl Hash for i8 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, &[self as Field]);\n }\n}\n\nimpl Hash for i32 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, &[self as Field]);\n }\n}\n\nimpl Hash for i64 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, &[self as Field]);\n }\n}\n\nimpl Hash for bool {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, &[self as Field]);\n }\n}\n\nimpl Hash for () {\n fn hash<H>(_self: Self, _state: &mut H) where H: Hasher {}\n}\n\nimpl Hash for U128 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, &[self.lo as Field, self.hi as Field]);\n }\n}\n\nimpl<T, N> Hash for [T; N] where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<T> Hash for [T] where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.len().hash(state);\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<A, B> Hash for (A, B) where A: Hash, B: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n }\n}\n\nimpl<A, B, C> Hash for (A, B, C) where A: Hash, B: Hash, C: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n }\n}\n\nimpl<A, B, C, D> Hash for (A, B, C, D) where A: Hash, B: Hash, C: Hash, D: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n }\n}\n\nimpl<A, B, C, D, E> Hash for (A, B, C, D, E) where A: Hash, B: Hash, C: Hash, D: Hash, E: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n self.4.hash(state);\n }\n}\n","path":"std/hash.nr"},"33":{"source":"// Regular merkle tree means a append-only merkle tree (Explain why this is the only way to have privacy and alternatives if you don't want it)\n// Currently we assume that it is a binary tree, so depth k implies a width of 2^k\n// XXX: In the future we can add an arity parameter\n// Returns the merkle root of the tree from the provided leaf, its hashpath, using a pedersen hash function.\npub fn compute_merkle_root<N>(leaf: Field, index: Field, hash_path: [Field; N]) -> Field {\n let n = hash_path.len();\n let index_bits = index.to_le_bits(n as u32);\n let mut current = leaf;\n for i in 0..n {\n let path_bit = index_bits[i] as bool;\n let (hash_left, hash_right) = if path_bit {\n (hash_path[i], current)\n } else {\n (current, hash_path[i])\n };\n current = crate::hash::pedersen_hash([hash_left, hash_right]);\n }\n current\n}\n","path":"std/merkle.nr"},"35":{"source":"use crate::hash::{Hash, Hasher};\nuse crate::cmp::{Ordering, Ord, Eq};\nuse crate::default::Default;\n\nstruct Option<T> {\n _is_some: bool,\n _value: T,\n}\n\nimpl<T> Option<T> {\n /// Constructs a None value\n pub fn none() -> Self {\n Self { _is_some: false, _value: crate::unsafe::zeroed() }\n }\n\n /// Constructs a Some wrapper around the given value\n pub fn some(_value: T) -> Self {\n Self { _is_some: true, _value }\n }\n\n /// True if this Option is None\n pub fn is_none(self) -> bool {\n !self._is_some\n }\n\n /// True if this Option is Some\n pub fn is_some(self) -> bool {\n self._is_some\n }\n\n /// Asserts `self.is_some()` and returns the wrapped value.\n pub fn unwrap(self) -> T {\n assert(self._is_some);\n self._value\n }\n\n /// Returns the inner value without asserting `self.is_some()`\n /// Note that if `self` is `None`, there is no guarantee what value will be returned,\n /// only that it will be of type `T`.\n pub fn unwrap_unchecked(self) -> T {\n self._value\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, returns the given default value.\n pub fn unwrap_or(self, default: T) -> T {\n if self._is_some { self._value } else { default }\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, calls the given function to return\n /// a default value.\n pub fn unwrap_or_else<Env>(self, default: fn[Env]() -> T) -> T {\n if self._is_some {\n self._value\n } else {\n default()\n }\n }\n\n /// Asserts `self.is_some()` with a provided custom message and returns the contained `Some` value\n fn expect<N, MessageTypes>(self, message: fmtstr<N, MessageTypes>) -> T {\n assert(self.is_some(), message);\n self._value\n }\n\n /// If self is `Some(x)`, this returns `Some(f(x))`. Otherwise, this returns `None`.\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> Option<U> {\n if self._is_some {\n Option::some(f(self._value))\n } else {\n Option::none()\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns the given default value.\n pub fn map_or<U, Env>(self, default: U, f: fn[Env](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns `default()`.\n pub fn map_or_else<U, Env1, Env2>(self, default: fn[Env1]() -> U, f: fn[Env2](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default()\n }\n }\n\n /// Returns None if self is None. Otherwise, this returns `other`.\n pub fn and(self, other: Self) -> Self {\n if self.is_none() {\n Option::none()\n } else {\n other\n }\n }\n\n /// If self is None, this returns None. Otherwise, this calls the given function\n /// with the Some value contained within self, and returns the result of that call.\n ///\n /// In some languages this function is called `flat_map` or `bind`.\n pub fn and_then<U, Env>(self, f: fn[Env](T) -> Option<U>) -> Option<U> {\n if self._is_some {\n f(self._value)\n } else {\n Option::none()\n }\n }\n\n /// If self is Some, return self. Otherwise, return `other`.\n pub fn or(self, other: Self) -> Self {\n if self._is_some { self } else { other }\n }\n\n /// If self is Some, return self. Otherwise, return `default()`.\n pub fn or_else<U, Env>(self, default: fn[Env]() -> Self) -> Self {\n if self._is_some { self } else { default() }\n }\n\n // If only one of the two Options is Some, return that option.\n // Otherwise, if both options are Some or both are None, None is returned.\n pub fn xor(self, other: Self) -> Self {\n if self._is_some {\n if other._is_some { Option::none() } else { self }\n } else if other._is_some {\n other\n } else {\n Option::none()\n }\n }\n\n /// Returns `Some(x)` if self is `Some(x)` and `predicate(x)` is true.\n /// Otherwise, this returns `None`\n pub fn filter<Env>(self, predicate: fn[Env](T) -> bool) -> Self {\n if self._is_some {\n if predicate(self._value) {\n self\n } else {\n Option::none()\n }\n } else {\n Option::none()\n }\n }\n\n /// Flattens an Option<Option<T>> into a Option<T>.\n /// This returns None if the outer Option is None. Otherwise, this returns the inner Option.\n pub fn flatten(option: Option<Option<T>>) -> Option<T> {\n if option._is_some {\n option._value\n } else {\n Option::none()\n }\n }\n}\n\nimpl<T> Default for Option<T> {\n fn default() -> Self {\n Option::none()\n }\n}\n\nimpl<T> Eq for Option<T> where T: Eq {\n fn eq(self, other: Self) -> bool {\n if self._is_some == other._is_some {\n if self._is_some {\n self._value == other._value\n } else {\n true\n }\n } else {\n false\n }\n }\n}\n\nimpl<T> Hash for Option<T> where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n self._is_some.hash(state);\n if self._is_some {\n self._value.hash(state);\n }\n }\n}\n\n// For this impl we're declaring Option::none < Option::some\nimpl<T> Ord for Option<T> where T: Ord {\n fn cmp(self, other: Self) -> Ordering {\n if self._is_some {\n if other._is_some {\n self._value.cmp(other._value)\n } else {\n Ordering::greater()\n }\n } else {\n if other._is_some {\n Ordering::less()\n } else {\n Ordering::equal()\n }\n }\n }\n}\n","path":"std/option.nr"},"44":{"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 { lo: lo as Field, hi: hi as Field }\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 { lo, hi }\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 { lo: lo as Field, hi: hi as Field }\n }\n\n fn decode_ascii(ascii: u8) -> Field {\n if ascii < 58 {\n ascii - 48\n } else if ascii < 71 {\n ascii - 55\n } else {\n ascii - 87\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 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 { lo, hi }\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 { lo, hi }\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 underflow\");\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"},"60":{"source":"use crate::context::{PrivateContext, PublicContext, Context};\nuse dep::protocol_types::{hash::pedersen_hash, traits::ToField};\nuse crate::state_vars::storage::Storage;\n\n// docs:start:map\nstruct Map<K, V> {\n context: Context,\n storage_slot: Field,\n state_var_constructor: fn(Context, Field) -> V,\n}\n// docs:end:map\n\nimpl<K, T> Storage<T> for Map<K, T> {}\n\nimpl<K, V> Map<K, V> {\n // docs:start:new\n pub fn new(\n context: Context,\n storage_slot: Field,\n state_var_constructor: fn(Context, Field) -> V\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Map { context, storage_slot, state_var_constructor }\n }\n // docs:end:new\n\n // docs:start:at\n pub fn at(self, key: K) -> V where K: ToField {\n // TODO(#1204): use a generator index for the storage slot\n let derived_storage_slot = pedersen_hash([self.storage_slot, key.to_field()], 0);\n\n let state_var_constructor = self.state_var_constructor;\n state_var_constructor(self.context, derived_storage_slot)\n }\n // docs:end:at\n}\n","path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/map.nr"},"63":{"source":"use crate::context::Context;\nuse crate::oracle::storage::storage_read;\nuse crate::oracle::storage::storage_write;\nuse dep::protocol_types::traits::{Deserialize, Serialize};\nuse crate::state_vars::storage::Storage;\n\n// docs:start:public_mutable_struct\nstruct PublicMutable<T> {\n context: Context,\n storage_slot: Field,\n}\n// docs:end:public_mutable_struct\n\nimpl<T> Storage<T> for PublicMutable<T> {}\n\nimpl<T> PublicMutable<T> {\n // docs:start:public_mutable_struct_new\n pub fn new(\n // Note: Passing the contexts to new(...) just to have an interface compatible with a Map.\n context: Context,\n storage_slot: Field\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n PublicMutable { context, storage_slot }\n }\n // docs:end:public_mutable_struct_new\n\n // docs:start:public_mutable_struct_read\n pub fn read<T_SERIALIZED_LEN>(self) -> T where T: Deserialize<T_SERIALIZED_LEN> {\n assert(self.context.private.is_none(), \"PublicMutable reads only supported in public functions\");\n let fields = storage_read(self.storage_slot);\n T::deserialize(fields)\n }\n // docs:end:public_mutable_struct_read\n\n // docs:start:public_mutable_struct_write\n pub fn write<T_SERIALIZED_LEN>(self, value: T) where T: Serialize<T_SERIALIZED_LEN> {\n assert(self.context.private.is_none(), \"PublicMutable writes only supported in public functions\");\n let fields = T::serialize(value);\n storage_write(self.storage_slot, fields);\n }\n // docs:end:public_mutable_struct_write\n}\n","path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/public_mutable.nr"},"76":{"source":"use crate::{\n context::{\n inputs::PublicContextInputs, interface::ContextInterface, interface::PublicContextInterface,\n gas::GasOpts\n},\n messaging::process_l1_to_l2_message,\n oracle::{arguments, public_call::call_public_function_internal}, hash::hash_args_array\n};\nuse dep::protocol_types::{\n abis::{\n global_variables::GlobalVariables, function_selector::FunctionSelector,\n private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_call_stack_item::PublicCallStackItem,\n public_circuit_public_inputs::PublicCircuitPublicInputs, read_request::ReadRequest,\n side_effect::{SideEffect, SideEffectLinkedToNoteHash}\n},\n address::{AztecAddress, EthAddress},\n constants::{\n MAX_NEW_NOTE_HASHES_PER_CALL, MAX_NEW_L2_TO_L1_MSGS_PER_CALL, MAX_NEW_NULLIFIERS_PER_CALL,\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_DATA_READS_PER_CALL,\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL,\n MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL,\n RETURN_VALUES_LENGTH\n},\n contrakt::{storage_read::StorageRead, storage_update_request::StorageUpdateRequest}, header::Header,\n messaging::l2_to_l1_message::L2ToL1Message, utils::reader::Reader\n};\n\nstruct PublicContext {\n inputs: PublicContextInputs,\n side_effect_counter: u32,\n\n args_hash : Field,\n return_values : BoundedVec<Field, RETURN_VALUES_LENGTH>,\n\n nullifier_read_requests: BoundedVec<ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,\n nullifier_non_existent_read_requests: BoundedVec<ReadRequest, MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL>,\n contract_storage_update_requests: BoundedVec<StorageUpdateRequest, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL>,\n contract_storage_reads: BoundedVec<StorageRead, MAX_PUBLIC_DATA_READS_PER_CALL>,\n public_call_stack_hashes: BoundedVec<Field, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\n\n new_note_hashes: BoundedVec<SideEffect, MAX_NEW_NOTE_HASHES_PER_CALL>,\n new_nullifiers: BoundedVec<SideEffectLinkedToNoteHash, MAX_NEW_NULLIFIERS_PER_CALL>,\n\n new_l2_to_l1_msgs: BoundedVec<L2ToL1Message, MAX_NEW_L2_TO_L1_MSGS_PER_CALL>,\n\n unencrypted_logs_hash: Field,\n unencrypted_logs_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 prover_address: AztecAddress,\n}\n\nimpl PublicContext {\n pub fn new(inputs: PublicContextInputs, args_hash: Field) -> PublicContext {\n PublicContext {\n inputs,\n side_effect_counter: inputs.start_side_effect_counter,\n args_hash,\n return_values: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n nullifier_non_existent_read_requests: BoundedVec::new(),\n contract_storage_update_requests: BoundedVec::new(),\n contract_storage_reads: BoundedVec::new(),\n public_call_stack_hashes: BoundedVec::new(),\n new_note_hashes: BoundedVec::new(),\n new_nullifiers: BoundedVec::new(),\n new_l2_to_l1_msgs: BoundedVec::new(),\n unencrypted_logs_hash: 0,\n unencrypted_logs_preimages_length: 0,\n historical_header: inputs.historical_header,\n prover_address: AztecAddress::zero() // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n // encrypted_logs_preimages: Vec::new(),\n // unencrypted_logs_preimages: Vec::new(),\n }\n }\n\n pub fn call_public_function_no_args(\n self: &mut Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> [Field; RETURN_VALUES_LENGTH] {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false, false)\n }\n\n pub fn static_call_public_function_no_args(\n self: &mut Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> [Field; RETURN_VALUES_LENGTH] {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, true, false)\n }\n\n pub fn delegate_call_public_function_no_args(\n self: &mut Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> [Field; RETURN_VALUES_LENGTH] {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false, true)\n }\n\n pub fn call_public_function_with_packed_args(\n self: &mut Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let side_effect_counter = self.side_effect_counter;\n // TODO get next value from output of `call_public_function_internal`\n self.side_effect_counter += 1;\n\n call_public_function_internal(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter,\n is_static_call,\n is_delegate_call\n )\n }\n\n pub fn finish(self) -> PublicCircuitPublicInputs {\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n let unencrypted_logs_hash = 0;\n let unencrypted_log_preimages_length = 0;\n\n // Compute the public call stack hashes\n let pub_circuit_pub_inputs = PublicCircuitPublicInputs {\n call_context: self.inputs.call_context, // Done\n args_hash: self.args_hash, // Done\n nullifier_read_requests: self.nullifier_read_requests.storage,\n nullifier_non_existent_read_requests: self.nullifier_non_existent_read_requests.storage,\n contract_storage_update_requests: self.contract_storage_update_requests.storage,\n contract_storage_reads: self.contract_storage_reads.storage,\n return_values: self.return_values.storage,\n new_note_hashes: self.new_note_hashes.storage,\n new_nullifiers: self.new_nullifiers.storage,\n public_call_stack_hashes: self.public_call_stack_hashes.storage,\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\n start_side_effect_counter: self.inputs.start_side_effect_counter,\n end_side_effect_counter: self.side_effect_counter,\n unencrypted_logs_hash,\n unencrypted_log_preimages_length,\n historical_header: self.inputs.historical_header,\n prover_address: self.prover_address,\n revert_code: 0\n };\n pub_circuit_pub_inputs\n }\n}\n\nimpl ContextInterface for PublicContext {\n fn msg_sender(self) -> AztecAddress {\n self.inputs.call_context.msg_sender\n }\n\n fn this_address(self) -> AztecAddress {\n self.inputs.call_context.storage_contract_address\n }\n\n fn this_portal_address(self) -> EthAddress {\n self.inputs.call_context.portal_contract_address\n }\n\n fn chain_id(self) -> Field {\n self.inputs.public_global_variables.chain_id\n }\n\n fn version(self) -> Field {\n self.inputs.public_global_variables.version\n }\n\n fn selector(self) -> FunctionSelector {\n self.inputs.call_context.function_selector\n }\n\n fn get_args_hash(self) -> Field {\n self.args_hash\n }\n\n fn get_header(self) -> Header {\n self.historical_header\n }\n\n fn push_new_note_hash(&mut self, note_hash: Field) {\n let side_effect = SideEffect { value: note_hash, counter: self.side_effect_counter };\n self.new_note_hashes.push(side_effect);\n self.side_effect_counter = self.side_effect_counter + 1;\n }\n\n fn push_new_nullifier(&mut self, nullifier: Field, _nullified_commitment: Field) {\n let side_effect = SideEffectLinkedToNoteHash {\n value: nullifier,\n note_hash: 0, // cannot nullify pending notes in public context\n counter: self.side_effect_counter\n };\n self.new_nullifiers.push(side_effect);\n self.side_effect_counter = self.side_effect_counter + 1;\n }\n}\n\nimpl PublicContextInterface for PublicContext {\n fn block_number(self) -> Field {\n self.inputs.public_global_variables.block_number\n }\n\n fn timestamp(self) -> u64 {\n self.inputs.public_global_variables.timestamp\n }\n\n fn coinbase(self) -> EthAddress {\n self.inputs.public_global_variables.coinbase\n }\n\n fn fee_recipient(self) -> AztecAddress {\n self.inputs.public_global_variables.fee_recipient\n }\n\n fn push_nullifier_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.side_effect_counter };\n self.nullifier_read_requests.push(request);\n self.side_effect_counter = self.side_effect_counter + 1;\n }\n\n fn push_nullifier_non_existent_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.side_effect_counter };\n self.nullifier_non_existent_read_requests.push(request);\n self.side_effect_counter = self.side_effect_counter + 1;\n }\n\n fn message_portal(&mut self, recipient: EthAddress, content: Field) {\n let message = L2ToL1Message { recipient, content };\n self.new_l2_to_l1_msgs.push(message);\n }\n\n // We can consume message with a secret in public context because the message cannot be modified and therefore\n // there is no front-running risk (e.g. somebody could front run you to claim your tokens to your address).\n fn consume_l1_to_l2_message(&mut self, content: Field, secret: Field, sender: EthAddress) {\n let this = (*self).this_address();\n let nullifier = process_l1_to_l2_message(\n self.historical_header.state.l1_to_l2_message_tree.root,\n this,\n sender,\n self.chain_id(),\n self.version(),\n content,\n secret\n );\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_new_nullifier(nullifier, 0)\n }\n\n fn accumulate_encrypted_logs<N>(&mut self, log: [Field; N]) {\n let _void1 = self;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n fn accumulate_unencrypted_logs<T>(&mut self, log: T) {\n let _void1 = self;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n fn call_public_function<ARGS_COUNT>(\n self: &mut Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n _gas: GasOpts\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n fn static_call_public_function<ARGS_COUNT>(\n self: &mut Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n _gas: GasOpts\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, true, false)\n }\n\n fn delegate_call_public_function<ARGS_COUNT>(\n self: &mut Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, false, true)\n }\n}\n","path":"/usr/src/noir-projects/aztec-nr/aztec/src/context/public_context.nr"},"87":{"source":"use crate::{\n hash::{compute_secret_hash, compute_message_hash, compute_message_nullifier},\n oracle::get_l1_to_l2_membership_witness::get_l1_to_l2_membership_witness\n};\n\nuse dep::std::merkle::compute_merkle_root;\nuse dep::protocol_types::{constants::L1_TO_L2_MSG_TREE_HEIGHT, address::{AztecAddress, EthAddress}, utils::arr_copy_slice};\n\npub fn process_l1_to_l2_message(\n l1_to_l2_root: Field,\n storage_contract_address: AztecAddress,\n portal_contract_address: EthAddress,\n chain_id: Field,\n version: Field,\n content: Field,\n secret: Field\n) -> Field {\n let secret_hash = compute_secret_hash(secret);\n let message_hash = compute_message_hash(\n portal_contract_address,\n chain_id,\n storage_contract_address,\n version,\n content,\n secret_hash\n );\n\n let returned_message = get_l1_to_l2_membership_witness(storage_contract_address, message_hash, secret);\n let leaf_index = returned_message[0];\n let sibling_path = arr_copy_slice(returned_message, [0; L1_TO_L2_MSG_TREE_HEIGHT], 1);\n\n // Check that the message is in the tree\n // This is implicitly checking that the values of the message are correct\n let root = compute_merkle_root(message_hash, leaf_index, sibling_path);\n assert(root == l1_to_l2_root, \"Message not in state\");\n\n compute_message_nullifier(message_hash, secret, leaf_index)\n}\n","path":"/usr/src/noir-projects/aztec-nr/aztec/src/messaging.nr"},"100":{"source":"use dep::protocol_types::{address::AztecAddress, constants::L1_TO_L2_MESSAGE_ORACLE_CALL_LENGTH};\n\n// Obtains membership witness (index and sibling path) for a message in the L1 to L2 message tree.\n#[oracle(getL1ToL2MembershipWitness)]\nfn get_l1_to_l2_membership_witness_oracle(\n _contract_address: AztecAddress,\n _message_hash: Field,\n _secret: Field\n) -> [Field; L1_TO_L2_MESSAGE_ORACLE_CALL_LENGTH] {}\n\nunconstrained pub fn get_l1_to_l2_membership_witness(\n contract_address: AztecAddress,\n message_hash: Field,\n secret: Field\n) -> [Field; L1_TO_L2_MESSAGE_ORACLE_CALL_LENGTH] {\n get_l1_to_l2_membership_witness_oracle(contract_address, message_hash, secret)\n}\n","path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/get_l1_to_l2_membership_witness.nr"},"106":{"source":"use dep::protocol_types::traits::{Deserialize, Serialize};\n\n#[oracle(storageRead)]\nfn storage_read_oracle<N>(_storage_slot: Field, _number_of_elements: Field) -> [Field; N] {}\n\nunconstrained fn storage_read_oracle_wrapper<N>(_storage_slot: Field) -> [Field; N] {\n storage_read_oracle(_storage_slot, N)\n}\n\npub fn storage_read<N>(storage_slot: Field) -> [Field; N] {\n storage_read_oracle_wrapper(storage_slot)\n}\n\n#[oracle(storageWrite)]\nfn storage_write_oracle<N>(_storage_slot: Field, _values: [Field; N]) -> [Field; N] {}\n\nunconstrained pub fn storage_write<N>(storage_slot: Field, fields: [Field; N]) {\n let _hash = storage_write_oracle(storage_slot, fields);\n}\n","path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/storage.nr"},"109":{"source":"mod globals;\nmod inputs;\n\nmod private_context;\nmod public_context;\nmod avm_context;\nmod interface;\nmod gas;\n\nuse interface::ContextInterface;\nuse private_context::PrivateContext;\nuse public_context::PublicContext;\nuse avm_context::AvmContext;\n\nstruct Context {\n private: Option<&mut PrivateContext>,\n public: Option<&mut PublicContext>,\n avm: Option<&mut AvmContext>,\n}\n\nimpl Context {\n pub fn private(context: &mut PrivateContext) -> Context {\n Context { private: Option::some(context), public: Option::none(), avm: Option::none() }\n }\n\n pub fn public(context: &mut PublicContext) -> Context {\n Context { public: Option::some(context), private: Option::none(), avm: Option::none() }\n }\n\n pub fn avm(context: &mut AvmContext) -> Context {\n Context { avm: Option::some(context), public: Option::none(), private: Option::none() }\n }\n\n pub fn none() -> Context {\n Context { public: Option::none(), private: Option::none(), avm: Option::none() }\n }\n}\n","path":"/usr/src/noir-projects/aztec-nr/aztec/src/context.nr"},"111":{"source":"use dep::protocol_types::{\n address::{AztecAddress, EthAddress},\n constants::{\n GENERATOR_INDEX__L1_TO_L2_MESSAGE_SECRET, GENERATOR_INDEX__NULLIFIER, ARGS_HASH_CHUNK_COUNT,\n GENERATOR_INDEX__FUNCTION_ARGS, ARGS_HASH_CHUNK_LENGTH\n},\n traits::Hash, hash::{pedersen_hash, silo_nullifier}\n};\n\nuse dep::protocol_types::hash::sha256_to_field;\n\npub fn compute_secret_hash(secret: Field) -> Field {\n // TODO(#1205) This is probably not the right index to use\n pedersen_hash([secret], GENERATOR_INDEX__L1_TO_L2_MESSAGE_SECRET)\n}\n\npub fn compute_message_hash(\n sender: EthAddress,\n chain_id: Field,\n recipient: AztecAddress,\n version: Field,\n content: Field,\n secret_hash: Field\n) -> Field {\n let mut hash_bytes = [0 as u8; 192];\n let sender_bytes = sender.to_field().to_be_bytes(32);\n let chain_id_bytes = chain_id.to_be_bytes(32);\n let recipient_bytes = recipient.to_field().to_be_bytes(32);\n let version_bytes = version.to_be_bytes(32);\n let content_bytes = content.to_be_bytes(32);\n let secret_hash_bytes = secret_hash.to_be_bytes(32);\n\n for i in 0..32 {\n hash_bytes[i] = sender_bytes[i];\n hash_bytes[i + 32] = chain_id_bytes[i];\n hash_bytes[i + 64] = recipient_bytes[i];\n hash_bytes[i + 96] = version_bytes[i];\n hash_bytes[i + 128] = content_bytes[i];\n hash_bytes[i + 160] = secret_hash_bytes[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\n// The nullifier of a l1 to l2 message is the hash of the message salted with the secret and index of the message hash\n// in the L1 to L2 message tree\npub fn compute_message_nullifier(message_hash: Field, secret: Field, leaf_index: Field) -> Field {\n pedersen_hash(\n [message_hash, secret, leaf_index],\n GENERATOR_INDEX__NULLIFIER\n )\n}\n\npub fn compute_siloed_nullifier(address: AztecAddress, nullifier: Field) -> Field {\n silo_nullifier(address, nullifier)\n}\n\nstruct ArgsHasher {\n fields: [Field],\n}\n\nimpl Hash for ArgsHasher {\n fn hash(self) -> Field {\n hash_args(self.fields)\n }\n}\n\nimpl ArgsHasher {\n pub fn new() -> Self {\n Self { fields: [] }\n }\n\n pub fn add(&mut self, field: Field) {\n self.fields = self.fields.push_back(field);\n }\n\n pub fn add_multiple<N>(&mut self, fields: [Field; N]) {\n for i in 0..N {\n self.fields = self.fields.push_back(fields[i]);\n }\n }\n}\n\npub fn hash_args_array<N>(args: [Field; N]) -> Field {\n hash_args(args.as_slice())\n}\n\npub fn hash_args(args: [Field]) -> 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() {\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() {\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#[test]\nfn compute_var_args_hash() {\n let mut input = ArgsHasher::new();\n for i in 0..800 {\n input.add(i as Field);\n }\n let hash = input.hash();\n assert(hash == 0x05a1023fef839ac88731f49ae983e172c1b600a3c8f3393ad0ac25d819ac0f0f);\n}\n","path":"/usr/src/noir-projects/aztec-nr/aztec/src/hash.nr"},"130":{"source":"pub fn field_from_bytes<N>(bytes: [u8; N], big_endian: bool) -> Field {\n assert(bytes.len() < 32, \"field_from_bytes: N must be less than 32\");\n let mut as_field = 0;\n let mut offset = 1;\n for i in 0..N {\n let mut index = i;\n if big_endian {\n index = N - i - 1;\n }\n as_field += (bytes[index] as Field) * offset;\n offset *= 256;\n }\n\n as_field\n}\n\n// Convert a 32 byte array to a field element by truncating the final byte\npub fn field_from_bytes_32_trunc(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..15 {\n // covers bytes 16..30 (31 is truncated and ignored)\n low = low + (bytes32[15 + 15 - i] as Field) * v;\n v = v * 256;\n // covers bytes 0..14\n high = high + (bytes32[14 - i] as Field) * v;\n }\n // covers byte 15\n low = low + (bytes32[15] as Field) * v;\n\n low + high * v\n}\n\n// TODO to radix returns u8, so we cannot use bigger radixes. It'd be ideal to use a radix of the maximum range-constrained integer noir supports\npub fn full_field_less_than(lhs: Field, rhs: Field) -> bool {\n lhs.lt(rhs)\n}\n\npub fn full_field_greater_than(lhs: Field, rhs: Field) -> bool {\n rhs.lt(lhs)\n}\n\n#[test]\nunconstrained fn bytes_field_test() {\n // Tests correctness of field_from_bytes_32_trunc against existing methods\n // Bytes representing 0x543e0a6642ffeb8039296861765a53407bba62bd1c97ca43374de950bbe0a7\n let inputs = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28, 151, 202, 67, 55, 77, 233, 80, 187, 224, 167\n ];\n let field = field_from_bytes(inputs, true);\n let return_bytes = field.to_be_bytes(31);\n for i in 0..31 {\n assert_eq(inputs[i], return_bytes[i]);\n }\n // 32 bytes - we remove the final byte, and check it matches the field\n let inputs2 = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28, 151, 202, 67, 55, 77, 233, 80, 187, 224, 167, 158\n ];\n let field2 = field_from_bytes_32_trunc(inputs2);\n let return_bytes2 = field.to_be_bytes(31);\n\n for i in 0..31 {\n assert_eq(return_bytes2[i], return_bytes[i]);\n }\n assert_eq(field2, field);\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/field.nr"},"147":{"source":"use crate::{\n crate::address::{eth_address::EthAddress, partial_address::PartialAddress, public_keys_hash::PublicKeysHash},\n constants::{AZTEC_ADDRESS_LENGTH, GENERATOR_INDEX__CONTRACT_ADDRESS},\n contract_class_id::ContractClassId, hash::pedersen_hash, grumpkin_point::GrumpkinPoint,\n traits::{Empty, ToField, Serialize, Deserialize}, utils\n};\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_LENGTH> for AztecAddress {\n fn serialize(self: Self) -> [Field; AZTEC_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn deserialize(fields: [Field; AZTEC_ADDRESS_LENGTH]) -> 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 deployer: AztecAddress\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 deployer\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\n#[test]\nfn compute_address() {\n let point = GrumpkinPoint { x: 1, y: 2 };\n let contract_address_salt = 3;\n let contract_class_id = ContractClassId::from_field(4);\n let initialization_hash = 5;\n let portal_contract_address = EthAddress::from_field(6);\n let deployer = AztecAddress::from_field(7);\n\n let address = AztecAddress::compute_from_public_key(\n point,\n contract_class_id,\n contract_address_salt,\n initialization_hash,\n portal_contract_address,\n deployer\n );\n\n let expected_computed_address_from_preimage = 0x027ea2b41ced2ec9a98305984e96dd28518536a4628883ccdc06e38aa8997220;\n assert(address.to_field() == expected_computed_address_from_preimage);\n}\n\n#[test]\nfn compute_address_from_partial_and_pubkey() {\n let point = GrumpkinPoint { x: 1, y: 2 };\n let partial_address = PartialAddress::from_field(3);\n\n let address = AztecAddress::compute(PublicKeysHash::compute(point), partial_address);\n let expected_computed_address_from_partial_and_pubkey = 0x0447f893197175723deb223696e2e96dbba1e707ee8507766373558877e74197;\n assert(address.to_field() == expected_computed_address_from_partial_and_pubkey);\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr"},"152":{"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 u32 { fn empty() -> Self {0} }\nimpl Empty for u64 { fn empty() -> Self {0} }\nimpl Empty for U128 { fn empty() -> Self {U128::from_integer(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\nimpl ToField for bool { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u1 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u8 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u32 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u64 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for U128 {\n fn to_field(self) -> Field {\n self.to_integer()\n }\n}\n\ntrait FromField {\n fn from_field(value: Field) -> Self;\n}\n\nimpl FromField for Field {\n fn from_field(value: Field) -> Self {\n value\n }\n}\n\nimpl FromField for bool { fn from_field(value: Field) -> Self { value as bool } }\nimpl FromField for u1 { fn from_field(value: Field) -> Self { value as u1 } }\nimpl FromField for u8 { fn from_field(value: Field) -> Self { value as u8 } }\nimpl FromField for u32 { fn from_field(value: Field) -> Self { value as u32 } }\nimpl FromField for u64 { fn from_field(value: Field) -> Self { value as u64 } }\nimpl FromField for U128 {\n fn from_field(value: Field) -> Self {\n U128::from_integer(value)\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\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/traits.nr"},"196":{"source":"use crate::traits::{Serialize, Deserialize};\n\nglobal BOOL_SERIALIZED_LEN: Field = 1;\nglobal U8_SERIALIZED_LEN: Field = 1;\nglobal U32_SERIALIZED_LEN: Field = 1;\nglobal U64_SERIALIZED_LEN: Field = 1;\nglobal U128_SERIALIZED_LEN: Field = 1;\nglobal FIELD_SERIALIZED_LEN: Field = 1;\n\nimpl Serialize<BOOL_SERIALIZED_LEN> for bool {\n fn serialize(self) -> [Field; BOOL_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<BOOL_SERIALIZED_LEN> for bool {\n fn deserialize(fields: [Field; BOOL_SERIALIZED_LEN]) -> bool {\n fields[0] as bool\n }\n}\n\nimpl Serialize<U8_SERIALIZED_LEN> for u8 {\n fn serialize(self) -> [Field; U32_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<U8_SERIALIZED_LEN> for u8 {\n fn deserialize(fields: [Field; U8_SERIALIZED_LEN]) -> Self {\n fields[0] as u8\n }\n}\n\nimpl Serialize<U32_SERIALIZED_LEN> for u32 {\n fn serialize(self) -> [Field; U32_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<U32_SERIALIZED_LEN> for u32 {\n fn deserialize(fields: [Field; U32_SERIALIZED_LEN]) -> Self {\n fields[0] as u32\n }\n}\n\nimpl Serialize<U64_SERIALIZED_LEN> for u64 {\n fn serialize(self) -> [Field; U64_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<U64_SERIALIZED_LEN> for u64 {\n fn deserialize(fields: [Field; U64_SERIALIZED_LEN]) -> Self {\n fields[0] as u64\n }\n}\n\nimpl Serialize<U128_SERIALIZED_LEN> for U128 {\n fn serialize(self) -> [Field; 1] {\n [self.to_integer()]\n }\n\n}\n\nimpl Deserialize<U128_SERIALIZED_LEN> for U128 {\n fn deserialize(fields: [Field; U128_SERIALIZED_LEN]) -> Self {\n U128::from_integer(fields[0])\n }\n}\n\nimpl Serialize<FIELD_SERIALIZED_LEN> for Field {\n fn serialize(self) -> [Field; U32_SERIALIZED_LEN] {\n [self]\n }\n}\n\nimpl Deserialize<FIELD_SERIALIZED_LEN> for Field {\n fn deserialize(fields: [Field; FIELD_SERIALIZED_LEN]) -> Self {\n fields[0]\n }\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/type_serialization.nr"},"199":{"source":"use crate::address::{AztecAddress, EthAddress};\nuse crate::mocked::VerificationKey;\nuse crate::abis::function_selector::FunctionSelector;\nuse crate::abis::contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage;\nuse crate::contract_class_id::ContractClassId;\nuse crate::utils::{uint256::U256, field::field_from_bytes_32_trunc};\nuse crate::constants::{\n FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__SILOED_NOTE_HASH, GENERATOR_INDEX__OUTER_NULLIFIER,\n GENERATOR_INDEX__VK, GENERATOR_INDEX__CONSTRUCTOR, GENERATOR_INDEX__PARTIAL_ADDRESS,\n GENERATOR_INDEX__CONTRACT_ADDRESS, GENERATOR_INDEX__NOTE_HASH_NONCE,\n GENERATOR_INDEX__UNIQUE_NOTE_HASH\n};\nuse crate::traits::Hash;\nuse crate::messaging::l2_to_l1_message::L2ToL1Message;\nuse crate::merkle_tree::root::root_from_sibling_path;\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 let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\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 silo_note_hash(address: AztecAddress, inner_commitment: Field) -> Field {\n pedersen_hash(\n [\n address.to_field(),\n inner_commitment\n ],\n GENERATOR_INDEX__SILOED_NOTE_HASH\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\npub fn 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\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n rollup_version_id: Field,\n chain_id: Field,\n message: L2ToL1Message\n) -> Field {\n let mut bytes: BoundedVec<u8, 160> = BoundedVec::new();\n\n let inputs = [\n contract_address.to_field(), rollup_version_id, message.recipient.to_field(), chain_id, message.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\n// Computes sha256 hash of 2 input hashes.\n//\n// NB: This method now takes in two 31 byte fields - it assumes that any input\n// is the result of a sha_to_field hash and => is truncated\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//\npub fn accumulate_sha256(input: [Field; 2]) -> Field {\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 // Concatentate two fields into 32x2 = 64 bytes\n // accumulate_sha256 assumes that the inputs are pre-truncated 31 byte numbers\n let mut hash_input_flattened = [0; 64];\n for offset in 0..input.len() {\n let input_as_bytes = input[offset].to_be_bytes(32);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n\n sha256_to_field(hash_input_flattened)\n}\n\npub fn compute_logs_hash(previous_log_hash: Field, current_log_hash: Field) -> Field {\n accumulate_sha256(\n [\n previous_log_hash,\n current_log_hash\n ]\n )\n}\n\npub fn compute_note_hash_nonce(first_nullifier: Field, commitment_index: u64) -> Field {\n pedersen_hash(\n [\n first_nullifier,\n commitment_index as Field\n ],\n GENERATOR_INDEX__NOTE_HASH_NONCE\n )\n}\n\npub fn compute_unique_siloed_note_hash(nonce: Field, siloed_note_hash: Field) -> Field {\n pedersen_hash(\n [\n nonce,\n siloed_note_hash\n ],\n GENERATOR_INDEX__UNIQUE_NOTE_HASH\n )\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\n#[test]\nfn smoke_sha256_to_field() {\n let full_buffer = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\n 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,\n 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,\n 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,\n 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,\n 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,\n 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,\n 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159\n ];\n let result = sha256_to_field(full_buffer);\n\n assert(result == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184c7);\n\n // to show correctness of the current ver (truncate one byte) vs old ver (mod full bytes):\n let result_bytes = sha256(full_buffer);\n let truncated_field = crate::utils::field::field_from_bytes_32_trunc(result_bytes);\n assert(truncated_field == result);\n let mod_res = result + (result_bytes[31] as Field);\n assert(mod_res == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184e0);\n}\n\n#[test]\nfn compute_l2_l1_hash() {\n // All zeroes\n let hash_result = compute_l2_to_l1_hash(AztecAddress::from_field(0), 0, 0, L2ToL1Message::empty());\n assert(hash_result == 0xb393978842a0fa3d3e1470196f098f473f9678e72463cb65ec4ab5581856c2);\n\n // Non-zero case\n let message = L2ToL1Message { recipient: EthAddress::from_field(3), content: 5 };\n let hash_result = compute_l2_to_l1_hash(AztecAddress::from_field(1), 2, 4, message);\n assert(hash_result == 0x3f88c1044a05e5340ed20466276500f6d45ca5603913b9091e957161734e16);\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr"},"209":{"source":"// general util packages/modules are usually bad practice\n// because there is no criteria for what we should not put in here.\n// Reducing the size of this package would be welcome.\n\nmod arrays;\nmod field;\nmod reader;\nmod uint256;\n\n// if predicate == true then return lhs, else return rhs\npub fn conditional_assign(predicate: bool, lhs: Field, rhs: Field) -> Field {\n if predicate { lhs } else { rhs }\n}\n\npub fn arr_copy_slice<T, N, M>(src: [T; N], mut dst: [T; M], offset: u64) -> [T; M] {\n for i in 0..dst.len() {\n dst[i] = src[i + offset];\n }\n dst\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils.nr"},"275":{"source":"mod lib;\n\ncontract GasToken {\n use dep::aztec::protocol_types::{abis::function_selector::FunctionSelector, address::{AztecAddress, EthAddress}};\n use dep::aztec::{hash::compute_secret_hash, state_vars::{PublicMutable, Map}};\n\n use crate::lib::{calculate_fee, get_bridge_gas_msg_hash};\n\n #[aztec(storage)]\n struct Storage {\n balances: Map<AztecAddress, PublicMutable<U128>>,\n }\n\n #[aztec(public)]\n fn claim_public(to: AztecAddress, amount: Field, secret: Field) {\n let content_hash = get_bridge_gas_msg_hash(to, amount);\n\n // Consume message and emit nullifier\n context.consume_l1_to_l2_message(content_hash, secret, context.this_portal_address());\n\n let new_balance = storage.balances.at(to).read() + U128::from_integer(amount);\n storage.balances.at(to).write(new_balance);\n }\n\n // TODO(@just-mitch): remove this function before mainnet deployment\n // convenience function for testing\n // the true canonical gas token contract will not have this function\n #[aztec(public)]\n fn mint_public(to: AztecAddress, amount: Field) {\n let amount = U128::from_integer(amount);\n let new_balance = storage.balances.at(to).read().add(amount);\n\n storage.balances.at(to).write(new_balance);\n }\n\n #[aztec(public)]\n fn check_balance(fee_limit: Field) {\n let fee_limit = U128::from_integer(fee_limit);\n assert(storage.balances.at(context.msg_sender()).read() >= fee_limit, \"Balance too low\");\n }\n\n #[aztec(public)]\n fn pay_fee(fee_limit: Field) -> Field {\n let fee_limit_u128 = U128::from_integer(fee_limit);\n let fee = calculate_fee(context);\n assert(fee <= fee_limit_u128, \"Fee too high\");\n\n let sender_new_balance = storage.balances.at(context.msg_sender()).read() - fee;\n storage.balances.at(context.msg_sender()).write(sender_new_balance);\n\n let recipient_new_balance = storage.balances.at(context.fee_recipient()).read() + fee;\n storage.balances.at(context.fee_recipient()).write(recipient_new_balance);\n\n let rebate = fee_limit_u128 - fee;\n rebate.to_field()\n }\n\n // utility function for testing\n unconstrained fn balance_of_public(owner: AztecAddress) -> pub Field {\n storage.balances.at(owner).read().to_field()\n }\n}\n","path":"/usr/src/noir-projects/noir-contracts/contracts/gas_token_contract/src/main.nr"},"276":{"source":"use dep::aztec::prelude::{AztecAddress, EthAddress};\nuse dep::aztec::context::PublicContext;\nuse dep::aztec::protocol_types::hash::sha256_to_field;\n\npub fn calculate_fee(_context: PublicContext) -> U128 {\n U128::from_integer(1)\n}\n\npub fn get_bridge_gas_msg_hash(owner: AztecAddress, amount: Field) -> Field {\n let mut hash_bytes = [0; 68];\n let recipient_bytes = owner.to_field().to_be_bytes(32);\n let amount_bytes = amount.to_be_bytes(32);\n\n for i in 0..32 {\n hash_bytes[i + 4] = recipient_bytes[i];\n hash_bytes[i + 36] = amount_bytes[i];\n }\n\n // Function selector: 0x3e87b9be keccak256('mint_public(bytes32,uint256)')\n hash_bytes[0] = 0x3e;\n hash_bytes[1] = 0x87;\n hash_bytes[2] = 0xb9;\n hash_bytes[3] = 0xbe;\n\n let content_hash = sha256_to_field(hash_bytes);\n content_hash\n}\n","path":"/usr/src/noir-projects/noir-contracts/contracts/gas_token_contract/src/lib.nr"}}}
|