{"abi":[{"type":"constructor","inputs":[{"name":"endpoint","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"MAX_LEAVES","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"aggSeq","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"allowInitializePath","inputs":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"broadcast","inputs":[{"name":"targetEids","type":"uint32[]","internalType":"uint32[]"},{"name":"lzOptions","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"currentAggregationRoot","inputs":[],"outputs":[{"name":"aggregationRoot","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"eidToPosition","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"getTokenInfos","inputs":[],"outputs":[{"name":"infos","type":"tuple[]","internalType":"struct Hub.TokenInfo[]","components":[{"name":"chainId","type":"uint64","internalType":"uint64"},{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"verifier","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getTransferRootsAndIndices","inputs":[],"outputs":[{"name":"roots","type":"uint256[]","internalType":"uint256[]"},{"name":"treeIndices","type":"uint64[]","internalType":"uint64[]"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isComposeMsgSender","inputs":[{"name":"","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"nextNonce","inputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"quoteBroadcast","inputs":[{"name":"targetEids","type":"uint32[]","internalType":"uint32[]"},{"name":"lzOptions","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"totalNativeFee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"registerToken","inputs":[{"name":"info","type":"tuple","internalType":"struct Hub.TokenInfo","components":[{"name":"chainId","type":"uint64","internalType":"uint64"},{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"verifier","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"tokenInfos","inputs":[{"name":"index_","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"chainId","type":"uint64","internalType":"uint64"},{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"verifier","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferRoots","inputs":[{"name":"index_","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferTreeIndices","inputs":[{"name":"index_","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"updateToken","inputs":[{"name":"info","type":"tuple","internalType":"struct Hub.TokenInfo","components":[{"name":"chainId","type":"uint64","internalType":"uint64"},{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"verifier","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeTo","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"zeroHash","inputs":[{"name":"index_","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AggregationRootUpdated","inputs":[{"name":"root","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"aggSeq","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"transferRootsSnapshot","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"transferTreeIndicesSnapshot","type":"uint64[]","indexed":false,"internalType":"uint64[]"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"TokenRegistered","inputs":[{"name":"eid","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"index","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"chainId","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"token","type":"address","indexed":false,"internalType":"address"},{"name":"verifier","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenUpdated","inputs":[{"name":"eid","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"index","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"chainId","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"token","type":"address","indexed":false,"internalType":"address"},{"name":"verifier","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TransferRootUpdated","inputs":[{"name":"eid","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"index","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"newRoot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"EmptyTargetEids","inputs":[]},{"type":"error","name":"FeeRefundFailed","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"HubCapacityReached","inputs":[]},{"type":"error","name":"InvalidChainId","inputs":[]},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"InvalidPayloadLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LayerZeroTokenFeeUnsupported","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LzTokenUnavailable","inputs":[]},{"type":"error","name":"NativeFeeMismatch","inputs":[{"name":"provided","type":"uint256","internalType":"uint256"},{"name":"required","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"NotEnoughNative","inputs":[{"name":"msgValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyEndpoint","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"TokenAlreadyRegistered","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"TokenNotRegistered","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"ZeroToken","inputs":[]},{"type":"error","name":"ZeroVerifier","inputs":[]}],"bytecode":{"object":"0x60c06040523060a052348015610013575f5ffd5b5060405161382338038061382383398101604081905261003291610128565b6001600160a01b038116608081905261005e576040516307def60560e11b815260040160405180910390fd5b61006661006c565b50610155565b5f54610100900460ff16156100d75760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff90811614610126575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b5f60208284031215610138575f5ffd5b81516001600160a01b038116811461014e575f5ffd5b9392505050565b60805160a0516136676101bc5f395f8181610d6001528181610da001528181610e6201528181610ea20152610f3301525f8181610387015281816105fe0152818161155c015281816123d501528181612602015281816127d1015261288801526136675ff3fe6080604052600436106101c5575f3560e01c806362b32f58116100f25780638f84778d11610092578063ca5eb5e111610062578063ca5eb5e11461057d578063cab45f121461059c578063f2fde38b146105af578063ff7bd03d146105ce575f5ffd5b80638f84778d146104db578063bb0b6a53146104fa578063c0d03dd41461054a578063c4d66de81461055e575f5ffd5b80637d25a05e116100cd5780637d25a05e1461045157806382413eac146104705780638da5cb5b1461049f5780638e3a428e146104bc575f5ffd5b806362b32f58146103c1578063715018a6146103e05780637c13774b146103f4575f5ffd5b8063327a75d2116101685780634f1ef286116101385780634f1ef2861461031857806352d1902d1461032b578063534dc25e1461033f5780635e280f1114610376575f5ffd5b8063327a75d21461029c5780633400288b146102bb5780633659cfe6146102da57806341b4631e146102f9575f5ffd5b8063193695eb116101a3578063193695eb146102265780631a2595a9146102475780632ba8d07b1461025b5780632dd992be1461027d575f5ffd5b8063082febf0146101c957806313137d65146101f057806317442b7014610205575b5f5ffd5b3480156101d4575f5ffd5b506101dd6105ed565b6040519081526020015b60405180910390f35b6102036101fe366004612c1f565b6105fc565b005b348015610210575f5ffd5b50604080516001815260026020820152016101e7565b348015610231575f5ffd5b5061023a6106bc565b6040516101e79190612cb9565b348015610252575f5ffd5b506101dd6107e9565b348015610266575f5ffd5b5061026f6108d0565b6040516101e7929190612d3c565b348015610288575f5ffd5b506101dd610297366004612dd6565b610a23565b3480156102a7575f5ffd5b506102036102b6366004612df1565b610a4a565b3480156102c6575f5ffd5b506102036102d5366004612e0a565b610cd8565b3480156102e5575f5ffd5b506102036102f4366004612e34565b610d56565b348015610304575f5ffd5b506101dd610313366004612e4f565b610e33565b610203610326366004612eaa565b610e58565b348015610336575f5ffd5b506101dd610f27565b34801561034a575f5ffd5b5061035e610359366004612e4f565b610fd8565b6040516001600160401b0390911681526020016101e7565b348015610381575f5ffd5b506103a97f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101e7565b3480156103cc575f5ffd5b506102036103db366004612df1565b611023565b3480156103eb575f5ffd5b50610203611222565b3480156103ff575f5ffd5b5061041361040e366004612e4f565b611235565b604080516001600160401b03909516855263ffffffff90931660208501526001600160a01b03918216928401929092521660608201526080016101e7565b34801561045c575f5ffd5b5061035e61046b366004612e0a565b6112a5565b34801561047b575f5ffd5b5061048f61048a366004612f4f565b6112ad565b60405190151581526020016101e7565b3480156104aa575f5ffd5b506033546001600160a01b03166103a9565b3480156104c7575f5ffd5b506101dd6104d6366004612fb1565b6112c2565b3480156104e6575f5ffd5b506101dd6104f5366004612e4f565b6113c2565b348015610505575f5ffd5b506101dd610514366004612dd6565b63ffffffff165f9081527f72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900602052604090205490565b348015610555575f5ffd5b5061035e6113ed565b348015610569575f5ffd5b50610203610578366004612e34565b611408565b348015610588575f5ffd5b50610203610597366004612e34565b611535565b6102036105aa366004612fb1565b6115b6565b3480156105ba575f5ffd5b506102036105c9366004612e34565b611827565b3480156105d9575f5ffd5b5061048f6105e8366004613049565b61189d565b6105f96006600261315a565b81565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461064c576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b6020870180359061066690610661908a612dd6565b6118ba565b146106a4576106786020880188612dd6565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610643565b6106b38787878787878761191d565b50505050505050565b60605f6106c7611ae2565b6002810154909150806001600160401b038111156106e7576106e7612e66565b60405190808252806020026020018201604052801561073757816020015b604080516080810182525f8082526020808301829052928201819052606082015282525f199092019101816107055790505b5092505f5b818110156107e35782600201818154811061075957610759613165565b5f91825260209182902060408051608081018252600290930290910180546001600160401b038116845263ffffffff600160401b820416948401949094526001600160a01b03600160601b90940484169183019190915260010154909116606082015284518590839081106107d0576107d0613165565b602090810291909101015260010161073c565b50505090565b5f5f6107f3611ae2565b80549091505f816001600160401b0381111561081157610811612e66565b60405190808252806020026020018201604052801561083a578160200160208202803683370190505b5090505f5b8281101561088957835f01818154811061085b5761085b613165565b905f5260205f20015482828151811061087657610876613165565b602090810291909101015260010161083f565b506040805160e08101918290525f91600486019060079082845b8154815260200190600101908083116108a357505050505090506108c78282611b58565b94505050505090565b6060805f6108dc611ae2565b8054909150806001600160401b038111156108f9576108f9612e66565b604051908082528060200260200182016040528015610922578160200160208202803683370190505b509350806001600160401b0381111561093d5761093d612e66565b604051908082528060200260200182016040528015610966578160200160208202803683370190505b5092505f5b81811015610a1c57825f01818154811061098757610987613165565b905f5260205f2001548582815181106109a2576109a2613165565b6020026020010181815250508260010181815481106109c3576109c3613165565b905f5260205f2090600491828204019190066008029054906101000a90046001600160401b03168482815181106109fc576109fc613165565b6001600160401b039092166020928302919091019091015260010161096b565b5050509091565b5f610a2c611ae2565b63ffffffff9092165f90815260039290920160205250604090205490565b610a52611cc4565b5f610a636060830160408401612e34565b6001600160a01b031603610a8a57604051634a8bdce360e01b815260040160405180910390fd5b5f610a9b6080830160608401612e34565b6001600160a01b031603610ac25760405163ad1991f560e01b815260040160405180910390fd5b610acf602082018261318d565b6001600160401b03165f03610af757604051633d23e4d160e11b815260040160405180910390fd5b5f610b00611ae2565b9050600381015f610b176040850160208601612dd6565b63ffffffff16815260208101919091526040015f205415610b6457610b426040830160208401612dd6565b6040516303ac826d60e11b815263ffffffff9091166004820152602401610643565b610b706006600261315a565b815410610b905760405163aae9790560e01b815260040160405180910390fd5b8054600180820183555f83815260208082208401829055828501805480850182559083528183206004820401805460039092166008026101000a6001600160401b030219909116905560028086018054948501815583529120859290910201610bf982826131a8565b50610c079050816001613268565b600383015f610c1c6040870160208801612dd6565b63ffffffff1663ffffffff1681526020019081526020015f208190555080836020016020810190610c4d9190612dd6565b63ffffffff167f42fe6078ecf798fc0c6f4af46726da5c84c10a513e502b345ef1f709383485ff610c81602087018761318d565b610c916080880160608901612e34565b610ca16060890160408a01612e34565b604080516001600160401b0390941684526001600160a01b03928316602085015291169082015260600160405180910390a3505050565b610ce0611cc4565b63ffffffff82165f8181527f72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900602081815260409283902085905582519384528301849052815190927f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b92908290030190a1505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d9e5760405162461bcd60e51b81526004016106439061327b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610de65f5160206135eb5f395f51905f52546001600160a01b031690565b6001600160a01b031614610e0c5760405162461bcd60e51b8152600401610643906132c7565b610e1581611d1e565b604080515f80825260208201909252610e3091839190611d26565b50565b5f610e3c611ae2565b6004018260078110610e5057610e50613165565b015492915050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ea05760405162461bcd60e51b81526004016106439061327b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ee85f5160206135eb5f395f51905f52546001600160a01b031690565b6001600160a01b031614610f0e5760405162461bcd60e51b8152600401610643906132c7565b610f1782611d1e565b610f2382826001611d26565b5050565b5f306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610fc65760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610643565b505f5160206135eb5f395f51905f5290565b5f610fe1611ae2565b6001018281548110610ff557610ff5613165565b905f5260205f2090600491828204019190066008029054906101000a90046001600160401b03169050919050565b61102b611cc4565b5f61103c6060830160408401612e34565b6001600160a01b03160361106357604051634a8bdce360e01b815260040160405180910390fd5b5f6110746080830160608401612e34565b6001600160a01b03160361109b5760405163ad1991f560e01b815260040160405180910390fd5b6110a8602082018261318d565b6001600160401b03165f036110d057604051633d23e4d160e11b815260040160405180910390fd5b5f6110d9611ae2565b90505f60038201816110f16040860160208701612dd6565b63ffffffff1663ffffffff1681526020019081526020015f20549050805f03611146576111246040840160208501612dd6565b6040516395373a4d60e01b815263ffffffff9091166004820152602401610643565b5f611152600183613313565b90508383600201828154811061116a5761116a613165565b905f5260205f209060020201818161118291906131a8565b508190506111966040860160208701612dd6565b63ffffffff167ff254892b05ecf2fbbe2e66c39a4bebc6e86a32b0e7d4d0385643284e8fececaf6111ca602088018861318d565b6111da6080890160608a01612e34565b6111ea60608a0160408b01612e34565b604080516001600160401b0390941684526001600160a01b03928316602085015291169082015260600160405180910390a350505050565b61122a611cc4565b6112335f611e95565b565b5f5f5f5f5f611242611ae2565b600201868154811061125657611256613165565b5f918252602090912060029091020180546001909101546001600160401b03821698600160401b830463ffffffff169850600160601b9092046001600160a01b03908116975016945092505050565b5f5b92915050565b6001600160a01b03811630145b949350505050565b5f8381036112e357604051635e80705160e11b815260040160405180910390fd5b5f83838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052506040519495509361133c93508492506001915060200191825260ff16602082015260400190565b60408051601f1981840301815291905290506113b787878385826001600160401b0381111561136d5761136d612e66565b6040519080825280602002602001820160405280156113b157816020015b604080518082019091525f808252602082015281526020019060019003908161138b5790505b50611ee6565b979650505050505050565b5f6113cb611ae2565b8054839081106113dd576113dd613165565b905f5260205f2001549050919050565b5f6113f6611ae2565b600b01546001600160401b0316919050565b5f54610100900460ff161580801561142657505f54600160ff909116105b8061143f5750303b15801561143f57505f5460ff166001145b6114a25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610643565b5f805460ff1916600117905580156114c3575f805461ff0019166101001790555b6114cb611ff2565b6114d482612020565b6114dc61205b565b6114e4612081565b6114ed82611e95565b8015610f23575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b61153d611cc4565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b15801561159d575f5ffd5b505af11580156115af573d5f5f3e3d5ffd5b5050505050565b5f8390036115d757604051635e80705160e11b815260040160405180910390fd5b5f6115e06120fe565b90505f83838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525093945088925050506001600160401b0381111561163357611633612e66565b60405190808252806020026020018201604052801561167757816020015b604080518082019091525f80825260208201528152602001906001900390816116515790505b5090505f61168c888886608001518686611ee6565b9050803410156116b8576040516311681bff60e21b815234600482015260248101829052604401610643565b5f6116c38234613313565b905084606001516116d2611ae2565b600b01805467ffffffffffffffff19166001600160401b03929092169190911790555f5b888110156117575761174e8a8a8381811061171357611713613165565b90506020020160208101906117289190612dd6565b87608001518787858151811061174057611740613165565b6020026020010151336123a4565b506001016116f6565b5080156117c9576040515f90339083908381818185875af1925050503d805f811461179d576040519150601f19603f3d011682016040523d82523d5f602084013e6117a2565b606091505b50509050806117c75760405163c3b6177360e01b815260048101839052602401610643565b505b84606001516001600160401b031685604001517fc45d64a624f5ea943d296c2cc396d123da7acdc7e56cb5fa4790393f70b0857c875f01518860200151604051611814929190612d3c565b60405180910390a3505050505050505050565b61182f611cc4565b6001600160a01b0381166118945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610643565b610e3081611e95565b5f602082018035906118b3906105149085612dd6565b1492915050565b63ffffffff81165f9081527f72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f90060208190526040822054806119165760405163f6ff4fb760e01b815263ffffffff85166004820152602401610643565b9392505050565b5f611926611ae2565b90505f600382018161193b60208c018c612dd6565b63ffffffff1663ffffffff1681526020019081526020015f20549050805f0361196b5761112460208a018a612dd6565b6040861461198f57604051637b0ef91960e11b815260048101879052602401610643565b5f8061199d888a018a613326565b90925090505f6119ae600185613313565b90505f8560010182815481106119c6576119c6613165565b905f5260205f2090600491828204019190066008029054906101000a90046001600160401b03169050806001600160401b0316836001600160401b031611611a13575050505050506106b3565b83865f018381548110611a2857611a28613165565b905f5260205f20018190555082866001018381548110611a4a57611a4a613165565b905f5260205f2090600491828204019190066008026101000a8154816001600160401b0302191690836001600160401b03160217905550818d5f016020810190611a949190612dd6565b63ffffffff167f95cdbf55cd3d66022859359197d7a3fc03e1ce5507a81e5deaf336e518080ee986604051611acb91815260200190565b60405180910390a350505050505050505050505050565b6040805180820190915260128152713d32b93199181739ba37b930b3b297343ab160711b6020909101527f3e957a4e6127908366d866018eb39125d775b803bcb74b26a9d87a4f110f8bcb5f908152807facfc6fc065fbb01a310c13fd5991d94fb50bcd8a63ee4ce4897d543e9b5aed006112a7565b81515f90808203611b6f57505060c08101516112a7565b5f5b6001821115611c65575f6001611b878482613268565b901c90505f5b81811015611c5a575f87611ba2836002613354565b81518110611bb257611bb2613165565b602002602001015190505f85836002611bcb9190613354565b611bd6906001613268565b10611bf757878560078110611bed57611bed613165565b6020020151611c27565b88611c03846002613354565b611c0e906001613268565b81518110611c1e57611c1e613165565b60200260200101515b9050611c33828261249f565b898481518110611c4557611c45613165565b60209081029190910101525050600101611b8d565b509150600101611b71565b5f855f81518110611c7857611c78613165565b602002602001015190505f8290505b6006811015611cba57611cb082878360078110611ca657611ca6613165565b602002015161249f565b9150600101611c87565b5095945050505050565b6033546001600160a01b031633146112335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610643565b610e30611cc4565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611d5e57611d5983612528565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611db8575060408051601f3d908101601f19168201909252611db59181019061336b565b60015b611e1b5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610643565b5f5160206135eb5f395f51905f528114611e895760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610643565b50611d598383836125c3565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f5f611ef0611ae2565b9050855f5b81811015611fe6575f898983818110611f1057611f10613165565b9050602002016020810190611f259190612dd6565b63ffffffff81165f90815260038601602052604081205491925003611f65576040516395373a4d60e01b815263ffffffff82166004820152602401610643565b5f611f72828a8a5f6125ed565b905080602001515f14611fad57602081015160405163df001b1d60e01b815263ffffffff841660048201526024810191909152604401610643565b80878481518110611fc057611fc0613165565b60209081029190910101528051611fd79087613268565b95505050806001019050611ef5565b50505095945050505050565b5f54610100900460ff166120185760405162461bcd60e51b815260040161064390613382565b6112336126cb565b5f54610100900460ff166120465760405162461bcd60e51b815260040161064390613382565b61204f816126fa565b61205761205b565b610e305b5f54610100900460ff166112335760405162461bcd60e51b815260040161064390613382565b5f54610100900460ff166120a75760405162461bcd60e51b815260040161064390613382565b5f6120b0611ae2565b90505f6120bb612729565b90505f5b6007811015611d59578181600781106120da576120da613165565b60200201518360040182600781106120f4576120f4613165565b01556001016120bf565b6121376040518060a0016040528060608152602001606081526020015f81526020015f6001600160401b03168152602001606081525090565b5f612140611ae2565b8054909150806001600160401b0381111561215d5761215d612e66565b604051908082528060200260200182016040528015612186578160200160208202803683370190505b508352806001600160401b038111156121a1576121a1612e66565b6040519080825280602002602001820160405280156121ca578160200160208202803683370190505b5060208401525f816001600160401b038111156121e9576121e9612e66565b604051908082528060200260200182016040528015612212578160200160208202803683370190505b5090505f5b828110156122f3575f845f01828154811061223457612234613165565b905f5260205f200154905080865f0151838151811061225557612255613165565b6020026020010181815250508083838151811061227457612274613165565b60200260200101818152505084600101828154811061229557612295613165565b905f5260205f2090600491828204019190066008029054906101000a90046001600160401b0316866020015183815181106122d2576122d2613165565b6001600160401b039092166020928302919091019091015250600101612217565b506040805160e08101918290525f91600486019060079082845b81548152602001906001019080831161230d57505050505090506123318282611b58565b6040860152600b84015461234f906001600160401b031660016133cd565b6001600160401b031660608601819052604080870151905161238692906020019182526001600160401b0316602082015260400190565b60405160208183030381529060405285608001819052505050505090565b6123ac612b35565b5f6123b9845f01516127aa565b6020850151909150156123d3576123d384602001516127ce565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016124238c6118ba565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b815260040161245e92919061341a565b60806040518083038185885af115801561247a573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906113b791906134de565b5f6124a8612b75565b83815260208101839052604051632b0aac7f60e11b815273__$a2daaad8940c9006af3f1557205ebe532d$__9063561558fe906124e9908490600401613545565b602060405180830381865af4158015612504573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ba919061336b565b6001600160a01b0381163b6125955760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610643565b5f5160206135eb5f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b6125cc836128ad565b5f825111806125d85750805b15611d59576125e783836128ec565b50505050565b604080518082019091525f80825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff16815260200161264f896118ba565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b815260040161268492919061341a565b6040805180830381865afa15801561269e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126c29190613575565b95945050505050565b5f54610100900460ff166126f15760405162461bcd60e51b815260040161064390613382565b61123333611e95565b5f54610100900460ff166127205760405162461bcd60e51b815260040161064390613382565b610e3081612911565b612731612b93565b5f815260015b600681116127a65761277f8261274e600184613313565b6007811061275e5761275e613165565b60200201518361276f600185613313565b60078110611ca657611ca6613165565b82826007811061279157612791613165565b602002015261279f8161358f565b9050612737565b5090565b5f813410156127a6576040516304fb820960e51b8152346004820152602401610643565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa15801561282b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061284f91906135a7565b90506001600160a01b038116612878576040516329b99a9560e11b815260040160405180910390fd5b610f236001600160a01b038216337f00000000000000000000000000000000000000000000000000000000000000008561295e565b6128b681612528565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060611916838360405180606001604052806027815260200161360b602791396129b8565b5f54610100900460ff166129375760405162461bcd60e51b815260040161064390613382565b6001600160a01b03811661153d57604051632d618d8160e21b815260040160405180910390fd5b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526125e7908590612a2c565b60605f5f856001600160a01b0316856040516129d491906135c2565b5f60405180830381855af49150503d805f8114612a0c576040519150601f19603f3d011682016040523d82523d5f602084013e612a11565b606091505b5091509150612a2286838387612a98565b9695505050505050565b5f5f60205f8451602086015f885af180612a4b576040513d5f823e3d81fd5b50505f513d91508115612a62578060011415612a6f565b6001600160a01b0384163b155b156125e757604051635274afe760e01b81526001600160a01b0385166004820152602401610643565b60608315612b065782515f03612aff576001600160a01b0385163b612aff5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610643565b50816112ba565b6112ba8383815115612b1b5781518083602001fd5b8060405162461bcd60e51b815260040161064391906135d8565b60405180606001604052805f81526020015f6001600160401b03168152602001612b7060405180604001604052805f81526020015f81525090565b905290565b60405180604001604052806002906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b5f60608284031215612bc1575f5ffd5b50919050565b5f5f83601f840112612bd7575f5ffd5b5081356001600160401b03811115612bed575f5ffd5b602083019150836020828501011115612c04575f5ffd5b9250929050565b6001600160a01b0381168114610e30575f5ffd5b5f5f5f5f5f5f5f60e0888a031215612c35575f5ffd5b612c3f8989612bb1565b96506060880135955060808801356001600160401b03811115612c60575f5ffd5b612c6c8a828b01612bc7565b90965094505060a0880135612c8081612c0b565b925060c08801356001600160401b03811115612c9a575f5ffd5b612ca68a828b01612bc7565b989b979a50959850939692959293505050565b602080825282518282018190525f918401906040840190835b81811015612d3157835180516001600160401b0316845260208082015163ffffffff16818601526040808301516001600160a01b0390811691870191909152606092830151169185019190915290930192608090920191600101612cd2565b509095945050505050565b604080825283519082018190525f9060208501906060840190835b81811015612d75578351835260209384019390920191600101612d57565b5050838103602080860191909152855180835291810192508501905f5b81811015612db95782516001600160401b0316845260209384019390920191600101612d92565b50919695505050505050565b63ffffffff81168114610e30575f5ffd5b5f60208284031215612de6575f5ffd5b813561191681612dc5565b5f6080828403128015612e02575f5ffd5b509092915050565b5f5f60408385031215612e1b575f5ffd5b8235612e2681612dc5565b946020939093013593505050565b5f60208284031215612e44575f5ffd5b813561191681612c0b565b5f60208284031215612e5f575f5ffd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715612ea257612ea2612e66565b604052919050565b5f5f60408385031215612ebb575f5ffd5b8235612ec681612c0b565b915060208301356001600160401b03811115612ee0575f5ffd5b8301601f81018513612ef0575f5ffd5b80356001600160401b03811115612f0957612f09612e66565b612f1c601f8201601f1916602001612e7a565b818152866020838501011115612f30575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f5f5f5f60a08587031215612f62575f5ffd5b612f6c8686612bb1565b935060608501356001600160401b03811115612f86575f5ffd5b612f9287828801612bc7565b9094509250506080850135612fa681612c0b565b939692955090935050565b5f5f5f5f60408587031215612fc4575f5ffd5b84356001600160401b03811115612fd9575f5ffd5b8501601f81018713612fe9575f5ffd5b80356001600160401b03811115612ffe575f5ffd5b8760208260051b8401011115613012575f5ffd5b6020918201955093508501356001600160401b03811115613031575f5ffd5b61303d87828801612bc7565b95989497509550505050565b5f60608284031215613059575f5ffd5b6119168383612bb1565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156130b25780850481111561309657613096613063565b60018416156130a457908102905b60019390931c92800261307b565b935093915050565b5f826130c8575060016112a7565b816130d457505f6112a7565b81600181146130ea57600281146130f457613110565b60019150506112a7565b60ff84111561310557613105613063565b50506001821b6112a7565b5060208310610133831016604e8410600b8410161715613133575081810a6112a7565b61313f5f198484613077565b805f190482111561315257613152613063565b029392505050565b5f61191683836130ba565b634e487b7160e01b5f52603260045260245ffd5b6001600160401b0381168114610e30575f5ffd5b5f6020828403121561319d575f5ffd5b813561191681613179565b81356131b381613179565b6001600160401b03811690508154816001600160401b0319821617835560208401356131de81612dc5565b6bffffffff00000000000000008160401b16905080836bffffffffffffffffffffffff198416171784556040850135915061321882612c0b565b909117606091821b6bffffffffffffffffffffffff19161782555f9083013561324081612c0b565b60019290920180546001600160a01b0319166001600160a01b03909316929092179091555050565b808201808211156112a7576112a7613063565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b818103818111156112a7576112a7613063565b5f5f60408385031215613337575f5ffd5b82359150602083013561334981613179565b809150509250929050565b80820281158282048414176112a7576112a7613063565b5f6020828403121561337b575f5ffd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160401b0381811683821601908111156112a7576112a7613063565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261344f60e08401826133ec565b90506060850151603f198483030160a085015261346c82826133ec565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b5f604082840312156134a2575f5ffd5b604080519081016001600160401b03811182821017156134c4576134c4612e66565b604052825181526020928301519281019290925250919050565b5f60808284031280156134ef575f5ffd5b50604051606081016001600160401b038111828210171561351257613512612e66565b60405282518152602083015161352781613179565b60208201526135398460408501613492565b60408201529392505050565b6040810181835f5b600281101561356c57815183526020928301929091019060010161354d565b50505092915050565b5f60408284031215613585575f5ffd5b6119168383613492565b5f600182016135a0576135a0613063565b5060010190565b5f602082840312156135b7575f5ffd5b815161191681612c0b565b5f82518060208501845e5f920191825250919050565b602081525f61191660208301846133ec56fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206e892074aa352c6aa0b26f60dbba1648a75394e61ff89eb07c64b4d81a92620964736f6c634300081e0033","sourceMap":"1046:14141:98:-:0;;;1198:4:62;1155:48;;3916:161:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1307:42:15;;;;;;3982:56:98::1;;4017:21;;-1:-1:-1::0;;;4017:21:98::1;;;;;;;;;;;3982:56;4048:22;:20;:22::i;:::-;3916:161:::0;1046:14141;;5939:280:61;6007:13;;;;;;;6006:14;5998:66;;;;-1:-1:-1;;;5998:66:61;;511:2:124;5998:66:61;;;493:21:124;550:2;530:18;;;523:30;589:34;569:18;;;562:62;-1:-1:-1;;;640:18:124;;;633:37;687:19;;5998:66:61;;;;;;;;6078:12;;6094:15;6078:12;;;:31;6074:139;;6125:12;:30;;-1:-1:-1;;6125:30:61;6140:15;6125:30;;;;;;6174:28;;859:36:124;;;6174:28:61;;847:2:124;832:18;6174:28:61;;;;;;;6074:139;5939:280::o;14:290:124:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:124;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:124:o;717:184::-;1046:14141:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"lib/poseidon-solidity/contracts/PoseidonT3.sol":{"PoseidonT3":[{"start":9853,"length":20}]}}},"deployedBytecode":{"object":"0x6080604052600436106101c5575f3560e01c806362b32f58116100f25780638f84778d11610092578063ca5eb5e111610062578063ca5eb5e11461057d578063cab45f121461059c578063f2fde38b146105af578063ff7bd03d146105ce575f5ffd5b80638f84778d146104db578063bb0b6a53146104fa578063c0d03dd41461054a578063c4d66de81461055e575f5ffd5b80637d25a05e116100cd5780637d25a05e1461045157806382413eac146104705780638da5cb5b1461049f5780638e3a428e146104bc575f5ffd5b806362b32f58146103c1578063715018a6146103e05780637c13774b146103f4575f5ffd5b8063327a75d2116101685780634f1ef286116101385780634f1ef2861461031857806352d1902d1461032b578063534dc25e1461033f5780635e280f1114610376575f5ffd5b8063327a75d21461029c5780633400288b146102bb5780633659cfe6146102da57806341b4631e146102f9575f5ffd5b8063193695eb116101a3578063193695eb146102265780631a2595a9146102475780632ba8d07b1461025b5780632dd992be1461027d575f5ffd5b8063082febf0146101c957806313137d65146101f057806317442b7014610205575b5f5ffd5b3480156101d4575f5ffd5b506101dd6105ed565b6040519081526020015b60405180910390f35b6102036101fe366004612c1f565b6105fc565b005b348015610210575f5ffd5b50604080516001815260026020820152016101e7565b348015610231575f5ffd5b5061023a6106bc565b6040516101e79190612cb9565b348015610252575f5ffd5b506101dd6107e9565b348015610266575f5ffd5b5061026f6108d0565b6040516101e7929190612d3c565b348015610288575f5ffd5b506101dd610297366004612dd6565b610a23565b3480156102a7575f5ffd5b506102036102b6366004612df1565b610a4a565b3480156102c6575f5ffd5b506102036102d5366004612e0a565b610cd8565b3480156102e5575f5ffd5b506102036102f4366004612e34565b610d56565b348015610304575f5ffd5b506101dd610313366004612e4f565b610e33565b610203610326366004612eaa565b610e58565b348015610336575f5ffd5b506101dd610f27565b34801561034a575f5ffd5b5061035e610359366004612e4f565b610fd8565b6040516001600160401b0390911681526020016101e7565b348015610381575f5ffd5b506103a97f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101e7565b3480156103cc575f5ffd5b506102036103db366004612df1565b611023565b3480156103eb575f5ffd5b50610203611222565b3480156103ff575f5ffd5b5061041361040e366004612e4f565b611235565b604080516001600160401b03909516855263ffffffff90931660208501526001600160a01b03918216928401929092521660608201526080016101e7565b34801561045c575f5ffd5b5061035e61046b366004612e0a565b6112a5565b34801561047b575f5ffd5b5061048f61048a366004612f4f565b6112ad565b60405190151581526020016101e7565b3480156104aa575f5ffd5b506033546001600160a01b03166103a9565b3480156104c7575f5ffd5b506101dd6104d6366004612fb1565b6112c2565b3480156104e6575f5ffd5b506101dd6104f5366004612e4f565b6113c2565b348015610505575f5ffd5b506101dd610514366004612dd6565b63ffffffff165f9081527f72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900602052604090205490565b348015610555575f5ffd5b5061035e6113ed565b348015610569575f5ffd5b50610203610578366004612e34565b611408565b348015610588575f5ffd5b50610203610597366004612e34565b611535565b6102036105aa366004612fb1565b6115b6565b3480156105ba575f5ffd5b506102036105c9366004612e34565b611827565b3480156105d9575f5ffd5b5061048f6105e8366004613049565b61189d565b6105f96006600261315a565b81565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461064c576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b6020870180359061066690610661908a612dd6565b6118ba565b146106a4576106786020880188612dd6565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610643565b6106b38787878787878761191d565b50505050505050565b60605f6106c7611ae2565b6002810154909150806001600160401b038111156106e7576106e7612e66565b60405190808252806020026020018201604052801561073757816020015b604080516080810182525f8082526020808301829052928201819052606082015282525f199092019101816107055790505b5092505f5b818110156107e35782600201818154811061075957610759613165565b5f91825260209182902060408051608081018252600290930290910180546001600160401b038116845263ffffffff600160401b820416948401949094526001600160a01b03600160601b90940484169183019190915260010154909116606082015284518590839081106107d0576107d0613165565b602090810291909101015260010161073c565b50505090565b5f5f6107f3611ae2565b80549091505f816001600160401b0381111561081157610811612e66565b60405190808252806020026020018201604052801561083a578160200160208202803683370190505b5090505f5b8281101561088957835f01818154811061085b5761085b613165565b905f5260205f20015482828151811061087657610876613165565b602090810291909101015260010161083f565b506040805160e08101918290525f91600486019060079082845b8154815260200190600101908083116108a357505050505090506108c78282611b58565b94505050505090565b6060805f6108dc611ae2565b8054909150806001600160401b038111156108f9576108f9612e66565b604051908082528060200260200182016040528015610922578160200160208202803683370190505b509350806001600160401b0381111561093d5761093d612e66565b604051908082528060200260200182016040528015610966578160200160208202803683370190505b5092505f5b81811015610a1c57825f01818154811061098757610987613165565b905f5260205f2001548582815181106109a2576109a2613165565b6020026020010181815250508260010181815481106109c3576109c3613165565b905f5260205f2090600491828204019190066008029054906101000a90046001600160401b03168482815181106109fc576109fc613165565b6001600160401b039092166020928302919091019091015260010161096b565b5050509091565b5f610a2c611ae2565b63ffffffff9092165f90815260039290920160205250604090205490565b610a52611cc4565b5f610a636060830160408401612e34565b6001600160a01b031603610a8a57604051634a8bdce360e01b815260040160405180910390fd5b5f610a9b6080830160608401612e34565b6001600160a01b031603610ac25760405163ad1991f560e01b815260040160405180910390fd5b610acf602082018261318d565b6001600160401b03165f03610af757604051633d23e4d160e11b815260040160405180910390fd5b5f610b00611ae2565b9050600381015f610b176040850160208601612dd6565b63ffffffff16815260208101919091526040015f205415610b6457610b426040830160208401612dd6565b6040516303ac826d60e11b815263ffffffff9091166004820152602401610643565b610b706006600261315a565b815410610b905760405163aae9790560e01b815260040160405180910390fd5b8054600180820183555f83815260208082208401829055828501805480850182559083528183206004820401805460039092166008026101000a6001600160401b030219909116905560028086018054948501815583529120859290910201610bf982826131a8565b50610c079050816001613268565b600383015f610c1c6040870160208801612dd6565b63ffffffff1663ffffffff1681526020019081526020015f208190555080836020016020810190610c4d9190612dd6565b63ffffffff167f42fe6078ecf798fc0c6f4af46726da5c84c10a513e502b345ef1f709383485ff610c81602087018761318d565b610c916080880160608901612e34565b610ca16060890160408a01612e34565b604080516001600160401b0390941684526001600160a01b03928316602085015291169082015260600160405180910390a3505050565b610ce0611cc4565b63ffffffff82165f8181527f72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900602081815260409283902085905582519384528301849052815190927f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b92908290030190a1505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d9e5760405162461bcd60e51b81526004016106439061327b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610de65f5160206135eb5f395f51905f52546001600160a01b031690565b6001600160a01b031614610e0c5760405162461bcd60e51b8152600401610643906132c7565b610e1581611d1e565b604080515f80825260208201909252610e3091839190611d26565b50565b5f610e3c611ae2565b6004018260078110610e5057610e50613165565b015492915050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ea05760405162461bcd60e51b81526004016106439061327b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ee85f5160206135eb5f395f51905f52546001600160a01b031690565b6001600160a01b031614610f0e5760405162461bcd60e51b8152600401610643906132c7565b610f1782611d1e565b610f2382826001611d26565b5050565b5f306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610fc65760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610643565b505f5160206135eb5f395f51905f5290565b5f610fe1611ae2565b6001018281548110610ff557610ff5613165565b905f5260205f2090600491828204019190066008029054906101000a90046001600160401b03169050919050565b61102b611cc4565b5f61103c6060830160408401612e34565b6001600160a01b03160361106357604051634a8bdce360e01b815260040160405180910390fd5b5f6110746080830160608401612e34565b6001600160a01b03160361109b5760405163ad1991f560e01b815260040160405180910390fd5b6110a8602082018261318d565b6001600160401b03165f036110d057604051633d23e4d160e11b815260040160405180910390fd5b5f6110d9611ae2565b90505f60038201816110f16040860160208701612dd6565b63ffffffff1663ffffffff1681526020019081526020015f20549050805f03611146576111246040840160208501612dd6565b6040516395373a4d60e01b815263ffffffff9091166004820152602401610643565b5f611152600183613313565b90508383600201828154811061116a5761116a613165565b905f5260205f209060020201818161118291906131a8565b508190506111966040860160208701612dd6565b63ffffffff167ff254892b05ecf2fbbe2e66c39a4bebc6e86a32b0e7d4d0385643284e8fececaf6111ca602088018861318d565b6111da6080890160608a01612e34565b6111ea60608a0160408b01612e34565b604080516001600160401b0390941684526001600160a01b03928316602085015291169082015260600160405180910390a350505050565b61122a611cc4565b6112335f611e95565b565b5f5f5f5f5f611242611ae2565b600201868154811061125657611256613165565b5f918252602090912060029091020180546001909101546001600160401b03821698600160401b830463ffffffff169850600160601b9092046001600160a01b03908116975016945092505050565b5f5b92915050565b6001600160a01b03811630145b949350505050565b5f8381036112e357604051635e80705160e11b815260040160405180910390fd5b5f83838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052506040519495509361133c93508492506001915060200191825260ff16602082015260400190565b60408051601f1981840301815291905290506113b787878385826001600160401b0381111561136d5761136d612e66565b6040519080825280602002602001820160405280156113b157816020015b604080518082019091525f808252602082015281526020019060019003908161138b5790505b50611ee6565b979650505050505050565b5f6113cb611ae2565b8054839081106113dd576113dd613165565b905f5260205f2001549050919050565b5f6113f6611ae2565b600b01546001600160401b0316919050565b5f54610100900460ff161580801561142657505f54600160ff909116105b8061143f5750303b15801561143f57505f5460ff166001145b6114a25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610643565b5f805460ff1916600117905580156114c3575f805461ff0019166101001790555b6114cb611ff2565b6114d482612020565b6114dc61205b565b6114e4612081565b6114ed82611e95565b8015610f23575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b61153d611cc4565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b15801561159d575f5ffd5b505af11580156115af573d5f5f3e3d5ffd5b5050505050565b5f8390036115d757604051635e80705160e11b815260040160405180910390fd5b5f6115e06120fe565b90505f83838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525093945088925050506001600160401b0381111561163357611633612e66565b60405190808252806020026020018201604052801561167757816020015b604080518082019091525f80825260208201528152602001906001900390816116515790505b5090505f61168c888886608001518686611ee6565b9050803410156116b8576040516311681bff60e21b815234600482015260248101829052604401610643565b5f6116c38234613313565b905084606001516116d2611ae2565b600b01805467ffffffffffffffff19166001600160401b03929092169190911790555f5b888110156117575761174e8a8a8381811061171357611713613165565b90506020020160208101906117289190612dd6565b87608001518787858151811061174057611740613165565b6020026020010151336123a4565b506001016116f6565b5080156117c9576040515f90339083908381818185875af1925050503d805f811461179d576040519150601f19603f3d011682016040523d82523d5f602084013e6117a2565b606091505b50509050806117c75760405163c3b6177360e01b815260048101839052602401610643565b505b84606001516001600160401b031685604001517fc45d64a624f5ea943d296c2cc396d123da7acdc7e56cb5fa4790393f70b0857c875f01518860200151604051611814929190612d3c565b60405180910390a3505050505050505050565b61182f611cc4565b6001600160a01b0381166118945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610643565b610e3081611e95565b5f602082018035906118b3906105149085612dd6565b1492915050565b63ffffffff81165f9081527f72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f90060208190526040822054806119165760405163f6ff4fb760e01b815263ffffffff85166004820152602401610643565b9392505050565b5f611926611ae2565b90505f600382018161193b60208c018c612dd6565b63ffffffff1663ffffffff1681526020019081526020015f20549050805f0361196b5761112460208a018a612dd6565b6040861461198f57604051637b0ef91960e11b815260048101879052602401610643565b5f8061199d888a018a613326565b90925090505f6119ae600185613313565b90505f8560010182815481106119c6576119c6613165565b905f5260205f2090600491828204019190066008029054906101000a90046001600160401b03169050806001600160401b0316836001600160401b031611611a13575050505050506106b3565b83865f018381548110611a2857611a28613165565b905f5260205f20018190555082866001018381548110611a4a57611a4a613165565b905f5260205f2090600491828204019190066008026101000a8154816001600160401b0302191690836001600160401b03160217905550818d5f016020810190611a949190612dd6565b63ffffffff167f95cdbf55cd3d66022859359197d7a3fc03e1ce5507a81e5deaf336e518080ee986604051611acb91815260200190565b60405180910390a350505050505050505050505050565b6040805180820190915260128152713d32b93199181739ba37b930b3b297343ab160711b6020909101527f3e957a4e6127908366d866018eb39125d775b803bcb74b26a9d87a4f110f8bcb5f908152807facfc6fc065fbb01a310c13fd5991d94fb50bcd8a63ee4ce4897d543e9b5aed006112a7565b81515f90808203611b6f57505060c08101516112a7565b5f5b6001821115611c65575f6001611b878482613268565b901c90505f5b81811015611c5a575f87611ba2836002613354565b81518110611bb257611bb2613165565b602002602001015190505f85836002611bcb9190613354565b611bd6906001613268565b10611bf757878560078110611bed57611bed613165565b6020020151611c27565b88611c03846002613354565b611c0e906001613268565b81518110611c1e57611c1e613165565b60200260200101515b9050611c33828261249f565b898481518110611c4557611c45613165565b60209081029190910101525050600101611b8d565b509150600101611b71565b5f855f81518110611c7857611c78613165565b602002602001015190505f8290505b6006811015611cba57611cb082878360078110611ca657611ca6613165565b602002015161249f565b9150600101611c87565b5095945050505050565b6033546001600160a01b031633146112335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610643565b610e30611cc4565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611d5e57611d5983612528565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611db8575060408051601f3d908101601f19168201909252611db59181019061336b565b60015b611e1b5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610643565b5f5160206135eb5f395f51905f528114611e895760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610643565b50611d598383836125c3565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f5f611ef0611ae2565b9050855f5b81811015611fe6575f898983818110611f1057611f10613165565b9050602002016020810190611f259190612dd6565b63ffffffff81165f90815260038601602052604081205491925003611f65576040516395373a4d60e01b815263ffffffff82166004820152602401610643565b5f611f72828a8a5f6125ed565b905080602001515f14611fad57602081015160405163df001b1d60e01b815263ffffffff841660048201526024810191909152604401610643565b80878481518110611fc057611fc0613165565b60209081029190910101528051611fd79087613268565b95505050806001019050611ef5565b50505095945050505050565b5f54610100900460ff166120185760405162461bcd60e51b815260040161064390613382565b6112336126cb565b5f54610100900460ff166120465760405162461bcd60e51b815260040161064390613382565b61204f816126fa565b61205761205b565b610e305b5f54610100900460ff166112335760405162461bcd60e51b815260040161064390613382565b5f54610100900460ff166120a75760405162461bcd60e51b815260040161064390613382565b5f6120b0611ae2565b90505f6120bb612729565b90505f5b6007811015611d59578181600781106120da576120da613165565b60200201518360040182600781106120f4576120f4613165565b01556001016120bf565b6121376040518060a0016040528060608152602001606081526020015f81526020015f6001600160401b03168152602001606081525090565b5f612140611ae2565b8054909150806001600160401b0381111561215d5761215d612e66565b604051908082528060200260200182016040528015612186578160200160208202803683370190505b508352806001600160401b038111156121a1576121a1612e66565b6040519080825280602002602001820160405280156121ca578160200160208202803683370190505b5060208401525f816001600160401b038111156121e9576121e9612e66565b604051908082528060200260200182016040528015612212578160200160208202803683370190505b5090505f5b828110156122f3575f845f01828154811061223457612234613165565b905f5260205f200154905080865f0151838151811061225557612255613165565b6020026020010181815250508083838151811061227457612274613165565b60200260200101818152505084600101828154811061229557612295613165565b905f5260205f2090600491828204019190066008029054906101000a90046001600160401b0316866020015183815181106122d2576122d2613165565b6001600160401b039092166020928302919091019091015250600101612217565b506040805160e08101918290525f91600486019060079082845b81548152602001906001019080831161230d57505050505090506123318282611b58565b6040860152600b84015461234f906001600160401b031660016133cd565b6001600160401b031660608601819052604080870151905161238692906020019182526001600160401b0316602082015260400190565b60405160208183030381529060405285608001819052505050505090565b6123ac612b35565b5f6123b9845f01516127aa565b6020850151909150156123d3576123d384602001516127ce565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016124238c6118ba565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b815260040161245e92919061341a565b60806040518083038185885af115801561247a573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906113b791906134de565b5f6124a8612b75565b83815260208101839052604051632b0aac7f60e11b815273__$a2daaad8940c9006af3f1557205ebe532d$__9063561558fe906124e9908490600401613545565b602060405180830381865af4158015612504573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ba919061336b565b6001600160a01b0381163b6125955760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610643565b5f5160206135eb5f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b6125cc836128ad565b5f825111806125d85750805b15611d59576125e783836128ec565b50505050565b604080518082019091525f80825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff16815260200161264f896118ba565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b815260040161268492919061341a565b6040805180830381865afa15801561269e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126c29190613575565b95945050505050565b5f54610100900460ff166126f15760405162461bcd60e51b815260040161064390613382565b61123333611e95565b5f54610100900460ff166127205760405162461bcd60e51b815260040161064390613382565b610e3081612911565b612731612b93565b5f815260015b600681116127a65761277f8261274e600184613313565b6007811061275e5761275e613165565b60200201518361276f600185613313565b60078110611ca657611ca6613165565b82826007811061279157612791613165565b602002015261279f8161358f565b9050612737565b5090565b5f813410156127a6576040516304fb820960e51b8152346004820152602401610643565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa15801561282b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061284f91906135a7565b90506001600160a01b038116612878576040516329b99a9560e11b815260040160405180910390fd5b610f236001600160a01b038216337f00000000000000000000000000000000000000000000000000000000000000008561295e565b6128b681612528565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060611916838360405180606001604052806027815260200161360b602791396129b8565b5f54610100900460ff166129375760405162461bcd60e51b815260040161064390613382565b6001600160a01b03811661153d57604051632d618d8160e21b815260040160405180910390fd5b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526125e7908590612a2c565b60605f5f856001600160a01b0316856040516129d491906135c2565b5f60405180830381855af49150503d805f8114612a0c576040519150601f19603f3d011682016040523d82523d5f602084013e612a11565b606091505b5091509150612a2286838387612a98565b9695505050505050565b5f5f60205f8451602086015f885af180612a4b576040513d5f823e3d81fd5b50505f513d91508115612a62578060011415612a6f565b6001600160a01b0384163b155b156125e757604051635274afe760e01b81526001600160a01b0385166004820152602401610643565b60608315612b065782515f03612aff576001600160a01b0385163b612aff5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610643565b50816112ba565b6112ba8383815115612b1b5781518083602001fd5b8060405162461bcd60e51b815260040161064391906135d8565b60405180606001604052805f81526020015f6001600160401b03168152602001612b7060405180604001604052805f81526020015f81525090565b905290565b60405180604001604052806002906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b5f60608284031215612bc1575f5ffd5b50919050565b5f5f83601f840112612bd7575f5ffd5b5081356001600160401b03811115612bed575f5ffd5b602083019150836020828501011115612c04575f5ffd5b9250929050565b6001600160a01b0381168114610e30575f5ffd5b5f5f5f5f5f5f5f60e0888a031215612c35575f5ffd5b612c3f8989612bb1565b96506060880135955060808801356001600160401b03811115612c60575f5ffd5b612c6c8a828b01612bc7565b90965094505060a0880135612c8081612c0b565b925060c08801356001600160401b03811115612c9a575f5ffd5b612ca68a828b01612bc7565b989b979a50959850939692959293505050565b602080825282518282018190525f918401906040840190835b81811015612d3157835180516001600160401b0316845260208082015163ffffffff16818601526040808301516001600160a01b0390811691870191909152606092830151169185019190915290930192608090920191600101612cd2565b509095945050505050565b604080825283519082018190525f9060208501906060840190835b81811015612d75578351835260209384019390920191600101612d57565b5050838103602080860191909152855180835291810192508501905f5b81811015612db95782516001600160401b0316845260209384019390920191600101612d92565b50919695505050505050565b63ffffffff81168114610e30575f5ffd5b5f60208284031215612de6575f5ffd5b813561191681612dc5565b5f6080828403128015612e02575f5ffd5b509092915050565b5f5f60408385031215612e1b575f5ffd5b8235612e2681612dc5565b946020939093013593505050565b5f60208284031215612e44575f5ffd5b813561191681612c0b565b5f60208284031215612e5f575f5ffd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715612ea257612ea2612e66565b604052919050565b5f5f60408385031215612ebb575f5ffd5b8235612ec681612c0b565b915060208301356001600160401b03811115612ee0575f5ffd5b8301601f81018513612ef0575f5ffd5b80356001600160401b03811115612f0957612f09612e66565b612f1c601f8201601f1916602001612e7a565b818152866020838501011115612f30575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f5f5f5f60a08587031215612f62575f5ffd5b612f6c8686612bb1565b935060608501356001600160401b03811115612f86575f5ffd5b612f9287828801612bc7565b9094509250506080850135612fa681612c0b565b939692955090935050565b5f5f5f5f60408587031215612fc4575f5ffd5b84356001600160401b03811115612fd9575f5ffd5b8501601f81018713612fe9575f5ffd5b80356001600160401b03811115612ffe575f5ffd5b8760208260051b8401011115613012575f5ffd5b6020918201955093508501356001600160401b03811115613031575f5ffd5b61303d87828801612bc7565b95989497509550505050565b5f60608284031215613059575f5ffd5b6119168383612bb1565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156130b25780850481111561309657613096613063565b60018416156130a457908102905b60019390931c92800261307b565b935093915050565b5f826130c8575060016112a7565b816130d457505f6112a7565b81600181146130ea57600281146130f457613110565b60019150506112a7565b60ff84111561310557613105613063565b50506001821b6112a7565b5060208310610133831016604e8410600b8410161715613133575081810a6112a7565b61313f5f198484613077565b805f190482111561315257613152613063565b029392505050565b5f61191683836130ba565b634e487b7160e01b5f52603260045260245ffd5b6001600160401b0381168114610e30575f5ffd5b5f6020828403121561319d575f5ffd5b813561191681613179565b81356131b381613179565b6001600160401b03811690508154816001600160401b0319821617835560208401356131de81612dc5565b6bffffffff00000000000000008160401b16905080836bffffffffffffffffffffffff198416171784556040850135915061321882612c0b565b909117606091821b6bffffffffffffffffffffffff19161782555f9083013561324081612c0b565b60019290920180546001600160a01b0319166001600160a01b03909316929092179091555050565b808201808211156112a7576112a7613063565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b818103818111156112a7576112a7613063565b5f5f60408385031215613337575f5ffd5b82359150602083013561334981613179565b809150509250929050565b80820281158282048414176112a7576112a7613063565b5f6020828403121561337b575f5ffd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160401b0381811683821601908111156112a7576112a7613063565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261344f60e08401826133ec565b90506060850151603f198483030160a085015261346c82826133ec565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b5f604082840312156134a2575f5ffd5b604080519081016001600160401b03811182821017156134c4576134c4612e66565b604052825181526020928301519281019290925250919050565b5f60808284031280156134ef575f5ffd5b50604051606081016001600160401b038111828210171561351257613512612e66565b60405282518152602083015161352781613179565b60208201526135398460408501613492565b60408201529392505050565b6040810181835f5b600281101561356c57815183526020928301929091019060010161354d565b50505092915050565b5f60408284031215613585575f5ffd5b6119168383613492565b5f600182016135a0576135a0613063565b5060010190565b5f602082840312156135b7575f5ffd5b815161191681612c0b565b5f82518060208501845e5f920191825250919050565b602081525f61191660208301846133ec56fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206e892074aa352c6aa0b26f60dbba1648a75394e61ff89eb07c64b4d81a92620964736f6c634300081e0033","sourceMap":"1046:14141:98:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2977:56;;;;;;;;;;;;;:::i;:::-;;;160:25:124;;;148:2;133:18;2977:56:98;;;;;;;;4921:708:16;;;;;;:::i;:::-;;:::i;:::-;;1951:257:18;;;;;;;;;;-1:-1:-1;1951:257:18;;;887:1:17;2112:50:124;;759:1:16;2193:2:124;2178:18;;2171:59;2085:18;1951:257:18;1942:294:124;10256:305:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;11472:501::-;;;;;;;;;;;;;:::i;10683:445::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;5204:124::-;;;;;;;;;;-1:-1:-1;5204:124:98;;;;;:::i;:::-;;:::i;6418:755::-;;;;;;;;;;-1:-1:-1;6418:755:98;;;;;:::i;:::-;;:::i;3028:202:15:-;;;;;;;;;;-1:-1:-1;3028:202:15;;;;;:::i;:::-;;:::i;3408:195:62:-;;;;;;;;;;-1:-1:-1;3408:195:62;;;;;:::i;:::-;;:::i;5334:121:98:-;;;;;;;;;;-1:-1:-1;5334:121:98;;;;;:::i;:::-;;:::i;3922:220:62:-;;;;;;:::i;:::-;;:::i;3027:131::-;;;;;;;;;;;;;:::i;4759:142:98:-;;;;;;;;;;-1:-1:-1;4759:142:98;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;7506:31:124;;;7488:50;;7476:2;7461:18;4759:142:98;7344:200:124;1035:46:15;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7742:32:124;;;7724:51;;7712:2;7697:18;1035:46:15;7549:232:124;7361:564:98;;;;;;;;;;-1:-1:-1;7361:564:98;;;;;:::i;:::-;;:::i;2085:101:56:-;;;;;;;;;;;;;:::i;4907:291:98:-;;;;;;;;;;-1:-1:-1;4907:291:98;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;8031:31:124;;;8013:50;;8111:10;8099:23;;;8094:2;8079:18;;8072:51;-1:-1:-1;;;;;8159:32:124;;;8139:18;;;8132:60;;;;8228:32;8223:2;8208:18;;8201:60;8000:3;7985:19;4907:291:98;7786:481:124;4060:128:16;;;;;;;;;;-1:-1:-1;4060:128:16;;;;;:::i;:::-;;:::i;2566:216::-;;;;;;;;;;-1:-1:-1;2566:216:16;;;;;:::i;:::-;;:::i;:::-;;;9111:14:124;;9104:22;9086:41;;9074:2;9059:18;2566:216:16;8946:187:124;1462:85:56;;;;;;;;;;-1:-1:-1;1534:6:56;;-1:-1:-1;;;;;1534:6:56;1462:85;;9710:445:98;;;;;;;;;;-1:-1:-1;9710:445:98;;;;;:::i;:::-;;:::i;4622:131::-;;;;;;;;;;-1:-1:-1;4622:131:98;;;;;:::i;:::-;;:::i;2342:163:15:-;;;;;;;;;;-1:-1:-1;2342:163:15;;;;;:::i;:::-;2485:13;;2400:7;2485:13;;;926:26;2485:13;;;;;;;2342:163;5461:94:98;;;;;;;;;;;;;:::i;4327:217::-;;;;;;;;;;-1:-1:-1;4327:217:98;;;;;:::i;:::-;;:::i;4123:105:15:-;;;;;;;;;;-1:-1:-1;4123:105:15;;;;;:::i;:::-;;:::i;8291:1065:98:-;;;;;;:::i;:::-;;:::i;2335:198:56:-;;;;;;;;;;-1:-1:-1;2335:198:56;;;;;:::i;:::-;;:::i;3324:149:16:-;;;;;;;;;;-1:-1:-1;3324:149:16;;;;;:::i;:::-;;:::i;2977:56:98:-;216:25:110;104:1;216;:25;:::i;:::-;2977:56:98;:::o;4921:708:16:-;5234:8;-1:-1:-1;;;;;5226:31:16;5247:10;5226:31;5222:68;;5266:24;;-1:-1:-1;;;5266:24:16;;5279:10;5266:24;;;7724:51:124;7697:18;;5266:24:16;;;;;;;;5222:68;5426:14;;;;;;5390:32;;5407:14;;5426:7;5407:14;:::i;:::-;5390:16;:32::i;:::-;:50;5386:103;;5458:14;;;;:7;:14;:::i;:::-;5449:40;;-1:-1:-1;;;5449:40:16;;12266:10:124;12254:23;;;5449:40:16;;;12236:42:124;5474:14:16;;;;12294:18:124;;;12287:34;12209:18;;5449:40:16;12064:263:124;5386:103:16;5563:59;5574:7;5583:5;5590:8;;5600:9;5611:10;;5563;:59::i;:::-;4921:708;;;;;;;:::o;10256:305:98:-;10304:24;10340:20;10363:16;:14;:16::i;:::-;10403:12;;;:19;10340:39;;-1:-1:-1;10403:19:98;-1:-1:-1;;;;;10440:20:98;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10440:20:98;;-1:-1:-1;;10440:20:98;;;;;;;;;;;-1:-1:-1;10432:28:98;-1:-1:-1;10475:9:98;10470:85;10494:3;10490:1;:7;10470:85;;;10529:1;:12;;10542:1;10529:15;;;;;;;;:::i;:::-;;;;;;;;;;10518:26;;;;;;;;10529:15;;;;;;;10518:26;;-1:-1:-1;;;;;10518:26:98;;;;;-1:-1:-1;;;10518:26:98;;;;;;;;;;-1:-1:-1;;;;;;;;10518:26:98;;;;;;;;;;;;;;;;;;;;;;:8;;:5;;10524:1;;10518:8;;;;;;:::i;:::-;;;;;;;;;;:26;10499:3;;10470:85;;;;10330:231;;10256:305;:::o;11472:501::-;11529:23;11564:20;11587:16;:14;:16::i;:::-;11627:22;;11564:39;;-1:-1:-1;11613:11:98;11627:22;-1:-1:-1;;;;;11685:18:98;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11685:18:98;-1:-1:-1;11659:44:98;-1:-1:-1;11718:9:98;11713:89;11737:3;11733:1;:7;11713:89;;;11773:1;:15;;11789:1;11773:18;;;;;;;;:::i;:::-;;;;;;;;;11761:6;11768:1;11761:9;;;;;;;;:::i;:::-;;;;;;;;;;:30;11742:3;;11713:89;;;-1:-1:-1;11812:58:98;;;;;;;;;;-1:-1:-1;;11860:10:98;;;;11812:58;;11860:10;11812:58;;;;;;;;;;;;;;;;;;;;;;;;11898:68;11944:6;11952:13;11898:45;:68::i;:::-;11880:86;;11554:419;;;;11472:501;:::o;10683:445::-;10744:22;10768:27;10807:20;10830:16;:14;:16::i;:::-;10870:22;;10807:39;;-1:-1:-1;10870:22:98;-1:-1:-1;;;;;10910:18:98;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10910:18:98;;10902:26;;10965:3;-1:-1:-1;;;;;10952:17:98;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10952:17:98;-1:-1:-1;10938:31:98;-1:-1:-1;10984:9:98;10979:143;11003:3;10999:1;:7;10979:143;;;11038:1;:15;;11054:1;11038:18;;;;;;;;:::i;:::-;;;;;;;;;11027:5;11033:1;11027:8;;;;;;;;:::i;:::-;;;;;;:29;;;;;11087:1;:21;;11109:1;11087:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11087:24:98;11070:11;11082:1;11070:14;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11070:41:98;;;:14;;;;;;;;;;;:41;11008:3;;10979:143;;;;10797:331;;10683:445;;:::o;5204:124::-;5260:7;5286:16;:14;:16::i;:::-;:35;;;;;;;;:30;;;;;:35;;-1:-1:-1;5286:35:98;;;;;5204:124::o;6418:755::-;1355:13:56;:11;:13::i;:::-;6524:1:98::1;6499:13;::::0;;;::::1;::::0;::::1;;:::i;:::-;-1:-1:-1::0;;;;;6499:27:98::1;::::0;6495:54:::1;;6535:14;;-1:-1:-1::0;;;6535:14:98::1;;;;;;;;;;;6495:54;6585:1;6563:10;::::0;;;::::1;::::0;::::1;;:::i;:::-;-1:-1:-1::0;;;;;6563:24:98::1;::::0;6559:48:::1;;6596:11;;-1:-1:-1::0;;;6596:11:98::1;;;;;;;;;;;6559:48;6621:12;;::::0;::::1;:4:::0;:12:::1;:::i;:::-;-1:-1:-1::0;;;;;6621:17:98::1;6637:1;6621:17:::0;6617:46:::1;;6647:16;;-1:-1:-1::0;;;6647:16:98::1;;;;;;;;;;;6617:46;6673:20;6696:16;:14;:16::i;:::-;6673:39:::0;-1:-1:-1;6726:15:98::1;::::0;::::1;:25;6742:8;::::0;;;::::1;::::0;::::1;;:::i;:::-;6726:25;;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;6726:25:98;;:30;6722:75:::1;;6788:8;::::0;;;::::1;::::0;::::1;;:::i;:::-;6765:32;::::0;-1:-1:-1;;;6765:32:98;;13022:10:124;13010:23;;;6765:32:98::1;::::0;::::1;12992:42:124::0;12965:18;;6765:32:98::1;12848:192:124::0;6722:75:98::1;216:25:110;104:1;216;:25;:::i;:::-;6811:22:98::0;;:36:::1;6807:69;;6856:20;;-1:-1:-1::0;;;6856:20:98::1;;;;;;;;;;;6807:69;6903:22:::0;;6935:23:::1;::::0;;::::1;::::0;;-1:-1:-1;6935:23:98;;;::::1;::::0;;;;::::1;::::0;;;6968:21;;::::1;:29:::0;;;;::::1;::::0;;;;;;;;::::1;::::0;::::1;;::::0;;;;;;::::1;;;;-1:-1:-1::0;;;;;6968:29:98::1;;::::0;;::::1;::::0;;7007:12:::1;::::0;;::::1;:23:::0;;;;::::1;::::0;;;;;;7025:4;;7007:23;;::::1;;;7025:4:::0;7007:23;::::1;:::i;:::-;-1:-1:-1::0;7068:9:98::1;::::0;-1:-1:-1;7068:5:98;7076:1:::1;7068:9;:::i;:::-;7040:15;::::0;::::1;:25;7056:8;::::0;;;::::1;::::0;::::1;;:::i;:::-;7040:25;;;;;;;;;;;;;;;:37;;;;7119:5;7109:4;:8;;;;;;;;;;:::i;:::-;7093:73;;;7126:12;;::::0;::::1;:4:::0;:12:::1;:::i;:::-;7140:10;::::0;;;::::1;::::0;::::1;;:::i;:::-;7152:13;::::0;;;::::1;::::0;::::1;;:::i;:::-;7093:73;::::0;;-1:-1:-1;;;;;14521:31:124;;;14503:50;;-1:-1:-1;;;;;14589:32:124;;;14584:2;14569:18;;14562:60;14658:32;;14638:18;;;14631:60;14491:2;14476:18;7093:73:98::1;;;;;;;6485:688;;6418:755:::0;:::o;3028:202:15:-;1355:13:56;:11;:13::i;:::-;3167::15::1;::::0;::::1;3108:25;3167:13:::0;;;926:26;3167:13:::1;::::0;;;;;;;;:21;;;3203:20;;12236:42:124;;;12294:18;;12287:34;;;3203:20:15;;926:26;;3203:20:::1;::::0;;;;;;;::::1;3098:132;3028:202:::0;;:::o;3408:195:62:-;-1:-1:-1;;;;;1764:6:62;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:62;;;;;;;:::i;:::-;1861:6;-1:-1:-1;;;;;1837:30:62;:20;-1:-1:-1;;;;;;;;;;;1557:65:59;-1:-1:-1;;;;;1557:65:59;;1478:151;1837:20:62;-1:-1:-1;;;;;1837:30:62;;1829:87;;;;-1:-1:-1;;;1829:87:62;;;;;;;:::i;:::-;3489:36:::1;3507:17;3489;:36::i;:::-;3576:12;::::0;;3586:1:::1;3576:12:::0;;;::::1;::::0;::::1;::::0;;;3535:61:::1;::::0;3557:17;;3576:12;3535:21:::1;:61::i;:::-;3408:195:::0;:::o;5334:121:98:-;5389:7;5415:16;:14;:16::i;:::-;:25;;5441:6;5415:33;;;;;;;:::i;:::-;;;;5334:121;-1:-1:-1;;5334:121:98:o;3922:220:62:-;-1:-1:-1;;;;;1764:6:62;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:62;;;;;;;:::i;:::-;1861:6;-1:-1:-1;;;;;1837:30:62;:20;-1:-1:-1;;;;;;;;;;;1557:65:59;-1:-1:-1;;;;;1557:65:59;;1478:151;1837:20:62;-1:-1:-1;;;;;1837:30:62;;1829:87;;;;-1:-1:-1;;;1829:87:62;;;;;;;:::i;:::-;4037:36:::1;4055:17;4037;:36::i;:::-;4083:52;4105:17;4124:4;4130;4083:21;:52::i;:::-;3922:220:::0;;:::o;3027:131::-;3105:7;2190:4;-1:-1:-1;;;;;2199:6:62;2182:23;;2174:92;;;;-1:-1:-1;;;2174:92:62;;15730:2:124;2174:92:62;;;15712:21:124;15769:2;15749:18;;;15742:30;15808:34;15788:18;;;15781:62;15879:26;15859:18;;;15852:54;15923:19;;2174:92:62;15528:420:124;2174:92:62;-1:-1:-1;;;;;;;;;;;;3027:131:62;:::o;4759:142:98:-;4825:6;4850:16;:14;:16::i;:::-;:36;;4887:6;4850:44;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4850:44:98;4843:51;;4759:142;;;:::o;7361:564::-;1355:13:56;:11;:13::i;:::-;7465:1:98::1;7440:13;::::0;;;::::1;::::0;::::1;;:::i;:::-;-1:-1:-1::0;;;;;7440:27:98::1;::::0;7436:54:::1;;7476:14;;-1:-1:-1::0;;;7476:14:98::1;;;;;;;;;;;7436:54;7526:1;7504:10;::::0;;;::::1;::::0;::::1;;:::i;:::-;-1:-1:-1::0;;;;;7504:24:98::1;::::0;7500:48:::1;;7537:11;;-1:-1:-1::0;;;7537:11:98::1;;;;;;;;;;;7500:48;7562:12;;::::0;::::1;:4:::0;:12:::1;:::i;:::-;-1:-1:-1::0;;;;;7562:17:98::1;7578:1;7562:17:::0;7558:46:::1;;7588:16;;-1:-1:-1::0;;;7588:16:98::1;;;;;;;;;;;7558:46;7615:20;7638:16;:14;:16::i;:::-;7615:39:::0;-1:-1:-1;7664:11:98::1;7678:15;::::0;::::1;7664:11:::0;7694:8:::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;7678:25;;;;;;;;;;;;;;;;7664:39;;7717:3;7724:1;7717:8:::0;7713:49:::1;;7753:8;::::0;;;::::1;::::0;::::1;;:::i;:::-;7734:28;::::0;-1:-1:-1;;;7734:28:98;;13022:10:124;13010:23;;;7734:28:98::1;::::0;::::1;12992:42:124::0;12965:18;;7734:28:98::1;12848:192:124::0;7713:49:98::1;7773:13;7789:7;7795:1;7789:3:::0;:7:::1;:::i;:::-;7773:23;;7828:4;7806:1;:12;;7819:5;7806:19;;;;;;;;:::i;:::-;;;;;;;;;;;:26;;;;;;:::i;:::-;-1:-1:-1::0;7871:5:98;;-1:-1:-1;7861:8:98::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;7848:70;;;7878:12;;::::0;::::1;:4:::0;:12:::1;:::i;:::-;7892:10;::::0;;;::::1;::::0;::::1;;:::i;:::-;7904:13;::::0;;;::::1;::::0;::::1;;:::i;:::-;7848:70;::::0;;-1:-1:-1;;;;;14521:31:124;;;14503:50;;-1:-1:-1;;;;;14589:32:124;;;14584:2;14569:18;;14562:60;14658:32;;14638:18;;;14631:60;14491:2;14476:18;7848:70:98::1;;;;;;;7426:499;;;7361:564:::0;:::o;2085:101:56:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;4907:291:98:-;4988:14;5004:10;5016:16;5034:13;5063:22;5088:16;:14;:16::i;:::-;:27;;5116:6;5088:35;;;;;;;;:::i;:::-;;;;;;;;;;;;;;5141:12;;;5180:10;;;;-1:-1:-1;;;;;5141:12:98;;;-1:-1:-1;;;5155:8:98;;;;;-1:-1:-1;;;;5165:13:98;;;-1:-1:-1;;;;;5165:13:98;;;;-1:-1:-1;5180:10:98;;-1:-1:-1;4907:291:98;-1:-1:-1;;;4907:291:98:o;4060:128:16:-;4149:12;4060:128;;;;;:::o;2566:216::-;-1:-1:-1;;;;;2751:24:16;;2770:4;2751:24;2566:216;;;;;;;:::o;9710:445:98:-;9837:22;9879;;;9875:52;;9910:17;;-1:-1:-1;;;9910:17:98;;;;;;;;;;;9875:52;9937:20;9960:9;;9937:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10007:25:98;;9937:32;;-1:-1:-1;9937:32:98;10007:25;;-1:-1:-1;9937:32:98;;-1:-1:-1;10030:1:98;;-1:-1:-1;10007:25:98;;16266::124;;;16339:4;16327:17;16322:2;16307:18;;16300:45;16254:2;16239:18;;16086:265;10007:25:98;;;;-1:-1:-1;;10007:25:98;;;;;;;;;;-1:-1:-1;10059:89:98;10075:10;;10007:25;10101:7;10075:10;-1:-1:-1;;;;;10110:37:98;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;10110:37:98;;;;;;;;;;;;;;;;10059:15;:89::i;:::-;10042:106;9710:445;-1:-1:-1;;;;;;;9710:445:98:o;4622:131::-;4682:7;4708:16;:14;:16::i;:::-;:38;;4739:6;;4708:38;;;;;;:::i;:::-;;;;;;;;;4701:45;;4622:131;;;:::o;5461:94::-;5500:6;5525:16;:14;:16::i;:::-;:23;;;-1:-1:-1;;;;;5525:23:98;;5461:94;-1:-1:-1;5461:94:98:o;4327:217::-;3279:19:61;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:61;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:61;1713:19:67;:23;;;3387:66:61;;-1:-1:-1;3436:12:61;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:61;;16558:2:124;3325:201:61;;;16540:21:124;16597:2;16577:18;;;16570:30;16636:34;16616:18;;;16609:62;-1:-1:-1;;;16687:18:124;;;16680:44;16741:19;;3325:201:61;16356:410:124;3325:201:61;3536:12;:16;;-1:-1:-1;;3536:16:61;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:61;;;;;3562:65;4396:16:98::1;:14;:16::i;:::-;4422:21;4434:8;4422:11;:21::i;:::-;4453:24;:22;:24::i;:::-;4487:12;:10;:12::i;:::-;4509:28;4528:8;4509:18;:28::i;:::-;3651:14:61::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:61;;;3721:14;;-1:-1:-1;16923:36:124;;3721:14:61;;16911:2:124;16896:18;3721:14:61;;;;;;;3269:483;4327:217:98;:::o;4123:105:15:-;1355:13:56;:11;:13::i;:::-;4190:31:15::1;::::0;-1:-1:-1;;;4190:31:15;;-1:-1:-1;;;;;7742:32:124;;;4190:31:15::1;::::0;::::1;7724:51:124::0;4190:8:15::1;:20;::::0;::::1;::::0;7697:18:124;;4190:31:15::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4123:105:::0;:::o;8291:1065:98:-;8418:1;8397:22;;;8393:52;;8428:17;;-1:-1:-1;;;8428:17:98;;;;;;;;;;;8393:52;8455:27;8485:26;:24;:26::i;:::-;8455:56;;8521:20;8544:9;;8521:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8521:32:98;;-1:-1:-1;8611:10:98;;-1:-1:-1;;;;;;;;8592:37:98;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;8592:37:98;;;;;;;;;;;;;;;;8563:66;;8639:22;8664:55;8680:10;;8692:3;:11;;;8705:7;8714:4;8664:15;:55::i;:::-;8639:80;;8746:14;8734:9;:26;8730:83;;;8769:44;;-1:-1:-1;;;8769:44:98;;8787:9;8769:44;;;17144:25:124;17185:18;;;17178:34;;;17117:18;;8769:44:98;16970:248:124;8730:83:98;8823:14;8840:26;8852:14;8840:9;:26;:::i;:::-;8823:43;;8903:3;:14;;;8877:16;:14;:16::i;:::-;:23;;:40;;-1:-1:-1;;8877:40:98;-1:-1:-1;;;;;8877:40:98;;;;;;;;;;-1:-1:-1;8928:138:98;8948:21;;;8928:138;;;8990:65;8998:10;;9009:1;8998:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;9013:3;:11;;;9026:7;9035:4;9040:1;9035:7;;;;;;;;:::i;:::-;;;;;;;9044:10;8990:7;:65::i;:::-;-1:-1:-1;8971:3:98;;8928:138;;;-1:-1:-1;9080:11:98;;9076:152;;9125:34;;9108:12;;9125:10;;9148:6;;9108:12;9125:34;9108:12;9125:34;9148:6;9125:10;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9107:52;;;9178:7;9173:44;;9194:23;;-1:-1:-1;;;9194:23:98;;;;;160:25:124;;;133:18;;9194:23:98;14:177:124;9173:44:98;9093:135;9076:152;9287:3;:14;;;-1:-1:-1;;;;;9243:106:98;9266:3;:19;;;9243:106;9303:3;:12;;;9317:3;:31;;;9243:106;;;;;;;:::i;:::-;;;;;;;;8383:973;;;;;8291:1065;;;;:::o;2335:198:56:-;1355:13;:11;:13::i;:::-;-1:-1:-1;;;;;2423:22:56;::::1;2415:73;;;::::0;-1:-1:-1;;;2415:73:56;;17635:2:124;2415:73:56::1;::::0;::::1;17617:21:124::0;17674:2;17654:18;;;17647:30;17713:34;17693:18;;;17686:62;-1:-1:-1;;;17764:18:124;;;17757:36;17810:19;;2415:73:56::1;17433:402:124::0;2415:73:56::1;2498:28;2517:8;2498:18;:28::i;3324:149:16:-:0;3406:4;3453:13;;;;;;3429:20;;3435:13;;3453:6;3435:13;:::i;3429:20::-;:37;;3324:149;-1:-1:-1;;3324:149:16:o;3528:257:15:-;3691:13;;;3598:7;3691:13;;;926:26;3691:13;;;;;;;;;3714:43;;3745:12;;-1:-1:-1;;;3745:12:15;;13022:10:124;13010:23;;3745:12:15;;;12992:42:124;12965:18;;3745:12:15;12848:192:124;3714:43:15;3774:4;3528:257;-1:-1:-1;;;3528:257:15:o;14118:870:98:-;14268:20;14291:16;:14;:16::i;:::-;14268:39;-1:-1:-1;14317:11:98;14331:15;;;14317:11;14347:13;;;;:6;:13;:::i;:::-;14331:30;;;;;;;;;;;;;;;;14317:44;;14375:3;14382:1;14375:8;14371:54;;14411:13;;;;:6;:13;:::i;14371:54::-;3165:2;14440:41;;14436:90;;14490:36;;-1:-1:-1;;;14490:36:98;;;;;160:25:124;;;133:18;;14490:36:98;14:177:124;14436:90:98;14538:20;;14588:38;;;;14599:7;14588:38;:::i;:::-;14537:89;;-1:-1:-1;14537:89:98;-1:-1:-1;14636:13:98;14652:7;14658:1;14652:3;:7;:::i;:::-;14636:23;;14669;14695:1;:21;;14717:5;14695:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14695:28:98;14669:54;;14758:16;-1:-1:-1;;;;;14737:37:98;:17;-1:-1:-1;;;;;14737:37:98;;14733:74;;14790:7;;;;;;;;14733:74;14841:12;14816:1;:15;;14832:5;14816:22;;;;;;;;:::i;:::-;;;;;;;;:37;;;;14894:17;14863:1;:21;;14885:5;14863:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:48;;;;;-1:-1:-1;;;;;14863:48:98;;;;;-1:-1:-1;;;;;14863:48:98;;;;;;14961:5;14946:6;:13;;;;;;;;;;:::i;:::-;14926:55;;;14968:12;14926:55;;;;160:25:124;;148:2;133:18;;14:177;14926:55:98;;;;;;;;14258:730;;;;;;14118:870;;;;;;;:::o;3523:206::-;3618:48;;;;;;;;;;;;-1:-1:-1;;;3618:48:98;;;;;1852:57:92;3571:20:98;1839:71:92;;;3571:20:98;1931:37:92;3618:48:98;1707:277:92;837:917:111;1022:13;;983:7;;1049:10;;;1045:69;;-1:-1:-1;;1082:21:111;;;;1075:28;;1045:69;1124:13;1147:430;1162:1;1154:5;:9;1147:430;;;1179:17;1214:1;1200:9;:5;1214:1;1200:9;:::i;:::-;1199:16;;;-1:-1:-1;1234:9:111;1229:244;1253:9;1249:1;:13;1229:244;;;1287:12;1302:6;1309:5;1313:1;1309;:5;:::i;:::-;1302:13;;;;;;;;:::i;:::-;;;;;;;1287:28;;1333:13;1362:5;1354:1;1350;:5;;;;:::i;:::-;:9;;1358:1;1350:9;:::i;:::-;:17;1349:57;;1391:8;1400:5;1391:15;;;;;;;:::i;:::-;;;;;1349:57;;;1371:6;1378:5;1382:1;1378;:5;:::i;:::-;:9;;1386:1;1378:9;:::i;:::-;1371:17;;;;;;;;:::i;:::-;;;;;;;1349:57;1333:73;;1436:22;1446:4;1452:5;1436:9;:22::i;:::-;1424:6;1431:1;1424:9;;;;;;;;:::i;:::-;;;;;;;;;;:34;-1:-1:-1;;1264:3:111;;1229:244;;;-1:-1:-1;1494:9:111;-1:-1:-1;1545:7:111;;1147:430;;;1587:12;1602:6;1609:1;1602:9;;;;;;;;:::i;:::-;;;;;;;1587:24;;1626:9;1638:5;1626:17;;1621:106;104:1:110;1645::111;:15;1621:106;;;1688:28;1698:4;1704:8;1713:1;1704:11;;;;;;;:::i;:::-;;;;;1688:9;:28::i;:::-;1681:35;-1:-1:-1;1662:3:111;;1621:106;;;-1:-1:-1;1743:4:111;837:917;-1:-1:-1;;;;;837:917:111:o;1620:130:56:-;1534:6;;-1:-1:-1;;;;;1534:6:56;965:10:68;1683:23:56;1675:68;;;;-1:-1:-1;;;1675:68:56;;18585:2:124;1675:68:56;;;18567:21:124;;;18604:18;;;18597:30;18663:34;18643:18;;;18636:62;18715:18;;1675:68:56;18383:356:124;4550:66:98;1355:13:56;:11;:13::i;2841:944:59:-;839:66;3257:59;;;3253:526;;;3332:37;3351:17;3332:18;:37::i;:::-;2841:944;;;:::o;3253:526::-;3433:17;-1:-1:-1;;;;;3404:61:59;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3404:63:59;;;;;;;;-1:-1:-1;;3404:63:59;;;;;;;;;;;;:::i;:::-;;;3400:302;;3631:56;;-1:-1:-1;;;3631:56:59;;19181:2:124;3631:56:59;;;19163:21:124;19220:2;19200:18;;;19193:30;19259:34;19239:18;;;19232:62;-1:-1:-1;;;19310:18:124;;;19303:44;19364:19;;3631:56:59;18979:410:124;3400:302:59;-1:-1:-1;;;;;;;;;;;3517:28:59;;3509:82;;;;-1:-1:-1;;;3509:82:59;;19596:2:124;3509:82:59;;;19578:21:124;19635:2;19615:18;;;19608:30;19674:34;19654:18;;;19647:62;-1:-1:-1;;;19725:18:124;;;19718:39;19774:19;;3509:82:59;19394:405:124;3509:82:59;3468:138;3715:53;3733:17;3752:4;3758:9;3715:17;:53::i;2687:187:56:-;2779:6;;;-1:-1:-1;;;;;2795:17:56;;;-1:-1:-1;;;;;;2795:17:56;;;;;;;2827:40;;2779:6;;;2795:17;2779:6;;2827:40;;2760:16;;2827:40;2750:124;2687:187;:::o;13089:721:98:-;13277:22;13311:20;13334:16;:14;:16::i;:::-;13311:39;-1:-1:-1;13374:10:98;13360:11;13401:403;13425:3;13421:1;:7;13401:403;;;13449:10;13462;;13473:1;13462:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;13493:20;;;;;;;:15;;;:20;;;;;;13449:26;;-1:-1:-1;13493:25:98;13489:61;;13527:23;;-1:-1:-1;;;13527:23:98;;13022:10:124;13010:23;;13527::98;;;12992:42:124;12965:18;;13527:23:98;12848:192:124;13489:61:98;13564:23;13590:36;13597:3;13602:7;13611;13620:5;13590:6;:36::i;:::-;13564:62;;13644:3;:14;;;13662:1;13644:19;13640:81;;13706:14;;;;13672:49;;-1:-1:-1;;;13672:49:98;;12266:10:124;12254:23;;13672:49:98;;;12236:42:124;12294:18;;;12287:34;;;;12209:18;;13672:49:98;12064:263:124;13640:81:98;13745:3;13735:4;13740:1;13735:7;;;;;;;;:::i;:::-;;;;;;;;;;:13;13780;;13762:31;;;;:::i;:::-;;;13435:369;;13430:3;;;;;13401:403;;;;13301:509;;13089:721;;;;;;;:::o;1024:95:56:-;5374:13:61;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:61;;;;;;;:::i;:::-;1086:26:56::1;:24;:26::i;1456:189:18:-:0;5374:13:61;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:61;;;;;;;:::i;:::-;1532:26:18::1;1548:9;1532:15;:26::i;:::-;1568:31;:29;:31::i;:::-;1609:29;2290:67:62::0;5374:13:61;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:61;;;;;;;:::i;5620:319:98:-;5374:13:61;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:61;;;;;;;:::i;:::-;5678:20:98::1;5701:16;:14;:16::i;:::-;5678:39;;5727:44;5774:43;:41;:43::i;:::-;5727:90:::0;-1:-1:-1;5832:9:98::1;5827:106;5851:19;5847:1;:23;5827:106;;;5907:12;5920:1;5907:15;;;;;;;:::i;:::-;;;;;5891:1;:10;;5902:1;5891:13;;;;;;;:::i;:::-;;:31:::0;5872:3:::1;;5827:106;;12094:869:::0;12153:27;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12153:27:98;12192:20;12215:16;:14;:16::i;:::-;12255:22;;12192:39;;-1:-1:-1;12255:22:98;-1:-1:-1;;;;;12302:18:98;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12302:18:98;-1:-1:-1;12287:33:98;;12377:3;-1:-1:-1;;;;;12364:17:98;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12364:17:98;-1:-1:-1;12330:31:98;;;:51;12391:23;12431:3;-1:-1:-1;;;;;12417:18:98;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12417:18:98;-1:-1:-1;12391:44:98;-1:-1:-1;12450:9:98;12445:233;12469:3;12465:1;:7;12445:233;;;12493:12;12508:1;:15;;12524:1;12508:18;;;;;;;;:::i;:::-;;;;;;;;;12493:33;;12558:4;12540:3;:12;;;12553:1;12540:15;;;;;;;;:::i;:::-;;;;;;:22;;;;;12588:4;12576:6;12583:1;12576:9;;;;;;;;:::i;:::-;;;;;;:16;;;;;12643:1;:21;;12665:1;12643:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12643:24:98;12606:3;:31;;;12638:1;12606:34;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12606:61:98;;;:34;;;;;;;;;;;:61;-1:-1:-1;12474:3:98;;12445:233;;;-1:-1:-1;12688:58:98;;;;;;;;;;-1:-1:-1;;12736:10:98;;;;12688:58;;12736:10;12688:58;;;;;;;;;;;;;;;;;;;;;;;;12778:68;12824:6;12832:13;12778:45;:68::i;:::-;12756:19;;;:90;12873:8;;;;:12;;-1:-1:-1;;;;;12873:8:98;;:12;:::i;:::-;-1:-1:-1;;;;;12856:29:98;:14;;;:29;;;12920:19;;;;;12909:47;;;;12856:29;12909:47;;20852:25:124;;;-1:-1:-1;;;;;20913:31:124;20908:2;20893:18;;20886:59;20840:2;20825:18;;20680:271;12909:47:98;;;;;;;;;;;;;12895:3;:11;;:61;;;;12182:781;;;;12094:869;:::o;3700:766:17:-;3901:31;;:::i;:::-;4066:20;4089:26;4100:4;:14;;;4089:10;:26::i;:::-;4129:15;;;;4066:49;;-1:-1:-1;4129:19:17;4125:53;;4150:28;4162:4;:15;;;4150:11;:28::i;:::-;4267:8;-1:-1:-1;;;;;4267:13:17;;4289:12;4321:92;;;;;;;;4337:7;4321:92;;;;;;4346:25;4363:7;4346:16;:25::i;:::-;4321:92;;;;4373:8;4321:92;;;;4383:8;4321:92;;;;4411:1;4393:4;:15;;;:19;4321:92;;;;;4431:14;4267:192;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2188:214:111:-;2259:7;2278:24;;:::i;:::-;2312:16;;;:9;2338;;:17;;;2372:23;;-1:-1:-1;;;2372:23:111;;:10;;:15;;:23;;2312:6;;2372:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1720:281:59:-;-1:-1:-1;;;;;1713:19:67;;;1793:106:59;;;;-1:-1:-1;;;1793:106:59;;24465:2:124;1793:106:59;;;24447:21:124;24504:2;24484:18;;;24477:30;24543:34;24523:18;;;24516:62;-1:-1:-1;;;24594:18:124;;;24587:43;24647:19;;1793:106:59;24263:409:124;1793:106:59;-1:-1:-1;;;;;;;;;;;1909:85:59;;-1:-1:-1;;;;;;1909:85:59;-1:-1:-1;;;;;1909:85:59;;;;;;;;;;1720:281::o;2393:276::-;2501:29;2512:17;2501:10;:29::i;:::-;2558:1;2544:4;:11;:15;:28;;;;2563:9;2544:28;2540:123;;;2588:64;2628:17;2647:4;2588:39;:64::i;:::-;;2393:276;;;:::o;2550:391:17:-;-1:-1:-1;;;;;;;;;;;;;;;;;2771:8:17;-1:-1:-1;;;;;2771:14:17;;2803:86;;;;;;;;2819:7;2803:86;;;;;;2828:25;2845:7;2828:16;:25::i;:::-;2803:86;;;;2855:8;2803:86;;;;2865:8;2803:86;;;;2875:13;2803:86;;;;;2915:4;2771:163;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2752:182;2550:391;-1:-1:-1;;;;;2550:391:17:o;1125:111:56:-;5374:13:61;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:61;;;;;;;:::i;:::-;1197:32:56::1;965:10:68::0;1197:18:56::1;:32::i;1787:123:15:-:0;5374:13:61;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:61;;;;;;;:::i;:::-;1867:36:15::1;1893:9;1867:25;:36::i;1848:261:111:-:0;1901:40;;:::i;:::-;1967:1;1953:15;;1995:1;1978:125;104:1:110;1998::111;:16;1978:125;;2049:43;2059:8;2068:5;2072:1;2068;:5;:::i;:::-;2059:15;;;;;;;:::i;:::-;;;;;2076:8;2085:5;2089:1;2085;:5;:::i;:::-;2076:15;;;;;;;:::i;2049:43::-;2035:8;2044:1;2035:11;;;;;;;:::i;:::-;;;;:57;2016:3;;;:::i;:::-;;;1978:125;;;;1848:261;:::o;14994:191:98:-;15061:17;15106:10;15094:9;:22;15090:61;;;15125:26;;-1:-1:-1;;;15125:26:98;;15141:9;15125:26;;;160:25:124;133:18;;15125:26:98;14:177:124;5730:410:17;5883:15;5901:8;-1:-1:-1;;;;;5901:16:17;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5883:36;-1:-1:-1;;;;;;5933:21:17;;5929:54;;5963:20;;-1:-1:-1;;;5963:20:17;;;;;;;;;;;5929:54;6057:76;-1:-1:-1;;;;;6057:32:17;;6090:10;6110:8;6121:11;6057:32;:76::i;2107:152:59:-;2173:37;2192:17;2173:18;:37::i;:::-;2225:27;;-1:-1:-1;;;;;2225:27:59;;;;;;;;2107:152;:::o;6685:198:67:-;6768:12;6799:77;6820:6;6828:4;6799:77;;;;;;;;;;;;;;;;;:20;:77::i;1916:191:15:-;5374:13:61;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:61;;;;;;;:::i;:::-;-1:-1:-1;;;;;2010:23:15;::::1;2006:53;;2042:17;;-1:-1:-1::0;;;2042:17:15::1;;;;;;;;;;;1618:188:88::0;1745:53;;;-1:-1:-1;;;;;25556:32:124;;;1745:53:88;;;25538:51:124;25625:32;;25605:18;;;25598:60;25674:18;;;;25667:34;;;1745:53:88;;;;;;;;;;25511:18:124;;;;1745:53:88;;;;;;;;-1:-1:-1;;;;;1745:53:88;-1:-1:-1;;;1745:53:88;;;1718:81;;1738:5;;1718:19;:81::i;7069:325:67:-;7210:12;7235;7249:23;7276:6;-1:-1:-1;;;;;7276:19:67;7296:4;7276:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7234:67;;;;7318:69;7345:6;7353:7;7362:10;7374:12;7318:26;:69::i;:::-;7311:76;7069:325;-1:-1:-1;;;;;;7069:325:67:o;8370:720:88:-;8450:18;8478:19;8616:4;8613:1;8606:4;8600:11;8593:4;8587;8583:15;8580:1;8573:5;8566;8561:60;8673:7;8663:176;;8717:4;8711:11;8762:16;8759:1;8754:3;8739:40;8808:16;8803:3;8796:29;8663:176;-1:-1:-1;;8916:1:88;8910:8;8866:16;;-1:-1:-1;8942:15:88;;:68;;8994:11;9009:1;8994:16;;8942:68;;;-1:-1:-1;;;;;8960:26:88;;;:31;8942:68;8938:146;;;9033:40;;-1:-1:-1;;;9033:40:88;;-1:-1:-1;;;;;7742:32:124;;9033:40:88;;;7724:51:124;7697:18;;9033:40:88;7549:232:124;7682:628:67;7862:12;7890:7;7886:418;;;7917:10;:17;7938:1;7917:22;7913:286;;-1:-1:-1;;;;;1713:19:67;;;8124:60;;;;-1:-1:-1;;;8124:60:67;;26220:2:124;8124:60:67;;;26202:21:124;26259:2;26239:18;;;26232:30;26298:31;26278:18;;;26271:59;26347:18;;8124:60:67;26018:353:124;8124:60:67;-1:-1:-1;8219:10:67;8212:17;;7886:418;8260:33;8268:10;8280:12;8991:17;;:21;8987:379;;9219:10;9213:17;9275:15;9262:10;9258:2;9254:19;9247:44;8987:379;9342:12;9335:20;;-1:-1:-1;;;9335:20:67;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;196:154:124:-;255:5;300:2;291:6;286:3;282:16;278:25;275:45;;;316:1;313;306:12;275:45;-1:-1:-1;338:6:124;196:154;-1:-1:-1;196:154:124:o;355:347::-;406:8;416:6;470:3;463:4;455:6;451:17;447:27;437:55;;488:1;485;478:12;437:55;-1:-1:-1;511:20:124;;-1:-1:-1;;;;;543:30:124;;540:50;;;586:1;583;576:12;540:50;623:4;615:6;611:17;599:29;;675:3;668:4;659:6;651;647:19;643:30;640:39;637:59;;;692:1;689;682:12;637:59;355:347;;;;;:::o;707:131::-;-1:-1:-1;;;;;782:31:124;;772:42;;762:70;;828:1;825;818:12;843:1094;985:6;993;1001;1009;1017;1025;1033;1086:3;1074:9;1065:7;1061:23;1057:33;1054:53;;;1103:1;1100;1093:12;1054:53;1126;1171:7;1160:9;1126:53;:::i;:::-;1116:63;-1:-1:-1;1248:2:124;1233:18;;1220:32;;-1:-1:-1;1327:3:124;1312:19;;1299:33;-1:-1:-1;;;;;1344:30:124;;1341:50;;;1387:1;1384;1377:12;1341:50;1426:58;1476:7;1467:6;1456:9;1452:22;1426:58;:::i;:::-;1503:8;;-1:-1:-1;1400:84:124;-1:-1:-1;;1590:3:124;1575:19;;1562:33;1604;1562;1604;:::i;:::-;1656:7;-1:-1:-1;1716:3:124;1701:19;;1688:33;-1:-1:-1;;;;;1733:32:124;;1730:52;;;1778:1;1775;1768:12;1730:52;1817:60;1869:7;1858:8;1847:9;1843:24;1817:60;:::i;:::-;843:1094;;;;-1:-1:-1;843:1094:124;;-1:-1:-1;843:1094:124;;;;1791:86;;-1:-1:-1;;;843:1094:124:o;2241:958::-;2487:2;2499:21;;;2569:13;;2472:18;;;2591:22;;;2439:4;;2670:15;;;2644:2;2629:18;;;2439:4;2713:460;2727:6;2724:1;2721:13;2713:460;;;2786:13;;2828:9;;-1:-1:-1;;;;;2824:34:124;2812:47;;2911:2;2903:11;;;2897:18;2917:10;2893:35;2879:12;;;2872:57;2981:2;2973:11;;;2967:18;-1:-1:-1;;;;;2963:44:124;;;2949:12;;;2942:66;;;;3062:4;3054:13;;;3048:20;3044:46;3028:14;;;3021:70;;;;3148:15;;;;3120:4;3111:14;;;;3004:1;2742:9;2713:460;;;-1:-1:-1;3190:3:124;;2241:958;-1:-1:-1;;;;;2241:958:124:o;3204:1168::-;3470:2;3482:21;;;3552:13;;3455:18;;;3574:22;;;3422:4;;3665;3653:17;;;3627:2;3612:18;;;3422:4;3698:173;3712:6;3709:1;3706:13;3698:173;;;3773:13;;3761:26;;3816:4;3844:17;;;;3807:14;;;;3734:1;3727:9;3698:173;;;-1:-1:-1;;3909:19:124;;;3902:4;3887:20;;;3880:49;;;;3979:13;;4001:21;;;4040:14;;;;-1:-1:-1;4079:17:124;;;4116:1;4126:218;4142:8;4137:3;4134:17;4126:218;;;4215:15;;-1:-1:-1;;;;;4211:40:124;4197:55;;4285:4;4274:16;;;;4315:19;;;;4170:1;4161:11;4126:218;;;-1:-1:-1;4361:5:124;;3204:1168;-1:-1:-1;;;;;;3204:1168:124:o;4377:121::-;4462:10;4455:5;4451:22;4444:5;4441:33;4431:61;;4488:1;4485;4478:12;4503:245;4561:6;4614:2;4602:9;4593:7;4589:23;4585:32;4582:52;;;4630:1;4627;4620:12;4582:52;4669:9;4656:23;4688:30;4712:5;4688:30;:::i;4753:234::-;4842:6;4902:3;4890:9;4881:7;4877:23;4873:33;4918:2;4915:22;;;4933:1;4930;4923:12;4915:22;-1:-1:-1;4972:9:124;;4753:234;-1:-1:-1;;4753:234:124:o;4992:365::-;5059:6;5067;5120:2;5108:9;5099:7;5095:23;5091:32;5088:52;;;5136:1;5133;5126:12;5088:52;5175:9;5162:23;5194:30;5218:5;5194:30;:::i;:::-;5243:5;5321:2;5306:18;;;;5293:32;;-1:-1:-1;;;4992:365:124:o;5362:247::-;5421:6;5474:2;5462:9;5453:7;5449:23;5445:32;5442:52;;;5490:1;5487;5480:12;5442:52;5529:9;5516:23;5548:31;5573:5;5548:31;:::i;5614:226::-;5673:6;5726:2;5714:9;5705:7;5701:23;5697:32;5694:52;;;5742:1;5739;5732:12;5694:52;-1:-1:-1;5787:23:124;;5614:226;-1:-1:-1;5614:226:124:o;5845:127::-;5906:10;5901:3;5897:20;5894:1;5887:31;5937:4;5934:1;5927:15;5961:4;5958:1;5951:15;5977:275;6048:2;6042:9;6113:2;6094:13;;-1:-1:-1;;6090:27:124;6078:40;;-1:-1:-1;;;;;6133:34:124;;6169:22;;;6130:62;6127:88;;;6195:18;;:::i;:::-;6231:2;6224:22;5977:275;;-1:-1:-1;5977:275:124:o;6257:900::-;6334:6;6342;6395:2;6383:9;6374:7;6370:23;6366:32;6363:52;;;6411:1;6408;6401:12;6363:52;6450:9;6437:23;6469:31;6494:5;6469:31;:::i;:::-;6519:5;-1:-1:-1;6575:2:124;6560:18;;6547:32;-1:-1:-1;;;;;6591:30:124;;6588:50;;;6634:1;6631;6624:12;6588:50;6657:22;;6710:4;6702:13;;6698:27;-1:-1:-1;6688:55:124;;6739:1;6736;6729:12;6688:55;6779:2;6766:16;-1:-1:-1;;;;;6797:6:124;6794:30;6791:56;;;6827:18;;:::i;:::-;6869:57;6916:2;6893:17;;-1:-1:-1;;6889:31:124;6922:2;6885:40;6869:57;:::i;:::-;6949:6;6942:5;6935:21;6997:7;6992:2;6983:6;6979:2;6975:15;6971:24;6968:37;6965:57;;;7018:1;7015;7008:12;6965:57;7073:6;7068:2;7064;7060:11;7055:2;7048:5;7044:14;7031:49;7125:1;7120:2;7111:6;7104:5;7100:18;7096:27;7089:38;7146:5;7136:15;;;;;6257:900;;;;;:::o;8272:669::-;8385:6;8393;8401;8409;8462:3;8450:9;8441:7;8437:23;8433:33;8430:53;;;8479:1;8476;8469:12;8430:53;8502;8547:7;8536:9;8502:53;:::i;:::-;8492:63;;8606:2;8595:9;8591:18;8578:32;-1:-1:-1;;;;;8625:6:124;8622:30;8619:50;;;8665:1;8662;8655:12;8619:50;8704:58;8754:7;8745:6;8734:9;8730:22;8704:58;:::i;:::-;8781:8;;-1:-1:-1;8678:84:124;-1:-1:-1;;8866:3:124;8851:19;;8838:33;8880:31;8838:33;8880:31;:::i;:::-;8272:669;;;;-1:-1:-1;8272:669:124;;-1:-1:-1;;8272:669:124:o;9346:918::-;9451:6;9459;9467;9475;9528:2;9516:9;9507:7;9503:23;9499:32;9496:52;;;9544:1;9541;9534:12;9496:52;9584:9;9571:23;-1:-1:-1;;;;;9609:6:124;9606:30;9603:50;;;9649:1;9646;9639:12;9603:50;9672:22;;9725:4;9717:13;;9713:27;-1:-1:-1;9703:55:124;;9754:1;9751;9744:12;9703:55;9794:2;9781:16;-1:-1:-1;;;;;9812:6:124;9809:30;9806:50;;;9852:1;9849;9842:12;9806:50;9907:7;9900:4;9890:6;9887:1;9883:14;9879:2;9875:23;9871:34;9868:47;9865:67;;;9928:1;9925;9918:12;9865:67;9959:4;9951:13;;;;-1:-1:-1;9983:6:124;-1:-1:-1;10027:20:124;;10014:34;-1:-1:-1;;;;;10060:32:124;;10057:52;;;10105:1;10102;10095:12;10057:52;10144:60;10196:7;10185:8;10174:9;10170:24;10144:60;:::i;:::-;9346:918;;;;-1:-1:-1;10223:8:124;-1:-1:-1;;;;9346:918:124:o;10269:235::-;10353:6;10406:2;10394:9;10385:7;10381:23;10377:32;10374:52;;;10422:1;10419;10412:12;10374:52;10445:53;10490:7;10479:9;10445:53;:::i;10509:127::-;10570:10;10565:3;10561:20;10558:1;10551:31;10601:4;10598:1;10591:15;10625:4;10622:1;10615:15;10641:375;10729:1;10747:5;10761:249;10782:1;10772:8;10769:15;10761:249;;;10832:4;10827:3;10823:14;10817:4;10814:24;10811:50;;;10841:18;;:::i;:::-;10891:1;10881:8;10877:16;10874:49;;;10905:16;;;;10874:49;10988:1;10984:16;;;;;10944:15;;10761:249;;;10641:375;;;;;;:::o;11021:902::-;11070:5;11100:8;11090:80;;-1:-1:-1;11141:1:124;11155:5;;11090:80;11189:4;11179:76;;-1:-1:-1;11226:1:124;11240:5;;11179:76;11271:4;11289:1;11284:59;;;;11357:1;11352:174;;;;11264:262;;11284:59;11314:1;11305:10;;11328:5;;;11352:174;11389:3;11379:8;11376:17;11373:43;;;11396:18;;:::i;:::-;-1:-1:-1;;11452:1:124;11438:16;;11511:5;;11264:262;;11610:2;11600:8;11597:16;11591:3;11585:4;11582:13;11578:36;11572:2;11562:8;11559:16;11554:2;11548:4;11545:12;11541:35;11538:77;11535:203;;;-1:-1:-1;11647:19:124;;;11723:5;;11535:203;11770:42;-1:-1:-1;;11795:8:124;11789:4;11770:42;:::i;:::-;11848:6;11844:1;11840:6;11836:19;11827:7;11824:32;11821:58;;;11859:18;;:::i;:::-;11897:20;;11021:902;-1:-1:-1;;;11021:902:124:o;11928:131::-;11988:5;12017:36;12044:8;12038:4;12017:36;:::i;12332:127::-;12393:10;12388:3;12384:20;12381:1;12374:31;12424:4;12421:1;12414:15;12448:4;12445:1;12438:15;12464:129;-1:-1:-1;;;;;12542:5:124;12538:30;12531:5;12528:41;12518:69;;12583:1;12580;12573:12;12598:245;12656:6;12709:2;12697:9;12688:7;12684:23;12680:32;12677:52;;;12725:1;12722;12715:12;12677:52;12764:9;12751:23;12783:30;12807:5;12783:30;:::i;13045:1123::-;13217:5;13204:19;13232:32;13256:7;13232:32;:::i;:::-;-1:-1:-1;;;;;13287:7:124;13283:32;13273:42;;13340:4;13334:11;13404:2;-1:-1:-1;;;;;13378:23:124;13374:2;13370:32;13367:40;13361:4;13354:54;13456:2;13449:5;13445:14;13432:28;13469:32;13493:7;13469:32;:::i;:::-;13548:26;13538:7;13534:2;13530:16;13526:49;13510:65;;13650:8;13645:2;13615:26;13611:31;13607:2;13603:40;13600:48;13597:62;13591:4;13584:76;13708:2;13701:5;13697:14;13684:28;13669:43;;13721:33;13746:7;13721:33;:::i;:::-;13779:16;;;13805:2;13801:16;;;-1:-1:-1;;13797:54:124;13776:76;13763:90;;13881:1;;13919:14;;13906:28;13943:33;13906:28;13943:33;:::i;:::-;14040:1;14030:12;;;;14073:13;;-1:-1:-1;;;;;;14069:56:124;-1:-1:-1;;;;;14127:33:124;;;14066:95;;;;14051:111;;;-1:-1:-1;;13045:1123:124:o;14173:125::-;14238:9;;;14259:10;;;14256:36;;;14272:18;;:::i;14702:408::-;14904:2;14886:21;;;14943:2;14923:18;;;14916:30;14982:34;14977:2;14962:18;;14955:62;-1:-1:-1;;;15048:2:124;15033:18;;15026:42;15100:3;15085:19;;14702:408::o;15115:::-;15317:2;15299:21;;;15356:2;15336:18;;;15329:30;15395:34;15390:2;15375:18;;15368:62;-1:-1:-1;;;15461:2:124;15446:18;;15439:42;15513:3;15498:19;;15115:408::o;15953:128::-;16020:9;;;16041:11;;;16038:37;;;16055:18;;:::i;17840:365::-;17907:6;17915;17968:2;17956:9;17947:7;17943:23;17939:32;17936:52;;;17984:1;17981;17974:12;17936:52;18029:23;;;-1:-1:-1;18128:2:124;18113:18;;18100:32;18141;18100;18141;:::i;:::-;18192:7;18182:17;;;17840:365;;;;;:::o;18210:168::-;18283:9;;;18314;;18331:15;;;18325:22;;18311:37;18301:71;;18352:18;;:::i;18744:230::-;18814:6;18867:2;18855:9;18846:7;18842:23;18838:32;18835:52;;;18883:1;18880;18873:12;18835:52;-1:-1:-1;18928:16:124;;18744:230;-1:-1:-1;18744:230:124:o;20072:407::-;20274:2;20256:21;;;20313:2;20293:18;;;20286:30;20352:34;20347:2;20332:18;;20325:62;-1:-1:-1;;;20418:2:124;20403:18;;20396:41;20469:3;20454:19;;20072:407::o;20484:191::-;-1:-1:-1;;;;;20552:26:124;;;20580;;;20548:59;;20619:27;;20616:53;;;20649:18;;:::i;20956:288::-;20997:3;21035:5;21029:12;21062:6;21057:3;21050:19;21118:6;21111:4;21104:5;21100:16;21093:4;21088:3;21084:14;21078:47;21170:1;21163:4;21154:6;21149:3;21145:16;21141:27;21134:38;21233:4;21226:2;21222:7;21217:2;21209:6;21205:15;21201:29;21196:3;21192:39;21188:50;21181:57;;;20956:288;;;;:::o;21249:887::-;21470:2;21459:9;21452:21;21528:10;21519:6;21513:13;21509:30;21504:2;21493:9;21489:18;21482:58;21594:4;21586:6;21582:17;21576:24;21571:2;21560:9;21556:18;21549:52;21433:4;21648:2;21640:6;21636:15;21630:22;21689:4;21683:3;21672:9;21668:19;21661:33;21717:51;21763:3;21752:9;21748:19;21734:12;21717:51;:::i;:::-;21703:65;;21817:2;21809:6;21805:15;21799:22;21891:2;21887:7;21875:9;21867:6;21863:22;21859:36;21852:4;21841:9;21837:20;21830:66;21919:40;21952:6;21936:14;21919:40;:::i;:::-;22028:3;22016:16;;;;22010:23;22003:31;21996:39;21990:3;21975:19;;21968:68;-1:-1:-1;;;;;;;;22097:32:124;;;;22090:4;22075:20;;;22068:62;21905:54;21249:887::o;22141:602::-;22211:5;22259:4;22247:9;22242:3;22238:19;22234:30;22231:50;;;22277:1;22274;22267:12;22231:50;22330:4;22324:11;;;22362:17;;-1:-1:-1;;;;;22394:34:124;;22430:22;;;22391:62;22388:88;;;22456:18;;:::i;:::-;22492:4;22485:24;22578:16;;22603:23;;22692:2;22677:18;;;22671:25;22712:15;;;22705:32;;;;-1:-1:-1;22527:6:124;22141:602;-1:-1:-1;22141:602:124:o;22748:791::-;22851:6;22911:3;22899:9;22890:7;22886:23;22882:33;22927:2;22924:22;;;22942:1;22939;22932:12;22924:22;-1:-1:-1;23011:2:124;23005:9;23053:4;23041:17;;-1:-1:-1;;;;;23073:34:124;;23109:22;;;23070:62;23067:88;;;23135:18;;:::i;:::-;23171:2;23164:22;23227:16;;23252:21;;23318:2;23303:18;;23297:25;23331:32;23297:25;23331:32;:::i;:::-;23391:2;23379:15;;23372:32;23437:70;23499:7;23494:2;23479:18;;23437:70;:::i;:::-;23432:2;23420:15;;23413:95;23424:6;22748:791;-1:-1:-1;;;22748:791:124:o;23544:479::-;23732:2;23717:18;;23721:9;23812:6;23690:4;23846:171;23860:4;23857:1;23854:11;23846:171;;;23919:13;;23907:26;;23962:4;23953:14;;;;23990:17;;;;23880:1;23873:9;23846:171;;;23850:3;;;23544:479;;;;:::o;24677:258::-;24776:6;24829:2;24817:9;24808:7;24804:23;24800:32;24797:52;;;24845:1;24842;24835:12;24797:52;24868:61;24921:7;24910:9;24868:61;:::i;24940:135::-;24979:3;25000:17;;;24997:43;;25020:18;;:::i;:::-;-1:-1:-1;25067:1:124;25056:13;;24940:135::o;25080:251::-;25150:6;25203:2;25191:9;25182:7;25178:23;25174:32;25171:52;;;25219:1;25216;25209:12;25171:52;25251:9;25245:16;25270:31;25295:5;25270:31;:::i;25712:301::-;25841:3;25879:6;25873:13;25925:6;25918:4;25910:6;25906:17;25901:3;25895:37;25987:1;25951:16;;25976:13;;;-1:-1:-1;25951:16:124;25712:301;-1:-1:-1;25712:301:124:o;26376:219::-;26525:2;26514:9;26507:21;26488:4;26545:44;26585:2;26574:9;26570:18;26562:6;26545:44;:::i","linkReferences":{"lib/poseidon-solidity/contracts/PoseidonT3.sol":{"PoseidonT3":[{"start":9409,"length":20}]}},"immutableReferences":{"2498":[{"start":903,"length":32},{"start":1534,"length":32},{"start":5468,"length":32},{"start":9173,"length":32},{"start":9730,"length":32},{"start":10193,"length":32},{"start":10376,"length":32}],"46681":[{"start":3424,"length":32},{"start":3488,"length":32},{"start":3682,"length":32},{"start":3746,"length":32},{"start":3891,"length":32}]}},"methodIdentifiers":{"MAX_LEAVES()":"082febf0","aggSeq()":"c0d03dd4","allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","broadcast(uint32[],bytes)":"cab45f12","currentAggregationRoot()":"1a2595a9","eidToPosition(uint32)":"2dd992be","endpoint()":"5e280f11","getTokenInfos()":"193695eb","getTransferRootsAndIndices()":"2ba8d07b","initialize(address)":"c4d66de8","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","nextNonce(uint32,bytes32)":"7d25a05e","oAppVersion()":"17442b70","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","proxiableUUID()":"52d1902d","quoteBroadcast(uint32[],bytes)":"8e3a428e","registerToken((uint64,uint32,address,address))":"327a75d2","renounceOwnership()":"715018a6","setDelegate(address)":"ca5eb5e1","setPeer(uint32,bytes32)":"3400288b","tokenInfos(uint256)":"7c13774b","transferOwnership(address)":"f2fde38b","transferRoots(uint256)":"8f84778d","transferTreeIndices(uint256)":"534dc25e","updateToken((uint64,uint32,address,address))":"62b32f58","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286","zeroHash(uint256)":"41b4631e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"endpoint\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"EmptyTargetEids\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"FeeRefundFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HubCapacityReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidChainId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"InvalidPayloadLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"name\":\"LayerZeroTokenFeeUnsupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"provided\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"NativeFeeMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"TokenAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"TokenNotRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroVerifier\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"aggSeq\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"transferRootsSnapshot\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint64[]\",\"name\":\"transferTreeIndicesSnapshot\",\"type\":\"uint64[]\"}],\"name\":\"AggregationRootUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"TokenRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"TokenUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newRoot\",\"type\":\"uint256\"}],\"name\":\"TransferRootUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MAX_LEAVES\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"aggSeq\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"targetEids\",\"type\":\"uint32[]\"},{\"internalType\":\"bytes\",\"name\":\"lzOptions\",\"type\":\"bytes\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentAggregationRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"aggregationRoot\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"eidToPosition\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenInfos\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Hub.TokenInfo[]\",\"name\":\"infos\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTransferRootsAndIndices\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"roots\",\"type\":\"uint256[]\"},{\"internalType\":\"uint64[]\",\"name\":\"treeIndices\",\"type\":\"uint64[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"targetEids\",\"type\":\"uint32[]\"},{\"internalType\":\"bytes\",\"name\":\"lzOptions\",\"type\":\"bytes\"}],\"name\":\"quoteBroadcast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalNativeFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Hub.TokenInfo\",\"name\":\"info\",\"type\":\"tuple\"}],\"name\":\"registerToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index_\",\"type\":\"uint256\"}],\"name\":\"tokenInfos\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index_\",\"type\":\"uint256\"}],\"name\":\"transferRoots\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index_\",\"type\":\"uint256\"}],\"name\":\"transferTreeIndices\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Hub.TokenInfo\",\"name\":\"info\",\"type\":\"tuple\"}],\"name\":\"updateToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index_\",\"type\":\"uint256\"}],\"name\":\"zeroHash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implements the PoseidonT3 tree (height 6 / 64 leaves) and fee semantics consumed by the verifier network.\",\"errors\":{\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"broadcast(uint32[],bytes)\":{\"details\":\"Implements the `broadcast` step, including fee refund semantics.\",\"params\":{\"lzOptions\":\"LayerZero execution parameters (gas, native drop, etc.).\",\"targetEids\":\"LayerZero endpoint IDs that must receive the global root.\"}},\"currentAggregationRoot()\":{\"details\":\"Mirrors the tree calculation performed inside `_computeBroadcastContext` so off-chain agents can poll freshness.\",\"returns\":{\"aggregationRoot\":\"The Poseidon aggregation root derived from the latest transfer roots snapshot.\"}},\"initialize(address)\":{\"params\":{\"delegate\":\"Address that MUST become both the contract owner and LayerZero delegate so admin controls and callbacks share the same authority.\"}},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address.  - srcEid: The source chain endpoint ID.  - sender: The sender address on the src chain.  - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address.  - srcEid: The source chain endpoint ID.  - sender: The sender address on the src chain.  - nonce: The nonce of the message.\"}},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol implementation.\",\"senderVersion\":\"The version of the OAppSender.sol implementation.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"peers(uint32)\":{\"params\":{\"_eid\":\"The endpoint ID.\"},\"returns\":{\"_0\":\"peer The address of the peer associated with the specified endpoint.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"quoteBroadcast(uint32[],bytes)\":{\"params\":{\"lzOptions\":\"LayerZero execution parameters mirrored from `broadcast`.\",\"targetEids\":\"Destination endpoint IDs that must already be registered.\"},\"returns\":{\"totalNativeFee\":\"Sum of endpoint-specific native fee quotes.\"}},\"registerToken((uint64,uint32,address,address))\":{\"details\":\"Mirrors the owner-gated registration flow defined for the aggregation hub.\",\"params\":{\"info\":\"Struct containing chainId, endpoint ID, verifier, and token metadata.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"updateToken((uint64,uint32,address,address))\":{\"params\":{\"info\":\"Updated metadata sharing the same `eid` slot.\"}},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"title\":\"Hub\",\"version\":1},\"userdoc\":{\"errors\":{\"HubCapacityReached()\":[{\"notice\":\"----------------------------------------------------------------------- Errors -----------------------------------------------------------------------\"}]},\"kind\":\"user\",\"methods\":{\"MAX_LEAVES()\":{\"notice\":\"----------------------------------------------------------------------- Constants & Storage -----------------------------------------------------------------------\"},\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"broadcast(uint32[],bytes)\":{\"notice\":\"Snapshots transfer roots, computes the Poseidon aggregation root, and broadcasts it to target EIDs.\"},\"constructor\":{\"notice\":\"----------------------------------------------------------------------- Constructor -----------------------------------------------------------------------\"},\"currentAggregationRoot()\":{\"notice\":\"Computes the aggregation root for the current transfer roots without mutating state.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"getTokenInfos()\":{\"notice\":\"Returns a memory copy of the registered token metadata for off-chain auditors.\"},\"getTransferRootsAndIndices()\":{\"notice\":\"Exposes the latest per-token transfer roots along with their monotonically increasing tree indices.\"},\"initialize(address)\":{\"notice\":\"Initializes the Hub's LayerZero delegate pairing alongside upgrade hooks.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"peers(uint32)\":{\"notice\":\"Returns the peer address (OApp instance) associated with a specific endpoint.\"},\"quoteBroadcast(uint32[],bytes)\":{\"notice\":\"Estimates the total native fee required to broadcast a payload to the provided endpoints.\"},\"registerToken((uint64,uint32,address,address))\":{\"notice\":\"Registers a token/verifier tuple so its transfer roots contribute to the Poseidon aggregation tree.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"},\"updateToken((uint64,uint32,address,address))\":{\"notice\":\"Refreshes the verifier/token metadata for an already-registered endpoint without reordering leaves.\"}},\"notice\":\"Central LayerZero OApp that tracks per-token transfer roots, Poseidon-aggregates them, and broadcasts the         global root consumed by verifier contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Hub.sol\":\"Hub\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/lz-evm-messagelib-v2/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/\",\":@layerzerolabs/lz-evm-protocol-v2/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/\",\":@layerzerolabs/oapp-evm-upgradeable/=lib/devtools/packages/oapp-evm-upgradeable/\",\":@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/\",\":@layerzerolabs/oft-evm-upgradeable/=lib/devtools/packages/oft-evm-upgradeable/\",\":@layerzerolabs/oft-evm/=lib/devtools/packages/oft-evm/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":LayerZero-v2/=lib/LayerZero-v2/\",\":devtools/=lib/devtools/packages/toolbox-foundry/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":poseidon-solidity/=lib/poseidon-solidity/\",\":solidity-bytes-utils/=lib/solidity-bytes-utils/\"]},\"sources\":{\"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0xd710f9efe703982e8eabe15d19d6114af753ef42f2796551da782a0fb6633e4b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5c9c874871469c871004d49a1cb5304e63ea3faaf366bfed9d718abbb9cc20a\",\"dweb:/ipfs/QmarXxE4dezAa5gBe82KCrcvWcMwa3BYqkfXbDQ3rRjfEB\"]},\"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol\":{\"keccak256\":\"0xbe135fd35bf12c97aeb701caeb6c5d0c1c28c1ac2ab1d4219d15f8384951c140\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a5cec12ab6677830bf2daefa94c402d848c223a2a081e4892985c1f4b06d30e4\",\"dweb:/ipfs/QmSV6NwuXCfWMZVFDRmeBgeWGBApwxqQxRbForCC2NTtgd\"]},\"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppReceiverUpgradeable.sol\":{\"keccak256\":\"0xa38e5d26d044331212af7fc69dbbdebf25f527811bbd0492a4cee9ecdd3bd671\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://13a70adbbf5e9299a71811663b98bf62cce797ba9029d0572fa2fa7aa8c5e85d\",\"dweb:/ipfs/QmaTx7dN5XAKXy6bY7r4QCLWRuoP3kcWfLd7VnHf38ysgH\"]},\"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppSenderUpgradeable.sol\":{\"keccak256\":\"0x4e13557c5dc7c983f69d32911572efdbddea071a03bf2fc50e1cad92ddf0ef49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c455f606d0d1e3390a8d2189c50110ac4b5a85ce1be47b4a2e36de92122728a\",\"dweb:/ipfs/QmfH7dQKjCZ4THCRZaPEzaTtv5r69k5F1LbmWQGrYHV76y\"]},\"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppUpgradeable.sol\":{\"keccak256\":\"0xc298cebb8133eed14fcc29865cb8bc5dbeba7b49a3127eea05653b738ceeb71c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9287b693b56b09524bc35411da88b32cf3b7cad7dabebe7d5208bc124550ad35\",\"dweb:/ipfs/QmadrXttz2wimqVYkRNvoMRAm6XBtSbU9sVjULHswgEURu\"]},\"lib/devtools/packages/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"lib/devtools/packages/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c\",\"dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol\":{\"keccak256\":\"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0\",\"dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0\",\"dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f\",\"dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685\",\"dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100\",\"dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037\",\"dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d\",\"dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508\",\"dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"lib/poseidon-solidity/contracts/PoseidonT3.sol\":{\"keccak256\":\"0x0102caa303bbc6690508f3615604f7730789ed990058c9513a87ccb30e4835be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fe7291d5f998eaf7dfe37961b8a8e72f60cf79a7a34459efa5683ca3a702971\",\"dweb:/ipfs/QmQExqgvNEPKLq15rNygqmthUnAPWgTm4m3Bb5BCExwHF1\"]},\"src/Hub.sol\":{\"keccak256\":\"0x0a9527eaf9daabea369542e9b2702086ecf9bb740e4aa4c90e1a9cea6c9c1178\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://318cfb833b0488364ed72cf4f0a503497cbf860db0e938b740c2282898011191\",\"dweb:/ipfs/QmYWLpndRn98QsnaTcWpraqNwxY3RQzSFUeR53sJRnGqWt\"]},\"src/utils/PoseidonAggregationConfig.sol\":{\"keccak256\":\"0x73b091a3bba6ead20bc98beffa39095552b413fa07dec342b62196ee2770e701\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://638053c8a17b8088cc09f61568a8fcb1d228ca256c32596e4b838923acd1204a\",\"dweb:/ipfs/Qma4ZYxQ2Dxkxu9sjWdgEaTCuYxo7CXTLezX9UD8fEop9P\"]},\"src/utils/PoseidonAggregationLib.sol\":{\"keccak256\":\"0x2d0e05e0cf86d6af47cb150e680d91822c4ce31bc2106fe51d6aba03c948d0b3\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://b27433a4801beb1035837d5494bff7c3edb7984b2a3c131452d65d73124fefd7\",\"dweb:/ipfs/QmaT78rmNpXnpZqs8G5D36Fwd2m2SEaDPRET7iQbP8m7pt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"endpoint","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"EmptyTargetEids"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"FeeRefundFailed"},{"inputs":[],"type":"error","name":"HubCapacityReached"},{"inputs":[],"type":"error","name":"InvalidChainId"},{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"InvalidPayloadLength"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}],"type":"error","name":"LayerZeroTokenFeeUnsupported"},{"inputs":[],"type":"error","name":"LzTokenUnavailable"},{"inputs":[{"internalType":"uint256","name":"provided","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"type":"error","name":"NativeFeeMismatch"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"type":"error","name":"NotEnoughNative"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"type":"error","name":"OnlyEndpoint"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"type":"error","name":"OnlyPeer"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"TokenAlreadyRegistered"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"TokenNotRegistered"},{"inputs":[],"type":"error","name":"ZeroToken"},{"inputs":[],"type":"error","name":"ZeroVerifier"},{"inputs":[{"internalType":"address","name":"previousAdmin","type":"address","indexed":false},{"internalType":"address","name":"newAdmin","type":"address","indexed":false}],"type":"event","name":"AdminChanged","anonymous":false},{"inputs":[{"internalType":"uint256","name":"root","type":"uint256","indexed":true},{"internalType":"uint64","name":"aggSeq","type":"uint64","indexed":true},{"internalType":"uint256[]","name":"transferRootsSnapshot","type":"uint256[]","indexed":false},{"internalType":"uint64[]","name":"transferTreeIndicesSnapshot","type":"uint64[]","indexed":false}],"type":"event","name":"AggregationRootUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"beacon","type":"address","indexed":true}],"type":"event","name":"BeaconUpgraded","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"peer","type":"bytes32","indexed":false}],"type":"event","name":"PeerSet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":true},{"internalType":"uint256","name":"index","type":"uint256","indexed":true},{"internalType":"uint64","name":"chainId","type":"uint64","indexed":false},{"internalType":"address","name":"token","type":"address","indexed":false},{"internalType":"address","name":"verifier","type":"address","indexed":false}],"type":"event","name":"TokenRegistered","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":true},{"internalType":"uint256","name":"index","type":"uint256","indexed":true},{"internalType":"uint64","name":"chainId","type":"uint64","indexed":false},{"internalType":"address","name":"token","type":"address","indexed":false},{"internalType":"address","name":"verifier","type":"address","indexed":false}],"type":"event","name":"TokenUpdated","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":true},{"internalType":"uint256","name":"index","type":"uint256","indexed":true},{"internalType":"uint256","name":"newRoot","type":"uint256","indexed":false}],"type":"event","name":"TransferRootUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_LEAVES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"aggSeq","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"stateMutability":"view","type":"function","name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32[]","name":"targetEids","type":"uint32[]"},{"internalType":"bytes","name":"lzOptions","type":"bytes"}],"stateMutability":"payable","type":"function","name":"broadcast"},{"inputs":[],"stateMutability":"view","type":"function","name":"currentAggregationRoot","outputs":[{"internalType":"uint256","name":"aggregationRoot","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"eidToPosition","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTokenInfos","outputs":[{"internalType":"struct Hub.TokenInfo[]","name":"infos","type":"tuple[]","components":[{"internalType":"uint64","name":"chainId","type":"uint64"},{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"address","name":"verifier","type":"address"},{"internalType":"address","name":"token","type":"address"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTransferRootsAndIndices","outputs":[{"internalType":"uint256[]","name":"roots","type":"uint256[]"},{"internalType":"uint64[]","name":"treeIndices","type":"uint64[]"}]},{"inputs":[{"internalType":"address","name":"delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"struct Origin","name":"","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint32[]","name":"targetEids","type":"uint32[]"},{"internalType":"bytes","name":"lzOptions","type":"bytes"}],"stateMutability":"view","type":"function","name":"quoteBroadcast","outputs":[{"internalType":"uint256","name":"totalNativeFee","type":"uint256"}]},{"inputs":[{"internalType":"struct Hub.TokenInfo","name":"info","type":"tuple","components":[{"internalType":"uint64","name":"chainId","type":"uint64"},{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"address","name":"verifier","type":"address"},{"internalType":"address","name":"token","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"registerToken"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setPeer"},{"inputs":[{"internalType":"uint256","name":"index_","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenInfos","outputs":[{"internalType":"uint64","name":"chainId","type":"uint64"},{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"address","name":"verifier","type":"address"},{"internalType":"address","name":"token","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"uint256","name":"index_","type":"uint256"}],"stateMutability":"view","type":"function","name":"transferRoots","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"index_","type":"uint256"}],"stateMutability":"view","type":"function","name":"transferTreeIndices","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"struct Hub.TokenInfo","name":"info","type":"tuple","components":[{"internalType":"uint64","name":"chainId","type":"uint64"},{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"address","name":"verifier","type":"address"},{"internalType":"address","name":"token","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"updateToken"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgradeTo"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[{"internalType":"uint256","name":"index_","type":"uint256"}],"stateMutability":"view","type":"function","name":"zeroHash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"broadcast(uint32[],bytes)":{"details":"Implements the `broadcast` step, including fee refund semantics.","params":{"lzOptions":"LayerZero execution parameters (gas, native drop, etc.).","targetEids":"LayerZero endpoint IDs that must receive the global root."}},"currentAggregationRoot()":{"details":"Mirrors the tree calculation performed inside `_computeBroadcastContext` so off-chain agents can poll freshness.","returns":{"aggregationRoot":"The Poseidon aggregation root derived from the latest transfer roots snapshot."}},"initialize(address)":{"params":{"delegate":"Address that MUST become both the contract owner and LayerZero delegate so admin controls and callbacks share the same authority."}},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address.  - srcEid: The source chain endpoint ID.  - sender: The sender address on the src chain.  - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address.  - srcEid: The source chain endpoint ID.  - sender: The sender address on the src chain.  - nonce: The nonce of the message."}},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol implementation.","senderVersion":"The version of the OAppSender.sol implementation."}},"owner()":{"details":"Returns the address of the current owner."},"peers(uint32)":{"params":{"_eid":"The endpoint ID."},"returns":{"_0":"peer The address of the peer associated with the specified endpoint."}},"proxiableUUID()":{"details":"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"quoteBroadcast(uint32[],bytes)":{"params":{"lzOptions":"LayerZero execution parameters mirrored from `broadcast`.","targetEids":"Destination endpoint IDs that must already be registered."},"returns":{"totalNativeFee":"Sum of endpoint-specific native fee quotes."}},"registerToken((uint64,uint32,address,address))":{"details":"Mirrors the owner-gated registration flow defined for the aggregation hub.","params":{"info":"Struct containing chainId, endpoint ID, verifier, and token metadata."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"updateToken((uint64,uint32,address,address))":{"params":{"info":"Updated metadata sharing the same `eid` slot."}},"upgradeTo(address)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"MAX_LEAVES()":{"notice":"----------------------------------------------------------------------- Constants & Storage -----------------------------------------------------------------------"},"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"broadcast(uint32[],bytes)":{"notice":"Snapshots transfer roots, computes the Poseidon aggregation root, and broadcasts it to target EIDs."},"constructor":{"notice":"----------------------------------------------------------------------- Constructor -----------------------------------------------------------------------"},"currentAggregationRoot()":{"notice":"Computes the aggregation root for the current transfer roots without mutating state."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"getTokenInfos()":{"notice":"Returns a memory copy of the registered token metadata for off-chain auditors."},"getTransferRootsAndIndices()":{"notice":"Exposes the latest per-token transfer roots along with their monotonically increasing tree indices."},"initialize(address)":{"notice":"Initializes the Hub's LayerZero delegate pairing alongside upgrade hooks."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"peers(uint32)":{"notice":"Returns the peer address (OApp instance) associated with a specific endpoint."},"quoteBroadcast(uint32[],bytes)":{"notice":"Estimates the total native fee required to broadcast a payload to the provided endpoints."},"registerToken((uint64,uint32,address,address))":{"notice":"Registers a token/verifier tuple so its transfer roots contribute to the Poseidon aggregation tree."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."},"updateToken((uint64,uint32,address,address))":{"notice":"Refreshes the verifier/token metadata for an already-registered endpoint without reordering leaves."}},"version":1}},"settings":{"remappings":["@layerzerolabs/lz-evm-messagelib-v2/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/","@layerzerolabs/lz-evm-protocol-v2/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/","@layerzerolabs/oapp-evm-upgradeable/=lib/devtools/packages/oapp-evm-upgradeable/","@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/","@layerzerolabs/oft-evm-upgradeable/=lib/devtools/packages/oft-evm-upgradeable/","@layerzerolabs/oft-evm/=lib/devtools/packages/oft-evm/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","LayerZero-v2/=lib/LayerZero-v2/","devtools/=lib/devtools/packages/toolbox-foundry/src/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/","poseidon-solidity/=lib/poseidon-solidity/","solidity-bytes-utils/=lib/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/Hub.sol":"Hub"},"evmVersion":"prague","libraries":{}},"sources":{"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0xd710f9efe703982e8eabe15d19d6114af753ef42f2796551da782a0fb6633e4b","urls":["bzz-raw://b5c9c874871469c871004d49a1cb5304e63ea3faaf366bfed9d718abbb9cc20a","dweb:/ipfs/QmarXxE4dezAa5gBe82KCrcvWcMwa3BYqkfXbDQ3rRjfEB"],"license":"MIT"},"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol":{"keccak256":"0xbe135fd35bf12c97aeb701caeb6c5d0c1c28c1ac2ab1d4219d15f8384951c140","urls":["bzz-raw://a5cec12ab6677830bf2daefa94c402d848c223a2a081e4892985c1f4b06d30e4","dweb:/ipfs/QmSV6NwuXCfWMZVFDRmeBgeWGBApwxqQxRbForCC2NTtgd"],"license":"MIT"},"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppReceiverUpgradeable.sol":{"keccak256":"0xa38e5d26d044331212af7fc69dbbdebf25f527811bbd0492a4cee9ecdd3bd671","urls":["bzz-raw://13a70adbbf5e9299a71811663b98bf62cce797ba9029d0572fa2fa7aa8c5e85d","dweb:/ipfs/QmaTx7dN5XAKXy6bY7r4QCLWRuoP3kcWfLd7VnHf38ysgH"],"license":"MIT"},"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppSenderUpgradeable.sol":{"keccak256":"0x4e13557c5dc7c983f69d32911572efdbddea071a03bf2fc50e1cad92ddf0ef49","urls":["bzz-raw://0c455f606d0d1e3390a8d2189c50110ac4b5a85ce1be47b4a2e36de92122728a","dweb:/ipfs/QmfH7dQKjCZ4THCRZaPEzaTtv5r69k5F1LbmWQGrYHV76y"],"license":"MIT"},"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppUpgradeable.sol":{"keccak256":"0xc298cebb8133eed14fcc29865cb8bc5dbeba7b49a3127eea05653b738ceeb71c","urls":["bzz-raw://9287b693b56b09524bc35411da88b32cf3b7cad7dabebe7d5208bc124550ad35","dweb:/ipfs/QmadrXttz2wimqVYkRNvoMRAm6XBtSbU9sVjULHswgEURu"],"license":"MIT"},"lib/devtools/packages/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"lib/devtools/packages/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e","urls":["bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c","dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol":{"keccak256":"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b","urls":["bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0","dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol":{"keccak256":"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f","urls":["bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053","dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol":{"keccak256":"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8","urls":["bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0","dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol":{"keccak256":"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908","urls":["bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1","dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33","urls":["bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f","dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol":{"keccak256":"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908","urls":["bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685","dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d","urls":["bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100","dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc","urls":["bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037","dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44","urls":["bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d","dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5","urls":["bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508","dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"lib/poseidon-solidity/contracts/PoseidonT3.sol":{"keccak256":"0x0102caa303bbc6690508f3615604f7730789ed990058c9513a87ccb30e4835be","urls":["bzz-raw://1fe7291d5f998eaf7dfe37961b8a8e72f60cf79a7a34459efa5683ca3a702971","dweb:/ipfs/QmQExqgvNEPKLq15rNygqmthUnAPWgTm4m3Bb5BCExwHF1"],"license":"MIT"},"src/Hub.sol":{"keccak256":"0x0a9527eaf9daabea369542e9b2702086ecf9bb740e4aa4c90e1a9cea6c9c1178","urls":["bzz-raw://318cfb833b0488364ed72cf4f0a503497cbf860db0e938b740c2282898011191","dweb:/ipfs/QmYWLpndRn98QsnaTcWpraqNwxY3RQzSFUeR53sJRnGqWt"],"license":"Unlicense"},"src/utils/PoseidonAggregationConfig.sol":{"keccak256":"0x73b091a3bba6ead20bc98beffa39095552b413fa07dec342b62196ee2770e701","urls":["bzz-raw://638053c8a17b8088cc09f61568a8fcb1d228ca256c32596e4b838923acd1204a","dweb:/ipfs/Qma4ZYxQ2Dxkxu9sjWdgEaTCuYxo7CXTLezX9UD8fEop9P"],"license":"Unlicense"},"src/utils/PoseidonAggregationLib.sol":{"keccak256":"0x2d0e05e0cf86d6af47cb150e680d91822c4ce31bc2106fe51d6aba03c948d0b3","urls":["bzz-raw://b27433a4801beb1035837d5494bff7c3edb7984b2a3c131452d65d73124fefd7","dweb:/ipfs/QmaT78rmNpXnpZqs8G5D36Fwd2m2SEaDPRET7iQbP8m7pt"],"license":"Unlicense"}},"version":1},"id":98}