@unruggable/gateways
Version:
Trustless Ethereum Multichain CCIP-Read Gateway
1 lines • 87.7 kB
JSON
{"abi":[{"type":"constructor","inputs":[{"name":"urls","type":"string[]","internalType":"string[]"},{"name":"window","type":"uint256","internalType":"uint256"},{"name":"hooks","type":"address","internalType":"contract IVerifierHooks"},{"name":"rootChain","type":"address","internalType":"contract IRootChain"},{"name":"poster","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"gatewayURLs","inputs":[],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"getHooks","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IVerifierHooks"}],"stateMutability":"view"},{"type":"function","name":"getLatestContext","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getPoster","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getStorageValues","inputs":[{"name":"context","type":"bytes","internalType":"bytes"},{"name":"req","type":"tuple","internalType":"struct GatewayRequest","components":[{"name":"ops","type":"bytes","internalType":"bytes"}]},{"name":"proof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"},{"name":"exitCode","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"getWindow","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setGatewayURLs","inputs":[{"name":"urls","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"GatewayURLsChanged","inputs":[],"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":"error","name":"CommitTooNew","inputs":[{"name":"latest","type":"uint256","internalType":"uint256"},{"name":"got","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"CommitTooOld","inputs":[{"name":"latest","type":"uint256","internalType":"uint256"},{"name":"got","type":"uint256","internalType":"uint256"},{"name":"window","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ContentLengthMismatch","inputs":[]},{"type":"error","name":"EmptyItem","inputs":[]},{"type":"error","name":"InvalidDataRemainder","inputs":[]},{"type":"error","name":"InvalidHeader","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"UnexpectedList","inputs":[]},{"type":"error","name":"UnexpectedString","inputs":[]}],"bytecode":{"object":"0x610100604052348015610010575f80fd5b506040516124db3803806124db83398101604081905261002f91610209565b848484338061005757604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100608161009d565b5082516100749060019060208601906100ec565b506080919091526001600160a01b0390811660a05292831660c052501660e0525061049f915050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054828255905f5260205f20908101928215610130579160200282015b82811115610130578251829061012090826103e0565b509160200191906001019061010a565b5061013c929150610140565b5090565b8082111561013c575f610153828261015c565b50600101610140565b5080546101689061035c565b5f825580601f10610177575050565b601f0160209004905f5260205f20908101906101939190610196565b50565b5b8082111561013c575f8155600101610197565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156101e6576101e66101aa565b604052919050565b80516001600160a01b0381168114610204575f80fd5b919050565b5f805f805f60a0868803121561021d575f80fd5b85516001600160401b0380821115610233575f80fd5b818801915088601f830112610246575f80fd5b815181811115610258576102586101aa565b61026760208260051b016101be565b8082825260208201915060208360051b86010192508b831115610288575f80fd5b602085015b83811015610318578051858111156102a3575f80fd5b8601603f81018e136102b3575f80fd5b6020810151868111156102c8576102c86101aa565b6102db601f8201601f19166020016101be565b8181528f60408385010111156102ef575f80fd5b8160408401602083015e5f6020838301015280865250505060208301925060208101905061028d565b50809950505050505060208601519350610334604087016101ee565b9250610342606087016101ee565b9150610350608087016101ee565b90509295509295909350565b600181811c9082168061037057607f821691505b60208210810361038e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156103db57805f5260205f20601f840160051c810160208510156103b95750805b601f840160051c820191505b818110156103d8575f81556001016103c5565b50505b505050565b81516001600160401b038111156103f9576103f96101aa565b61040d81610407845461035c565b84610394565b602080601f831160018114610440575f84156104295750858301515b5f19600386901b1c1916600185901b178555610497565b5f85815260208120601f198616915b8281101561046e5788860151825594840194600190910190840161044f565b508582101561048b57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b60805160a05160c05160e051611fe26104f95f395f818160f40152610b3f01525f81816101b20152818161040901526104e801525f818160c5015261066a01525f81816095015281816107f801526108400152611fe25ff3fe608060405234801561000f575f80fd5b506004361061008c575f3560e01c80631d80051d146100905780635cd2525e146100c3578063683a6a8b146100f2578063715018a61461011857806387c484fe146101225780638da5cb5b146101375780638e5ea8df1461013f578063b50f2fbc14610152578063e3d1666e14610167578063f2fde38b14610188575b5f80fd5b6040517f000000000000000000000000000000000000000000000000000000000000000081526020015b60405180910390f35b7f00000000000000000000000000000000000000000000000000000000000000005b6040516100ba91906116c7565b7f00000000000000000000000000000000000000000000000000000000000000006100e5565b61012061019b565b005b61012a6101ae565b6040516100ba9190611709565b6100e5610256565b61012061014d36600461180a565b610264565b61015a6102ab565b6040516100ba91906118c6565b61017a610175366004611946565b61037f565b6040516100ba929190611a09565b610120610196366004611a8b565b610709565b6101a3610746565b6101ac5f610778565b565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ec7e48556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561020c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102309190611aa6565b60405160200161024291815260200190565b604051602081830303815290604052905090565b5f546001600160a01b031690565b61026c610746565b805161027f9060019060208401906115f9565b506040517fe621d803a0c96b9bbeea51d136777f6ea8a4ce0c4ac74f6645e18b4342e2fa07905f90a150565b60606001805480602002602001604051908101604052809291908181526020015f905b82821015610376578382905f5260205f200180546102eb90611abd565b80601f016020809104026020016040519081016040528092919081815260200182805461031790611abd565b80156103625780601f1061033957610100808354040283529160200191610362565b820191905f5260205f20905b81548152906001019060200180831161034557829003601f168201915b5050505050815260200190600101906102ce565b50505050905090565b60605f80858060200190518101906103979190611aa6565b90505f848060200190518101906103ae9190611bc7565b90505f6103bd825f01516107c7565b90505f6103e2825f815181106103d5576103d5611c97565b60200260200101516107e0565b6040516320a9cea560e11b8152600481018290529091505f90819081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906341539d4a9060240160a060405180830381865afa15801561044e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104729190611cab565b50935050925092505f801b83036104c95760405162461bcd60e51b8152602060048201526016602482015275141bdb1e59dbdb941bd4ce8818da1958dadc1bda5b9d60521b60448201526064015b60405180910390fd5b83871461056b576040516320a9cea560e11b8152600481018890525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906341539d4a9060240160a060405180830381865afa158015610535573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105599190611cab565b50935050505061056981836107f2565b505b5f61057786858561089b565b90505f61059982610594896009815181106103d5576103d5611c97565b610a66565b905087602001518051906020012081146105ed5760405162461bcd60e51b81526020600482015260156024820152740a0ded8f2cededca0dea67440c4d8dec6d690c2e6d605b1b60448201526064016104c0565b6105fa88602001516107c7565b96505f6106208860038151811061061357610613611c97565b6020026020010151610bea565b905073__$011ed85421b307e5206de383929e31be73$__6392a201d48f6040518060a001604052805f81526020018581526020018d6040015181526020018d6060015181526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152506040518363ffffffff1660e01b81526004016106b2929190611cf4565b5f60405180830381865af41580156106cc573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526106f39190810190611dc5565b9b509b5050505050505050505050935093915050565b610711610746565b6001600160a01b03811661073a575f604051631e4fbdf760e01b81526004016104c091906116c7565b61074381610778565b50565b3361074f610256565b6001600160a01b0316146101ac573360405163118cdaa760e01b81526004016104c091906116c7565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60606107da6107d583610c29565b610c70565b92915050565b5f6107da6107ed83610de3565b610e62565b8161081d7f000000000000000000000000000000000000000000000000000000000000000083611e2c565b101561086c57604051632a54241d60e21b815260048101839052602481018290527f000000000000000000000000000000000000000000000000000000000000000060448201526064016104c0565b818111156108975760405163b356ade760e01b815260048101839052602481018290526044016104c0565b5050565b60605f6108b4856002815181106103d5576103d5611c97565b5f1c90505f6108cf8660058151811061061357610613611c97565b90505f826108e9886003815181106103d5576103d5611c97565b6108ff8960048151811061061357610613611c97565b60408051602081019490945283019190915260608201526080810183905260a0016040516020818303038152906040528051906020012090505f61096f826109608a60018151811061095357610953611c97565b6020026020010151610de3565b61096a8988611e3f565b610ea9565b90508087146109b75760405162461bcd60e51b81526020600482015260146024820152730a0ded8f2cededca0dea67440e4dedee890c2e6d60631b60448201526064016104c0565b6109cd8860068151811061095357610953611c97565b9450610a0c836109f16109ec8b60078151811061095357610953611c97565b6107c7565b610a078b60088151811061095357610953611c97565b610f3d565b8551602087012014610a5b5760405162461bcd60e51b8152602060048201526018602482015277141bdb1e59dbdb941bdcce881c9958d95a5c1d1cd49bdbdd60421b60448201526064016104c0565b505050509392505050565b5f825f81518110610a7957610a79611c97565b016020015160f81c15610a945782515f190160019093019283525b5f610a9e846107c7565b9050610ac381600381518110610ab657610ab6611c97565b6020026020010151610c70565b905082815111610b0c5760405162461bcd60e51b81526020600482015260146024820152730a0ded8f2cededca0dea67440d8dece92dcc8caf60631b60448201526064016104c0565b610b21818481518110610ab657610ab6611c97565b90505f610b39825f815181106103d5576103d5611c97565b5f1c90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614610bb35760405162461bcd60e51b81526020600482015260126024820152712837b63cb3b7b72837a99d103837b9ba32b960711b60448201526064016104c0565b610bc982600181518110610ab657610ab6611c97565b9150610be18260018151811061061357610613611c97565b95945050505050565b5f80610bf583610de3565b90508051602014610c19576040516366c9448560e01b815260040160405180910390fd5b610c2281611e52565b9392505050565b610c3161164d565b81515f03610c5257604051635ab458fb60e01b815260040160405180910390fd5b50604080518082019091528151815260209182019181019190915290565b60605f805f610c7e85611169565b919450925090506001816001811115610c9957610c99611e75565b14610cb7576040516325ce355f60e11b815260040160405180910390fd5b8451610cc38385611e2c565b14610ce157604051630b8aa6f760e31b815260040160405180910390fd5b604080516020808252610420820190925290816020015b610d0061164d565b815260200190600190039081610cf85790505093505f835b8651811015610dd7575f80610d5c6040518060400160405280858c5f0151610d409190611e3f565b8152602001858c60200151610d559190611e2c565b9052611169565b509150915060405180604001604052808383610d789190611e2c565b8152602001848b60200151610d8d9190611e2c565b815250888581518110610da257610da2611c97565b6020908102919091010152610db8600185611e2c565b9350610dc48183611e2c565b610dce9084611e2c565b92505050610d18565b50845250919392505050565b60605f805f610df185611169565b919450925090505f816001811115610e0b57610e0b611e75565b14610e29576040516307fe6cb960e21b815260040160405180910390fd5b610e338284611e2c565b855114610e5357604051630b8aa6f760e31b815260040160405180910390fd5b610be18560200151848461144c565b5f602082511115610e86576040516366c9448560e01b815260040160405180910390fd5b600382516020610e969190611e3f565b901b610ea183611e52565b901c92915050565b825f5b8351811015610f35576020818501810151910190600184165f03610efb576040805160208101859052908101829052606001604051602081830303815290604052805190602001209250610f28565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b50600183901c9250610eac565b509392505050565b5f610f47826114da565b9150835f805b855181108015610f5e575084518211155b1561115f57610f8c868281518110610f7857610f78611c97565b602002602001015180516020909101512090565b830361115f575f610fa8878381518110610ab657610ab6611c97565b9050805160110361103a5785518303610fe057610fd18160108151811061095357610953611c97565b8051906020012094505061115f565b5f868481518110610ff357610ff3611c97565b016020015160f81c9050601081111561100d57505061115f565b611025828260ff168151811061061357610613611c97565b9450611032600185611e2c565b93505061114c565b8051600203611146575f61106161105c835f8151811061095357610953611c97565b6114da565b90505f5b8151811080156110bd575081818151811061108257611082611c97565b01602001516001600160f81b0319168861109c8388611e2c565b815181106110ac576110ac611c97565b01602001516001600160f81b031916145b156110d457806110cc81611e89565b915050611065565b87516110e08287611e2c565b0361110c576110fb8360018151811061095357610953611c97565b80519060200120965050505061115f565b805f0361111b5750505061115f565b6111258186611e2c565b945061113d8360018151811061061357610613611c97565b9550505061114c565b5061115f565b508061115781611e89565b915050610f4d565b5050509392505050565b5f805f835f01515f0361118f57604051635ab458fb60e01b815260040160405180910390fd5b602084015180515f1a607f81116111b1575f60015f9450945094505050611445565b60b78111611246575f6111c5608083611e3f565b905080875f0151116111ea576040516366c9448560e01b815260040160405180910390fd5b6001838101516001600160f81b03191690821480156112165750600160ff1b6001600160f81b03198216105b156112345760405163babb01dd60e01b815260040160405180910390fd5b506001955093505f9250611445915050565b60bf8111611324575f61125a60b783611e3f565b905080875f01511161127f576040516366c9448560e01b815260040160405180910390fd5b60018301516001600160f81b0319165f8190036112af5760405163babb01dd60e01b815260040160405180910390fd5b600184015160088302610100031c603781116112de5760405163babb01dd60e01b815260040160405180910390fd5b6112e88184611e2c565b895111611308576040516366c9448560e01b815260040160405180910390fd5b611313836001611e2c565b975095505f94506114459350505050565b60f7811161136e575f61133860c083611e3f565b905080875f01511161135d576040516366c9448560e01b815260040160405180910390fd5b600195509350849250611445915050565b5f61137a60f783611e3f565b905080875f01511161139f576040516366c9448560e01b815260040160405180910390fd5b60018301516001600160f81b0319165f8190036113cf5760405163babb01dd60e01b815260040160405180910390fd5b600184015160088302610100031c603781116113fe5760405163babb01dd60e01b815260040160405180910390fd5b6114088184611e2c565b895111611428576040516366c9448560e01b815260040160405180910390fd5b611433836001611e2c565b97509550600194506114459350505050565b9193909250565b6060816001600160401b038111156114665761146661171b565b6040519080825280601f01601f191660200182016040528015611490576020820181803683370190505b5090508115610c22575f6114a48486611e2c565b9050602082015f5b848110156114c45782810151828201526020016114ac565b8481111561115f57505f90840152509392505050565b606081515f146115af575f6114ef835f6115b4565b600116156114fe576001611501565b60025b60ff1690508060018451901b6115179190611e3f565b6001600160401b0381111561152e5761152e61171b565b6040519080825280601f01601f191660200182016040528015611558576020820181803683370190505b5091505f5b82518110156115ac57611579846115748385611e2c565b6115b4565b60f81b83828151811061158e5761158e611c97565b60200101906001600160f81b03191690815f1a90535060010161155d565b50505b919050565b5f8083600184901c815181106115cc576115cc611c97565b016020015160f81c905060018316156115e85780600f166115f1565b60048160ff16901c5b949350505050565b828054828255905f5260205f2090810192821561163d579160200282015b8281111561163d578251829061162d9082611eed565b5091602001919060010190611617565b50611649929150611665565b5090565b60405180604001604052805f81526020015f81525090565b80821115611649575f6116788282611681565b50600101611665565b50805461168d90611abd565b5f825580601f1061169c575050565b601f0160209004905f5260205f209081019061074391905b80821115611649575f81556001016116b4565b6001600160a01b0391909116815260200190565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610c2260208301846116db565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b03811182821017156117515761175161171b565b60405290565b604051601f8201601f191681016001600160401b038111828210171561177f5761177f61171b565b604052919050565b5f6001600160401b0382111561179f5761179f61171b565b5060051b60200190565b5f6001600160401b038211156117c1576117c161171b565b50601f01601f191660200190565b5f6117e16117dc846117a9565b611757565b90508281528383830111156117f4575f80fd5b828260208301375f602084830101529392505050565b5f602080838503121561181b575f80fd5b82356001600160401b0380821115611831575f80fd5b818501915085601f830112611844575f80fd5b81356118526117dc82611787565b81815260059190911b83018401908481019088831115611870575f80fd5b8585015b838110156118b95780358581111561188a575f80fd5b8601603f81018b1361189a575f80fd5b6118ab8b89830135604084016117cf565b845250918601918601611874565b5098975050505050505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561191b57603f198886030184526119098583516116db565b945092850192908501906001016118ed565b5092979650505050505050565b5f82601f830112611937575f80fd5b610c22838335602085016117cf565b5f805f60608486031215611958575f80fd5b83356001600160401b038082111561196e575f80fd5b61197a87838801611928565b9450602086013591508082111561198f575f80fd5b90850190602082880312156119a2575f80fd5b6040516020810181811083821117156119bd576119bd61171b565b6040528235828111156119ce575f80fd5b6119da89828601611928565b825250935060408601359150808211156119f2575f80fd5b506119ff86828701611928565b9150509250925092565b5f604082016040835280855180835260608501915060608160051b860101925060208088015f5b83811015611a5e57605f19888703018552611a4c8683516116db565b95509382019390820190600101611a30565b50505050508091505060ff831660208301529392505050565b6001600160a01b0381168114610743575f80fd5b5f60208284031215611a9b575f80fd5b8135610c2281611a77565b5f60208284031215611ab6575f80fd5b5051919050565b600181811c90821680611ad157607f821691505b602082108103611aef57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f82601f830112611b04575f80fd5b8151611b126117dc826117a9565b818152846020838601011115611b26575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f82601f830112611b51575f80fd5b81516020611b616117dc83611787565b82815260059290921b84018101918181019086841115611b7f575f80fd5b8286015b84811015611bbc5780516001600160401b03811115611ba0575f80fd5b611bae8986838b0101611af5565b845250918301918301611b83565b509695505050505050565b5f60208284031215611bd7575f80fd5b81516001600160401b0380821115611bed575f80fd5b9083019060808286031215611c00575f80fd5b611c0861172f565b825182811115611c16575f80fd5b611c2287828601611af5565b825250602083015182811115611c36575f80fd5b611c4287828601611af5565b602083015250604083015182811115611c59575f80fd5b611c6587828601611b42565b604083015250606083015182811115611c7c575f80fd5b611c8887828601611af5565b60608301525095945050505050565b634e487b7160e01b5f52603260045260245ffd5b5f805f805f60a08688031215611cbf575f80fd5b855194506020860151935060408601519250606086015191506080860151611ce681611a77565b809150509295509295909350565b604081525f83516020806040850152611d1060608501836116db565b91508382038185015260a08201855183528186015182840152604086015160a0604085015281815180845260c08601915060c08160051b870101935084830192505f5b81811015611d815760bf19878603018352611d6f8585516116db565b94509285019291850191600101611d53565b50505050606086015191508281036060840152611d9e81836116db565b9150506080850151611dbb60808401826001600160a01b03169052565b5095945050505050565b5f8060408385031215611dd6575f80fd5b82516001600160401b03811115611deb575f80fd5b611df785828601611b42565b925050602083015160ff81168114611e0d575f80fd5b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156107da576107da611e18565b818103818111156107da576107da611e18565b80516020808301519190811015611aef575f1960209190910360031b1b16919050565b634e487b7160e01b5f52602160045260245ffd5b5f60018201611e9a57611e9a611e18565b5060010190565b601f821115611ee857805f5260205f20601f840160051c81016020851015611ec65750805b601f840160051c820191505b81811015611ee5575f8155600101611ed2565b50505b505050565b81516001600160401b03811115611f0657611f0661171b565b611f1a81611f148454611abd565b84611ea1565b602080601f831160018114611f4d575f8415611f365750858301515b5f19600386901b1c1916600185901b178555611fa4565b5f85815260208120601f198616915b82811015611f7b57888601518255948401946001909101908401611f5c565b5085821015611f9857878501515f19600388901b60f8161c191681555b505060018460011b0185555b50505050505056fea26469706673582212202aba03cf5b3370c9a7eb70f770bf62324e25fbef2690a00f48be564c6987b22764736f6c63430008190033","sourceMap":"794:7696:30:-:0;;;917:259;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1090:4;1096:6;1104:5;566:10:0;;1269:95:48;;1322:31;;-1:-1:-1;;;1322:31:48;;1350:1;1322:31;;;2678:51:65;2651:18;;1322:31:48;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;588:12:0;;::::1;::::0;:5:::1;::::0;:12:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;610:16:0::1;::::0;;;;-1:-1:-1;;;;;636:14:0;;::::1;;::::0;1121:22:30;;::::1;;::::0;-1:-1:-1;1153:16:30::1;;::::0;-1:-1:-1;794:7696:30;;-1:-1:-1;;794:7696:30;2912:187:48;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:48;;;-1:-1:-1;;;;;;3020:17:48;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;794:7696:30:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;794:7696:30;;;-1:-1:-1;794:7696:30;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;14:127:65;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:275;217:2;211:9;282:2;263:13;;-1:-1:-1;;259:27:65;247:40;;-1:-1:-1;;;;;302:34:65;;338:22;;;299:62;296:88;;;364:18;;:::i;:::-;400:2;393:22;146:275;;-1:-1:-1;146:275:65:o;426:193::-;521:13;;-1:-1:-1;;;;;563:31:65;;553:42;;543:70;;609:1;606;599:12;543:70;426:193;;;:::o;624:1903::-;807:6;815;823;831;839;892:3;880:9;871:7;867:23;863:33;860:53;;;909:1;906;899:12;860:53;936:16;;-1:-1:-1;;;;;1001:14:65;;;998:34;;;1028:1;1025;1018:12;998:34;1066:6;1055:9;1051:22;1041:32;;1111:7;1104:4;1100:2;1096:13;1092:27;1082:55;;1133:1;1130;1123:12;1082:55;1162:2;1156:9;1184:2;1180;1177:10;1174:36;;;1190:18;;:::i;:::-;1230:38;1262:4;1257:2;1254:1;1250:10;1246:21;1230:38;:::i;:::-;1290:3;1314:2;1309:3;1302:15;1342:4;1337:3;1333:14;1326:21;;1395:4;1389:2;1386:1;1382:10;1378:2;1374:19;1370:30;1356:44;;1423:7;1415:6;1412:19;1409:39;;;1444:1;1441;1434:12;1409:39;1476:4;1472:2;1468:13;1490:708;1506:6;1501:3;1498:15;1490:708;;;1587:3;1581:10;1623:2;1610:11;1607:19;1604:39;;;1639:1;1636;1629:12;1604:39;1666:20;;1721:2;1713:11;;1709:25;-1:-1:-1;1699:53:65;;1748:1;1745;1738:12;1699:53;1789:4;1785:2;1781:13;1775:20;1818:2;1814;1811:10;1808:36;;;1824:18;;:::i;:::-;1870:55;1913:2;1894:13;;-1:-1:-1;;1890:27:65;1919:4;1886:38;1870:55;:::i;:::-;1952:2;1945:5;1938:17;1996:7;1991:2;1986;1982;1978:11;1974:20;1971:33;1968:53;;;2017:1;2014;2007:12;1968:53;2071:2;2066;2062;2058:11;2051:4;2044:5;2040:16;2034:40;2121:1;2114:4;2109:2;2102:5;2098:14;2094:25;2087:36;2148:5;2143:3;2136:18;;;;2183:4;2178:3;2174:14;2167:21;;1532:4;1527:3;1523:14;1516:21;;1490:708;;;1494:3;2217:5;2207:15;;;;;;;2262:4;2251:9;2247:20;2241:27;2231:37;;2287:65;2348:2;2337:9;2333:18;2287:65;:::i;:::-;2277:75;;2371:65;2432:2;2421:9;2417:18;2371:65;:::i;:::-;2361:75;;2455:66;2516:3;2505:9;2501:19;2455:66;:::i;:::-;2445:76;;624:1903;;;;;;;;:::o;2740:380::-;2819:1;2815:12;;;;2862;;;2883:61;;2937:4;2929:6;2925:17;2915:27;;2883:61;2990:2;2982:6;2979:14;2959:18;2956:38;2953:161;;3036:10;3031:3;3027:20;3024:1;3017:31;3071:4;3068:1;3061:15;3099:4;3096:1;3089:15;2953:161;;2740:380;;;:::o;3251:518::-;3353:2;3348:3;3345:11;3342:421;;;3389:5;3386:1;3379:16;3433:4;3430:1;3420:18;3503:2;3491:10;3487:19;3484:1;3480:27;3474:4;3470:38;3539:4;3527:10;3524:20;3521:47;;;-1:-1:-1;3562:4:65;3521:47;3617:2;3612:3;3608:12;3605:1;3601:20;3595:4;3591:31;3581:41;;3672:81;3690:2;3683:5;3680:13;3672:81;;;3749:1;3735:16;;3716:1;3705:13;3672:81;;;3676:3;;3342:421;3251:518;;;:::o;3945:1345::-;4065:10;;-1:-1:-1;;;;;4087:30:65;;4084:56;;;4120:18;;:::i;:::-;4149:97;4239:6;4199:38;4231:4;4225:11;4199:38;:::i;:::-;4193:4;4149:97;:::i;:::-;4301:4;;4358:2;4347:14;;4375:1;4370:663;;;;5077:1;5094:6;5091:89;;;-1:-1:-1;5146:19:65;;;5140:26;5091:89;-1:-1:-1;;3902:1:65;3898:11;;;3894:24;3890:29;3880:40;3926:1;3922:11;;;3877:57;5193:81;;4340:944;;4370:663;3198:1;3191:14;;;3235:4;3222:18;;-1:-1:-1;;4406:20:65;;;4524:236;4538:7;4535:1;4532:14;4524:236;;;4627:19;;;4621:26;4606:42;;4719:27;;;;4687:1;4675:14;;;;4554:19;;4524:236;;;4528:3;4788:6;4779:7;4776:19;4773:201;;;4849:19;;;4843:26;-1:-1:-1;;4932:1:65;4928:14;;;4944:3;4924:24;4920:37;4916:42;4901:58;4886:74;;4773:201;;;5020:1;5011:6;5008:1;5004:14;5000:22;4994:4;4987:36;4340:944;;;;;3945:1345;;:::o;:::-;794:7696:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"contracts/GatewayVM.sol":{"GatewayVM":[{"start":2845,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b506004361061008c575f3560e01c80631d80051d146100905780635cd2525e146100c3578063683a6a8b146100f2578063715018a61461011857806387c484fe146101225780638da5cb5b146101375780638e5ea8df1461013f578063b50f2fbc14610152578063e3d1666e14610167578063f2fde38b14610188575b5f80fd5b6040517f000000000000000000000000000000000000000000000000000000000000000081526020015b60405180910390f35b7f00000000000000000000000000000000000000000000000000000000000000005b6040516100ba91906116c7565b7f00000000000000000000000000000000000000000000000000000000000000006100e5565b61012061019b565b005b61012a6101ae565b6040516100ba9190611709565b6100e5610256565b61012061014d36600461180a565b610264565b61015a6102ab565b6040516100ba91906118c6565b61017a610175366004611946565b61037f565b6040516100ba929190611a09565b610120610196366004611a8b565b610709565b6101a3610746565b6101ac5f610778565b565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ec7e48556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561020c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102309190611aa6565b60405160200161024291815260200190565b604051602081830303815290604052905090565b5f546001600160a01b031690565b61026c610746565b805161027f9060019060208401906115f9565b506040517fe621d803a0c96b9bbeea51d136777f6ea8a4ce0c4ac74f6645e18b4342e2fa07905f90a150565b60606001805480602002602001604051908101604052809291908181526020015f905b82821015610376578382905f5260205f200180546102eb90611abd565b80601f016020809104026020016040519081016040528092919081815260200182805461031790611abd565b80156103625780601f1061033957610100808354040283529160200191610362565b820191905f5260205f20905b81548152906001019060200180831161034557829003601f168201915b5050505050815260200190600101906102ce565b50505050905090565b60605f80858060200190518101906103979190611aa6565b90505f848060200190518101906103ae9190611bc7565b90505f6103bd825f01516107c7565b90505f6103e2825f815181106103d5576103d5611c97565b60200260200101516107e0565b6040516320a9cea560e11b8152600481018290529091505f90819081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906341539d4a9060240160a060405180830381865afa15801561044e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104729190611cab565b50935050925092505f801b83036104c95760405162461bcd60e51b8152602060048201526016602482015275141bdb1e59dbdb941bd4ce8818da1958dadc1bda5b9d60521b60448201526064015b60405180910390fd5b83871461056b576040516320a9cea560e11b8152600481018890525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906341539d4a9060240160a060405180830381865afa158015610535573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105599190611cab565b50935050505061056981836107f2565b505b5f61057786858561089b565b90505f61059982610594896009815181106103d5576103d5611c97565b610a66565b905087602001518051906020012081146105ed5760405162461bcd60e51b81526020600482015260156024820152740a0ded8f2cededca0dea67440c4d8dec6d690c2e6d605b1b60448201526064016104c0565b6105fa88602001516107c7565b96505f6106208860038151811061061357610613611c97565b6020026020010151610bea565b905073__$011ed85421b307e5206de383929e31be73$__6392a201d48f6040518060a001604052805f81526020018581526020018d6040015181526020018d6060015181526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152506040518363ffffffff1660e01b81526004016106b2929190611cf4565b5f60405180830381865af41580156106cc573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526106f39190810190611dc5565b9b509b5050505050505050505050935093915050565b610711610746565b6001600160a01b03811661073a575f604051631e4fbdf760e01b81526004016104c091906116c7565b61074381610778565b50565b3361074f610256565b6001600160a01b0316146101ac573360405163118cdaa760e01b81526004016104c091906116c7565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60606107da6107d583610c29565b610c70565b92915050565b5f6107da6107ed83610de3565b610e62565b8161081d7f000000000000000000000000000000000000000000000000000000000000000083611e2c565b101561086c57604051632a54241d60e21b815260048101839052602481018290527f000000000000000000000000000000000000000000000000000000000000000060448201526064016104c0565b818111156108975760405163b356ade760e01b815260048101839052602481018290526044016104c0565b5050565b60605f6108b4856002815181106103d5576103d5611c97565b5f1c90505f6108cf8660058151811061061357610613611c97565b90505f826108e9886003815181106103d5576103d5611c97565b6108ff8960048151811061061357610613611c97565b60408051602081019490945283019190915260608201526080810183905260a0016040516020818303038152906040528051906020012090505f61096f826109608a60018151811061095357610953611c97565b6020026020010151610de3565b61096a8988611e3f565b610ea9565b90508087146109b75760405162461bcd60e51b81526020600482015260146024820152730a0ded8f2cededca0dea67440e4dedee890c2e6d60631b60448201526064016104c0565b6109cd8860068151811061095357610953611c97565b9450610a0c836109f16109ec8b60078151811061095357610953611c97565b6107c7565b610a078b60088151811061095357610953611c97565b610f3d565b8551602087012014610a5b5760405162461bcd60e51b8152602060048201526018602482015277141bdb1e59dbdb941bdcce881c9958d95a5c1d1cd49bdbdd60421b60448201526064016104c0565b505050509392505050565b5f825f81518110610a7957610a79611c97565b016020015160f81c15610a945782515f190160019093019283525b5f610a9e846107c7565b9050610ac381600381518110610ab657610ab6611c97565b6020026020010151610c70565b905082815111610b0c5760405162461bcd60e51b81526020600482015260146024820152730a0ded8f2cededca0dea67440d8dece92dcc8caf60631b60448201526064016104c0565b610b21818481518110610ab657610ab6611c97565b90505f610b39825f815181106103d5576103d5611c97565b5f1c90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614610bb35760405162461bcd60e51b81526020600482015260126024820152712837b63cb3b7b72837a99d103837b9ba32b960711b60448201526064016104c0565b610bc982600181518110610ab657610ab6611c97565b9150610be18260018151811061061357610613611c97565b95945050505050565b5f80610bf583610de3565b90508051602014610c19576040516366c9448560e01b815260040160405180910390fd5b610c2281611e52565b9392505050565b610c3161164d565b81515f03610c5257604051635ab458fb60e01b815260040160405180910390fd5b50604080518082019091528151815260209182019181019190915290565b60605f805f610c7e85611169565b919450925090506001816001811115610c9957610c99611e75565b14610cb7576040516325ce355f60e11b815260040160405180910390fd5b8451610cc38385611e2c565b14610ce157604051630b8aa6f760e31b815260040160405180910390fd5b604080516020808252610420820190925290816020015b610d0061164d565b815260200190600190039081610cf85790505093505f835b8651811015610dd7575f80610d5c6040518060400160405280858c5f0151610d409190611e3f565b8152602001858c60200151610d559190611e2c565b9052611169565b509150915060405180604001604052808383610d789190611e2c565b8152602001848b60200151610d8d9190611e2c565b815250888581518110610da257610da2611c97565b6020908102919091010152610db8600185611e2c565b9350610dc48183611e2c565b610dce9084611e2c565b92505050610d18565b50845250919392505050565b60605f805f610df185611169565b919450925090505f816001811115610e0b57610e0b611e75565b14610e29576040516307fe6cb960e21b815260040160405180910390fd5b610e338284611e2c565b855114610e5357604051630b8aa6f760e31b815260040160405180910390fd5b610be18560200151848461144c565b5f602082511115610e86576040516366c9448560e01b815260040160405180910390fd5b600382516020610e969190611e3f565b901b610ea183611e52565b901c92915050565b825f5b8351811015610f35576020818501810151910190600184165f03610efb576040805160208101859052908101829052606001604051602081830303815290604052805190602001209250610f28565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b50600183901c9250610eac565b509392505050565b5f610f47826114da565b9150835f805b855181108015610f5e575084518211155b1561115f57610f8c868281518110610f7857610f78611c97565b602002602001015180516020909101512090565b830361115f575f610fa8878381518110610ab657610ab6611c97565b9050805160110361103a5785518303610fe057610fd18160108151811061095357610953611c97565b8051906020012094505061115f565b5f868481518110610ff357610ff3611c97565b016020015160f81c9050601081111561100d57505061115f565b611025828260ff168151811061061357610613611c97565b9450611032600185611e2c565b93505061114c565b8051600203611146575f61106161105c835f8151811061095357610953611c97565b6114da565b90505f5b8151811080156110bd575081818151811061108257611082611c97565b01602001516001600160f81b0319168861109c8388611e2c565b815181106110ac576110ac611c97565b01602001516001600160f81b031916145b156110d457806110cc81611e89565b915050611065565b87516110e08287611e2c565b0361110c576110fb8360018151811061095357610953611c97565b80519060200120965050505061115f565b805f0361111b5750505061115f565b6111258186611e2c565b945061113d8360018151811061061357610613611c97565b9550505061114c565b5061115f565b508061115781611e89565b915050610f4d565b5050509392505050565b5f805f835f01515f0361118f57604051635ab458fb60e01b815260040160405180910390fd5b602084015180515f1a607f81116111b1575f60015f9450945094505050611445565b60b78111611246575f6111c5608083611e3f565b905080875f0151116111ea576040516366c9448560e01b815260040160405180910390fd5b6001838101516001600160f81b03191690821480156112165750600160ff1b6001600160f81b03198216105b156112345760405163babb01dd60e01b815260040160405180910390fd5b506001955093505f9250611445915050565b60bf8111611324575f61125a60b783611e3f565b905080875f01511161127f576040516366c9448560e01b815260040160405180910390fd5b60018301516001600160f81b0319165f8190036112af5760405163babb01dd60e01b815260040160405180910390fd5b600184015160088302610100031c603781116112de5760405163babb01dd60e01b815260040160405180910390fd5b6112e88184611e2c565b895111611308576040516366c9448560e01b815260040160405180910390fd5b611313836001611e2c565b975095505f94506114459350505050565b60f7811161136e575f61133860c083611e3f565b905080875f01511161135d576040516366c9448560e01b815260040160405180910390fd5b600195509350849250611445915050565b5f61137a60f783611e3f565b905080875f01511161139f576040516366c9448560e01b815260040160405180910390fd5b60018301516001600160f81b0319165f8190036113cf5760405163babb01dd60e01b815260040160405180910390fd5b600184015160088302610100031c603781116113fe5760405163babb01dd60e01b815260040160405180910390fd5b6114088184611e2c565b895111611428576040516366c9448560e01b815260040160405180910390fd5b611433836001611e2c565b97509550600194506114459350505050565b9193909250565b6060816001600160401b038111156114665761146661171b565b6040519080825280601f01601f191660200182016040528015611490576020820181803683370190505b5090508115610c22575f6114a48486611e2c565b9050602082015f5b848110156114c45782810151828201526020016114ac565b8481111561115f57505f90840152509392505050565b606081515f146115af575f6114ef835f6115b4565b600116156114fe576001611501565b60025b60ff1690508060018451901b6115179190611e3f565b6001600160401b0381111561152e5761152e61171b565b6040519080825280601f01601f191660200182016040528015611558576020820181803683370190505b5091505f5b82518110156115ac57611579846115748385611e2c565b6115b4565b60f81b83828151811061158e5761158e611c97565b60200101906001600160f81b03191690815f1a90535060010161155d565b50505b919050565b5f8083600184901c815181106115cc576115cc611c97565b016020015160f81c905060018316156115e85780600f166115f1565b60048160ff16901c5b949350505050565b828054828255905f5260205f2090810192821561163d579160200282015b8281111561163d578251829061162d9082611eed565b5091602001919060010190611617565b50611649929150611665565b5090565b60405180604001604052805f81526020015f81525090565b80821115611649575f6116788282611681565b50600101611665565b50805461168d90611abd565b5f825580601f1061169c575050565b601f0160209004905f5260205f209081019061074391905b80821115611649575f81556001016116b4565b6001600160a01b0391909116815260200190565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610c2260208301846116db565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b03811182821017156117515761175161171b565b60405290565b604051601f8201601f191681016001600160401b038111828210171561177f5761177f61171b565b604052919050565b5f6001600160401b0382111561179f5761179f61171b565b5060051b60200190565b5f6001600160401b038211156117c1576117c161171b565b50601f01601f191660200190565b5f6117e16117dc846117a9565b611757565b90508281528383830111156117f4575f80fd5b828260208301375f602084830101529392505050565b5f602080838503121561181b575f80fd5b82356001600160401b0380821115611831575f80fd5b818501915085601f830112611844575f80fd5b81356118526117dc82611787565b81815260059190911b83018401908481019088831115611870575f80fd5b8585015b838110156118b95780358581111561188a575f80fd5b8601603f81018b1361189a575f80fd5b6118ab8b89830135604084016117cf565b845250918601918601611874565b5098975050505050505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561191b57603f198886030184526119098583516116db565b945092850192908501906001016118ed565b5092979650505050505050565b5f82601f830112611937575f80fd5b610c22838335602085016117cf565b5f805f60608486031215611958575f80fd5b83356001600160401b038082111561196e575f80fd5b61197a87838801611928565b9450602086013591508082111561198f575f80fd5b90850190602082880312156119a2575f80fd5b6040516020810181811083821117156119bd576119bd61171b565b6040528235828111156119ce575f80fd5b6119da89828601611928565b825250935060408601359150808211156119f2575f80fd5b506119ff86828701611928565b9150509250925092565b5f604082016040835280855180835260608501915060608160051b860101925060208088015f5b83811015611a5e57605f19888703018552611a4c8683516116db565b95509382019390820190600101611a30565b50505050508091505060ff831660208301529392505050565b6001600160a01b0381168114610743575f80fd5b5f60208284031215611a9b575f80fd5b8135610c2281611a77565b5f60208284031215611ab6575f80fd5b5051919050565b600181811c90821680611ad157607f821691505b602082108103611aef57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f82601f830112611b04575f80fd5b8151611b126117dc826117a9565b818152846020838601011115611b26575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f82601f830112611b51575f80fd5b81516020611b616117dc83611787565b82815260059290921b84018101918181019086841115611b7f575f80fd5b8286015b84811015611bbc5780516001600160401b03811115611ba0575f80fd5b611bae8986838b0101611af5565b845250918301918301611b83565b509695505050505050565b5f60208284031215611bd7575f80fd5b81516001600160401b0380821115611bed575f80fd5b9083019060808286031215611c00575f80fd5b611c0861172f565b825182811115611c16575f80fd5b611c2287828601611af5565b825250602083015182811115611c36575f80fd5b611c4287828601611af5565b602083015250604083015182811115611c59575f80fd5b611c6587828601611b42565b604083015250606083015182811115611c7c575f80fd5b611c8887828601611af5565b60608301525095945050505050565b634e487b7160e01b5f52603260045260245ffd5b5f805f805f60a08688031215611cbf575f80fd5b855194506020860151935060408601519250606086015191506080860151611ce681611a77565b809150509295509295909350565b604081525f83516020806040850152611d1060608501836116db565b91508382038185015260a08201855183528186015182840152604086015160a0604085015281815180845260c08601915060c08160051b870101935084830192505f5b81811015611d815760bf19878603018352611d6f8585516116db565b94509285019291850191600101611d53565b50505050606086015191508281036060840152611d9e81836116db565b9150506080850151611dbb60808401826001600160a01b03169052565b5095945050505050565b5f8060408385031215611dd6575f80fd5b82516001600160401b03811115611deb575f80fd5b611df785828601611b42565b925050602083015160ff81168114611e0d575f80fd5b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156107da576107da611e18565b818103818111156107da576107da611e18565b80516020808301519190811015611aef575f1960209190910360031b1b16919050565b634e487b7160e01b5f52602160045260245ffd5b5f60018201611e9a57611e9a611e18565b5060010190565b601f821115611ee857805f5260205f20601f840160051c81016020851015611ec65750805b601f840160051c820191505b81811015611ee5575f8155600101611ed2565b50505b505050565b81516001600160401b03811115611f0657611f0661171b565b611f1a81611f148454611abd565b84611ea1565b602080601f831160018114611f4d575f8415611f365750858301515b5f19600386901b1c1916600185901b178555611fa4565b5f85815260208120601f198616915b82811015611f7b57888601518255948401946001909101908401611f5c565b5085821015611f9857878501515f19600388901b60f8161c191681555b505060018460011b0185555b50505050505056fea26469706673582212202aba03cf5b3370c9a7eb70f770bf62324e25fbef2690a00f48be564c6987b22764736f6c63430008190033","sourceMap":"794:7696:30:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;896:84:0;;;966:7;160:25:65;;148:2;133:18;896:84:0;;;;;;;;986:89;1062:6;986:89;;;;;;;:::i;1182:84:30:-;1252:7;1182:84;;2293:101:48;;;:::i;:::-;;1272:132:30;;;:::i;:::-;;;;;;;:::i;1638:85:48:-;;;:::i;663:129:0:-;;;;;;:::i;:::-;;:::i;798:92::-;;;:::i;:::-;;;;;;;:::i;1658:1617:30:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;2543:215:48:-;;;;;;:::i;:::-;;:::i;2293:101::-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1272:132:30:-;1323:12;1365:10;-1:-1:-1;;;;;1365:29:30;;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1354:43;;;;;;160:25:65;;148:2;133:18;;14:177;1354:43:30;;;;;;;;;;;;;1347:50;;1272:132;:::o;1638:85:48:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:48;;1638:85::o;663:129:0:-;1531:13:48;:11;:13::i;:::-;738:12:0;;::::1;::::0;:5:::1;::::0;:12:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;765:20:0::1;::::0;::::1;::::0;;;::::1;663:129:::0;:::o;798:92::-;844:15;878:5;871:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;798:92;:::o;1658:1617:30:-;1806:14;1822;1848:20;1882:7;1871:30;;;;;;;;;;;;:::i;:::-;1848:53;;1911:21;1946:5;1935:33;;;;;;;;;;;;:::i;:::-;1911:57;;1978:28;2009:37;2028:1;:17;;;2009:18;:37::i;:::-;1978:68;;2056:19;2086:33;2114:1;2116;2114:4;;;;;;;;:::i;:::-;;;;;;;2086:27;:33::i;:::-;2260:36;;-1:-1:-1;;;2260:36:30;;;;;160:25:65;;;2078:42:30;;-1:-1:-1;2078:42:30;;;;;;-1:-1:-1;;;;;2260:10:30;:23;;;;133:18:65;;2260:36:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2130:166;;;;;;;;2334:1;2326:10;;2314:8;:22;2306:57;;;;-1:-1:-1;;;2306:57:30;;11204:2:65;2306:57:30;;;11186:21:65;11243:2;11223:18;;;11216:30;-1:-1:-1;;;11262:18:65;;;11255:52;11324:18;;2306:57:30;;;;;;;;;2393:11;2377:12;:27;2373:205;;2451:67;;-1:-1:-1;;;2451:67:30;;;;;160:25:65;;;2427:18:30;;2451:10;-1:-1:-1;;;;;2451:23:30;;;;133:18:65;;2451:67:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2420:98;;;;;;2532:35;2545:10;2557:9;2532:12;:35::i;:::-;2406:172;2373:205;2587:20;2610:104;2649:1;2664:8;2686:18;2610:25;:104::i;:::-;2587:127;;2724:21;2748:120;2783:7;2812:33;2840:1;2842;2840:4;;;;;;;;:::i;2812:33::-;2748:21;:120::i;:::-;2724:144;;2926:1;:17;;;2916:28;;;;;;2899:13;:45;2878:113;;;;-1:-1:-1;;;2878:113:30;;11555:2:65;2878:113:30;;;11537:21:65;11594:2;11574:18;;;11567:30;-1:-1:-1;;;11613:18:65;;;11606:51;11674:18;;2878:113:30;11353:345:65;2878:113:30;3005:37;3024:1;:17;;;3005:18;:37::i;:::-;3001:41;;3052:17;3072:39;3106:1;3108;3106:4;;;;;;;;:::i;:::-;;;;;;;3072:33;:39::i;:::-;3052:59;;3140:9;:21;3179:3;3200:54;;;;;;;;3214:1;3200:54;;;;3217:9;3200:54;;;;3228:1;:8;;;3200:54;;;;3238:1;:7;;;3200:54;;;;3247:6;-1:-1:-1;;;;;3200:54:30;;;;3140:128;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3140:128:30;;;;;;;;;;;;:::i;:::-;3121:147;;;;;;;;;;;;;;1658:1617;;;;;;:::o;2543:215:48:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:48;::::1;2623:91;;2700:1;2672:31;;-1:-1:-1::0;;;2672:31:48::1;;;;;;;;:::i;2623:91::-;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;735:10:50;1855:7:48;:5;:7::i;:::-;-1:-1:-1;;;;;1855:23:48;;1851:101;;735:10:50;1901:40:48;;-1:-1:-1;;;1901:40:48;;;;;;;;:::i;2912:187::-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:48;;;-1:-1:-1;;;;;;3020:17:48;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;3631:130:63:-;3690:21;3730:24;3739:14;3749:3;3739:9;:14::i;:::-;3730:8;:24::i;:::-;3723:31;3631:130;-1:-1:-1;;3631:130:63:o;210:166:9:-;302:7;328:41;343:25;363:4;343:19;:25::i;:::-;328:14;:41::i;1081:211:0:-;1176:6;1160:13;1166:7;1160:3;:13;:::i;:::-;:22;1156:69;;;1191:34;;-1:-1:-1;;;1191:34:0;;;;;14266:25:65;;;14307:18;;;14300:34;;;1217:7:0;14350:18:65;;;14343:34;14239:18;;1191:34:0;14064:319:65;1156:69:0;1245:6;1239:3;:12;1235:50;;;1260:25;;-1:-1:-1;;;1260:25:0;;;;;14562::65;;;14603:18;;;14596:34;;;14535:18;;1260:25:0;14388:248:65;1235:50:0;1081:211;;:::o;4184:1258:30:-;4348:20;4380:21;4412:33;4440:1;4442;4440:4;;;;;;;;:::i;4412:33::-;4404:42;;4380:66;;4456:20;4479:39;4513:1;4515;4513:4;;;;;;;;:::i;4479:39::-;4456:62;;4528:16;4598:13;4629:33;4657:1;4659;4657:4;;;;;;;;:::i;4629:33::-;4693:39;4727:1;4729;4727:4;;;;;;;;:::i;4693:39::-;4570:225;;;;;;14872:25:65;;;;14913:18;;14906:34;;;;14956:18;;;14949:34;14999:18;;;14992:34;;;14844:19;;4570:225:30;;;;;;;;;;;;4547:258;;;;;;4528:277;;4815:24;4842:135;4872:8;4894:25;4914:1;4916;4914:4;;;;;;;;:::i;:::-;;;;;;;4894:19;:25::i;:::-;4933:34;4949:18;4933:13;:34;:::i;:::-;4842:16;:135::i;:::-;4815:162;;5007:16;4995:8;:28;4987:61;;;;-1:-1:-1;;;4987:61:30;;15372:2:65;4987:61:30;;;15354:21:65;15411:2;15391:18;;;15384:30;-1:-1:-1;;;15430:18:65;;;15423:50;15490:18;;4987:61:30;15170:344:65;4987:61:30;5068:25;5088:1;5090;5088:4;;;;;;;;:::i;5068:25::-;5058:35;;5162:223;5203:12;5237:45;5256:25;5276:1;5278;5276:4;;;;;;;;:::i;5256:25::-;5237:18;:45::i;:::-;5316:25;5336:1;5338;5336:4;;;;;;;;:::i;5316:25::-;5162:19;:223::i;:::-;5124:18;;;;;;:261;5103:332;;;;-1:-1:-1;;;5103:332:30;;15721:2:65;5103:332:30;;;15703:21:65;15760:2;15740:18;;;15733:30;-1:-1:-1;;;15779:18:65;;;15772:54;15843:18;;5103:332:30;15519:348:65;5103:332:30;4370:1072;;;;4184:1258;;;;;:::o;3281:897::-;3397:7;3426;3434:1;3426:10;;;;;;;;:::i;:::-;;;;;;;3420:22;3416:229;;3559:14;;-1:-1:-1;;3555:22:30;3575:1;3538:15;;;3531:47;;;3416:229;3654:28;3685:27;3704:7;3685:18;:27::i;:::-;3654:58;;3737:24;3756:1;3758;3756:4;;;;;;;;:::i;:::-;;;;;;;3737:18;:24::i;:::-;3733:28;;3798:8;3787:1;:8;:19;3779:52;;;;-1:-1:-1;;;3779:52:30;;16074:2:65;3779:52:30;;;16056:21:65;16113:2;16093:18;;;16086:30;-1:-1:-1;;;16132:18:65;;;16125:50;16192:18;;3779:52:30;15872:344:65;3779:52:30;3845:31;3864:1;3866:8;3864:11;;;;;;;;:::i;3845:31::-;3841:35;;3893:14;3947:33;3975:1;3977;3975:4;;;;;;;;:::i;3947:33::-;3939:42;;3893:99;;4020:7;-1:-1:-1;;;;;4010:17:30;:6;-1:-1:-1;;;;;4010:17:30;;4002:48;;;;-1:-1:-1;;;4002:48:30;;16423:2:65;4002:48:30;;;16405:21:65;16462:2;16442:18;;;16435:30;-1:-1:-1;;;16481:18:65;;;16474:48;16539:18;;4002:48:30;16221:342:65;4002:48:30;4064:24;4083:1;4085;4083:4;;;;;;;;:::i;4064:24::-;4060:28;;4115:39;4149:1;4151;4149:4;;;;;;;;:::i;4115:39::-;4108:46;3281:897;-1:-1:-1;;;;;3281:897:30:o;579:253:9:-;677:7;696:14;713:25;733:4;713:19;:25::i;:::-;696:42;;752:1;:8;764:2;752:14;748:50;;775:23;;-1:-1:-1;;;775:23:9;;;;;;;;;;;748:50;815:10;823:1;815:10;:::i;:::-;808:17;579:253;-1:-1:-1;;;579:253:9:o;1325:328:63:-;1385:19;;:::i;:::-;1463:3;:10;1477:1;1463:15;1459:39;;1487:11;;-1:-1:-1;;;1487:11:63;;;;;;;;;;;1459:39;-1:-1:-1;1605:41:63;;;;;;;;;1623:10;;1605:41;;1575:2;1566:12;;;1605:41;;;;;;;;1325:328::o;1805:1674::-;1866:21;1900:18;1920;1940:20;1964:18;1978:3;1964:13;:18::i;:::-;1899:83;;-1:-1:-1;1899:83:63;-1:-1:-1;1899:83:63;-1:-1:-1;2009:21:63;1997:8;:33;;;;;;;;:::i;:::-;;1993:64;;2039:18;;-1:-1:-1;;;2039:18:63;;;;;;;;;;;1993:64;2099: