@aztec/l1-artifacts 0.0.1-commit.f146247c → 0.0.1-commit.f1df4d2
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/HonkVerifierBytecode.d.ts +2 -2
- package/dest/HonkVerifierBytecode.d.ts.map +1 -1
- package/dest/HonkVerifierBytecode.js +1 -1
- package/l1-contracts/cache/solidity-files-cache.json +1 -1
- package/l1-contracts/foundry.toml +1 -1
- package/l1-contracts/generated/HonkVerifier.sol +65 -70
- package/l1-contracts/out/CoinIssuer.sol/CoinIssuer.json +1 -1
- package/l1-contracts/out/DateGatedRelayer.sol/DateGatedRelayer.json +1 -1
- package/l1-contracts/out/DeployAztecL1Contracts.s.sol/DeployAztecL1Contracts.json +1 -1
- package/l1-contracts/out/DeployAztecL1Contracts.t.sol/DeployAztecL1ContractsTest.json +1 -1
- package/l1-contracts/out/DeployRollupForUpgrade.s.sol/DeployRollupForUpgrade.json +1 -1
- package/l1-contracts/out/DeployRollupForUpgrade.t.sol/DeployRollupForUpgradeTest.json +1 -1
- package/l1-contracts/out/DeployRollupLib.sol/DeployRollupLib.json +1 -1
- package/l1-contracts/out/DeploymentConfiguration.sol/DeploymentConfiguration.json +1 -1
- package/l1-contracts/out/FeeAssetHandler.sol/FeeAssetHandler.json +1 -1
- package/l1-contracts/out/FlushRewarder.sol/FlushRewarder.json +1 -1
- package/l1-contracts/out/HonkVerifier.sol/BaseHonkVerifier.json +1 -1
- package/l1-contracts/out/HonkVerifier.sol/CommitmentSchemeLib.json +1 -1
- package/l1-contracts/out/HonkVerifier.sol/FrLib.json +1 -1
- package/l1-contracts/out/HonkVerifier.sol/Honk.json +1 -1
- package/l1-contracts/out/HonkVerifier.sol/HonkVerificationKey.json +1 -1
- package/l1-contracts/out/HonkVerifier.sol/HonkVerifier.json +1 -1
- package/l1-contracts/out/HonkVerifier.sol/IVerifier.json +1 -1
- package/l1-contracts/out/HonkVerifier.sol/RelationsLib.json +1 -1
- package/l1-contracts/out/HonkVerifier.sol/TranscriptLib.json +1 -1
- package/l1-contracts/out/IDateGatedRelayer.sol/IDateGatedRelayer.json +1 -1
- package/l1-contracts/out/IFlushRewarder.sol/IFlushRewarder.json +1 -1
- package/l1-contracts/out/IMintableERC20.sol/IMintableERC20.json +1 -1
- package/l1-contracts/out/ISlashFactory.sol/ISlashFactory.json +1 -1
- package/l1-contracts/out/InputsExtractor.sol/InputsExtractor.json +1 -1
- package/l1-contracts/out/MockERC20.sol/MockERC20.json +1 -1
- package/l1-contracts/out/MockERC721.sol/MockERC721.json +1 -1
- package/l1-contracts/out/MockFeeJuicePortal.sol/MockFeeJuicePortal.json +1 -1
- package/l1-contracts/out/MockVerifier.sol/MockVerifier.json +1 -1
- package/l1-contracts/out/MockZKPassportVerifier.sol/MockZKPassportVerifier.json +1 -1
- package/l1-contracts/out/MultiAdder.sol/MultiAdder.json +1 -1
- package/l1-contracts/out/RegisterNewRollupVersionPayload.sol/RegisterNewRollupVersionPayload.json +1 -1
- package/l1-contracts/out/Registry.sol/Registry.json +1 -1
- package/l1-contracts/out/RewardDistributor.sol/RewardDistributor.json +1 -1
- package/l1-contracts/out/RollupConfiguration.sol/RollupConfiguration.json +1 -1
- package/l1-contracts/out/SlashFactory.sol/SlashFactory.json +1 -1
- package/l1-contracts/out/SlashPayload.sol/SlashPayload.json +1 -1
- package/l1-contracts/out/StakingAssetHandler.sol/StakingAssetHandler.json +1 -1
- package/l1-contracts/out/StdError.sol/stdError.json +1 -1
- package/l1-contracts/out/TestERC20.sol/TestERC20.json +1 -1
- package/l1-contracts/out/ZKPassportHelper.sol/ZKPassportHelper.json +1 -1
- package/l1-contracts/out/ZKPassportRootVerifier.sol/ZKPassportRootVerifier.json +1 -1
- package/l1-contracts/out/ZKPassportSubVerifier.sol/ZKPassportSubVerifier.json +1 -1
- package/l1-contracts/out/build-info/{bcca871da7c17f8e.json → 6b707081690bc1a6.json} +1 -1
- package/l1-contracts/out/build-info/{33d81a4b1b05e4ba.json → 8103921c6e825236.json} +1 -1
- package/l1-contracts/out/shouting.t.sol/ScreamAndShoutTest.json +1 -1
- package/l1-contracts/script/deploy/DeployRollupForUpgrade.s.sol +17 -1
- package/l1-contracts/test/script/DeployAztecL1Contracts.t.sol +61 -0
- package/l1-contracts/test/script/DeployRollupForUpgrade.t.sol +112 -0
- package/package.json +1 -1
- package/l1-contracts/solc-0.8.30 +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"abi":[{"type":"constructor","inputs":[{"name":"_admin","type":"address","internalType":"address"},{"name":"_rootVerifier","type":"address","internalType":"contract ZKPassportRootVerifier"}],"stateMutability":"nonpayable"},{"type":"function","name":"addProofVerifiers","inputs":[{"name":"_proofVerifiers","type":"tuple[]","internalType":"struct ProofVerifier[]","components":[{"name":"vkeyHash","type":"bytes32","internalType":"bytes32"},{"name":"verifier","type":"address","internalType":"address"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"proofVerifiers","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeProofVerifiers","inputs":[{"name":"vkeyHashes","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rootVerifier","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ZKPassportRootVerifier"}],"stateMutability":"view"},{"type":"function","name":"setPaused","inputs":[{"name":"_paused","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferAdmin","inputs":[{"name":"newAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verify","inputs":[{"name":"rootRegistry","type":"address","internalType":"contract IRootRegistry"},{"name":"params","type":"tuple","internalType":"struct ProofVerificationParams","components":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"proofVerificationData","type":"tuple","internalType":"struct ProofVerificationData","components":[{"name":"vkeyHash","type":"bytes32","internalType":"bytes32"},{"name":"proof","type":"bytes","internalType":"bytes"},{"name":"publicInputs","type":"bytes32[]","internalType":"bytes32[]"}]},{"name":"committedInputs","type":"bytes","internalType":"bytes"},{"name":"serviceConfig","type":"tuple","internalType":"struct ServiceConfig","components":[{"name":"validityPeriodInSeconds","type":"uint256","internalType":"uint256"},{"name":"domain","type":"string","internalType":"string"},{"name":"scope","type":"string","internalType":"string"},{"name":"devMode","type":"bool","internalType":"bool"}]}]}],"outputs":[{"name":"isValid","type":"bool","internalType":"bool"},{"name":"uniqueIdentifier","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"AdminUpdated","inputs":[{"name":"oldAdmin","type":"address","indexed":true,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PausedStatusChanged","inputs":[{"name":"paused","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ProofVerifierAdded","inputs":[{"name":"proofVerifier","type":"address","indexed":true,"internalType":"address"},{"name":"vkeyHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ProofVerifierRemoved","inputs":[{"name":"proofVerifier","type":"address","indexed":true,"internalType":"address"},{"name":"vkeyHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ZKPassportSubVerifierDeployed","inputs":[{"name":"admin","type":"address","indexed":true,"internalType":"address"},{"name":"rootVerifier","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040516117a63803806117a683398101604081905261002e9161016d565b6001600160a01b0382166100895760405162461bcd60e51b815260206004820152601c60248201527f41646d696e2063616e6e6f74206265207a65726f20616464726573730000000060448201526064015b60405180910390fd5b5f80546001600160a01b0319166001600160a01b038481169190911790915581166101025760405162461bcd60e51b8152602060048201526024808201527f526f6f742076657269666965722063616e6e6f74206265207a65726f206164646044820152637265737360e01b6064820152608401610080565b600180546001600160a01b0319166001600160a01b038381169182179092555f8054604051929316917f2074ff6f26d7905cc1807b94a6a9a002ce0c7a92e95e5ab8edf6b28b56e9f8d89190a350506101a5565b6001600160a01b038116811461016a575f5ffd5b50565b5f5f6040838503121561017e575f5ffd5b825161018981610156565b602084015190925061019a81610156565b809150509250929050565b6115f4806101b25f395ff3fe608060405234801561000f575f5ffd5b5060043610610090575f3560e01c80635c975abb116100635780635c975abb1461011457806375829def14610137578063e4c0b80b1461014a578063e88d4ee61461015d578063f851a44014610187575f5ffd5b806316c38b3c146100945780631e8e0f8e146100a95780632576b26f146100ee57806326700c0414610101575b5f5ffd5b6100a76100a236600461116f565b610199565b005b6100d16100b736600461118a565b60026020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100a76100fc3660046111a1565b610222565b6100a761010f366004611212565b61032e565b5f5461012790600160a01b900460ff1681565b60405190151581526020016100e5565b6100a7610145366004611287565b61045b565b6001546100d1906001600160a01b031681565b61017061016b3660046112a2565b610529565b6040805192151583526020830191909152016100e5565b5f546100d1906001600160a01b031681565b5f546001600160a01b031633146101cb5760405162461bcd60e51b81526004016101c2906112f5565b60405180910390fd5b5f8054821515600160a01b0260ff60a01b199091161790556040517f9a506b30e47f3823b09f67e4c0dfa5c3d8023b71825b7ceaa97677129128c9c59061021790831515815260200190565b60405180910390a150565b5f546001600160a01b0316331461024b5760405162461bcd60e51b81526004016101c2906112f5565b5f5b81811015610329575f60025f85858581811061026b5761026b61132c565b602090810292909201358352508101919091526040015f20546001600160a01b0316905080156103205760025f8585858181106102aa576102aa61132c565b602090810292909201358352508101919091526040015f2080546001600160a01b03191690558383838181106102e2576102e261132c565b90506020020135816001600160a01b03167fcbc6363fd394dcb0ae12ee150a5f2a71305110addee38f87682d670b632f5b4060405160405180910390a35b5060010161024d565b505050565b5f546001600160a01b031633146103575760405162461bcd60e51b81526004016101c2906112f5565b5f5b81811015610329578282828181106103735761037361132c565b905060400201602001602081019061038b9190611287565b60025f8585858181106103a0576103a061132c565b9050604002015f013581526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b031602179055508282828181106103eb576103eb61132c565b9050604002015f01358383838181106104065761040661132c565b905060400201602001602081019061041e9190611287565b6001600160a01b03167f220dc8943553a5812167948533c5a3a0c0674c926e0aea0f6b0a8cf5701044b460405160405180910390a3600101610359565b5f546001600160a01b031633146104845760405162461bcd60e51b81526004016101c2906112f5565b6001600160a01b0381166104da5760405162461bcd60e51b815260206004820152601c60248201527f41646d696e2063616e6e6f74206265207a65726f20616464726573730000000060448201526064016101c2565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b9190a35050565b5f80548190600160a01b900460ff161561057a5760405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b60448201526064016101c2565b6001546001600160a01b031633146105fa5760405162461bcd60e51b815260206004820152603760248201527f546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656460448201527f2066726f6d2074686520726f6f7420766572696669657200000000000000000060648201526084016101c2565b5f61061161060b6020860186611340565b35610b50565b90505f6106216020860186611340565b61062f90604081019061135e565b60028181106106405761064061132c565b905060200201355f1c905061068a8686806020019061065f9190611340565b61066d90604081019061135e565b5f81811061067d5761067d61132c565b9050602002013583610baf565b6106c78661069b6020880188611340565b6106a990604081019061135e565b60018181106106ba576106ba61132c565b9050602002013583610c7a565b6106de816106d860608801886113a4565b35610d3b565b6107465760405162461bcd60e51b815260206004820152603360248201527f5468652070726f6f66207761732067656e657261746564206f757473696465206044820152721d1a19481d985b1a591a5d1e481c195c9a5bd9606a1b60648201526084016101c2565b61079f6107566020870187611340565b61076490604081019061135e565b61077160608901896113a4565b61077f9060208101906113b8565b61078c60608b018b6113a4565b61079a9060408101906113b8565b610d4d565b6107eb5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420646f6d61696e206f722073636f706500000000000000000060448201526064016101c2565b6108846107fb6020870187611340565b61080990604081019061135e565b600590600261081b60208b018b611340565b61082990604081019061135e565b61083492915061140f565b9261084193929190611422565b808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061087f9250505060408801886113b8565b610f15565b5f6108926020870187611340565b6108a090604081019061135e565b60026108af60208a018a611340565b6108bd90604081019061135e565b6108c892915061140f565b8181106108d7576108d761132c565b905060200201355f1c60038111156108f1576108f161144d565b905060028160038111156109075761090761144d565b14158015610927575060038160038111156109245761092461144d565b14155b8061094b575061093a60608701876113a4565b61094b90608081019060600161116f565b6109a85760405162461bcd60e51b815260206004820152602860248201527f4d6f636b2070726f6f667320617265206f6e6c7920616c6c6f77656420696e20604482015267646576206d6f646560c01b60648201526084016101c2565b5f8160038111156109bb576109bb61144d565b14806109e057506109cf60608701876113a4565b6109e090608081019060600161116f565b610a405760405162461bcd60e51b815260206004820152602b60248201527f53616c746564206e756c6c69666965727320617265206e6f7420737570706f7260448201526a74656420666f72206e6f7760a81b60648201526084016101c2565b6001600160a01b03831663ea50d0e4610a5c6020890189611340565b610a6a9060208101906113b8565b610a7760208b018b611340565b610a8590604081019061135e565b6040518563ffffffff1660e01b8152600401610aa49493929190611461565b602060405180830381865afa158015610abf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae391906114c3565b94505f6001610af56020890189611340565b610b0390604081019061135e565b610b0e92915061140f565b9050610b1d6020880188611340565b610b2b90604081019061135e565b82818110610b3b57610b3b61132c565b905060200201359450505050505b9250929050565b5f818152600260205260408120546001600160a01b031680610ba95760405162461bcd60e51b815260206004820152601260248201527115995c9a599a595c881b9bdd08199bdd5b9960721b60448201526064016101c2565b92915050565b604051631557214b60e11b81526001600482015260248101839052604481018290526001600160a01b03841690632aae429690606401602060405180830381865afa158015610c00573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2491906114c3565b6103295760405162461bcd60e51b815260206004820152602160248201527f496e76616c696420636572746966696361746520726567697374727920726f6f6044820152601d60fa1b60648201526084016101c2565b604051631557214b60e11b81526002600482015260248101839052604481018290526001600160a01b03841690632aae429690606401602060405180830381865afa158015610ccb573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cef91906114c3565b6103295760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964206369726375697420726567697374727920726f6f7400000060448201526064016101c2565b5f610d46838361112a565b9392505050565b5f5f610d8d86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061115a92505050565b610e0757600860028787604051602001610da89291906114de565b60408051601f1981840301815290829052610dc2916114ed565b602060405180830381855afa158015610ddd573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610e009190611503565b901c610e09565b5f5b90505f610e4a85858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061115a92505050565b610ec457600860028686604051602001610e659291906114de565b60408051601f1981840301815290829052610e7f916114ed565b602060405180830381855afa158015610e9a573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610ebd9190611503565b901c610ec6565b5f5b90508189896003818110610edc57610edc61132c565b90506020020135148015610f0857508089896004818110610eff57610eff61132c565b90506020020135145b9998505050505050505050565b5f805b8282108015610f275750845181105b15611084575f8484610f3a85600161151a565b90610f4686600361151a565b92610f539392919061152d565b610f5c91611554565b60f01c90505f60086002878688610f73878361151a565b610f7e90600361151a565b92610f8b9392919061152d565b604051602001610f9c9291906114de565b60408051601f1981840301815290829052610fb6916114ed565b602060405180830381855afa158015610fd1573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610ff49190611503565b901c905086838151811061100a5761100a61132c565b602002602001015181146110555760405162461bcd60e51b8152602060048201526012602482015271125b9d985b1a590818dbdb5b5a5d1b595b9d60721b60448201526064016101c2565b61106082600361158c565b61106e9061ffff168561151a565b93508261107a816115a6565b9350505050610f18565b8183146110d35760405162461bcd60e51b815260206004820152601f60248201527f496e76616c696420636f6d6d697474656420696e70757473206c656e6774680060448201526064016101c2565b845181146111235760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420706172616d6574657220636f6d6d69746d656e747300000060448201526064016101c2565b5050505050565b5f80611136838561151a565b905083421015801561114757508381115b801561115257504281115b949350505050565b511590565b801515811461116c575f5ffd5b50565b5f6020828403121561117f575f5ffd5b8135610d468161115f565b5f6020828403121561119a575f5ffd5b5035919050565b5f5f602083850312156111b2575f5ffd5b823567ffffffffffffffff8111156111c8575f5ffd5b8301601f810185136111d8575f5ffd5b803567ffffffffffffffff8111156111ee575f5ffd5b8560208260051b8401011115611202575f5ffd5b6020919091019590945092505050565b5f5f60208385031215611223575f5ffd5b823567ffffffffffffffff811115611239575f5ffd5b8301601f81018513611249575f5ffd5b803567ffffffffffffffff81111561125f575f5ffd5b8560208260061b8401011115611202575f5ffd5b6001600160a01b038116811461116c575f5ffd5b5f60208284031215611297575f5ffd5b8135610d4681611273565b5f5f604083850312156112b3575f5ffd5b82356112be81611273565b9150602083013567ffffffffffffffff8111156112d9575f5ffd5b8301608081860312156112ea575f5ffd5b809150509250929050565b6020808252601a908201527f4e6f7420617574686f72697a65643a2061646d696e206f6e6c79000000000000604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112611354575f5ffd5b9190910192915050565b5f5f8335601e19843603018112611373575f5ffd5b83018035915067ffffffffffffffff82111561138d575f5ffd5b6020019150600581901b3603821315610b49575f5ffd5b5f8235607e19833603018112611354575f5ffd5b5f5f8335601e198436030181126113cd575f5ffd5b83018035915067ffffffffffffffff8211156113e7575f5ffd5b602001915036819003821315610b49575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b81810381811115610ba957610ba96113fb565b5f5f85851115611430575f5ffd5b8386111561143c575f5ffd5b5050600583901b0193919092039150565b634e487b7160e01b5f52602160045260245ffd5b60408152836040820152838560608301375f60608583018101829052601f19601f8701168301838103820160208501529081018490526001600160fb1b038411156114aa575f5ffd5b8360051b80866080840137016080019695505050505050565b5f602082840312156114d3575f5ffd5b8151610d468161115f565b818382375f9101908152919050565b5f82518060208501845e5f920191825250919050565b5f60208284031215611513575f5ffd5b5051919050565b80820180821115610ba957610ba96113fb565b5f5f8585111561153b575f5ffd5b83861115611547575f5ffd5b5050820193919092039150565b80356001600160f01b03198116906002841015611585576001600160f01b0319600285900360031b81901b82161691505b5092915050565b61ffff8181168382160190811115610ba957610ba96113fb565b5f600182016115b7576115b76113fb565b506001019056fea26469706673582212209afd08664c6af7e620ec387b36feb7e45f913c4d53259cb4f7261b299d9f481464736f6c634300081e0033","sourceMap":"518:9887:10:-:0;;;1364:344;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1434:20:10;;1426:61;;;;-1:-1:-1;;;1426:61:10;;774:2:172;1426:61:10;;;756:21:172;813:2;793:18;;;786:30;852;832:18;;;825:58;900:18;;1426:61:10;;;;;;;;;1493:5;:14;;-1:-1:-1;;;;;;1493:14:10;-1:-1:-1;;;;;1493:14:10;;;;;;;;;;1521:36;;1513:85;;;;-1:-1:-1;;;1513:85:10;;1131:2:172;1513:85:10;;;1113:21:172;1170:2;1150:18;;;1143:30;1209:34;1189:18;;;1182:62;-1:-1:-1;;;1260:18:172;;;1253:34;1304:19;;1513:85:10;929:400:172;1513:85:10;1604:12;:28;;-1:-1:-1;;;;;;1604:28:10;-1:-1:-1;;;;;1604:28:10;;;;;;;;;-1:-1:-1;1673:5:10;;1643:60;;1604:28;;1673:5;;1643:60;;-1:-1:-1;1643:60:10;1364:344;;518:9887;;14:131:172;-1:-1:-1;;;;;89:31:172;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:417::-;261:6;269;322:2;310:9;301:7;297:23;293:32;290:52;;;338:1;335;328:12;290:52;370:9;364:16;389:31;414:5;389:31;:::i;:::-;489:2;474:18;;468:25;439:5;;-1:-1:-1;502:33:172;468:25;502:33;:::i;:::-;554:7;544:17;;;150:417;;;;;:::o;929:400::-;518:9887:10;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610090575f3560e01c80635c975abb116100635780635c975abb1461011457806375829def14610137578063e4c0b80b1461014a578063e88d4ee61461015d578063f851a44014610187575f5ffd5b806316c38b3c146100945780631e8e0f8e146100a95780632576b26f146100ee57806326700c0414610101575b5f5ffd5b6100a76100a236600461116f565b610199565b005b6100d16100b736600461118a565b60026020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100a76100fc3660046111a1565b610222565b6100a761010f366004611212565b61032e565b5f5461012790600160a01b900460ff1681565b60405190151581526020016100e5565b6100a7610145366004611287565b61045b565b6001546100d1906001600160a01b031681565b61017061016b3660046112a2565b610529565b6040805192151583526020830191909152016100e5565b5f546100d1906001600160a01b031681565b5f546001600160a01b031633146101cb5760405162461bcd60e51b81526004016101c2906112f5565b60405180910390fd5b5f8054821515600160a01b0260ff60a01b199091161790556040517f9a506b30e47f3823b09f67e4c0dfa5c3d8023b71825b7ceaa97677129128c9c59061021790831515815260200190565b60405180910390a150565b5f546001600160a01b0316331461024b5760405162461bcd60e51b81526004016101c2906112f5565b5f5b81811015610329575f60025f85858581811061026b5761026b61132c565b602090810292909201358352508101919091526040015f20546001600160a01b0316905080156103205760025f8585858181106102aa576102aa61132c565b602090810292909201358352508101919091526040015f2080546001600160a01b03191690558383838181106102e2576102e261132c565b90506020020135816001600160a01b03167fcbc6363fd394dcb0ae12ee150a5f2a71305110addee38f87682d670b632f5b4060405160405180910390a35b5060010161024d565b505050565b5f546001600160a01b031633146103575760405162461bcd60e51b81526004016101c2906112f5565b5f5b81811015610329578282828181106103735761037361132c565b905060400201602001602081019061038b9190611287565b60025f8585858181106103a0576103a061132c565b9050604002015f013581526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b031602179055508282828181106103eb576103eb61132c565b9050604002015f01358383838181106104065761040661132c565b905060400201602001602081019061041e9190611287565b6001600160a01b03167f220dc8943553a5812167948533c5a3a0c0674c926e0aea0f6b0a8cf5701044b460405160405180910390a3600101610359565b5f546001600160a01b031633146104845760405162461bcd60e51b81526004016101c2906112f5565b6001600160a01b0381166104da5760405162461bcd60e51b815260206004820152601c60248201527f41646d696e2063616e6e6f74206265207a65726f20616464726573730000000060448201526064016101c2565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b9190a35050565b5f80548190600160a01b900460ff161561057a5760405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b60448201526064016101c2565b6001546001600160a01b031633146105fa5760405162461bcd60e51b815260206004820152603760248201527f546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656460448201527f2066726f6d2074686520726f6f7420766572696669657200000000000000000060648201526084016101c2565b5f61061161060b6020860186611340565b35610b50565b90505f6106216020860186611340565b61062f90604081019061135e565b60028181106106405761064061132c565b905060200201355f1c905061068a8686806020019061065f9190611340565b61066d90604081019061135e565b5f81811061067d5761067d61132c565b9050602002013583610baf565b6106c78661069b6020880188611340565b6106a990604081019061135e565b60018181106106ba576106ba61132c565b9050602002013583610c7a565b6106de816106d860608801886113a4565b35610d3b565b6107465760405162461bcd60e51b815260206004820152603360248201527f5468652070726f6f66207761732067656e657261746564206f757473696465206044820152721d1a19481d985b1a591a5d1e481c195c9a5bd9606a1b60648201526084016101c2565b61079f6107566020870187611340565b61076490604081019061135e565b61077160608901896113a4565b61077f9060208101906113b8565b61078c60608b018b6113a4565b61079a9060408101906113b8565b610d4d565b6107eb5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420646f6d61696e206f722073636f706500000000000000000060448201526064016101c2565b6108846107fb6020870187611340565b61080990604081019061135e565b600590600261081b60208b018b611340565b61082990604081019061135e565b61083492915061140f565b9261084193929190611422565b808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061087f9250505060408801886113b8565b610f15565b5f6108926020870187611340565b6108a090604081019061135e565b60026108af60208a018a611340565b6108bd90604081019061135e565b6108c892915061140f565b8181106108d7576108d761132c565b905060200201355f1c60038111156108f1576108f161144d565b905060028160038111156109075761090761144d565b14158015610927575060038160038111156109245761092461144d565b14155b8061094b575061093a60608701876113a4565b61094b90608081019060600161116f565b6109a85760405162461bcd60e51b815260206004820152602860248201527f4d6f636b2070726f6f667320617265206f6e6c7920616c6c6f77656420696e20604482015267646576206d6f646560c01b60648201526084016101c2565b5f8160038111156109bb576109bb61144d565b14806109e057506109cf60608701876113a4565b6109e090608081019060600161116f565b610a405760405162461bcd60e51b815260206004820152602b60248201527f53616c746564206e756c6c69666965727320617265206e6f7420737570706f7260448201526a74656420666f72206e6f7760a81b60648201526084016101c2565b6001600160a01b03831663ea50d0e4610a5c6020890189611340565b610a6a9060208101906113b8565b610a7760208b018b611340565b610a8590604081019061135e565b6040518563ffffffff1660e01b8152600401610aa49493929190611461565b602060405180830381865afa158015610abf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae391906114c3565b94505f6001610af56020890189611340565b610b0390604081019061135e565b610b0e92915061140f565b9050610b1d6020880188611340565b610b2b90604081019061135e565b82818110610b3b57610b3b61132c565b905060200201359450505050505b9250929050565b5f818152600260205260408120546001600160a01b031680610ba95760405162461bcd60e51b815260206004820152601260248201527115995c9a599a595c881b9bdd08199bdd5b9960721b60448201526064016101c2565b92915050565b604051631557214b60e11b81526001600482015260248101839052604481018290526001600160a01b03841690632aae429690606401602060405180830381865afa158015610c00573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2491906114c3565b6103295760405162461bcd60e51b815260206004820152602160248201527f496e76616c696420636572746966696361746520726567697374727920726f6f6044820152601d60fa1b60648201526084016101c2565b604051631557214b60e11b81526002600482015260248101839052604481018290526001600160a01b03841690632aae429690606401602060405180830381865afa158015610ccb573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cef91906114c3565b6103295760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964206369726375697420726567697374727920726f6f7400000060448201526064016101c2565b5f610d46838361112a565b9392505050565b5f5f610d8d86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061115a92505050565b610e0757600860028787604051602001610da89291906114de565b60408051601f1981840301815290829052610dc2916114ed565b602060405180830381855afa158015610ddd573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610e009190611503565b901c610e09565b5f5b90505f610e4a85858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061115a92505050565b610ec457600860028686604051602001610e659291906114de565b60408051601f1981840301815290829052610e7f916114ed565b602060405180830381855afa158015610e9a573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610ebd9190611503565b901c610ec6565b5f5b90508189896003818110610edc57610edc61132c565b90506020020135148015610f0857508089896004818110610eff57610eff61132c565b90506020020135145b9998505050505050505050565b5f805b8282108015610f275750845181105b15611084575f8484610f3a85600161151a565b90610f4686600361151a565b92610f539392919061152d565b610f5c91611554565b60f01c90505f60086002878688610f73878361151a565b610f7e90600361151a565b92610f8b9392919061152d565b604051602001610f9c9291906114de565b60408051601f1981840301815290829052610fb6916114ed565b602060405180830381855afa158015610fd1573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610ff49190611503565b901c905086838151811061100a5761100a61132c565b602002602001015181146110555760405162461bcd60e51b8152602060048201526012602482015271125b9d985b1a590818dbdb5b5a5d1b595b9d60721b60448201526064016101c2565b61106082600361158c565b61106e9061ffff168561151a565b93508261107a816115a6565b9350505050610f18565b8183146110d35760405162461bcd60e51b815260206004820152601f60248201527f496e76616c696420636f6d6d697474656420696e70757473206c656e6774680060448201526064016101c2565b845181146111235760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420706172616d6574657220636f6d6d69746d656e747300000060448201526064016101c2565b5050505050565b5f80611136838561151a565b905083421015801561114757508381115b801561115257504281115b949350505050565b511590565b801515811461116c575f5ffd5b50565b5f6020828403121561117f575f5ffd5b8135610d468161115f565b5f6020828403121561119a575f5ffd5b5035919050565b5f5f602083850312156111b2575f5ffd5b823567ffffffffffffffff8111156111c8575f5ffd5b8301601f810185136111d8575f5ffd5b803567ffffffffffffffff8111156111ee575f5ffd5b8560208260051b8401011115611202575f5ffd5b6020919091019590945092505050565b5f5f60208385031215611223575f5ffd5b823567ffffffffffffffff811115611239575f5ffd5b8301601f81018513611249575f5ffd5b803567ffffffffffffffff81111561125f575f5ffd5b8560208260061b8401011115611202575f5ffd5b6001600160a01b038116811461116c575f5ffd5b5f60208284031215611297575f5ffd5b8135610d4681611273565b5f5f604083850312156112b3575f5ffd5b82356112be81611273565b9150602083013567ffffffffffffffff8111156112d9575f5ffd5b8301608081860312156112ea575f5ffd5b809150509250929050565b6020808252601a908201527f4e6f7420617574686f72697a65643a2061646d696e206f6e6c79000000000000604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112611354575f5ffd5b9190910192915050565b5f5f8335601e19843603018112611373575f5ffd5b83018035915067ffffffffffffffff82111561138d575f5ffd5b6020019150600581901b3603821315610b49575f5ffd5b5f8235607e19833603018112611354575f5ffd5b5f5f8335601e198436030181126113cd575f5ffd5b83018035915067ffffffffffffffff8211156113e7575f5ffd5b602001915036819003821315610b49575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b81810381811115610ba957610ba96113fb565b5f5f85851115611430575f5ffd5b8386111561143c575f5ffd5b5050600583901b0193919092039150565b634e487b7160e01b5f52602160045260245ffd5b60408152836040820152838560608301375f60608583018101829052601f19601f8701168301838103820160208501529081018490526001600160fb1b038411156114aa575f5ffd5b8360051b80866080840137016080019695505050505050565b5f602082840312156114d3575f5ffd5b8151610d468161115f565b818382375f9101908152919050565b5f82518060208501845e5f920191825250919050565b5f60208284031215611513575f5ffd5b5051919050565b80820180821115610ba957610ba96113fb565b5f5f8585111561153b575f5ffd5b83861115611547575f5ffd5b5050820193919092039150565b80356001600160f01b03198116906002841015611585576001600160f01b0319600285900360031b81901b82161691505b5092915050565b61ffff8181168382160190811115610ba957610ba96113fb565b5f600182016115b7576115b76113fb565b506001019056fea26469706673582212209afd08664c6af7e620ec387b36feb7e45f913c4d53259cb4f7261b299d9f481464736f6c634300081e0033","sourceMap":"518:9887:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2284:118;;;;;;:::i;:::-;;:::i;:::-;;776:49;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;776:49:10;;;;;;-1:-1:-1;;;;;732:32:172;;;714:51;;702:2;687:18;776:49:10;;;;;;;;2738:366;;;;;;:::i;:::-;;:::i;2406:328::-;;;;;;:::i;:::-;;:::i;577:18::-;;;;;-1:-1:-1;;;577:18:10;;;;;;;;;2205:14:172;;2198:22;2180:41;;2168:2;2153:18;577::10;2040:187:172;2051:229:10;;;;;;:::i;:::-;;:::i;638:32::-;;;;;-1:-1:-1;;;;;638:32:10;;;6715:3688;;;;;;:::i;:::-;;:::i;:::-;;;;3619:14:172;;3612:22;3594:41;;3666:2;3651:18;;3644:34;;;;3567:18;6715:3688:10;3426:258:172;553:20:10;;;;;-1:-1:-1;;;;;553:20:10;;;2284:118;1761:5;;-1:-1:-1;;;;;1761:5:10;1747:10;:19;1739:58;;;;-1:-1:-1;;;1739:58:10;;;;;;;:::i;:::-;;;;;;;;;2342:6:::1;:16:::0;;;::::1;;-1:-1:-1::0;;;2342:16:10::1;-1:-1:-1::0;;;;2342:16:10;;::::1;;::::0;;2369:28:::1;::::0;::::1;::::0;::::1;::::0;2351:7;2205:14:172;2198:22;2180:41;;2168:2;2153:18;;2040:187;2369:28:10::1;;;;;;;;2284:118:::0;:::o;2738:366::-;1761:5;;-1:-1:-1;;;;;1761:5:10;1747:10;:19;1739:58;;;;-1:-1:-1;;;1739:58:10;;;;;;;:::i;:::-;2829:9:::1;2824:276;2844:21:::0;;::::1;2824:276;;;2880:21;2904:14;:29;2919:10;;2930:1;2919:13;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;::::1;;2904:29:::0;;-1:-1:-1;2904:29:10;::::1;::::0;;;;;;-1:-1:-1;2904:29:10;;-1:-1:-1;;;;;2904:29:10::1;::::0;-1:-1:-1;2945:27:10;;2941:153:::1;;2991:14;:29;3006:10;;3017:1;3006:13;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;::::1;;2991:29:::0;;-1:-1:-1;2991:29:10;::::1;::::0;;;;;;-1:-1:-1;2991:29:10;2984:36;;-1:-1:-1;;;;;;2984:36:10::1;::::0;;3071:10;;3082:1;3071:13;;::::1;;;;;:::i;:::-;;;;;;;3056;-1:-1:-1::0;;;;;3035:50:10::1;;;;;;;;;;;2941:153;-1:-1:-1::0;2867:3:10::1;;2824:276;;;;2738:366:::0;;:::o;2406:328::-;1761:5;;-1:-1:-1;;;;;1761:5:10;1747:10;:19;1739:58;;;;-1:-1:-1;;;1739:58:10;;;;;;;:::i;:::-;2505:9:::1;2500:230;2520:26:::0;;::::1;2500:230;;;2607:15;;2623:1;2607:18;;;;;;;:::i;:::-;;;;;;:27;;;;;;;;;;:::i;:::-;2561:14;:43;2576:15;;2592:1;2576:18;;;;;;;:::i;:::-;;;;;;:27;;;2561:43;;;;;;;;;;;;:73;;;;;-1:-1:-1::0;;;;;2561:73:10::1;;;;;-1:-1:-1::0;;;;;2561:73:10::1;;;;;;2695:15;;2711:1;2695:18;;;;;;;:::i;:::-;;;;;;:27;;;2666:15;;2682:1;2666:18;;;;;;;:::i;:::-;;;;;;:27;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;2647:76:10::1;;;;;;;;;;;2548:3;;2500:230;;2051:229:::0;1761:5;;-1:-1:-1;;;;;1761:5:10;1747:10;:19;1739:58;;;;-1:-1:-1;;;1739:58:10;;;;;;;:::i;:::-;-1:-1:-1;;;;;2125:22:10;::::1;2117:63;;;::::0;-1:-1:-1;;;2117:63:10;;4378:2:172;2117:63:10::1;::::0;::::1;4360:21:172::0;4417:2;4397:18;;;4390:30;4456;4436:18;;;4429:58;4504:18;;2117:63:10::1;4176:352:172::0;2117:63:10::1;2186:16;2205:5:::0;;-1:-1:-1;;;;;2216:16:10;;::::1;-1:-1:-1::0;;;;;;2216:16:10;::::1;::::0;::::1;::::0;;2243:32:::1;::::0;2205:5;;;::::1;::::0;;;2243:32:::1;::::0;2186:16;2243:32:::1;2111:169;2051:229:::0;:::o;6715:3688::-;6874:12;2006:6;;6874:12;;-1:-1:-1;;;2006:6:10;;;;2005:7;1997:38;;;;-1:-1:-1;;;1997:38:10;;4735:2:172;1997:38:10;;;4717:21:172;4774:2;4754:18;;;4747:30;-1:-1:-1;;;4793:18:172;;;4786:48;4851:18;;1997:38:10;4533:342:172;1997:38:10;1877:12:::1;::::0;-1:-1:-1;;;;;1877:12:10::1;1855:10;:35;1847:103;;;::::0;-1:-1:-1;;;1847:103:10;;5082:2:172;1847:103:10::1;::::0;::::1;5064:21:172::0;5121:2;5101:18;;;5094:30;5160:34;5140:18;;;5133:62;5231:25;5211:18;;;5204:53;5274:19;;1847:103:10::1;4880:419:172::0;1847:103:10::1;6999:16:::2;7018:56;7036:28;;::::0;::::2;:6:::0;:28:::2;:::i;:::-;:37;7018:17;:56::i;:::-;6999:75:::0;-1:-1:-1;7081:24:10::2;7116:28;;::::0;::::2;:6:::0;:28:::2;:::i;:::-;:41;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;1748:1:1;7116:73:10;;;;;;;:::i;:::-;;;;;;;7108:82;;7081:109;;7239:168;7271:12;7291:6;:28;;;;;;;;:::i;:::-;:41;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;1653:1:1;7291:86:10;;;;;;;:::i;:::-;;;;;;;7385:16;7239:24;:168::i;:::-;7452:148;7480:12:::0;7494:28:::2;;::::0;::::2;:6:::0;:28:::2;:::i;:::-;:41;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;1705:1:1;7494:82:10;;;;;;;:::i;:::-;;;;;;;7578:16;7452:20;:148::i;:::-;7832:82;7851:16:::0;7869:20:::2;;::::0;::::2;:6:::0;:20:::2;:::i;:::-;:44;7832:18;:82::i;:::-;7817:164;;;::::0;-1:-1:-1;;;7817:164:10;;6737:2:172;7817:164:10::2;::::0;::::2;6719:21:172::0;6776:2;6756:18;;;6749:30;6815:34;6795:18;;;6788:62;-1:-1:-1;;;6866:18:172;;;6859:49;6925:19;;7817:164:10::2;6535:415:172::0;7817:164:10::2;8354:113;8368:28;;::::0;::::2;:6:::0;:28:::2;:::i;:::-;:41;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;8411:20;;::::0;::::2;:6:::0;:20:::2;:::i;:::-;:27;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;8440:20;;::::0;::::2;:6:::0;:20:::2;:::i;:::-;:26;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;8354:13;:113::i;:::-;8339:167;;;::::0;-1:-1:-1;;;8339:167:10;;7684:2:172;8339:167:10::2;::::0;::::2;7666:21:172::0;7723:2;7703:18;;;7696:30;7762:25;7742:18;;;7735:53;7805:18;;8339:167:10::2;7482:347:172::0;8339:167:10::2;8574:261;8661:28;;::::0;::::2;:6:::0;:28:::2;:::i;:::-;:48;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;1871:1:1;::::0;8797::10::2;8746:28;;::::0;::::2;:6:::0;:28:::2;:::i;:::-;:41;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;:52;::::0;;-1:-1:-1;8746:52:10::2;:::i;:::-;8661:138;;;;;;;:::i;:::-;8574:261;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;::::0;;;;-1:-1:-1;8807:22:10::2;::::0;-1:-1:-1;;;8807:22:10::2;::::0;::::2;::::0;::::2;:::i;:::-;8574;:261::i;:::-;8842:27;8901:28;;::::0;::::2;:6:::0;:28:::2;:::i;:::-;:41;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;8994:1;8943:28;;::::0;::::2;:6:::0;:28:::2;:::i;:::-;:41;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;:52;::::0;;-1:-1:-1;8943:52:10::2;:::i;:::-;8901:95;;;;;;;:::i;:::-;;;;;;;8893:104;;8872:131;;;;;;;;:::i;:::-;8842:161:::0;-1:-1:-1;9267:39:10::2;9250:13;:56;;;;;;;;:::i;:::-;;;:112;;;;-1:-1:-1::0;9327:35:10::2;9310:13;:52;;;;;;;;:::i;:::-;;;9250:112;9249:154;;;-1:-1:-1::0;9375:20:10::2;;::::0;::::2;:6:::0;:20:::2;:::i;:::-;:28;::::0;;;;;::::2;;;:::i;:::-;9234:225;;;::::0;-1:-1:-1;;;9234:225:10;;9319:2:172;9234:225:10::2;::::0;::::2;9301:21:172::0;9358:2;9338:18;;;9331:30;9397:34;9377:18;;;9370:62;-1:-1:-1;;;9448:18:172;;;9441:38;9496:19;;9234:225:10::2;9117:404:172::0;9234:225:10::2;9686:34;9669:13;:51;;;;;;;;:::i;:::-;;:83;;;-1:-1:-1::0;9724:20:10::2;;::::0;::::2;:6:::0;:20:::2;:::i;:::-;:28;::::0;;;;;::::2;;;:::i;:::-;9654:157;;;::::0;-1:-1:-1;;;9654:157:10;;9728:2:172;9654:157:10::2;::::0;::::2;9710:21:172::0;9767:2;9747:18;;;9740:30;9806:34;9786:18;;;9779:62;-1:-1:-1;;;9857:18:172;;;9850:41;9908:19;;9654:157:10::2;9526:407:172::0;9654:157:10::2;-1:-1:-1::0;;;;;9932:31:10;::::2;;9964:28;;::::0;::::2;:6:::0;:28:::2;:::i;:::-;:34;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;10000:28;;::::0;::::2;:6:::0;:28:::2;:::i;:::-;:41;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;9932:110;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9916:126:::0;-1:-1:-1;10105:29:10::2;10188:1;10137:28;;::::0;::::2;:6:::0;:28:::2;:::i;:::-;:41;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;:52;::::0;;-1:-1:-1;10137:52:10::2;:::i;:::-;10105:84:::0;-1:-1:-1;10214:28:10::2;;::::0;::::2;:6:::0;:28:::2;:::i;:::-;:41;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;10256:21;10214:64;;;;;;;:::i;:::-;;;;;;;10195:83;;10364:34;;;;1956:1;6715:3688:::0;;;;;:::o;5551:211::-;5619:7;5653:24;;;:14;:24;;;;;;-1:-1:-1;;;;;5653:24:10;;5683:53;;;;-1:-1:-1;;;5683:53:10;;11166:2:172;5683:53:10;;;11148:21:172;11205:2;11185:18;;;11178:30;-1:-1:-1;;;11224:18:172;;;11217:48;11282:18;;5683:53:10;10964:342:172;5683:53:10;5749:8;5551:211;-1:-1:-1;;5551:211:10:o;5766:283::-;5918:77;;-1:-1:-1;;;5918:77:10;;604:66:1;5918:77:10;;;11513:25:172;11554:18;;;11547:34;;;11597:18;;;11590:34;;;-1:-1:-1;;;;;5918:25:10;;;;;11486:18:172;;5918:77:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5903:141;;;;-1:-1:-1;;;5903:141:10;;11837:2:172;5903:141:10;;;11819:21:172;11876:2;11856:18;;;11849:30;11915:34;11895:18;;;11888:62;-1:-1:-1;;;11966:18:172;;;11959:31;12007:19;;5903:141:10;11635:397:172;6053:235:10;6180:69;;-1:-1:-1;;;6180:69:10;;710:66:1;6180:69:10;;;11513:25:172;11554:18;;;11547:34;;;11597:18;;;11590:34;;;-1:-1:-1;;;;;6180:25:10;;;;;11486:18:172;;6180:69:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6172:111;;;;-1:-1:-1;;;6172:111:10;;12239:2:172;6172:111:10;;;12221:21:172;12278:2;12258:18;;;12251:30;12317:31;12297:18;;;12290:59;12366:18;;6172:111:10;12037:353:172;3108:220:10;3234:4;3255:68;3277:20;3299:23;3255:21;:68::i;:::-;3248:75;3108:220;-1:-1:-1;;;3108:220:10:o;3674:696::-;3814:4;3930:17;3950:26;3970:5;;3950:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3950:19:10;;-1:-1:-1;;;3950:26:10:i;:::-;:78;;4027:1;3992:31;4016:5;;3999:23;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3999:23:10;;;;;;;;;;3992:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:36;;3950:78;;;3987:1;3950:78;3930:98;;4129:20;4152:29;4172:8;;4152:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4152:19:10;;-1:-1:-1;;;4152:29:10:i;:::-;:84;;4235:1;4197:34;4221:8;;4204:26;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4204:26:10;;;;;;;;;;4197:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:39;;4152:84;;;4192:1;4152:84;4129:107;;4296:9;4255:12;;1784:1:1;4255:37:10;;;;;;;:::i;:::-;;;;;;;:50;:110;;;;;4353:12;4309;;1823:1:1;4309:40:10;;;;;;;:::i;:::-;;;;;;;:56;4255:110;4242:123;3674:696;-1:-1:-1;;;;;;;;;3674:696:10:o;4374:1173::-;4493:14;;4540:750;4547:31;;;:66;;;;;4590:16;:23;4582:5;:31;4547:66;4540:750;;;4815:13;4845:15;;4861:10;:6;4870:1;4861:10;:::i;:::-;4845:38;4872:10;:6;4881:1;4872:10;:::i;:::-;4845:38;;;;;;;:::i;:::-;4838:46;;;:::i;:::-;4831:54;;;-1:-1:-1;5049:28:10;5153:1;5080:69;5104:15;5120:6;5104:15;5127;4831:54;5120:6;5127:15;:::i;:::-;:19;;5145:1;5127:19;:::i;:::-;5104:43;;;;;;;:::i;:::-;5087:61;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;5087:61:10;;;;;;;;;;5080:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:74;;5049:105;;5194:16;5211:5;5194:23;;;;;;;;:::i;:::-;;;;;;;5170:20;:47;5162:78;;;;-1:-1:-1;;;5162:78:10;;14446:2:172;5162:78:10;;;14428:21:172;14485:2;14465:18;;;14458:30;-1:-1:-1;;;14504:18:172;;;14497:48;14562:18;;5162:78:10;14244:342:172;5162:78:10;5258:10;:6;5267:1;5258:10;:::i;:::-;5248:20;;;;;;:::i;:::-;;-1:-1:-1;5276:7:10;;;;:::i;:::-;;;;4615:675;;4540:750;;;5394:32;;;5386:76;;;;-1:-1:-1;;;5386:76:10;;15093:2:172;5386:76:10;;;15075:21:172;15132:2;15112:18;;;15105:30;15171:33;15151:18;;;15144:61;15222:18;;5386:76:10;14891:355:172;5386:76:10;5485:16;:23;5476:5;:32;5468:74;;;;-1:-1:-1;;;5468:74:10;;15453:2:172;5468:74:10;;;15435:21:172;15492:2;15472:18;;;15465:30;15531:31;15511:18;;;15504:59;15580:18;;5468:74:10;15251:353:172;5468:74:10;4487:1060;;4374:1173;;;:::o;710:313:2:-;806:4;;852:35;864:23;852:9;:35;:::i;:::-;818:69;;925:9;906:15;:28;;:67;;;;;964:9;938:23;:35;906:67;:112;;;;;1003:15;977:23;:41;906:112;893:125;710:313;-1:-1:-1;;;;710:313:2:o;506:101:6:-;582:15;:20;;506:101::o;14:118:172:-;100:5;93:13;86:21;79:5;76:32;66:60;;122:1;119;112:12;66:60;14:118;:::o;137:241::-;193:6;246:2;234:9;225:7;221:23;217:32;214:52;;;262:1;259;252:12;214:52;301:9;288:23;320:28;342:5;320:28;:::i;383:180::-;442:6;495:2;483:9;474:7;470:23;466:32;463:52;;;511:1;508;501:12;463:52;-1:-1:-1;534:23:172;;383:180;-1:-1:-1;383:180:172:o;776:610::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;979:9;966:23;1012:18;1004:6;1001:30;998:50;;;1044:1;1041;1034:12;998:50;1067:22;;1120:4;1112:13;;1108:27;-1:-1:-1;1098:55:172;;1149:1;1146;1139:12;1098:55;1189:2;1176:16;1215:18;1207:6;1204:30;1201:50;;;1247:1;1244;1237:12;1201:50;1300:7;1295:2;1285:6;1282:1;1278:14;1274:2;1270:23;1266:32;1263:45;1260:65;;;1321:1;1318;1311:12;1260:65;1352:2;1344:11;;;;;1374:6;;-1:-1:-1;776:610:172;-1:-1:-1;;;776:610:172:o;1391:644::-;1511:6;1519;1572:2;1560:9;1551:7;1547:23;1543:32;1540:52;;;1588:1;1585;1578:12;1540:52;1628:9;1615:23;1661:18;1653:6;1650:30;1647:50;;;1693:1;1690;1683:12;1647:50;1716:22;;1769:4;1761:13;;1757:27;-1:-1:-1;1747:55:172;;1798:1;1795;1788:12;1747:55;1838:2;1825:16;1864:18;1856:6;1853:30;1850:50;;;1896:1;1893;1886:12;1850:50;1949:7;1944:2;1934:6;1931:1;1927:14;1923:2;1919:23;1915:32;1912:45;1909:65;;;1970:1;1967;1960:12;2232:131;-1:-1:-1;;;;;2307:31:172;;2297:42;;2287:70;;2353:1;2350;2343:12;2368:247;2427:6;2480:2;2468:9;2459:7;2455:23;2451:32;2448:52;;;2496:1;2493;2486:12;2448:52;2535:9;2522:23;2554:31;2579:5;2554:31;:::i;2860:561::-;2994:6;3002;3055:2;3043:9;3034:7;3030:23;3026:32;3023:52;;;3071:1;3068;3061:12;3023:52;3110:9;3097:23;3129:31;3154:5;3129:31;:::i;:::-;3179:5;-1:-1:-1;3235:2:172;3220:18;;3207:32;3262:18;3251:30;;3248:50;;;3294:1;3291;3284:12;3248:50;3317:22;;3373:3;3355:16;;;3351:26;3348:46;;;3390:1;3387;3380:12;3348:46;3413:2;3403:12;;;2860:561;;;;;:::o;3689:350::-;3891:2;3873:21;;;3930:2;3910:18;;;3903:30;3969:28;3964:2;3949:18;;3942:56;4030:2;4015:18;;3689:350::o;4044:127::-;4105:10;4100:3;4096:20;4093:1;4086:31;4136:4;4133:1;4126:15;4160:4;4157:1;4150:15;5304:339;5412:4;5470:11;5457:25;5564:2;5560:7;5549:8;5533:14;5529:29;5525:43;5505:18;5501:68;5491:96;;5583:1;5580;5573:12;5491:96;5604:33;;;;;5304:339;-1:-1:-1;;5304:339:172:o;5648:545::-;5741:4;5747:6;5807:11;5794:25;5901:2;5897:7;5886:8;5870:14;5866:29;5862:43;5842:18;5838:68;5828:96;;5920:1;5917;5910:12;5828:96;5947:33;;5999:20;;;-1:-1:-1;6042:18:172;6031:30;;6028:50;;;6074:1;6071;6064:12;6028:50;6107:4;6095:17;;-1:-1:-1;6158:1:172;6154:14;;;6138;6134:35;6124:46;;6121:66;;;6183:1;6180;6173:12;6198:332;6298:4;6356:11;6343:25;6450:3;6446:8;6435;6419:14;6415:29;6411:44;6391:18;6387:69;6377:97;;6470:1;6467;6460:12;6955:522;7033:4;7039:6;7099:11;7086:25;7193:2;7189:7;7178:8;7162:14;7158:29;7154:43;7134:18;7130:68;7120:96;;7212:1;7209;7202:12;7120:96;7239:33;;7291:20;;;-1:-1:-1;7334:18:172;7323:30;;7320:50;;;7366:1;7363;7356:12;7320:50;7399:4;7387:17;;-1:-1:-1;7430:14:172;7426:27;;;7416:38;;7413:58;;;7467:1;7464;7457:12;7834:127;7895:10;7890:3;7886:20;7883:1;7876:31;7926:4;7923:1;7916:15;7950:4;7947:1;7940:15;7966:128;8033:9;;;8054:11;;;8051:37;;;8068:18;;:::i;8099:355::-;8220:9;8231;8273:8;8261:10;8258:24;8255:44;;;8295:1;8292;8285:12;8255:44;8324:6;8314:8;8311:20;8308:40;;;8344:1;8341;8334:12;8308:40;-1:-1:-1;;8386:1:172;8382:18;;;8370:31;;8423:25;;;;;-1:-1:-1;8099:355:172:o;8985:127::-;9046:10;9041:3;9037:20;9034:1;9027:31;9077:4;9074:1;9067:15;9101:4;9098:1;9091:15;9938:771;10183:2;10172:9;10165:21;10222:6;10217:2;10206:9;10202:18;10195:34;10279:6;10271;10266:2;10255:9;10251:18;10238:48;10335:1;10330:2;10306:22;;;10302:31;;10295:42;;;-1:-1:-1;;10396:2:172;10375:15;;10371:29;10356:45;;10443:18;;;10439:27;;10432:4;10417:20;;10410:57;10483:11;;;10476:27;;;-1:-1:-1;;;;;10515:31:172;;10512:51;;;10559:1;10556;10549:12;10512:51;10593:6;10590:1;10586:14;10644:6;10636;10630:3;10626:2;10622:12;10609:42;10676:15;10668:35;;;;-1:-1:-1;;;;;;9938:771:172:o;10714:245::-;10781:6;10834:2;10822:9;10813:7;10809:23;10805:32;10802:52;;;10850:1;10847;10840:12;10802:52;10882:9;10876:16;10901:28;10923:5;10901:28;:::i;12395:273::-;12580:6;12572;12567:3;12554:33;12536:3;12606:16;;12631:13;;;12606:16;12395:273;-1:-1:-1;12395:273:172:o;12673:301::-;12802:3;12840:6;12834:13;12886:6;12879:4;12871:6;12867:17;12862:3;12856:37;12948:1;12912:16;;12937:13;;;-1:-1:-1;12912:16:172;12673:301;-1:-1:-1;12673:301:172:o;12979:184::-;13049:6;13102:2;13090:9;13081:7;13077:23;13073:32;13070:52;;;13118:1;13115;13108:12;13070:52;-1:-1:-1;13141:16:172;;12979:184;-1:-1:-1;12979:184:172:o;13168:125::-;13233:9;;;13254:10;;;13251:36;;;13267:18;;:::i;13298:331::-;13403:9;13414;13456:8;13444:10;13441:24;13438:44;;;13478:1;13475;13468:12;13438:44;13507:6;13497:8;13494:20;13491:40;;;13527:1;13524;13517:12;13491:40;-1:-1:-1;;13553:23:172;;;13598:25;;;;;-1:-1:-1;13298:331:172:o;13634:323::-;13754:19;;-1:-1:-1;;;;;;13791:24:172;;;13835:1;13827:10;;13824:127;;;-1:-1:-1;;;;;;13896:1:172;13892:11;;;13889:1;13885:19;13881:41;;;13873:50;;13869:72;;-1:-1:-1;13824:127:172;;13634:323;;;;:::o;14591:155::-;14682:6;14659:14;;;14675;;;14655:35;;14702:15;;14699:41;;;14720:18;;:::i;14751:135::-;14790:3;14811:17;;;14808:43;;14831:18;;:::i;:::-;-1:-1:-1;14878:1:172;14867:13;;14751:135::o","linkReferences":{}},"methodIdentifiers":{"addProofVerifiers((bytes32,address)[])":"26700c04","admin()":"f851a440","paused()":"5c975abb","proofVerifiers(bytes32)":"1e8e0f8e","removeProofVerifiers(bytes32[])":"2576b26f","rootVerifier()":"e4c0b80b","setPaused(bool)":"16c38b3c","transferAdmin(address)":"75829def","verify(address,(bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))":"e88d4ee6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_admin\",\"type\":\"address\"},{\"internalType\":\"contract ZKPassportRootVerifier\",\"name\":\"_rootVerifier\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAdmin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"paused\",\"type\":\"bool\"}],\"name\":\"PausedStatusChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"proofVerifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"vkeyHash\",\"type\":\"bytes32\"}],\"name\":\"ProofVerifierAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"proofVerifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"vkeyHash\",\"type\":\"bytes32\"}],\"name\":\"ProofVerifierRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"rootVerifier\",\"type\":\"address\"}],\"name\":\"ZKPassportSubVerifierDeployed\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"vkeyHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"internalType\":\"struct ProofVerifier[]\",\"name\":\"_proofVerifiers\",\"type\":\"tuple[]\"}],\"name\":\"addProofVerifiers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"proofVerifiers\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"vkeyHashes\",\"type\":\"bytes32[]\"}],\"name\":\"removeProofVerifiers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootVerifier\",\"outputs\":[{\"internalType\":\"contract ZKPassportRootVerifier\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_paused\",\"type\":\"bool\"}],\"name\":\"setPaused\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"transferAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IRootRegistry\",\"name\":\"rootRegistry\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"vkeyHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"publicInputs\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ProofVerificationData\",\"name\":\"proofVerificationData\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"committedInputs\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"validityPeriodInSeconds\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"domain\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"scope\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"devMode\",\"type\":\"bool\"}],\"internalType\":\"struct ServiceConfig\",\"name\":\"serviceConfig\",\"type\":\"tuple\"}],\"internalType\":\"struct ProofVerificationParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"uniqueIdentifier\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Constructor\",\"params\":{\"_admin\":\"The admin address\",\"_rootVerifier\":\"The address of the ZKPassport root verifier\"}},\"verify(address,(bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))\":{\"details\":\"This function is called by the root verifier to verify a proof for a specific version\",\"params\":{\"params\":\"The proof verification parameters\",\"rootRegistry\":\"The root registry\"},\"returns\":{\"isValid\":\"True if the proof is valid, false otherwise\",\"uniqueIdentifier\":\"The unique identifier associated to the identity document that generated the proof\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"verify(address,(bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))\":{\"notice\":\"Verifies a ZKPassport proof\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/circuits/src/solidity/src/ZKPassportSubVerifier.sol\":\"ZKPassportSubVerifier\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@aztec-blob-lib/=src/mock/libraries/\",\":@aztec/=src/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@oz/=lib/openzeppelin-contracts/contracts/\",\":@test/=test/\",\":@zkpassport-test/=lib/circuits/src/solidity/test/\",\":@zkpassport/=lib/circuits/src/solidity/src/\",\":circuits/=lib/circuits/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/circuits/src/solidity/src/Constants.sol\":{\"keccak256\":\"0x29a25ab24727bb03f356fe124eda7970f1769130855ebf584e4225e2718927a7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3dff3096a211bcd97a4dad4e459bd3c684275e3271c493191d3819bbf4326702\",\"dweb:/ipfs/QmfLyG5f3JWRoY5sF9kkDLBDrxymQsuk9uncw65JdRa7Sp\"]},\"lib/circuits/src/solidity/src/DateUtils.sol\":{\"keccak256\":\"0x4176feda967f91ccf0a1cdecc75bbf7e5aaad7b46f95e133887e3ac6ae9126f6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6774599f7320a37f2e5cc22e0d8e59a1f46841a6ac94d7d45b072a809237e1ab\",\"dweb:/ipfs/QmdrX9uQKsvN9gTgCD1zd1kigvJGsgHbvabvdWaWHuSeY4\"]},\"lib/circuits/src/solidity/src/IProofVerifier.sol\":{\"keccak256\":\"0xf8acc6ee390c406eaa8415863f156e251935f8de51bcd3c876871fbe5b5b4f14\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://64016d156d15fd43d407e832fd7b333e07e80b42f0ed9d845a8cc114d3857aa6\",\"dweb:/ipfs/QmP7zSvchyDqov13cyuWxLJDYBBpYZxrPEdGQcheyoJkUm\"]},\"lib/circuits/src/solidity/src/IRootRegistry.sol\":{\"keccak256\":\"0xc994fab81ea1202a93620e7e7a01ba1e61f055498ed5b09503f4b384d0554b2a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://12a19bab224c63ee4a0e3b4048c24e80b3ef5a3459070816c20f2c32b2ad5f72\",\"dweb:/ipfs/QmW1DF8mAwBfacrG2r2R3uyY92i6q1h1hZvHPuwMdXTANg\"]},\"lib/circuits/src/solidity/src/InputsExtractor.sol\":{\"keccak256\":\"0xd8d08cc68a571c9efdddd90ea274c18694284d40a9f1d0a1112a4999fd6a58da\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://000752a284d1df5c0687d32554c83e99afedab49e23d7213679ed93424760450\",\"dweb:/ipfs/QmWrFS4ChUv4okqnEgSLiuSsxohDnTnYLWeyYviVbPTgcH\"]},\"lib/circuits/src/solidity/src/StringUtils.sol\":{\"keccak256\":\"0xd52eb407eef932c9a343f1225fc997b7194ff0f05c488661a7adb4a37f980306\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://60bfaf52ebd50633d6eff5ea346d25283962495c630b37f4c0cd6008e8d8fd11\",\"dweb:/ipfs/QmWVtJnjcaowsFUBRRQ7eNTntghZ4FekXXgeQNAV4PkDWe\"]},\"lib/circuits/src/solidity/src/Types.sol\":{\"keccak256\":\"0x66d73b090401a5f424e1feacf1b503dcd906163f4c749189db3dc108d6dfd668\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d90eff17b597915e95c01a171c4378e7e4e287d35ca25dbd3f684373e93cda0c\",\"dweb:/ipfs/QmYe1wixU4zZAogteHT5eubcB4qzScCYzLtYFpFBitpZeR\"]},\"lib/circuits/src/solidity/src/ZKPassportHelper.sol\":{\"keccak256\":\"0xebc7d0a4b7dae4a78d38381a36cc19e04933f302cf1f0516c8f5d68128afbd16\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7504f8711789c76e7294dd12bf172e5226034a5a2202057180ee047939eefa34\",\"dweb:/ipfs/QmTGuSBmYmDBWutpyTrxPxWQ7DA6kpV6kLQSwB3wMaLCN5\"]},\"lib/circuits/src/solidity/src/ZKPassportRootVerifier.sol\":{\"keccak256\":\"0x5fb7a856f66496a36e4de2ff2dca8fcce5a2c3db3adbf20910b1b20f24e6a009\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c2693f7a086c3ff60441a12a5d72c6a2fbd811123c03d73b0887474cbefe6355\",\"dweb:/ipfs/QmbTgqop8Fb9nxcUveDSDgyMXzVBY1xw2u8eMxaFfVVp1s\"]},\"lib/circuits/src/solidity/src/ZKPassportSubVerifier.sol\":{\"keccak256\":\"0x093e93f34571a7afe3c5a42192a366397b91e9fdb6167075b9250bcfd26fe8dd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://981fec528fb1f8a3032b99905801658305139d82679598579b7fe8afb1b7f6a1\",\"dweb:/ipfs/QmfZ1n1KrxcijmToULMgMccLLyLH5DVVQWJ9SrWPMTRrfw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_admin","type":"address"},{"internalType":"contract ZKPassportRootVerifier","name":"_rootVerifier","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"oldAdmin","type":"address","indexed":true},{"internalType":"address","name":"newAdmin","type":"address","indexed":true}],"type":"event","name":"AdminUpdated","anonymous":false},{"inputs":[{"internalType":"bool","name":"paused","type":"bool","indexed":false}],"type":"event","name":"PausedStatusChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"proofVerifier","type":"address","indexed":true},{"internalType":"bytes32","name":"vkeyHash","type":"bytes32","indexed":true}],"type":"event","name":"ProofVerifierAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"proofVerifier","type":"address","indexed":true},{"internalType":"bytes32","name":"vkeyHash","type":"bytes32","indexed":true}],"type":"event","name":"ProofVerifierRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"admin","type":"address","indexed":true},{"internalType":"address","name":"rootVerifier","type":"address","indexed":true}],"type":"event","name":"ZKPassportSubVerifierDeployed","anonymous":false},{"inputs":[{"internalType":"struct ProofVerifier[]","name":"_proofVerifiers","type":"tuple[]","components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"address","name":"verifier","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"addProofVerifiers"},{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"proofVerifiers","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32[]","name":"vkeyHashes","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"removeProofVerifiers"},{"inputs":[],"stateMutability":"view","type":"function","name":"rootVerifier","outputs":[{"internalType":"contract ZKPassportRootVerifier","name":"","type":"address"}]},{"inputs":[{"internalType":"bool","name":"_paused","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setPaused"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferAdmin"},{"inputs":[{"internalType":"contract IRootRegistry","name":"rootRegistry","type":"address"},{"internalType":"struct ProofVerificationParams","name":"params","type":"tuple","components":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"struct ProofVerificationData","name":"proofVerificationData","type":"tuple","components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"}]},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple","components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}]}]}],"stateMutability":"view","type":"function","name":"verify","outputs":[{"internalType":"bool","name":"isValid","type":"bool"},{"internalType":"bytes32","name":"uniqueIdentifier","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Constructor","params":{"_admin":"The admin address","_rootVerifier":"The address of the ZKPassport root verifier"}},"verify(address,(bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))":{"details":"This function is called by the root verifier to verify a proof for a specific version","params":{"params":"The proof verification parameters","rootRegistry":"The root registry"},"returns":{"isValid":"True if the proof is valid, false otherwise","uniqueIdentifier":"The unique identifier associated to the identity document that generated the proof"}}},"version":1},"userdoc":{"kind":"user","methods":{"verify(address,(bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))":{"notice":"Verifies a ZKPassport proof"}},"version":1}},"settings":{"remappings":["@aztec-blob-lib/=src/mock/libraries/","@aztec/=src/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@oz/=lib/openzeppelin-contracts/contracts/","@test/=test/","@zkpassport-test/=lib/circuits/src/solidity/test/","@zkpassport/=lib/circuits/src/solidity/src/","circuits/=lib/circuits/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/circuits/src/solidity/src/ZKPassportSubVerifier.sol":"ZKPassportSubVerifier"},"evmVersion":"prague","libraries":{}},"sources":{"lib/circuits/src/solidity/src/Constants.sol":{"keccak256":"0x29a25ab24727bb03f356fe124eda7970f1769130855ebf584e4225e2718927a7","urls":["bzz-raw://3dff3096a211bcd97a4dad4e459bd3c684275e3271c493191d3819bbf4326702","dweb:/ipfs/QmfLyG5f3JWRoY5sF9kkDLBDrxymQsuk9uncw65JdRa7Sp"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/DateUtils.sol":{"keccak256":"0x4176feda967f91ccf0a1cdecc75bbf7e5aaad7b46f95e133887e3ac6ae9126f6","urls":["bzz-raw://6774599f7320a37f2e5cc22e0d8e59a1f46841a6ac94d7d45b072a809237e1ab","dweb:/ipfs/QmdrX9uQKsvN9gTgCD1zd1kigvJGsgHbvabvdWaWHuSeY4"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/IProofVerifier.sol":{"keccak256":"0xf8acc6ee390c406eaa8415863f156e251935f8de51bcd3c876871fbe5b5b4f14","urls":["bzz-raw://64016d156d15fd43d407e832fd7b333e07e80b42f0ed9d845a8cc114d3857aa6","dweb:/ipfs/QmP7zSvchyDqov13cyuWxLJDYBBpYZxrPEdGQcheyoJkUm"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/IRootRegistry.sol":{"keccak256":"0xc994fab81ea1202a93620e7e7a01ba1e61f055498ed5b09503f4b384d0554b2a","urls":["bzz-raw://12a19bab224c63ee4a0e3b4048c24e80b3ef5a3459070816c20f2c32b2ad5f72","dweb:/ipfs/QmW1DF8mAwBfacrG2r2R3uyY92i6q1h1hZvHPuwMdXTANg"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/InputsExtractor.sol":{"keccak256":"0xd8d08cc68a571c9efdddd90ea274c18694284d40a9f1d0a1112a4999fd6a58da","urls":["bzz-raw://000752a284d1df5c0687d32554c83e99afedab49e23d7213679ed93424760450","dweb:/ipfs/QmWrFS4ChUv4okqnEgSLiuSsxohDnTnYLWeyYviVbPTgcH"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/StringUtils.sol":{"keccak256":"0xd52eb407eef932c9a343f1225fc997b7194ff0f05c488661a7adb4a37f980306","urls":["bzz-raw://60bfaf52ebd50633d6eff5ea346d25283962495c630b37f4c0cd6008e8d8fd11","dweb:/ipfs/QmWVtJnjcaowsFUBRRQ7eNTntghZ4FekXXgeQNAV4PkDWe"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/Types.sol":{"keccak256":"0x66d73b090401a5f424e1feacf1b503dcd906163f4c749189db3dc108d6dfd668","urls":["bzz-raw://d90eff17b597915e95c01a171c4378e7e4e287d35ca25dbd3f684373e93cda0c","dweb:/ipfs/QmYe1wixU4zZAogteHT5eubcB4qzScCYzLtYFpFBitpZeR"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/ZKPassportHelper.sol":{"keccak256":"0xebc7d0a4b7dae4a78d38381a36cc19e04933f302cf1f0516c8f5d68128afbd16","urls":["bzz-raw://7504f8711789c76e7294dd12bf172e5226034a5a2202057180ee047939eefa34","dweb:/ipfs/QmTGuSBmYmDBWutpyTrxPxWQ7DA6kpV6kLQSwB3wMaLCN5"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/ZKPassportRootVerifier.sol":{"keccak256":"0x5fb7a856f66496a36e4de2ff2dca8fcce5a2c3db3adbf20910b1b20f24e6a009","urls":["bzz-raw://c2693f7a086c3ff60441a12a5d72c6a2fbd811123c03d73b0887474cbefe6355","dweb:/ipfs/QmbTgqop8Fb9nxcUveDSDgyMXzVBY1xw2u8eMxaFfVVp1s"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/ZKPassportSubVerifier.sol":{"keccak256":"0x093e93f34571a7afe3c5a42192a366397b91e9fdb6167075b9250bcfd26fe8dd","urls":["bzz-raw://981fec528fb1f8a3032b99905801658305139d82679598579b7fe8afb1b7f6a1","dweb:/ipfs/QmfZ1n1KrxcijmToULMgMccLLyLH5DVVQWJ9SrWPMTRrfw"],"license":"Apache-2.0"}},"version":1},"id":10}
|
|
1
|
+
{"abi":[{"type":"constructor","inputs":[{"name":"_admin","type":"address","internalType":"address"},{"name":"_rootVerifier","type":"address","internalType":"contract ZKPassportRootVerifier"}],"stateMutability":"nonpayable"},{"type":"function","name":"addProofVerifiers","inputs":[{"name":"_proofVerifiers","type":"tuple[]","internalType":"struct ProofVerifier[]","components":[{"name":"vkeyHash","type":"bytes32","internalType":"bytes32"},{"name":"verifier","type":"address","internalType":"address"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"proofVerifiers","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeProofVerifiers","inputs":[{"name":"vkeyHashes","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rootVerifier","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ZKPassportRootVerifier"}],"stateMutability":"view"},{"type":"function","name":"setPaused","inputs":[{"name":"_paused","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferAdmin","inputs":[{"name":"newAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verify","inputs":[{"name":"rootRegistry","type":"address","internalType":"contract IRootRegistry"},{"name":"params","type":"tuple","internalType":"struct ProofVerificationParams","components":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"proofVerificationData","type":"tuple","internalType":"struct ProofVerificationData","components":[{"name":"vkeyHash","type":"bytes32","internalType":"bytes32"},{"name":"proof","type":"bytes","internalType":"bytes"},{"name":"publicInputs","type":"bytes32[]","internalType":"bytes32[]"}]},{"name":"committedInputs","type":"bytes","internalType":"bytes"},{"name":"serviceConfig","type":"tuple","internalType":"struct ServiceConfig","components":[{"name":"validityPeriodInSeconds","type":"uint256","internalType":"uint256"},{"name":"domain","type":"string","internalType":"string"},{"name":"scope","type":"string","internalType":"string"},{"name":"devMode","type":"bool","internalType":"bool"}]}]}],"outputs":[{"name":"isValid","type":"bool","internalType":"bool"},{"name":"uniqueIdentifier","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"AdminUpdated","inputs":[{"name":"oldAdmin","type":"address","indexed":true,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PausedStatusChanged","inputs":[{"name":"paused","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ProofVerifierAdded","inputs":[{"name":"proofVerifier","type":"address","indexed":true,"internalType":"address"},{"name":"vkeyHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ProofVerifierRemoved","inputs":[{"name":"proofVerifier","type":"address","indexed":true,"internalType":"address"},{"name":"vkeyHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ZKPassportSubVerifierDeployed","inputs":[{"name":"admin","type":"address","indexed":true,"internalType":"address"},{"name":"rootVerifier","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040516117a63803806117a683398101604081905261002e9161016d565b6001600160a01b0382166100895760405162461bcd60e51b815260206004820152601c60248201527f41646d696e2063616e6e6f74206265207a65726f20616464726573730000000060448201526064015b60405180910390fd5b5f80546001600160a01b0319166001600160a01b038481169190911790915581166101025760405162461bcd60e51b8152602060048201526024808201527f526f6f742076657269666965722063616e6e6f74206265207a65726f206164646044820152637265737360e01b6064820152608401610080565b600180546001600160a01b0319166001600160a01b038381169182179092555f8054604051929316917f2074ff6f26d7905cc1807b94a6a9a002ce0c7a92e95e5ab8edf6b28b56e9f8d89190a350506101a5565b6001600160a01b038116811461016a575f5ffd5b50565b5f5f6040838503121561017e575f5ffd5b825161018981610156565b602084015190925061019a81610156565b809150509250929050565b6115f4806101b25f395ff3fe608060405234801561000f575f5ffd5b5060043610610090575f3560e01c80635c975abb116100635780635c975abb1461011457806375829def14610137578063e4c0b80b1461014a578063e88d4ee61461015d578063f851a44014610187575f5ffd5b806316c38b3c146100945780631e8e0f8e146100a95780632576b26f146100ee57806326700c0414610101575b5f5ffd5b6100a76100a236600461116f565b610199565b005b6100d16100b736600461118a565b60026020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100a76100fc3660046111a1565b610222565b6100a761010f366004611212565b61032e565b5f5461012790600160a01b900460ff1681565b60405190151581526020016100e5565b6100a7610145366004611287565b61045b565b6001546100d1906001600160a01b031681565b61017061016b3660046112a2565b610529565b6040805192151583526020830191909152016100e5565b5f546100d1906001600160a01b031681565b5f546001600160a01b031633146101cb5760405162461bcd60e51b81526004016101c2906112f5565b60405180910390fd5b5f8054821515600160a01b0260ff60a01b199091161790556040517f9a506b30e47f3823b09f67e4c0dfa5c3d8023b71825b7ceaa97677129128c9c59061021790831515815260200190565b60405180910390a150565b5f546001600160a01b0316331461024b5760405162461bcd60e51b81526004016101c2906112f5565b5f5b81811015610329575f60025f85858581811061026b5761026b61132c565b602090810292909201358352508101919091526040015f20546001600160a01b0316905080156103205760025f8585858181106102aa576102aa61132c565b602090810292909201358352508101919091526040015f2080546001600160a01b03191690558383838181106102e2576102e261132c565b90506020020135816001600160a01b03167fcbc6363fd394dcb0ae12ee150a5f2a71305110addee38f87682d670b632f5b4060405160405180910390a35b5060010161024d565b505050565b5f546001600160a01b031633146103575760405162461bcd60e51b81526004016101c2906112f5565b5f5b81811015610329578282828181106103735761037361132c565b905060400201602001602081019061038b9190611287565b60025f8585858181106103a0576103a061132c565b9050604002015f013581526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b031602179055508282828181106103eb576103eb61132c565b9050604002015f01358383838181106104065761040661132c565b905060400201602001602081019061041e9190611287565b6001600160a01b03167f220dc8943553a5812167948533c5a3a0c0674c926e0aea0f6b0a8cf5701044b460405160405180910390a3600101610359565b5f546001600160a01b031633146104845760405162461bcd60e51b81526004016101c2906112f5565b6001600160a01b0381166104da5760405162461bcd60e51b815260206004820152601c60248201527f41646d696e2063616e6e6f74206265207a65726f20616464726573730000000060448201526064016101c2565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b9190a35050565b5f80548190600160a01b900460ff161561057a5760405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b60448201526064016101c2565b6001546001600160a01b031633146105fa5760405162461bcd60e51b815260206004820152603760248201527f546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656460448201527f2066726f6d2074686520726f6f7420766572696669657200000000000000000060648201526084016101c2565b5f61061161060b6020860186611340565b35610b50565b90505f6106216020860186611340565b61062f90604081019061135e565b60028181106106405761064061132c565b905060200201355f1c905061068a8686806020019061065f9190611340565b61066d90604081019061135e565b5f81811061067d5761067d61132c565b9050602002013583610baf565b6106c78661069b6020880188611340565b6106a990604081019061135e565b60018181106106ba576106ba61132c565b9050602002013583610c7a565b6106de816106d860608801886113a4565b35610d3b565b6107465760405162461bcd60e51b815260206004820152603360248201527f5468652070726f6f66207761732067656e657261746564206f757473696465206044820152721d1a19481d985b1a591a5d1e481c195c9a5bd9606a1b60648201526084016101c2565b61079f6107566020870187611340565b61076490604081019061135e565b61077160608901896113a4565b61077f9060208101906113b8565b61078c60608b018b6113a4565b61079a9060408101906113b8565b610d4d565b6107eb5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420646f6d61696e206f722073636f706500000000000000000060448201526064016101c2565b6108846107fb6020870187611340565b61080990604081019061135e565b600590600261081b60208b018b611340565b61082990604081019061135e565b61083492915061140f565b9261084193929190611422565b808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061087f9250505060408801886113b8565b610f15565b5f6108926020870187611340565b6108a090604081019061135e565b60026108af60208a018a611340565b6108bd90604081019061135e565b6108c892915061140f565b8181106108d7576108d761132c565b905060200201355f1c60038111156108f1576108f161144d565b905060028160038111156109075761090761144d565b14158015610927575060038160038111156109245761092461144d565b14155b8061094b575061093a60608701876113a4565b61094b90608081019060600161116f565b6109a85760405162461bcd60e51b815260206004820152602860248201527f4d6f636b2070726f6f667320617265206f6e6c7920616c6c6f77656420696e20604482015267646576206d6f646560c01b60648201526084016101c2565b5f8160038111156109bb576109bb61144d565b14806109e057506109cf60608701876113a4565b6109e090608081019060600161116f565b610a405760405162461bcd60e51b815260206004820152602b60248201527f53616c746564206e756c6c69666965727320617265206e6f7420737570706f7260448201526a74656420666f72206e6f7760a81b60648201526084016101c2565b6001600160a01b03831663ea50d0e4610a5c6020890189611340565b610a6a9060208101906113b8565b610a7760208b018b611340565b610a8590604081019061135e565b6040518563ffffffff1660e01b8152600401610aa49493929190611461565b602060405180830381865afa158015610abf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae391906114c3565b94505f6001610af56020890189611340565b610b0390604081019061135e565b610b0e92915061140f565b9050610b1d6020880188611340565b610b2b90604081019061135e565b82818110610b3b57610b3b61132c565b905060200201359450505050505b9250929050565b5f818152600260205260408120546001600160a01b031680610ba95760405162461bcd60e51b815260206004820152601260248201527115995c9a599a595c881b9bdd08199bdd5b9960721b60448201526064016101c2565b92915050565b604051631557214b60e11b81526001600482015260248101839052604481018290526001600160a01b03841690632aae429690606401602060405180830381865afa158015610c00573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2491906114c3565b6103295760405162461bcd60e51b815260206004820152602160248201527f496e76616c696420636572746966696361746520726567697374727920726f6f6044820152601d60fa1b60648201526084016101c2565b604051631557214b60e11b81526002600482015260248101839052604481018290526001600160a01b03841690632aae429690606401602060405180830381865afa158015610ccb573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cef91906114c3565b6103295760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964206369726375697420726567697374727920726f6f7400000060448201526064016101c2565b5f610d46838361112a565b9392505050565b5f5f610d8d86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061115a92505050565b610e0757600860028787604051602001610da89291906114de565b60408051601f1981840301815290829052610dc2916114ed565b602060405180830381855afa158015610ddd573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610e009190611503565b901c610e09565b5f5b90505f610e4a85858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061115a92505050565b610ec457600860028686604051602001610e659291906114de565b60408051601f1981840301815290829052610e7f916114ed565b602060405180830381855afa158015610e9a573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610ebd9190611503565b901c610ec6565b5f5b90508189896003818110610edc57610edc61132c565b90506020020135148015610f0857508089896004818110610eff57610eff61132c565b90506020020135145b9998505050505050505050565b5f805b8282108015610f275750845181105b15611084575f8484610f3a85600161151a565b90610f4686600361151a565b92610f539392919061152d565b610f5c91611554565b60f01c90505f60086002878688610f73878361151a565b610f7e90600361151a565b92610f8b9392919061152d565b604051602001610f9c9291906114de565b60408051601f1981840301815290829052610fb6916114ed565b602060405180830381855afa158015610fd1573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610ff49190611503565b901c905086838151811061100a5761100a61132c565b602002602001015181146110555760405162461bcd60e51b8152602060048201526012602482015271125b9d985b1a590818dbdb5b5a5d1b595b9d60721b60448201526064016101c2565b61106082600361158c565b61106e9061ffff168561151a565b93508261107a816115a6565b9350505050610f18565b8183146110d35760405162461bcd60e51b815260206004820152601f60248201527f496e76616c696420636f6d6d697474656420696e70757473206c656e6774680060448201526064016101c2565b845181146111235760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420706172616d6574657220636f6d6d69746d656e747300000060448201526064016101c2565b5050505050565b5f80611136838561151a565b905083421015801561114757508381115b801561115257504281115b949350505050565b511590565b801515811461116c575f5ffd5b50565b5f6020828403121561117f575f5ffd5b8135610d468161115f565b5f6020828403121561119a575f5ffd5b5035919050565b5f5f602083850312156111b2575f5ffd5b823567ffffffffffffffff8111156111c8575f5ffd5b8301601f810185136111d8575f5ffd5b803567ffffffffffffffff8111156111ee575f5ffd5b8560208260051b8401011115611202575f5ffd5b6020919091019590945092505050565b5f5f60208385031215611223575f5ffd5b823567ffffffffffffffff811115611239575f5ffd5b8301601f81018513611249575f5ffd5b803567ffffffffffffffff81111561125f575f5ffd5b8560208260061b8401011115611202575f5ffd5b6001600160a01b038116811461116c575f5ffd5b5f60208284031215611297575f5ffd5b8135610d4681611273565b5f5f604083850312156112b3575f5ffd5b82356112be81611273565b9150602083013567ffffffffffffffff8111156112d9575f5ffd5b8301608081860312156112ea575f5ffd5b809150509250929050565b6020808252601a908201527f4e6f7420617574686f72697a65643a2061646d696e206f6e6c79000000000000604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112611354575f5ffd5b9190910192915050565b5f5f8335601e19843603018112611373575f5ffd5b83018035915067ffffffffffffffff82111561138d575f5ffd5b6020019150600581901b3603821315610b49575f5ffd5b5f8235607e19833603018112611354575f5ffd5b5f5f8335601e198436030181126113cd575f5ffd5b83018035915067ffffffffffffffff8211156113e7575f5ffd5b602001915036819003821315610b49575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b81810381811115610ba957610ba96113fb565b5f5f85851115611430575f5ffd5b8386111561143c575f5ffd5b5050600583901b0193919092039150565b634e487b7160e01b5f52602160045260245ffd5b60408152836040820152838560608301375f60608583018101829052601f19601f8701168301838103820160208501529081018490526001600160fb1b038411156114aa575f5ffd5b8360051b80866080840137016080019695505050505050565b5f602082840312156114d3575f5ffd5b8151610d468161115f565b818382375f9101908152919050565b5f82518060208501845e5f920191825250919050565b5f60208284031215611513575f5ffd5b5051919050565b80820180821115610ba957610ba96113fb565b5f5f8585111561153b575f5ffd5b83861115611547575f5ffd5b5050820193919092039150565b80356001600160f01b03198116906002841015611585576001600160f01b0319600285900360031b81901b82161691505b5092915050565b61ffff8181168382160190811115610ba957610ba96113fb565b5f600182016115b7576115b76113fb565b506001019056fea26469706673582212209afd08664c6af7e620ec387b36feb7e45f913c4d53259cb4f7261b299d9f481464736f6c634300081e0033","sourceMap":"518:9887:10:-:0;;;1364:344;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1434:20:10;;1426:61;;;;-1:-1:-1;;;1426:61:10;;774:2:173;1426:61:10;;;756:21:173;813:2;793:18;;;786:30;852;832:18;;;825:58;900:18;;1426:61:10;;;;;;;;;1493:5;:14;;-1:-1:-1;;;;;;1493:14:10;-1:-1:-1;;;;;1493:14:10;;;;;;;;;;1521:36;;1513:85;;;;-1:-1:-1;;;1513:85:10;;1131:2:173;1513:85:10;;;1113:21:173;1170:2;1150:18;;;1143:30;1209:34;1189:18;;;1182:62;-1:-1:-1;;;1260:18:173;;;1253:34;1304:19;;1513:85:10;929:400:173;1513:85:10;1604:12;:28;;-1:-1:-1;;;;;;1604:28:10;-1:-1:-1;;;;;1604:28:10;;;;;;;;;-1:-1:-1;1673:5:10;;1643:60;;1604:28;;1673:5;;1643:60;;-1:-1:-1;1643:60:10;1364:344;;518:9887;;14:131:173;-1:-1:-1;;;;;89:31:173;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:417::-;261:6;269;322:2;310:9;301:7;297:23;293:32;290:52;;;338:1;335;328:12;290:52;370:9;364:16;389:31;414:5;389:31;:::i;:::-;489:2;474:18;;468:25;439:5;;-1:-1:-1;502:33:173;468:25;502:33;:::i;:::-;554:7;544:17;;;150:417;;;;;:::o;929:400::-;518:9887:10;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610090575f3560e01c80635c975abb116100635780635c975abb1461011457806375829def14610137578063e4c0b80b1461014a578063e88d4ee61461015d578063f851a44014610187575f5ffd5b806316c38b3c146100945780631e8e0f8e146100a95780632576b26f146100ee57806326700c0414610101575b5f5ffd5b6100a76100a236600461116f565b610199565b005b6100d16100b736600461118a565b60026020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100a76100fc3660046111a1565b610222565b6100a761010f366004611212565b61032e565b5f5461012790600160a01b900460ff1681565b60405190151581526020016100e5565b6100a7610145366004611287565b61045b565b6001546100d1906001600160a01b031681565b61017061016b3660046112a2565b610529565b6040805192151583526020830191909152016100e5565b5f546100d1906001600160a01b031681565b5f546001600160a01b031633146101cb5760405162461bcd60e51b81526004016101c2906112f5565b60405180910390fd5b5f8054821515600160a01b0260ff60a01b199091161790556040517f9a506b30e47f3823b09f67e4c0dfa5c3d8023b71825b7ceaa97677129128c9c59061021790831515815260200190565b60405180910390a150565b5f546001600160a01b0316331461024b5760405162461bcd60e51b81526004016101c2906112f5565b5f5b81811015610329575f60025f85858581811061026b5761026b61132c565b602090810292909201358352508101919091526040015f20546001600160a01b0316905080156103205760025f8585858181106102aa576102aa61132c565b602090810292909201358352508101919091526040015f2080546001600160a01b03191690558383838181106102e2576102e261132c565b90506020020135816001600160a01b03167fcbc6363fd394dcb0ae12ee150a5f2a71305110addee38f87682d670b632f5b4060405160405180910390a35b5060010161024d565b505050565b5f546001600160a01b031633146103575760405162461bcd60e51b81526004016101c2906112f5565b5f5b81811015610329578282828181106103735761037361132c565b905060400201602001602081019061038b9190611287565b60025f8585858181106103a0576103a061132c565b9050604002015f013581526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b031602179055508282828181106103eb576103eb61132c565b9050604002015f01358383838181106104065761040661132c565b905060400201602001602081019061041e9190611287565b6001600160a01b03167f220dc8943553a5812167948533c5a3a0c0674c926e0aea0f6b0a8cf5701044b460405160405180910390a3600101610359565b5f546001600160a01b031633146104845760405162461bcd60e51b81526004016101c2906112f5565b6001600160a01b0381166104da5760405162461bcd60e51b815260206004820152601c60248201527f41646d696e2063616e6e6f74206265207a65726f20616464726573730000000060448201526064016101c2565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b9190a35050565b5f80548190600160a01b900460ff161561057a5760405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b60448201526064016101c2565b6001546001600160a01b031633146105fa5760405162461bcd60e51b815260206004820152603760248201527f546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656460448201527f2066726f6d2074686520726f6f7420766572696669657200000000000000000060648201526084016101c2565b5f61061161060b6020860186611340565b35610b50565b90505f6106216020860186611340565b61062f90604081019061135e565b60028181106106405761064061132c565b905060200201355f1c905061068a8686806020019061065f9190611340565b61066d90604081019061135e565b5f81811061067d5761067d61132c565b9050602002013583610baf565b6106c78661069b6020880188611340565b6106a990604081019061135e565b60018181106106ba576106ba61132c565b9050602002013583610c7a565b6106de816106d860608801886113a4565b35610d3b565b6107465760405162461bcd60e51b815260206004820152603360248201527f5468652070726f6f66207761732067656e657261746564206f757473696465206044820152721d1a19481d985b1a591a5d1e481c195c9a5bd9606a1b60648201526084016101c2565b61079f6107566020870187611340565b61076490604081019061135e565b61077160608901896113a4565b61077f9060208101906113b8565b61078c60608b018b6113a4565b61079a9060408101906113b8565b610d4d565b6107eb5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420646f6d61696e206f722073636f706500000000000000000060448201526064016101c2565b6108846107fb6020870187611340565b61080990604081019061135e565b600590600261081b60208b018b611340565b61082990604081019061135e565b61083492915061140f565b9261084193929190611422565b808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061087f9250505060408801886113b8565b610f15565b5f6108926020870187611340565b6108a090604081019061135e565b60026108af60208a018a611340565b6108bd90604081019061135e565b6108c892915061140f565b8181106108d7576108d761132c565b905060200201355f1c60038111156108f1576108f161144d565b905060028160038111156109075761090761144d565b14158015610927575060038160038111156109245761092461144d565b14155b8061094b575061093a60608701876113a4565b61094b90608081019060600161116f565b6109a85760405162461bcd60e51b815260206004820152602860248201527f4d6f636b2070726f6f667320617265206f6e6c7920616c6c6f77656420696e20604482015267646576206d6f646560c01b60648201526084016101c2565b5f8160038111156109bb576109bb61144d565b14806109e057506109cf60608701876113a4565b6109e090608081019060600161116f565b610a405760405162461bcd60e51b815260206004820152602b60248201527f53616c746564206e756c6c69666965727320617265206e6f7420737570706f7260448201526a74656420666f72206e6f7760a81b60648201526084016101c2565b6001600160a01b03831663ea50d0e4610a5c6020890189611340565b610a6a9060208101906113b8565b610a7760208b018b611340565b610a8590604081019061135e565b6040518563ffffffff1660e01b8152600401610aa49493929190611461565b602060405180830381865afa158015610abf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae391906114c3565b94505f6001610af56020890189611340565b610b0390604081019061135e565b610b0e92915061140f565b9050610b1d6020880188611340565b610b2b90604081019061135e565b82818110610b3b57610b3b61132c565b905060200201359450505050505b9250929050565b5f818152600260205260408120546001600160a01b031680610ba95760405162461bcd60e51b815260206004820152601260248201527115995c9a599a595c881b9bdd08199bdd5b9960721b60448201526064016101c2565b92915050565b604051631557214b60e11b81526001600482015260248101839052604481018290526001600160a01b03841690632aae429690606401602060405180830381865afa158015610c00573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2491906114c3565b6103295760405162461bcd60e51b815260206004820152602160248201527f496e76616c696420636572746966696361746520726567697374727920726f6f6044820152601d60fa1b60648201526084016101c2565b604051631557214b60e11b81526002600482015260248101839052604481018290526001600160a01b03841690632aae429690606401602060405180830381865afa158015610ccb573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cef91906114c3565b6103295760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964206369726375697420726567697374727920726f6f7400000060448201526064016101c2565b5f610d46838361112a565b9392505050565b5f5f610d8d86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061115a92505050565b610e0757600860028787604051602001610da89291906114de565b60408051601f1981840301815290829052610dc2916114ed565b602060405180830381855afa158015610ddd573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610e009190611503565b901c610e09565b5f5b90505f610e4a85858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061115a92505050565b610ec457600860028686604051602001610e659291906114de565b60408051601f1981840301815290829052610e7f916114ed565b602060405180830381855afa158015610e9a573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610ebd9190611503565b901c610ec6565b5f5b90508189896003818110610edc57610edc61132c565b90506020020135148015610f0857508089896004818110610eff57610eff61132c565b90506020020135145b9998505050505050505050565b5f805b8282108015610f275750845181105b15611084575f8484610f3a85600161151a565b90610f4686600361151a565b92610f539392919061152d565b610f5c91611554565b60f01c90505f60086002878688610f73878361151a565b610f7e90600361151a565b92610f8b9392919061152d565b604051602001610f9c9291906114de565b60408051601f1981840301815290829052610fb6916114ed565b602060405180830381855afa158015610fd1573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610ff49190611503565b901c905086838151811061100a5761100a61132c565b602002602001015181146110555760405162461bcd60e51b8152602060048201526012602482015271125b9d985b1a590818dbdb5b5a5d1b595b9d60721b60448201526064016101c2565b61106082600361158c565b61106e9061ffff168561151a565b93508261107a816115a6565b9350505050610f18565b8183146110d35760405162461bcd60e51b815260206004820152601f60248201527f496e76616c696420636f6d6d697474656420696e70757473206c656e6774680060448201526064016101c2565b845181146111235760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420706172616d6574657220636f6d6d69746d656e747300000060448201526064016101c2565b5050505050565b5f80611136838561151a565b905083421015801561114757508381115b801561115257504281115b949350505050565b511590565b801515811461116c575f5ffd5b50565b5f6020828403121561117f575f5ffd5b8135610d468161115f565b5f6020828403121561119a575f5ffd5b5035919050565b5f5f602083850312156111b2575f5ffd5b823567ffffffffffffffff8111156111c8575f5ffd5b8301601f810185136111d8575f5ffd5b803567ffffffffffffffff8111156111ee575f5ffd5b8560208260051b8401011115611202575f5ffd5b6020919091019590945092505050565b5f5f60208385031215611223575f5ffd5b823567ffffffffffffffff811115611239575f5ffd5b8301601f81018513611249575f5ffd5b803567ffffffffffffffff81111561125f575f5ffd5b8560208260061b8401011115611202575f5ffd5b6001600160a01b038116811461116c575f5ffd5b5f60208284031215611297575f5ffd5b8135610d4681611273565b5f5f604083850312156112b3575f5ffd5b82356112be81611273565b9150602083013567ffffffffffffffff8111156112d9575f5ffd5b8301608081860312156112ea575f5ffd5b809150509250929050565b6020808252601a908201527f4e6f7420617574686f72697a65643a2061646d696e206f6e6c79000000000000604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112611354575f5ffd5b9190910192915050565b5f5f8335601e19843603018112611373575f5ffd5b83018035915067ffffffffffffffff82111561138d575f5ffd5b6020019150600581901b3603821315610b49575f5ffd5b5f8235607e19833603018112611354575f5ffd5b5f5f8335601e198436030181126113cd575f5ffd5b83018035915067ffffffffffffffff8211156113e7575f5ffd5b602001915036819003821315610b49575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b81810381811115610ba957610ba96113fb565b5f5f85851115611430575f5ffd5b8386111561143c575f5ffd5b5050600583901b0193919092039150565b634e487b7160e01b5f52602160045260245ffd5b60408152836040820152838560608301375f60608583018101829052601f19601f8701168301838103820160208501529081018490526001600160fb1b038411156114aa575f5ffd5b8360051b80866080840137016080019695505050505050565b5f602082840312156114d3575f5ffd5b8151610d468161115f565b818382375f9101908152919050565b5f82518060208501845e5f920191825250919050565b5f60208284031215611513575f5ffd5b5051919050565b80820180821115610ba957610ba96113fb565b5f5f8585111561153b575f5ffd5b83861115611547575f5ffd5b5050820193919092039150565b80356001600160f01b03198116906002841015611585576001600160f01b0319600285900360031b81901b82161691505b5092915050565b61ffff8181168382160190811115610ba957610ba96113fb565b5f600182016115b7576115b76113fb565b506001019056fea26469706673582212209afd08664c6af7e620ec387b36feb7e45f913c4d53259cb4f7261b299d9f481464736f6c634300081e0033","sourceMap":"518:9887:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2284:118;;;;;;:::i;:::-;;:::i;:::-;;776:49;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;776:49:10;;;;;;-1:-1:-1;;;;;732:32:173;;;714:51;;702:2;687:18;776:49:10;;;;;;;;2738:366;;;;;;:::i;:::-;;:::i;2406:328::-;;;;;;:::i;:::-;;:::i;577:18::-;;;;;-1:-1:-1;;;577:18:10;;;;;;;;;2205:14:173;;2198:22;2180:41;;2168:2;2153:18;577::10;2040:187:173;2051:229:10;;;;;;:::i;:::-;;:::i;638:32::-;;;;;-1:-1:-1;;;;;638:32:10;;;6715:3688;;;;;;:::i;:::-;;:::i;:::-;;;;3619:14:173;;3612:22;3594:41;;3666:2;3651:18;;3644:34;;;;3567:18;6715:3688:10;3426:258:173;553:20:10;;;;;-1:-1:-1;;;;;553:20:10;;;2284:118;1761:5;;-1:-1:-1;;;;;1761:5:10;1747:10;:19;1739:58;;;;-1:-1:-1;;;1739:58:10;;;;;;;:::i;:::-;;;;;;;;;2342:6:::1;:16:::0;;;::::1;;-1:-1:-1::0;;;2342:16:10::1;-1:-1:-1::0;;;;2342:16:10;;::::1;;::::0;;2369:28:::1;::::0;::::1;::::0;::::1;::::0;2351:7;2205:14:173;2198:22;2180:41;;2168:2;2153:18;;2040:187;2369:28:10::1;;;;;;;;2284:118:::0;:::o;2738:366::-;1761:5;;-1:-1:-1;;;;;1761:5:10;1747:10;:19;1739:58;;;;-1:-1:-1;;;1739:58:10;;;;;;;:::i;:::-;2829:9:::1;2824:276;2844:21:::0;;::::1;2824:276;;;2880:21;2904:14;:29;2919:10;;2930:1;2919:13;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;::::1;;2904:29:::0;;-1:-1:-1;2904:29:10;::::1;::::0;;;;;;-1:-1:-1;2904:29:10;;-1:-1:-1;;;;;2904:29:10::1;::::0;-1:-1:-1;2945:27:10;;2941:153:::1;;2991:14;:29;3006:10;;3017:1;3006:13;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;::::1;;2991:29:::0;;-1:-1:-1;2991:29:10;::::1;::::0;;;;;;-1:-1:-1;2991:29:10;2984:36;;-1:-1:-1;;;;;;2984:36:10::1;::::0;;3071:10;;3082:1;3071:13;;::::1;;;;;:::i;:::-;;;;;;;3056;-1:-1:-1::0;;;;;3035:50:10::1;;;;;;;;;;;2941:153;-1:-1:-1::0;2867:3:10::1;;2824:276;;;;2738:366:::0;;:::o;2406:328::-;1761:5;;-1:-1:-1;;;;;1761:5:10;1747:10;:19;1739:58;;;;-1:-1:-1;;;1739:58:10;;;;;;;:::i;:::-;2505:9:::1;2500:230;2520:26:::0;;::::1;2500:230;;;2607:15;;2623:1;2607:18;;;;;;;:::i;:::-;;;;;;:27;;;;;;;;;;:::i;:::-;2561:14;:43;2576:15;;2592:1;2576:18;;;;;;;:::i;:::-;;;;;;:27;;;2561:43;;;;;;;;;;;;:73;;;;;-1:-1:-1::0;;;;;2561:73:10::1;;;;;-1:-1:-1::0;;;;;2561:73:10::1;;;;;;2695:15;;2711:1;2695:18;;;;;;;:::i;:::-;;;;;;:27;;;2666:15;;2682:1;2666:18;;;;;;;:::i;:::-;;;;;;:27;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;2647:76:10::1;;;;;;;;;;;2548:3;;2500:230;;2051:229:::0;1761:5;;-1:-1:-1;;;;;1761:5:10;1747:10;:19;1739:58;;;;-1:-1:-1;;;1739:58:10;;;;;;;:::i;:::-;-1:-1:-1;;;;;2125:22:10;::::1;2117:63;;;::::0;-1:-1:-1;;;2117:63:10;;4378:2:173;2117:63:10::1;::::0;::::1;4360:21:173::0;4417:2;4397:18;;;4390:30;4456;4436:18;;;4429:58;4504:18;;2117:63:10::1;4176:352:173::0;2117:63:10::1;2186:16;2205:5:::0;;-1:-1:-1;;;;;2216:16:10;;::::1;-1:-1:-1::0;;;;;;2216:16:10;::::1;::::0;::::1;::::0;;2243:32:::1;::::0;2205:5;;;::::1;::::0;;;2243:32:::1;::::0;2186:16;2243:32:::1;2111:169;2051:229:::0;:::o;6715:3688::-;6874:12;2006:6;;6874:12;;-1:-1:-1;;;2006:6:10;;;;2005:7;1997:38;;;;-1:-1:-1;;;1997:38:10;;4735:2:173;1997:38:10;;;4717:21:173;4774:2;4754:18;;;4747:30;-1:-1:-1;;;4793:18:173;;;4786:48;4851:18;;1997:38:10;4533:342:173;1997:38:10;1877:12:::1;::::0;-1:-1:-1;;;;;1877:12:10::1;1855:10;:35;1847:103;;;::::0;-1:-1:-1;;;1847:103:10;;5082:2:173;1847:103:10::1;::::0;::::1;5064:21:173::0;5121:2;5101:18;;;5094:30;5160:34;5140:18;;;5133:62;5231:25;5211:18;;;5204:53;5274:19;;1847:103:10::1;4880:419:173::0;1847:103:10::1;6999:16:::2;7018:56;7036:28;;::::0;::::2;:6:::0;:28:::2;:::i;:::-;:37;7018:17;:56::i;:::-;6999:75:::0;-1:-1:-1;7081:24:10::2;7116:28;;::::0;::::2;:6:::0;:28:::2;:::i;:::-;:41;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;1748:1:1;7116:73:10;;;;;;;:::i;:::-;;;;;;;7108:82;;7081:109;;7239:168;7271:12;7291:6;:28;;;;;;;;:::i;:::-;:41;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;1653:1:1;7291:86:10;;;;;;;:::i;:::-;;;;;;;7385:16;7239:24;:168::i;:::-;7452:148;7480:12:::0;7494:28:::2;;::::0;::::2;:6:::0;:28:::2;:::i;:::-;:41;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;1705:1:1;7494:82:10;;;;;;;:::i;:::-;;;;;;;7578:16;7452:20;:148::i;:::-;7832:82;7851:16:::0;7869:20:::2;;::::0;::::2;:6:::0;:20:::2;:::i;:::-;:44;7832:18;:82::i;:::-;7817:164;;;::::0;-1:-1:-1;;;7817:164:10;;6737:2:173;7817:164:10::2;::::0;::::2;6719:21:173::0;6776:2;6756:18;;;6749:30;6815:34;6795:18;;;6788:62;-1:-1:-1;;;6866:18:173;;;6859:49;6925:19;;7817:164:10::2;6535:415:173::0;7817:164:10::2;8354:113;8368:28;;::::0;::::2;:6:::0;:28:::2;:::i;:::-;:41;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;8411:20;;::::0;::::2;:6:::0;:20:::2;:::i;:::-;:27;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;8440:20;;::::0;::::2;:6:::0;:20:::2;:::i;:::-;:26;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;8354:13;:113::i;:::-;8339:167;;;::::0;-1:-1:-1;;;8339:167:10;;7684:2:173;8339:167:10::2;::::0;::::2;7666:21:173::0;7723:2;7703:18;;;7696:30;7762:25;7742:18;;;7735:53;7805:18;;8339:167:10::2;7482:347:173::0;8339:167:10::2;8574:261;8661:28;;::::0;::::2;:6:::0;:28:::2;:::i;:::-;:48;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;1871:1:1;::::0;8797::10::2;8746:28;;::::0;::::2;:6:::0;:28:::2;:::i;:::-;:41;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;:52;::::0;;-1:-1:-1;8746:52:10::2;:::i;:::-;8661:138;;;;;;;:::i;:::-;8574:261;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;::::0;;;;-1:-1:-1;8807:22:10::2;::::0;-1:-1:-1;;;8807:22:10::2;::::0;::::2;::::0;::::2;:::i;:::-;8574;:261::i;:::-;8842:27;8901:28;;::::0;::::2;:6:::0;:28:::2;:::i;:::-;:41;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;8994:1;8943:28;;::::0;::::2;:6:::0;:28:::2;:::i;:::-;:41;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;:52;::::0;;-1:-1:-1;8943:52:10::2;:::i;:::-;8901:95;;;;;;;:::i;:::-;;;;;;;8893:104;;8872:131;;;;;;;;:::i;:::-;8842:161:::0;-1:-1:-1;9267:39:10::2;9250:13;:56;;;;;;;;:::i;:::-;;;:112;;;;-1:-1:-1::0;9327:35:10::2;9310:13;:52;;;;;;;;:::i;:::-;;;9250:112;9249:154;;;-1:-1:-1::0;9375:20:10::2;;::::0;::::2;:6:::0;:20:::2;:::i;:::-;:28;::::0;;;;;::::2;;;:::i;:::-;9234:225;;;::::0;-1:-1:-1;;;9234:225:10;;9319:2:173;9234:225:10::2;::::0;::::2;9301:21:173::0;9358:2;9338:18;;;9331:30;9397:34;9377:18;;;9370:62;-1:-1:-1;;;9448:18:173;;;9441:38;9496:19;;9234:225:10::2;9117:404:173::0;9234:225:10::2;9686:34;9669:13;:51;;;;;;;;:::i;:::-;;:83;;;-1:-1:-1::0;9724:20:10::2;;::::0;::::2;:6:::0;:20:::2;:::i;:::-;:28;::::0;;;;;::::2;;;:::i;:::-;9654:157;;;::::0;-1:-1:-1;;;9654:157:10;;9728:2:173;9654:157:10::2;::::0;::::2;9710:21:173::0;9767:2;9747:18;;;9740:30;9806:34;9786:18;;;9779:62;-1:-1:-1;;;9857:18:173;;;9850:41;9908:19;;9654:157:10::2;9526:407:173::0;9654:157:10::2;-1:-1:-1::0;;;;;9932:31:10;::::2;;9964:28;;::::0;::::2;:6:::0;:28:::2;:::i;:::-;:34;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;10000:28;;::::0;::::2;:6:::0;:28:::2;:::i;:::-;:41;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;9932:110;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9916:126:::0;-1:-1:-1;10105:29:10::2;10188:1;10137:28;;::::0;::::2;:6:::0;:28:::2;:::i;:::-;:41;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;:52;::::0;;-1:-1:-1;10137:52:10::2;:::i;:::-;10105:84:::0;-1:-1:-1;10214:28:10::2;;::::0;::::2;:6:::0;:28:::2;:::i;:::-;:41;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;10256:21;10214:64;;;;;;;:::i;:::-;;;;;;;10195:83;;10364:34;;;;1956:1;6715:3688:::0;;;;;:::o;5551:211::-;5619:7;5653:24;;;:14;:24;;;;;;-1:-1:-1;;;;;5653:24:10;;5683:53;;;;-1:-1:-1;;;5683:53:10;;11166:2:173;5683:53:10;;;11148:21:173;11205:2;11185:18;;;11178:30;-1:-1:-1;;;11224:18:173;;;11217:48;11282:18;;5683:53:10;10964:342:173;5683:53:10;5749:8;5551:211;-1:-1:-1;;5551:211:10:o;5766:283::-;5918:77;;-1:-1:-1;;;5918:77:10;;604:66:1;5918:77:10;;;11513:25:173;11554:18;;;11547:34;;;11597:18;;;11590:34;;;-1:-1:-1;;;;;5918:25:10;;;;;11486:18:173;;5918:77:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5903:141;;;;-1:-1:-1;;;5903:141:10;;11837:2:173;5903:141:10;;;11819:21:173;11876:2;11856:18;;;11849:30;11915:34;11895:18;;;11888:62;-1:-1:-1;;;11966:18:173;;;11959:31;12007:19;;5903:141:10;11635:397:173;6053:235:10;6180:69;;-1:-1:-1;;;6180:69:10;;710:66:1;6180:69:10;;;11513:25:173;11554:18;;;11547:34;;;11597:18;;;11590:34;;;-1:-1:-1;;;;;6180:25:10;;;;;11486:18:173;;6180:69:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6172:111;;;;-1:-1:-1;;;6172:111:10;;12239:2:173;6172:111:10;;;12221:21:173;12278:2;12258:18;;;12251:30;12317:31;12297:18;;;12290:59;12366:18;;6172:111:10;12037:353:173;3108:220:10;3234:4;3255:68;3277:20;3299:23;3255:21;:68::i;:::-;3248:75;3108:220;-1:-1:-1;;;3108:220:10:o;3674:696::-;3814:4;3930:17;3950:26;3970:5;;3950:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3950:19:10;;-1:-1:-1;;;3950:26:10:i;:::-;:78;;4027:1;3992:31;4016:5;;3999:23;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3999:23:10;;;;;;;;;;3992:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:36;;3950:78;;;3987:1;3950:78;3930:98;;4129:20;4152:29;4172:8;;4152:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4152:19:10;;-1:-1:-1;;;4152:29:10:i;:::-;:84;;4235:1;4197:34;4221:8;;4204:26;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4204:26:10;;;;;;;;;;4197:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:39;;4152:84;;;4192:1;4152:84;4129:107;;4296:9;4255:12;;1784:1:1;4255:37:10;;;;;;;:::i;:::-;;;;;;;:50;:110;;;;;4353:12;4309;;1823:1:1;4309:40:10;;;;;;;:::i;:::-;;;;;;;:56;4255:110;4242:123;3674:696;-1:-1:-1;;;;;;;;;3674:696:10:o;4374:1173::-;4493:14;;4540:750;4547:31;;;:66;;;;;4590:16;:23;4582:5;:31;4547:66;4540:750;;;4815:13;4845:15;;4861:10;:6;4870:1;4861:10;:::i;:::-;4845:38;4872:10;:6;4881:1;4872:10;:::i;:::-;4845:38;;;;;;;:::i;:::-;4838:46;;;:::i;:::-;4831:54;;;-1:-1:-1;5049:28:10;5153:1;5080:69;5104:15;5120:6;5104:15;5127;4831:54;5120:6;5127:15;:::i;:::-;:19;;5145:1;5127:19;:::i;:::-;5104:43;;;;;;;:::i;:::-;5087:61;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;5087:61:10;;;;;;;;;;5080:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:74;;5049:105;;5194:16;5211:5;5194:23;;;;;;;;:::i;:::-;;;;;;;5170:20;:47;5162:78;;;;-1:-1:-1;;;5162:78:10;;14446:2:173;5162:78:10;;;14428:21:173;14485:2;14465:18;;;14458:30;-1:-1:-1;;;14504:18:173;;;14497:48;14562:18;;5162:78:10;14244:342:173;5162:78:10;5258:10;:6;5267:1;5258:10;:::i;:::-;5248:20;;;;;;:::i;:::-;;-1:-1:-1;5276:7:10;;;;:::i;:::-;;;;4615:675;;4540:750;;;5394:32;;;5386:76;;;;-1:-1:-1;;;5386:76:10;;15093:2:173;5386:76:10;;;15075:21:173;15132:2;15112:18;;;15105:30;15171:33;15151:18;;;15144:61;15222:18;;5386:76:10;14891:355:173;5386:76:10;5485:16;:23;5476:5;:32;5468:74;;;;-1:-1:-1;;;5468:74:10;;15453:2:173;5468:74:10;;;15435:21:173;15492:2;15472:18;;;15465:30;15531:31;15511:18;;;15504:59;15580:18;;5468:74:10;15251:353:173;5468:74:10;4487:1060;;4374:1173;;;:::o;710:313:2:-;806:4;;852:35;864:23;852:9;:35;:::i;:::-;818:69;;925:9;906:15;:28;;:67;;;;;964:9;938:23;:35;906:67;:112;;;;;1003:15;977:23;:41;906:112;893:125;710:313;-1:-1:-1;;;;710:313:2:o;506:101:6:-;582:15;:20;;506:101::o;14:118:173:-;100:5;93:13;86:21;79:5;76:32;66:60;;122:1;119;112:12;66:60;14:118;:::o;137:241::-;193:6;246:2;234:9;225:7;221:23;217:32;214:52;;;262:1;259;252:12;214:52;301:9;288:23;320:28;342:5;320:28;:::i;383:180::-;442:6;495:2;483:9;474:7;470:23;466:32;463:52;;;511:1;508;501:12;463:52;-1:-1:-1;534:23:173;;383:180;-1:-1:-1;383:180:173:o;776:610::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;979:9;966:23;1012:18;1004:6;1001:30;998:50;;;1044:1;1041;1034:12;998:50;1067:22;;1120:4;1112:13;;1108:27;-1:-1:-1;1098:55:173;;1149:1;1146;1139:12;1098:55;1189:2;1176:16;1215:18;1207:6;1204:30;1201:50;;;1247:1;1244;1237:12;1201:50;1300:7;1295:2;1285:6;1282:1;1278:14;1274:2;1270:23;1266:32;1263:45;1260:65;;;1321:1;1318;1311:12;1260:65;1352:2;1344:11;;;;;1374:6;;-1:-1:-1;776:610:173;-1:-1:-1;;;776:610:173:o;1391:644::-;1511:6;1519;1572:2;1560:9;1551:7;1547:23;1543:32;1540:52;;;1588:1;1585;1578:12;1540:52;1628:9;1615:23;1661:18;1653:6;1650:30;1647:50;;;1693:1;1690;1683:12;1647:50;1716:22;;1769:4;1761:13;;1757:27;-1:-1:-1;1747:55:173;;1798:1;1795;1788:12;1747:55;1838:2;1825:16;1864:18;1856:6;1853:30;1850:50;;;1896:1;1893;1886:12;1850:50;1949:7;1944:2;1934:6;1931:1;1927:14;1923:2;1919:23;1915:32;1912:45;1909:65;;;1970:1;1967;1960:12;2232:131;-1:-1:-1;;;;;2307:31:173;;2297:42;;2287:70;;2353:1;2350;2343:12;2368:247;2427:6;2480:2;2468:9;2459:7;2455:23;2451:32;2448:52;;;2496:1;2493;2486:12;2448:52;2535:9;2522:23;2554:31;2579:5;2554:31;:::i;2860:561::-;2994:6;3002;3055:2;3043:9;3034:7;3030:23;3026:32;3023:52;;;3071:1;3068;3061:12;3023:52;3110:9;3097:23;3129:31;3154:5;3129:31;:::i;:::-;3179:5;-1:-1:-1;3235:2:173;3220:18;;3207:32;3262:18;3251:30;;3248:50;;;3294:1;3291;3284:12;3248:50;3317:22;;3373:3;3355:16;;;3351:26;3348:46;;;3390:1;3387;3380:12;3348:46;3413:2;3403:12;;;2860:561;;;;;:::o;3689:350::-;3891:2;3873:21;;;3930:2;3910:18;;;3903:30;3969:28;3964:2;3949:18;;3942:56;4030:2;4015:18;;3689:350::o;4044:127::-;4105:10;4100:3;4096:20;4093:1;4086:31;4136:4;4133:1;4126:15;4160:4;4157:1;4150:15;5304:339;5412:4;5470:11;5457:25;5564:2;5560:7;5549:8;5533:14;5529:29;5525:43;5505:18;5501:68;5491:96;;5583:1;5580;5573:12;5491:96;5604:33;;;;;5304:339;-1:-1:-1;;5304:339:173:o;5648:545::-;5741:4;5747:6;5807:11;5794:25;5901:2;5897:7;5886:8;5870:14;5866:29;5862:43;5842:18;5838:68;5828:96;;5920:1;5917;5910:12;5828:96;5947:33;;5999:20;;;-1:-1:-1;6042:18:173;6031:30;;6028:50;;;6074:1;6071;6064:12;6028:50;6107:4;6095:17;;-1:-1:-1;6158:1:173;6154:14;;;6138;6134:35;6124:46;;6121:66;;;6183:1;6180;6173:12;6198:332;6298:4;6356:11;6343:25;6450:3;6446:8;6435;6419:14;6415:29;6411:44;6391:18;6387:69;6377:97;;6470:1;6467;6460:12;6955:522;7033:4;7039:6;7099:11;7086:25;7193:2;7189:7;7178:8;7162:14;7158:29;7154:43;7134:18;7130:68;7120:96;;7212:1;7209;7202:12;7120:96;7239:33;;7291:20;;;-1:-1:-1;7334:18:173;7323:30;;7320:50;;;7366:1;7363;7356:12;7320:50;7399:4;7387:17;;-1:-1:-1;7430:14:173;7426:27;;;7416:38;;7413:58;;;7467:1;7464;7457:12;7834:127;7895:10;7890:3;7886:20;7883:1;7876:31;7926:4;7923:1;7916:15;7950:4;7947:1;7940:15;7966:128;8033:9;;;8054:11;;;8051:37;;;8068:18;;:::i;8099:355::-;8220:9;8231;8273:8;8261:10;8258:24;8255:44;;;8295:1;8292;8285:12;8255:44;8324:6;8314:8;8311:20;8308:40;;;8344:1;8341;8334:12;8308:40;-1:-1:-1;;8386:1:173;8382:18;;;8370:31;;8423:25;;;;;-1:-1:-1;8099:355:173:o;8985:127::-;9046:10;9041:3;9037:20;9034:1;9027:31;9077:4;9074:1;9067:15;9101:4;9098:1;9091:15;9938:771;10183:2;10172:9;10165:21;10222:6;10217:2;10206:9;10202:18;10195:34;10279:6;10271;10266:2;10255:9;10251:18;10238:48;10335:1;10330:2;10306:22;;;10302:31;;10295:42;;;-1:-1:-1;;10396:2:173;10375:15;;10371:29;10356:45;;10443:18;;;10439:27;;10432:4;10417:20;;10410:57;10483:11;;;10476:27;;;-1:-1:-1;;;;;10515:31:173;;10512:51;;;10559:1;10556;10549:12;10512:51;10593:6;10590:1;10586:14;10644:6;10636;10630:3;10626:2;10622:12;10609:42;10676:15;10668:35;;;;-1:-1:-1;;;;;;9938:771:173:o;10714:245::-;10781:6;10834:2;10822:9;10813:7;10809:23;10805:32;10802:52;;;10850:1;10847;10840:12;10802:52;10882:9;10876:16;10901:28;10923:5;10901:28;:::i;12395:273::-;12580:6;12572;12567:3;12554:33;12536:3;12606:16;;12631:13;;;12606:16;12395:273;-1:-1:-1;12395:273:173:o;12673:301::-;12802:3;12840:6;12834:13;12886:6;12879:4;12871:6;12867:17;12862:3;12856:37;12948:1;12912:16;;12937:13;;;-1:-1:-1;12912:16:173;12673:301;-1:-1:-1;12673:301:173:o;12979:184::-;13049:6;13102:2;13090:9;13081:7;13077:23;13073:32;13070:52;;;13118:1;13115;13108:12;13070:52;-1:-1:-1;13141:16:173;;12979:184;-1:-1:-1;12979:184:173:o;13168:125::-;13233:9;;;13254:10;;;13251:36;;;13267:18;;:::i;13298:331::-;13403:9;13414;13456:8;13444:10;13441:24;13438:44;;;13478:1;13475;13468:12;13438:44;13507:6;13497:8;13494:20;13491:40;;;13527:1;13524;13517:12;13491:40;-1:-1:-1;;13553:23:173;;;13598:25;;;;;-1:-1:-1;13298:331:173:o;13634:323::-;13754:19;;-1:-1:-1;;;;;;13791:24:173;;;13835:1;13827:10;;13824:127;;;-1:-1:-1;;;;;;13896:1:173;13892:11;;;13889:1;13885:19;13881:41;;;13873:50;;13869:72;;-1:-1:-1;13824:127:173;;13634:323;;;;:::o;14591:155::-;14682:6;14659:14;;;14675;;;14655:35;;14702:15;;14699:41;;;14720:18;;:::i;14751:135::-;14790:3;14811:17;;;14808:43;;14831:18;;:::i;:::-;-1:-1:-1;14878:1:173;14867:13;;14751:135::o","linkReferences":{}},"methodIdentifiers":{"addProofVerifiers((bytes32,address)[])":"26700c04","admin()":"f851a440","paused()":"5c975abb","proofVerifiers(bytes32)":"1e8e0f8e","removeProofVerifiers(bytes32[])":"2576b26f","rootVerifier()":"e4c0b80b","setPaused(bool)":"16c38b3c","transferAdmin(address)":"75829def","verify(address,(bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))":"e88d4ee6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_admin\",\"type\":\"address\"},{\"internalType\":\"contract ZKPassportRootVerifier\",\"name\":\"_rootVerifier\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAdmin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"paused\",\"type\":\"bool\"}],\"name\":\"PausedStatusChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"proofVerifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"vkeyHash\",\"type\":\"bytes32\"}],\"name\":\"ProofVerifierAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"proofVerifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"vkeyHash\",\"type\":\"bytes32\"}],\"name\":\"ProofVerifierRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"rootVerifier\",\"type\":\"address\"}],\"name\":\"ZKPassportSubVerifierDeployed\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"vkeyHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"internalType\":\"struct ProofVerifier[]\",\"name\":\"_proofVerifiers\",\"type\":\"tuple[]\"}],\"name\":\"addProofVerifiers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"proofVerifiers\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"vkeyHashes\",\"type\":\"bytes32[]\"}],\"name\":\"removeProofVerifiers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootVerifier\",\"outputs\":[{\"internalType\":\"contract ZKPassportRootVerifier\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_paused\",\"type\":\"bool\"}],\"name\":\"setPaused\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"transferAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IRootRegistry\",\"name\":\"rootRegistry\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"vkeyHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"publicInputs\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ProofVerificationData\",\"name\":\"proofVerificationData\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"committedInputs\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"validityPeriodInSeconds\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"domain\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"scope\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"devMode\",\"type\":\"bool\"}],\"internalType\":\"struct ServiceConfig\",\"name\":\"serviceConfig\",\"type\":\"tuple\"}],\"internalType\":\"struct ProofVerificationParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"uniqueIdentifier\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Constructor\",\"params\":{\"_admin\":\"The admin address\",\"_rootVerifier\":\"The address of the ZKPassport root verifier\"}},\"verify(address,(bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))\":{\"details\":\"This function is called by the root verifier to verify a proof for a specific version\",\"params\":{\"params\":\"The proof verification parameters\",\"rootRegistry\":\"The root registry\"},\"returns\":{\"isValid\":\"True if the proof is valid, false otherwise\",\"uniqueIdentifier\":\"The unique identifier associated to the identity document that generated the proof\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"verify(address,(bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))\":{\"notice\":\"Verifies a ZKPassport proof\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/circuits/src/solidity/src/ZKPassportSubVerifier.sol\":\"ZKPassportSubVerifier\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@aztec-blob-lib/=src/mock/libraries/\",\":@aztec/=src/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@oz/=lib/openzeppelin-contracts/contracts/\",\":@test/=test/\",\":@zkpassport-test/=lib/circuits/src/solidity/test/\",\":@zkpassport/=lib/circuits/src/solidity/src/\",\":circuits/=lib/circuits/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/circuits/src/solidity/src/Constants.sol\":{\"keccak256\":\"0x29a25ab24727bb03f356fe124eda7970f1769130855ebf584e4225e2718927a7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3dff3096a211bcd97a4dad4e459bd3c684275e3271c493191d3819bbf4326702\",\"dweb:/ipfs/QmfLyG5f3JWRoY5sF9kkDLBDrxymQsuk9uncw65JdRa7Sp\"]},\"lib/circuits/src/solidity/src/DateUtils.sol\":{\"keccak256\":\"0x4176feda967f91ccf0a1cdecc75bbf7e5aaad7b46f95e133887e3ac6ae9126f6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6774599f7320a37f2e5cc22e0d8e59a1f46841a6ac94d7d45b072a809237e1ab\",\"dweb:/ipfs/QmdrX9uQKsvN9gTgCD1zd1kigvJGsgHbvabvdWaWHuSeY4\"]},\"lib/circuits/src/solidity/src/IProofVerifier.sol\":{\"keccak256\":\"0xf8acc6ee390c406eaa8415863f156e251935f8de51bcd3c876871fbe5b5b4f14\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://64016d156d15fd43d407e832fd7b333e07e80b42f0ed9d845a8cc114d3857aa6\",\"dweb:/ipfs/QmP7zSvchyDqov13cyuWxLJDYBBpYZxrPEdGQcheyoJkUm\"]},\"lib/circuits/src/solidity/src/IRootRegistry.sol\":{\"keccak256\":\"0xc994fab81ea1202a93620e7e7a01ba1e61f055498ed5b09503f4b384d0554b2a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://12a19bab224c63ee4a0e3b4048c24e80b3ef5a3459070816c20f2c32b2ad5f72\",\"dweb:/ipfs/QmW1DF8mAwBfacrG2r2R3uyY92i6q1h1hZvHPuwMdXTANg\"]},\"lib/circuits/src/solidity/src/InputsExtractor.sol\":{\"keccak256\":\"0xd8d08cc68a571c9efdddd90ea274c18694284d40a9f1d0a1112a4999fd6a58da\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://000752a284d1df5c0687d32554c83e99afedab49e23d7213679ed93424760450\",\"dweb:/ipfs/QmWrFS4ChUv4okqnEgSLiuSsxohDnTnYLWeyYviVbPTgcH\"]},\"lib/circuits/src/solidity/src/StringUtils.sol\":{\"keccak256\":\"0xd52eb407eef932c9a343f1225fc997b7194ff0f05c488661a7adb4a37f980306\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://60bfaf52ebd50633d6eff5ea346d25283962495c630b37f4c0cd6008e8d8fd11\",\"dweb:/ipfs/QmWVtJnjcaowsFUBRRQ7eNTntghZ4FekXXgeQNAV4PkDWe\"]},\"lib/circuits/src/solidity/src/Types.sol\":{\"keccak256\":\"0x66d73b090401a5f424e1feacf1b503dcd906163f4c749189db3dc108d6dfd668\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d90eff17b597915e95c01a171c4378e7e4e287d35ca25dbd3f684373e93cda0c\",\"dweb:/ipfs/QmYe1wixU4zZAogteHT5eubcB4qzScCYzLtYFpFBitpZeR\"]},\"lib/circuits/src/solidity/src/ZKPassportHelper.sol\":{\"keccak256\":\"0xebc7d0a4b7dae4a78d38381a36cc19e04933f302cf1f0516c8f5d68128afbd16\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7504f8711789c76e7294dd12bf172e5226034a5a2202057180ee047939eefa34\",\"dweb:/ipfs/QmTGuSBmYmDBWutpyTrxPxWQ7DA6kpV6kLQSwB3wMaLCN5\"]},\"lib/circuits/src/solidity/src/ZKPassportRootVerifier.sol\":{\"keccak256\":\"0x5fb7a856f66496a36e4de2ff2dca8fcce5a2c3db3adbf20910b1b20f24e6a009\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c2693f7a086c3ff60441a12a5d72c6a2fbd811123c03d73b0887474cbefe6355\",\"dweb:/ipfs/QmbTgqop8Fb9nxcUveDSDgyMXzVBY1xw2u8eMxaFfVVp1s\"]},\"lib/circuits/src/solidity/src/ZKPassportSubVerifier.sol\":{\"keccak256\":\"0x093e93f34571a7afe3c5a42192a366397b91e9fdb6167075b9250bcfd26fe8dd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://981fec528fb1f8a3032b99905801658305139d82679598579b7fe8afb1b7f6a1\",\"dweb:/ipfs/QmfZ1n1KrxcijmToULMgMccLLyLH5DVVQWJ9SrWPMTRrfw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_admin","type":"address"},{"internalType":"contract ZKPassportRootVerifier","name":"_rootVerifier","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"oldAdmin","type":"address","indexed":true},{"internalType":"address","name":"newAdmin","type":"address","indexed":true}],"type":"event","name":"AdminUpdated","anonymous":false},{"inputs":[{"internalType":"bool","name":"paused","type":"bool","indexed":false}],"type":"event","name":"PausedStatusChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"proofVerifier","type":"address","indexed":true},{"internalType":"bytes32","name":"vkeyHash","type":"bytes32","indexed":true}],"type":"event","name":"ProofVerifierAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"proofVerifier","type":"address","indexed":true},{"internalType":"bytes32","name":"vkeyHash","type":"bytes32","indexed":true}],"type":"event","name":"ProofVerifierRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"admin","type":"address","indexed":true},{"internalType":"address","name":"rootVerifier","type":"address","indexed":true}],"type":"event","name":"ZKPassportSubVerifierDeployed","anonymous":false},{"inputs":[{"internalType":"struct ProofVerifier[]","name":"_proofVerifiers","type":"tuple[]","components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"address","name":"verifier","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"addProofVerifiers"},{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"proofVerifiers","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32[]","name":"vkeyHashes","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"removeProofVerifiers"},{"inputs":[],"stateMutability":"view","type":"function","name":"rootVerifier","outputs":[{"internalType":"contract ZKPassportRootVerifier","name":"","type":"address"}]},{"inputs":[{"internalType":"bool","name":"_paused","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setPaused"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferAdmin"},{"inputs":[{"internalType":"contract IRootRegistry","name":"rootRegistry","type":"address"},{"internalType":"struct ProofVerificationParams","name":"params","type":"tuple","components":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"struct ProofVerificationData","name":"proofVerificationData","type":"tuple","components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"}]},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple","components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}]}]}],"stateMutability":"view","type":"function","name":"verify","outputs":[{"internalType":"bool","name":"isValid","type":"bool"},{"internalType":"bytes32","name":"uniqueIdentifier","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Constructor","params":{"_admin":"The admin address","_rootVerifier":"The address of the ZKPassport root verifier"}},"verify(address,(bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))":{"details":"This function is called by the root verifier to verify a proof for a specific version","params":{"params":"The proof verification parameters","rootRegistry":"The root registry"},"returns":{"isValid":"True if the proof is valid, false otherwise","uniqueIdentifier":"The unique identifier associated to the identity document that generated the proof"}}},"version":1},"userdoc":{"kind":"user","methods":{"verify(address,(bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))":{"notice":"Verifies a ZKPassport proof"}},"version":1}},"settings":{"remappings":["@aztec-blob-lib/=src/mock/libraries/","@aztec/=src/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@oz/=lib/openzeppelin-contracts/contracts/","@test/=test/","@zkpassport-test/=lib/circuits/src/solidity/test/","@zkpassport/=lib/circuits/src/solidity/src/","circuits/=lib/circuits/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/circuits/src/solidity/src/ZKPassportSubVerifier.sol":"ZKPassportSubVerifier"},"evmVersion":"prague","libraries":{}},"sources":{"lib/circuits/src/solidity/src/Constants.sol":{"keccak256":"0x29a25ab24727bb03f356fe124eda7970f1769130855ebf584e4225e2718927a7","urls":["bzz-raw://3dff3096a211bcd97a4dad4e459bd3c684275e3271c493191d3819bbf4326702","dweb:/ipfs/QmfLyG5f3JWRoY5sF9kkDLBDrxymQsuk9uncw65JdRa7Sp"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/DateUtils.sol":{"keccak256":"0x4176feda967f91ccf0a1cdecc75bbf7e5aaad7b46f95e133887e3ac6ae9126f6","urls":["bzz-raw://6774599f7320a37f2e5cc22e0d8e59a1f46841a6ac94d7d45b072a809237e1ab","dweb:/ipfs/QmdrX9uQKsvN9gTgCD1zd1kigvJGsgHbvabvdWaWHuSeY4"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/IProofVerifier.sol":{"keccak256":"0xf8acc6ee390c406eaa8415863f156e251935f8de51bcd3c876871fbe5b5b4f14","urls":["bzz-raw://64016d156d15fd43d407e832fd7b333e07e80b42f0ed9d845a8cc114d3857aa6","dweb:/ipfs/QmP7zSvchyDqov13cyuWxLJDYBBpYZxrPEdGQcheyoJkUm"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/IRootRegistry.sol":{"keccak256":"0xc994fab81ea1202a93620e7e7a01ba1e61f055498ed5b09503f4b384d0554b2a","urls":["bzz-raw://12a19bab224c63ee4a0e3b4048c24e80b3ef5a3459070816c20f2c32b2ad5f72","dweb:/ipfs/QmW1DF8mAwBfacrG2r2R3uyY92i6q1h1hZvHPuwMdXTANg"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/InputsExtractor.sol":{"keccak256":"0xd8d08cc68a571c9efdddd90ea274c18694284d40a9f1d0a1112a4999fd6a58da","urls":["bzz-raw://000752a284d1df5c0687d32554c83e99afedab49e23d7213679ed93424760450","dweb:/ipfs/QmWrFS4ChUv4okqnEgSLiuSsxohDnTnYLWeyYviVbPTgcH"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/StringUtils.sol":{"keccak256":"0xd52eb407eef932c9a343f1225fc997b7194ff0f05c488661a7adb4a37f980306","urls":["bzz-raw://60bfaf52ebd50633d6eff5ea346d25283962495c630b37f4c0cd6008e8d8fd11","dweb:/ipfs/QmWVtJnjcaowsFUBRRQ7eNTntghZ4FekXXgeQNAV4PkDWe"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/Types.sol":{"keccak256":"0x66d73b090401a5f424e1feacf1b503dcd906163f4c749189db3dc108d6dfd668","urls":["bzz-raw://d90eff17b597915e95c01a171c4378e7e4e287d35ca25dbd3f684373e93cda0c","dweb:/ipfs/QmYe1wixU4zZAogteHT5eubcB4qzScCYzLtYFpFBitpZeR"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/ZKPassportHelper.sol":{"keccak256":"0xebc7d0a4b7dae4a78d38381a36cc19e04933f302cf1f0516c8f5d68128afbd16","urls":["bzz-raw://7504f8711789c76e7294dd12bf172e5226034a5a2202057180ee047939eefa34","dweb:/ipfs/QmTGuSBmYmDBWutpyTrxPxWQ7DA6kpV6kLQSwB3wMaLCN5"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/ZKPassportRootVerifier.sol":{"keccak256":"0x5fb7a856f66496a36e4de2ff2dca8fcce5a2c3db3adbf20910b1b20f24e6a009","urls":["bzz-raw://c2693f7a086c3ff60441a12a5d72c6a2fbd811123c03d73b0887474cbefe6355","dweb:/ipfs/QmbTgqop8Fb9nxcUveDSDgyMXzVBY1xw2u8eMxaFfVVp1s"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/ZKPassportSubVerifier.sol":{"keccak256":"0x093e93f34571a7afe3c5a42192a366397b91e9fdb6167075b9250bcfd26fe8dd","urls":["bzz-raw://981fec528fb1f8a3032b99905801658305139d82679598579b7fe8afb1b7f6a1","dweb:/ipfs/QmfZ1n1KrxcijmToULMgMccLLyLH5DVVQWJ9SrWPMTRrfw"],"license":"Apache-2.0"}},"version":1},"id":10}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"
|
|
1
|
+
{"id":"6b707081690bc1a6","source_id_to_path":{"0":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","1":"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol","2":"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","3":"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","4":"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","5":"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol","6":"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","7":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","8":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","9":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","10":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","11":"lib/openzeppelin-contracts/contracts/utils/Context.sol","12":"lib/openzeppelin-contracts/contracts/utils/Panic.sol","13":"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol","14":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","15":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","16":"lib/openzeppelin-contracts/contracts/utils/Strings.sol","17":"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol","18":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","19":"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol","20":"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol","21":"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","22":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","23":"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","24":"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","25":"lib/openzeppelin-contracts/contracts/utils/structs/BitMaps.sol","26":"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol","27":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","28":"src/core/interfaces/IEscapeHatch.sol","29":"src/core/interfaces/IFeeJuicePortal.sol","30":"src/core/interfaces/IInstance.sol","31":"src/core/interfaces/IRollup.sol","32":"src/core/interfaces/ISlasher.sol","33":"src/core/interfaces/IStaking.sol","34":"src/core/interfaces/IValidatorSelection.sol","35":"src/core/interfaces/IVerifier.sol","36":"src/core/interfaces/messagebridge/IInbox.sol","37":"src/core/interfaces/messagebridge/IOutbox.sol","38":"src/core/libraries/ConstantsGen.sol","39":"src/core/libraries/DataStructures.sol","40":"src/core/libraries/Errors.sol","41":"src/core/libraries/HatchMath.sol","42":"src/core/libraries/SlashRoundLib.sol","43":"src/core/libraries/StakingQueue.sol","44":"src/core/libraries/TimeLib.sol","45":"src/core/libraries/compressed-data/CheckpointLog.sol","46":"src/core/libraries/compressed-data/StakingQueueConfig.sol","47":"src/core/libraries/compressed-data/Tips.sol","48":"src/core/libraries/compressed-data/fees/FeeConfig.sol","49":"src/core/libraries/compressed-data/fees/FeeStructs.sol","50":"src/core/libraries/crypto/Hash.sol","51":"src/core/libraries/crypto/SampleLib.sol","52":"src/core/libraries/rollup/AttestationLib.sol","53":"src/core/libraries/rollup/BlobLib.sol","54":"src/core/libraries/rollup/FeeLib.sol","55":"src/core/libraries/rollup/ProposeLib.sol","56":"src/core/libraries/rollup/ProposedHeaderLib.sol","57":"src/core/libraries/rollup/RewardLib.sol","58":"src/core/libraries/rollup/STFLib.sol","59":"src/core/libraries/rollup/StakingLib.sol","60":"src/core/libraries/rollup/ValidatorSelectionLib.sol","61":"src/core/reward-boost/RewardBooster.sol","62":"src/governance/Bn254LibWrapper.sol","63":"src/governance/GSE.sol","64":"src/governance/GSEPayload.sol","65":"src/governance/Governance.sol","66":"src/governance/interfaces/IBn254LibWrapper.sol","67":"src/governance/interfaces/IEmpire.sol","68":"src/governance/interfaces/IGovernance.sol","69":"src/governance/interfaces/IGovernanceProposer.sol","70":"src/governance/interfaces/IPayload.sol","71":"src/governance/interfaces/IProposerPayload.sol","72":"src/governance/interfaces/IRegistry.sol","73":"src/governance/interfaces/IRewardDistributor.sol","74":"src/governance/libraries/AddressSnapshotLib.sol","75":"src/governance/libraries/CheckpointedUintLib.sol","76":"src/governance/libraries/ConfigurationLib.sol","77":"src/governance/libraries/DepositDelegationLib.sol","78":"src/governance/libraries/Errors.sol","79":"src/governance/libraries/ProposalLib.sol","80":"src/governance/libraries/compressed-data/Ballot.sol","81":"src/governance/libraries/compressed-data/Configuration.sol","82":"src/governance/libraries/compressed-data/Proposal.sol","83":"src/governance/proposer/EmpireBase.sol","84":"src/governance/proposer/GovernanceProposer.sol","85":"src/mock/MockFeeJuicePortal.sol","86":"src/mock/TestERC20.sol","87":"src/mock/libraries/BlobLib.sol","88":"src/periphery/FlushRewarder.sol","89":"src/periphery/interfaces/IFlushRewarder.sol","90":"src/shared/interfaces/IMintableERC20.sol","91":"src/shared/libraries/BN254Lib.sol","92":"src/shared/libraries/CompressedTimeMath.sol","93":"src/shared/libraries/SignatureLib.sol","94":"src/shared/libraries/TimeMath.sol"},"language":"Solidity"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"
|
|
1
|
+
{"id":"8103921c6e825236","source_id_to_path":{"0":"generated/HonkVerifier.sol","1":"lib/circuits/src/solidity/src/Constants.sol","2":"lib/circuits/src/solidity/src/DateUtils.sol","3":"lib/circuits/src/solidity/src/IProofVerifier.sol","4":"lib/circuits/src/solidity/src/IRootRegistry.sol","5":"lib/circuits/src/solidity/src/InputsExtractor.sol","6":"lib/circuits/src/solidity/src/StringUtils.sol","7":"lib/circuits/src/solidity/src/Types.sol","8":"lib/circuits/src/solidity/src/ZKPassportHelper.sol","9":"lib/circuits/src/solidity/src/ZKPassportRootVerifier.sol","10":"lib/circuits/src/solidity/src/ZKPassportSubVerifier.sol","11":"lib/forge-std/src/Base.sol","12":"lib/forge-std/src/Script.sol","13":"lib/forge-std/src/StdAssertions.sol","14":"lib/forge-std/src/StdChains.sol","15":"lib/forge-std/src/StdCheats.sol","16":"lib/forge-std/src/StdError.sol","17":"lib/forge-std/src/StdInvariant.sol","18":"lib/forge-std/src/StdJson.sol","19":"lib/forge-std/src/StdMath.sol","20":"lib/forge-std/src/StdStorage.sol","21":"lib/forge-std/src/StdStyle.sol","22":"lib/forge-std/src/StdToml.sol","23":"lib/forge-std/src/StdUtils.sol","24":"lib/forge-std/src/Test.sol","25":"lib/forge-std/src/Vm.sol","26":"lib/forge-std/src/console.sol","27":"lib/forge-std/src/console2.sol","28":"lib/forge-std/src/interfaces/IERC165.sol","29":"lib/forge-std/src/interfaces/IERC20.sol","30":"lib/forge-std/src/interfaces/IERC721.sol","31":"lib/forge-std/src/interfaces/IMulticall3.sol","32":"lib/forge-std/src/mocks/MockERC20.sol","33":"lib/forge-std/src/mocks/MockERC721.sol","34":"lib/forge-std/src/safeconsole.sol","35":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","36":"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol","37":"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","38":"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","39":"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","40":"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol","41":"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","42":"lib/openzeppelin-contracts/contracts/proxy/Clones.sol","43":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","44":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","45":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","46":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","47":"lib/openzeppelin-contracts/contracts/utils/Address.sol","48":"lib/openzeppelin-contracts/contracts/utils/Context.sol","49":"lib/openzeppelin-contracts/contracts/utils/Create2.sol","50":"lib/openzeppelin-contracts/contracts/utils/Errors.sol","51":"lib/openzeppelin-contracts/contracts/utils/Panic.sol","52":"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol","53":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","54":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","55":"lib/openzeppelin-contracts/contracts/utils/Strings.sol","56":"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol","57":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","58":"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol","59":"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol","60":"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","61":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","62":"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","63":"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","64":"lib/openzeppelin-contracts/contracts/utils/structs/BitMaps.sol","65":"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol","66":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","67":"script/deploy/DeployAztecL1Contracts.s.sol","68":"script/deploy/DeployRollupForUpgrade.s.sol","69":"script/deploy/DeployRollupLib.sol","70":"script/deploy/DeploymentConfiguration.sol","71":"script/deploy/RollupConfiguration.sol","72":"src/core/Rollup.sol","73":"src/core/RollupCore.sol","74":"src/core/interfaces/IEscapeHatch.sol","75":"src/core/interfaces/IFeeJuicePortal.sol","76":"src/core/interfaces/IInstance.sol","77":"src/core/interfaces/IRollup.sol","78":"src/core/interfaces/ISlasher.sol","79":"src/core/interfaces/IStaking.sol","80":"src/core/interfaces/IValidatorSelection.sol","81":"src/core/interfaces/IVerifier.sol","82":"src/core/interfaces/messagebridge/IInbox.sol","83":"src/core/interfaces/messagebridge/IOutbox.sol","84":"src/core/libraries/ConstantsGen.sol","85":"src/core/libraries/DataStructures.sol","86":"src/core/libraries/Errors.sol","87":"src/core/libraries/HatchMath.sol","88":"src/core/libraries/SlashPayloadLib.sol","89":"src/core/libraries/SlashRoundLib.sol","90":"src/core/libraries/StakingQueue.sol","91":"src/core/libraries/TimeLib.sol","92":"src/core/libraries/compressed-data/CheckpointLog.sol","93":"src/core/libraries/compressed-data/StakingQueueConfig.sol","94":"src/core/libraries/compressed-data/Tips.sol","95":"src/core/libraries/compressed-data/fees/FeeConfig.sol","96":"src/core/libraries/compressed-data/fees/FeeStructs.sol","97":"src/core/libraries/crypto/FrontierLib.sol","98":"src/core/libraries/crypto/Hash.sol","99":"src/core/libraries/crypto/MerkleLib.sol","100":"src/core/libraries/crypto/SampleLib.sol","101":"src/core/libraries/rollup/AttestationLib.sol","102":"src/core/libraries/rollup/BlobLib.sol","103":"src/core/libraries/rollup/EmpireSlasherDeploymentExtLib.sol","104":"src/core/libraries/rollup/EpochProofLib.sol","105":"src/core/libraries/rollup/FeeLib.sol","106":"src/core/libraries/rollup/InvalidateLib.sol","107":"src/core/libraries/rollup/ProposeLib.sol","108":"src/core/libraries/rollup/ProposedHeaderLib.sol","109":"src/core/libraries/rollup/RewardExtLib.sol","110":"src/core/libraries/rollup/RewardLib.sol","111":"src/core/libraries/rollup/RollupOperationsExtLib.sol","112":"src/core/libraries/rollup/STFLib.sol","113":"src/core/libraries/rollup/StakingLib.sol","114":"src/core/libraries/rollup/TallySlasherDeploymentExtLib.sol","115":"src/core/libraries/rollup/ValidatorOperationsExtLib.sol","116":"src/core/libraries/rollup/ValidatorSelectionLib.sol","117":"src/core/messagebridge/FeeJuicePortal.sol","118":"src/core/messagebridge/Inbox.sol","119":"src/core/messagebridge/Outbox.sol","120":"src/core/reward-boost/RewardBooster.sol","121":"src/core/slashing/EmpireSlashingProposer.sol","122":"src/core/slashing/Slasher.sol","123":"src/core/slashing/TallySlashingProposer.sol","124":"src/governance/Bn254LibWrapper.sol","125":"src/governance/CoinIssuer.sol","126":"src/governance/GSE.sol","127":"src/governance/GSEPayload.sol","128":"src/governance/Governance.sol","129":"src/governance/Registry.sol","130":"src/governance/RewardDistributor.sol","131":"src/governance/interfaces/IBn254LibWrapper.sol","132":"src/governance/interfaces/ICoinIssuer.sol","133":"src/governance/interfaces/IEmpire.sol","134":"src/governance/interfaces/IGovernance.sol","135":"src/governance/interfaces/IGovernanceProposer.sol","136":"src/governance/interfaces/IPayload.sol","137":"src/governance/interfaces/IProposerPayload.sol","138":"src/governance/interfaces/IRegistry.sol","139":"src/governance/interfaces/IRewardDistributor.sol","140":"src/governance/libraries/AddressSnapshotLib.sol","141":"src/governance/libraries/CheckpointedUintLib.sol","142":"src/governance/libraries/ConfigurationLib.sol","143":"src/governance/libraries/DepositDelegationLib.sol","144":"src/governance/libraries/Errors.sol","145":"src/governance/libraries/ProposalLib.sol","146":"src/governance/libraries/compressed-data/Ballot.sol","147":"src/governance/libraries/compressed-data/Configuration.sol","148":"src/governance/libraries/compressed-data/Proposal.sol","149":"src/governance/proposer/EmpireBase.sol","150":"src/governance/proposer/GovernanceProposer.sol","151":"src/mock/FeeAssetHandler.sol","152":"src/mock/MockVerifier.sol","153":"src/mock/MultiAdder.sol","154":"src/mock/StakingAssetHandler.sol","155":"src/mock/TestERC20.sol","156":"src/mock/libraries/BlobLib.sol","157":"src/mock/staking_asset_handler/MockZKPassportVerifier.sol","158":"src/periphery/DateGatedRelayer.sol","159":"src/periphery/RegisterNewRollupVersionPayload.sol","160":"src/periphery/SlashFactory.sol","161":"src/periphery/SlashPayload.sol","162":"src/periphery/SlashPayloadCloneable.sol","163":"src/periphery/interfaces/IDateGatedRelayer.sol","164":"src/periphery/interfaces/ISlashFactory.sol","165":"src/shared/interfaces/IMintableERC20.sol","166":"src/shared/libraries/BN254Lib.sol","167":"src/shared/libraries/CompressedTimeMath.sol","168":"src/shared/libraries/SignatureLib.sol","169":"src/shared/libraries/TimeMath.sol","170":"test/script/DeployAztecL1Contracts.t.sol","171":"test/script/DeployRollupForUpgrade.t.sol","172":"test/shouting.t.sol"},"language":"Solidity"}
|