@unruggable/gateways
Version:
Trustless Ethereum Multichain CCIP-Read Gateway
1 lines • 58.4 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":"diamond","type":"address","internalType":"contract IZKSyncDiamond"}],"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":"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":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60e060405234801561000f575f80fd5b5060405161164438038061164483398101604081905261002e91610205565b838383338061005657604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61005f81610099565b5082516100739060019060208601906100e8565b506080919091526001600160a01b0390811660a0529190911660c0525061047e92505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054828255905f5260205f2090810192821561012c579160200282015b8281111561012c578251829061011c90826103bf565b5091602001919060010190610106565b5061013892915061013c565b5090565b80821115610138575f61014f8282610158565b5060010161013c565b5080546101649061033b565b5f825580601f10610173575050565b601f0160209004905f5260205f209081019061018f9190610192565b50565b5b80821115610138575f8155600101610193565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156101e2576101e26101a6565b604052919050565b80516001600160a01b0381168114610200575f80fd5b919050565b5f805f8060808587031215610218575f80fd5b84516001600160401b038082111561022e575f80fd5b818701915087601f830112610241575f80fd5b8151602082821115610255576102556101a6565b8160051b6102648282016101ba565b928352848101820192828101908c85111561027d575f80fd5b83870192505b8483101561030657825186811115610299575f80fd5b8701603f81018e136102a9575f80fd5b84810151878111156102bd576102bd6101a6565b6102cf601f8201601f191687016101ba565b8181528f60408385010111156102e3575f80fd5b81604084018883015e5f9181018701919091528352509183019190830190610283565b809a5050505080890151965050505050610322604086016101ea565b9150610330606086016101ea565b905092959194509250565b600181811c9082168061034f57607f821691505b60208210810361036d57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156103ba57805f5260205f20601f840160051c810160208510156103985750805b601f840160051c820191505b818110156103b7575f81556001016103a4565b50505b505050565b81516001600160401b038111156103d8576103d86101a6565b6103ec816103e6845461033b565b84610373565b602080601f83116001811461041f575f84156104085750858301515b5f19600386901b1c1916600185901b178555610476565b5f85815260208120601f198616915b8281101561044d5788860151825594840194600190910190840161042e565b508582101561046a57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b60805160a05160c05161117b6104c95f395f8181610183015281816103d401526104ad01525f818160ba015261059901525f8181608a015281816107080152610750015261117b5ff3fe608060405234801561000f575f80fd5b5060043610610081575f3560e01c80631d80051d146100855780635cd2525e146100b8578063715018a6146100e757806387c484fe146100f15780638da5cb5b146101065780638e5ea8df1461010e578063b50f2fbc14610121578063e3d1666e14610136578063f2fde38b14610157575b5f80fd5b6040517f000000000000000000000000000000000000000000000000000000000000000081526020015b60405180910390f35b7f00000000000000000000000000000000000000000000000000000000000000005b6040516100af9190610861565b6100ef61016a565b005b6100f961017d565b6040516100af91906108a3565b6100da610231565b6100ef61011c3660046109ab565b61023f565b610129610286565b6040516100af9190610a67565b610149610144366004610ae7565b61035a565b6040516100af929190610baa565b6100ef610165366004610c18565b610644565b610172610681565b61017b5f6106b3565b565b606060017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b8c2f66f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101dd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102019190610c3e565b61020b9190610c69565b60405160200161021d91815260200190565b604051602081830303815290604052905090565b5f546001600160a01b031690565b610247610681565b805161025a9060019060208401906107ab565b506040517fe621d803a0c96b9bbeea51d136777f6ea8a4ce0c4ac74f6645e18b4342e2fa07905f90a150565b60606001805480602002602001604051908101604052809291908181526020015f905b82821015610351578382905f5260205f200180546102c690610c82565b80601f01602080910402602001604051908101604052809291908181526020018280546102f290610c82565b801561033d5780601f106103145761010080835404028352916020019161033d565b820191905f5260205f20905b81548152906001019060200180831161032057829003601f168201915b5050505050815260200190600101906102a9565b50505050905090565b60605f80858060200190518101906103729190610c3e565b90505f848060200190518101906103899190610d8c565b90505f815f01518060200190518101906103a39190610e54565b90506103bb83825f01516001600160401b0316610702565b8051604051635916ebc760e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163b22dd78e916104089190600401610eef565b602060405180830381865afa158015610423573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104479190610c3e565b82518051602090910120146104945760405162461bcd60e51b815260206004820152600e60248201526d0b496a67440c4c2e8c6d090c2e6d60931b60448201526064015b60405180910390fd5b80516040516327364e7960e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691639cd939e4916104e19190600401610eef565b602060405180830381865afa1580156104fc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105209190610c3e565b8160a00151146105685760405162461bcd60e51b81526020600482015260136024820152720b496a67440d86498decee6a4dedee890c2e6d606b1b604482015260640161048b565b6040805160a0810182525f815260208381015181830152840151818301528382015160608201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016608082015290516324a8807560e21b815273__$011ed85421b307e5206de383929e31be73$__916392a201d4916105f4918b91600401610f03565b5f60405180830381865af415801561060e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526106359190810190610fd4565b94509450505050935093915050565b61064c610681565b6001600160a01b038116610675575f604051631e4fbdf760e01b815260040161048b9190610861565b61067e816106b3565b50565b3361068a610231565b6001600160a01b03161461017b573360405163118cdaa760e01b815260040161048b9190610861565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8161072d7f000000000000000000000000000000000000000000000000000000000000000083611027565b101561077c57604051632a54241d60e21b815260048101839052602481018290527f0000000000000000000000000000000000000000000000000000000000000000604482015260640161048b565b818111156107a75760405163b356ade760e01b8152600481018390526024810182905260440161048b565b5050565b828054828255905f5260205f209081019282156107ef579160200282015b828111156107ef57825182906107df9082611086565b50916020019190600101906107c9565b506107fb9291506107ff565b5090565b808211156107fb575f610812828261081b565b506001016107ff565b50805461082790610c82565b5f825580601f10610836575050565b601f0160209004905f5260205f209081019061067e91905b808211156107fb575f815560010161084e565b6001600160a01b0391909116815260200190565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6108b56020830184610875565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b03811182821017156108f2576108f26108bc565b60405290565b604051601f8201601f191681016001600160401b0381118282101715610920576109206108bc565b604052919050565b5f6001600160401b03821115610940576109406108bc565b5060051b60200190565b5f6001600160401b03821115610962576109626108bc565b50601f01601f191660200190565b5f61098261097d8461094a565b6108f8565b9050828152838383011115610995575f80fd5b828260208301375f602084830101529392505050565b5f60208083850312156109bc575f80fd5b82356001600160401b03808211156109d2575f80fd5b818501915085601f8301126109e5575f80fd5b81356109f361097d82610928565b81815260059190911b83018401908481019088831115610a11575f80fd5b8585015b83811015610a5a57803585811115610a2b575f80fd5b8601603f81018b13610a3b575f80fd5b610a4c8b8983013560408401610970565b845250918601918601610a15565b5098975050505050505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b82811015610abc57603f19888603018452610aaa858351610875565b94509285019290850190600101610a8e565b5092979650505050505050565b5f82601f830112610ad8575f80fd5b6108b583833560208501610970565b5f805f60608486031215610af9575f80fd5b83356001600160401b0380821115610b0f575f80fd5b610b1b87838801610ac9565b94506020860135915080821115610b30575f80fd5b9085019060208288031215610b43575f80fd5b604051602081018181108382111715610b5e57610b5e6108bc565b604052823582811115610b6f575f80fd5b610b7b89828601610ac9565b82525093506040860135915080821115610b93575f80fd5b50610ba086828701610ac9565b9150509250925092565b5f604082016040835280855180835260608501915060608160051b860101925060208088015f5b83811015610bff57605f19888703018552610bed868351610875565b95509382019390820190600101610bd1565b50505050508091505060ff831660208301529392505050565b5f60208284031215610c28575f80fd5b81356001600160a01b03811681146108b5575f80fd5b5f60208284031215610c4e575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610c7c57610c7c610c55565b92915050565b600181811c90821680610c9657607f821691505b602082108103610cb457634e487b7160e01b5f52602260045260245ffd5b50919050565b5f82601f830112610cc9575f80fd5b8151610cd761097d8261094a565b818152846020838601011115610ceb575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f82601f830112610d16575f80fd5b81516020610d2661097d83610928565b82815260059290921b84018101918181019086841115610d44575f80fd5b8286015b84811015610d815780516001600160401b03811115610d65575f80fd5b610d738986838b0101610cba565b845250918301918301610d48565b509695505050505050565b5f60208284031215610d9c575f80fd5b81516001600160401b0380821115610db2575f80fd5b9083019060608286031215610dc5575f80fd5b610dcd6108d0565b825182811115610ddb575f80fd5b610de787828601610cba565b825250602083015182811115610dfb575f80fd5b610e0787828601610d07565b602083015250604083015182811115610e1e575f80fd5b610e2a87828601610cba565b60408301525095945050505050565b80516001600160401b0381168114610e4f575f80fd5b919050565b5f610100808385031215610e66575f80fd5b604051908101906001600160401b0382118183101715610e8857610e886108bc565b81604052610e9584610e39565b815260208401516020820152610ead60408501610e39565b6040820152606084015160608201526080840151608082015260a084015160a082015260c084015160c082015260e084015160e0820152809250505092915050565b6001600160401b0391909116815260200190565b604081525f83516020806040850152610f1f6060850183610875565b91508382038185015260a08201855183528186015182840152604086015160a0604085015281815180845260c08601915060c08160051b870101935084830192505f5b81811015610f905760bf19878603018352610f7e858551610875565b94509285019291850191600101610f62565b50505050606086015191508281036060840152610fad8183610875565b9150506080850151610fca60808401826001600160a01b03169052565b5095945050505050565b5f8060408385031215610fe5575f80fd5b82516001600160401b03811115610ffa575f80fd5b61100685828601610d07565b925050602083015160ff8116811461101c575f80fd5b809150509250929050565b80820180821115610c7c57610c7c610c55565b601f82111561108157805f5260205f20601f840160051c8101602085101561105f5750805b601f840160051c820191505b8181101561107e575f815560010161106b565b50505b505050565b81516001600160401b0381111561109f5761109f6108bc565b6110b3816110ad8454610c82565b8461103a565b602080601f8311600181146110e6575f84156110cf5750858301515b5f19600386901b1c1916600185901b17855561113d565b5f85815260208120601f198616915b82811015611114578886015182559484019460019091019084016110f5565b508582101561113157878501515f19600388901b60f8161c191681555b505060018460011b0185555b50505050505056fea2646970667358221220506596ad2fa331a963c21d8cb7da2dfb3f6ba837c14188aaaea4ee844783bbfd64736f6c63430008190033","sourceMap":"835:1550:45:-:0;;;925:207;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1076:4;1082:6;1090:5;566:10:0;;1269:95:48;;1322:31;;-1:-1:-1;;;1322:31:48;;1350:1;1322:31;;;2595:51:65;2568: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;1107:18:45;;;::::1;;::::0;-1:-1:-1;835:1550:45;;-1:-1:-1;;;835:1550:45;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;835:1550:45:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;835:1550:45;;;-1:-1:-1;835:1550:45;:::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:1820::-;803:6;811;819;827;880:3;868:9;859:7;855:23;851:33;848:53;;;897:1;894;887:12;848:53;924:16;;-1:-1:-1;;;;;989:14:65;;;986:34;;;1016:1;1013;1006:12;986:34;1054:6;1043:9;1039:22;1029:32;;1099:7;1092:4;1088:2;1084:13;1080:27;1070:55;;1121:1;1118;1111:12;1070:55;1150:2;1144:9;1172:4;1195:2;1191;1188:10;1185:36;;;1201:18;;:::i;:::-;1247:2;1244:1;1240:10;1270:28;1294:2;1290;1286:11;1270:28;:::i;:::-;1332:15;;;1402:11;;;1398:20;;;1363:12;;;;1430:19;;;1427:39;;;1462:1;1459;1452:12;1427:39;1494:2;1490;1486:11;1475:22;;1506:696;1522:6;1517:3;1514:15;1506:696;;;1601:3;1595:10;1637:2;1624:11;1621:19;1618:39;;;1653:1;1650;1643:12;1618:39;1680:20;;1735:2;1727:11;;1723:25;-1:-1:-1;1713:53:65;;1762:1;1759;1752:12;1713:53;1803:2;1799;1795:11;1789:18;1830:2;1826;1823:10;1820:36;;;1836:18;;:::i;:::-;1882:53;1925:2;1906:13;;-1:-1:-1;;1902:27:65;1898:36;;1882:53;:::i;:::-;1962:2;1955:5;1948:17;2006:7;2001:2;1996;1992;1988:11;1984:20;1981:33;1978:53;;;2027:1;2024;2017:12;1978:53;2079:2;2074;2070;2066:11;2061:2;2054:5;2050:14;2044:38;2127:1;2106:14;;;2102:23;;2095:34;;;;2142:18;;-1:-1:-1;1539:12:65;;;;2180;;;;1506:696;;;2221:5;2211:15;;;;;2266:2;2255:9;2251:18;2245:25;2235:35;;;;;;2289:65;2350:2;2339:9;2335:18;2289:65;:::i;:::-;2279:75;;2373:65;2434:2;2423:9;2419:18;2373:65;:::i;:::-;2363:75;;624:1820;;;;;;;:::o;2657:380::-;2736:1;2732:12;;;;2779;;;2800:61;;2854:4;2846:6;2842:17;2832:27;;2800:61;2907:2;2899:6;2896:14;2876:18;2873:38;2870:161;;2953:10;2948:3;2944:20;2941:1;2934:31;2988:4;2985:1;2978:15;3016:4;3013:1;3006:15;2870:161;;2657:380;;;:::o;3168:518::-;3270:2;3265:3;3262:11;3259:421;;;3306:5;3303:1;3296:16;3350:4;3347:1;3337:18;3420:2;3408:10;3404:19;3401:1;3397:27;3391:4;3387:38;3456:4;3444:10;3441:20;3438:47;;;-1:-1:-1;3479:4:65;3438:47;3534:2;3529:3;3525:12;3522:1;3518:20;3512:4;3508:31;3498:41;;3589:81;3607:2;3600:5;3597:13;3589:81;;;3666:1;3652:16;;3633:1;3622:13;3589:81;;;3593:3;;3259:421;3168:518;;;:::o;3862:1345::-;3982:10;;-1:-1:-1;;;;;4004:30:65;;4001:56;;;4037:18;;:::i;:::-;4066:97;4156:6;4116:38;4148:4;4142:11;4116:38;:::i;:::-;4110:4;4066:97;:::i;:::-;4218:4;;4275:2;4264:14;;4292:1;4287:663;;;;4994:1;5011:6;5008:89;;;-1:-1:-1;5063:19:65;;;5057:26;5008:89;-1:-1:-1;;3819:1:65;3815:11;;;3811:24;3807:29;3797:40;3843:1;3839:11;;;3794:57;5110:81;;4257:944;;4287:663;3115:1;3108:14;;;3152:4;3139:18;;-1:-1:-1;;4323:20:65;;;4441:236;4455:7;4452:1;4449:14;4441:236;;;4544:19;;;4538:26;4523:42;;4636:27;;;;4604:1;4592:14;;;;4471:19;;4441:236;;;4445:3;4705:6;4696:7;4693:19;4690:201;;;4766:19;;;4760:26;-1:-1:-1;;4849:1:65;4845:14;;;4861:3;4841:24;4837:37;4833:42;4818:58;4803:74;;4690:201;;;4937:1;4928:6;4925:1;4921:14;4917:22;4911:4;4904:36;4257:944;;;;;3862:1345;;:::o;:::-;835:1550:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"contracts/GatewayVM.sol":{"GatewayVM":[{"start":2709,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610081575f3560e01c80631d80051d146100855780635cd2525e146100b8578063715018a6146100e757806387c484fe146100f15780638da5cb5b146101065780638e5ea8df1461010e578063b50f2fbc14610121578063e3d1666e14610136578063f2fde38b14610157575b5f80fd5b6040517f000000000000000000000000000000000000000000000000000000000000000081526020015b60405180910390f35b7f00000000000000000000000000000000000000000000000000000000000000005b6040516100af9190610861565b6100ef61016a565b005b6100f961017d565b6040516100af91906108a3565b6100da610231565b6100ef61011c3660046109ab565b61023f565b610129610286565b6040516100af9190610a67565b610149610144366004610ae7565b61035a565b6040516100af929190610baa565b6100ef610165366004610c18565b610644565b610172610681565b61017b5f6106b3565b565b606060017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b8c2f66f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101dd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102019190610c3e565b61020b9190610c69565b60405160200161021d91815260200190565b604051602081830303815290604052905090565b5f546001600160a01b031690565b610247610681565b805161025a9060019060208401906107ab565b506040517fe621d803a0c96b9bbeea51d136777f6ea8a4ce0c4ac74f6645e18b4342e2fa07905f90a150565b60606001805480602002602001604051908101604052809291908181526020015f905b82821015610351578382905f5260205f200180546102c690610c82565b80601f01602080910402602001604051908101604052809291908181526020018280546102f290610c82565b801561033d5780601f106103145761010080835404028352916020019161033d565b820191905f5260205f20905b81548152906001019060200180831161032057829003601f168201915b5050505050815260200190600101906102a9565b50505050905090565b60605f80858060200190518101906103729190610c3e565b90505f848060200190518101906103899190610d8c565b90505f815f01518060200190518101906103a39190610e54565b90506103bb83825f01516001600160401b0316610702565b8051604051635916ebc760e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163b22dd78e916104089190600401610eef565b602060405180830381865afa158015610423573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104479190610c3e565b82518051602090910120146104945760405162461bcd60e51b815260206004820152600e60248201526d0b496a67440c4c2e8c6d090c2e6d60931b60448201526064015b60405180910390fd5b80516040516327364e7960e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691639cd939e4916104e19190600401610eef565b602060405180830381865afa1580156104fc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105209190610c3e565b8160a00151146105685760405162461bcd60e51b81526020600482015260136024820152720b496a67440d86498decee6a4dedee890c2e6d606b1b604482015260640161048b565b6040805160a0810182525f815260208381015181830152840151818301528382015160608201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016608082015290516324a8807560e21b815273__$011ed85421b307e5206de383929e31be73$__916392a201d4916105f4918b91600401610f03565b5f60405180830381865af415801561060e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526106359190810190610fd4565b94509450505050935093915050565b61064c610681565b6001600160a01b038116610675575f604051631e4fbdf760e01b815260040161048b9190610861565b61067e816106b3565b50565b3361068a610231565b6001600160a01b03161461017b573360405163118cdaa760e01b815260040161048b9190610861565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8161072d7f000000000000000000000000000000000000000000000000000000000000000083611027565b101561077c57604051632a54241d60e21b815260048101839052602481018290527f0000000000000000000000000000000000000000000000000000000000000000604482015260640161048b565b818111156107a75760405163b356ade760e01b8152600481018390526024810182905260440161048b565b5050565b828054828255905f5260205f209081019282156107ef579160200282015b828111156107ef57825182906107df9082611086565b50916020019190600101906107c9565b506107fb9291506107ff565b5090565b808211156107fb575f610812828261081b565b506001016107ff565b50805461082790610c82565b5f825580601f10610836575050565b601f0160209004905f5260205f209081019061067e91905b808211156107fb575f815560010161084e565b6001600160a01b0391909116815260200190565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6108b56020830184610875565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b03811182821017156108f2576108f26108bc565b60405290565b604051601f8201601f191681016001600160401b0381118282101715610920576109206108bc565b604052919050565b5f6001600160401b03821115610940576109406108bc565b5060051b60200190565b5f6001600160401b03821115610962576109626108bc565b50601f01601f191660200190565b5f61098261097d8461094a565b6108f8565b9050828152838383011115610995575f80fd5b828260208301375f602084830101529392505050565b5f60208083850312156109bc575f80fd5b82356001600160401b03808211156109d2575f80fd5b818501915085601f8301126109e5575f80fd5b81356109f361097d82610928565b81815260059190911b83018401908481019088831115610a11575f80fd5b8585015b83811015610a5a57803585811115610a2b575f80fd5b8601603f81018b13610a3b575f80fd5b610a4c8b8983013560408401610970565b845250918601918601610a15565b5098975050505050505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b82811015610abc57603f19888603018452610aaa858351610875565b94509285019290850190600101610a8e565b5092979650505050505050565b5f82601f830112610ad8575f80fd5b6108b583833560208501610970565b5f805f60608486031215610af9575f80fd5b83356001600160401b0380821115610b0f575f80fd5b610b1b87838801610ac9565b94506020860135915080821115610b30575f80fd5b9085019060208288031215610b43575f80fd5b604051602081018181108382111715610b5e57610b5e6108bc565b604052823582811115610b6f575f80fd5b610b7b89828601610ac9565b82525093506040860135915080821115610b93575f80fd5b50610ba086828701610ac9565b9150509250925092565b5f604082016040835280855180835260608501915060608160051b860101925060208088015f5b83811015610bff57605f19888703018552610bed868351610875565b95509382019390820190600101610bd1565b50505050508091505060ff831660208301529392505050565b5f60208284031215610c28575f80fd5b81356001600160a01b03811681146108b5575f80fd5b5f60208284031215610c4e575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610c7c57610c7c610c55565b92915050565b600181811c90821680610c9657607f821691505b602082108103610cb457634e487b7160e01b5f52602260045260245ffd5b50919050565b5f82601f830112610cc9575f80fd5b8151610cd761097d8261094a565b818152846020838601011115610ceb575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f82601f830112610d16575f80fd5b81516020610d2661097d83610928565b82815260059290921b84018101918181019086841115610d44575f80fd5b8286015b84811015610d815780516001600160401b03811115610d65575f80fd5b610d738986838b0101610cba565b845250918301918301610d48565b509695505050505050565b5f60208284031215610d9c575f80fd5b81516001600160401b0380821115610db2575f80fd5b9083019060608286031215610dc5575f80fd5b610dcd6108d0565b825182811115610ddb575f80fd5b610de787828601610cba565b825250602083015182811115610dfb575f80fd5b610e0787828601610d07565b602083015250604083015182811115610e1e575f80fd5b610e2a87828601610cba565b60408301525095945050505050565b80516001600160401b0381168114610e4f575f80fd5b919050565b5f610100808385031215610e66575f80fd5b604051908101906001600160401b0382118183101715610e8857610e886108bc565b81604052610e9584610e39565b815260208401516020820152610ead60408501610e39565b6040820152606084015160608201526080840151608082015260a084015160a082015260c084015160c082015260e084015160e0820152809250505092915050565b6001600160401b0391909116815260200190565b604081525f83516020806040850152610f1f6060850183610875565b91508382038185015260a08201855183528186015182840152604086015160a0604085015281815180845260c08601915060c08160051b870101935084830192505f5b81811015610f905760bf19878603018352610f7e858551610875565b94509285019291850191600101610f62565b50505050606086015191508281036060840152610fad8183610875565b9150506080850151610fca60808401826001600160a01b03169052565b5095945050505050565b5f8060408385031215610fe5575f80fd5b82516001600160401b03811115610ffa575f80fd5b61100685828601610d07565b925050602083015160ff8116811461101c575f80fd5b809150509250929050565b80820180821115610c7c57610c7c610c55565b601f82111561108157805f5260205f20601f840160051c8101602085101561105f5750805b601f840160051c820191505b8181101561107e575f815560010161106b565b50505b505050565b81516001600160401b0381111561109f5761109f6108bc565b6110b3816110ad8454610c82565b8461103a565b602080601f8311600181146110e6575f84156110cf5750858301515b5f19600386901b1c1916600185901b17855561113d565b5f85815260208120601f198616915b82811015611114578886015182559484019460019091019084016110f5565b508582101561113157878501515f19600388901b60f8161c191681555b505060018460011b0185555b50505050505056fea2646970667358221220506596ad2fa331a963c21d8cb7da2dfb3f6ba837c14188aaaea4ee844783bbfd64736f6c63430008190033","sourceMap":"835:1550:45:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;896:84:0;;;966:7;160:25:65;;148:2;133:18;896:84:0;;;;;;;;986:89;1062:6;986:89;;;;;;;:::i;2293:101:48:-;;;:::i;:::-;;1138:139:45;;;:::i;:::-;;;;;;;:::i;1638:85:48:-;;;:::i;663:129:0:-;;;;;;:::i;:::-;;:::i;798:92::-;;;:::i;:::-;;;;;;;:::i;1389:994:45:-;;;;;;:::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;1138:139:45:-;1189:12;1268:1;1231:8;-1:-1:-1;;;;;1231:32:45;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:38;;;;:::i;:::-;1220:50;;;;;;160:25:65;;148:2;133:18;;14:177;1220:50:45;;;;;;;;;;;;;1213:57;;1138:139;:::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;1389:994:45:-;1537:14;1553;1579:19;1612:7;1601:30;;;;;;;;;;;;:::i;:::-;1579:52;;1641:21;1676:5;1665:33;;;;;;;;;;;;:::i;:::-;1641:57;;1708:32;1767:1;:14;;;1743:79;;;;;;;;;;;;:::i;:::-;1708:114;;1832:48;1845:11;1858:9;:21;;;-1:-1:-1;;;;;1832:48:45;:12;:48::i;:::-;1981:21;;1956:47;;-1:-1:-1;;;1956:47:45;;-1:-1:-1;;;;;1956:8:45;:24;;;;:47;;1981:21;1956:47;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1921:14;;1911:25;;;;;;;:92;1890:153;;;;-1:-1:-1;;;1890:153:45;;12083:2:65;1890:153:45;;;12065:21:65;12122:2;12102:18;;;12095:30;-1:-1:-1;;;12141:18:65;;;12134:44;12195:18;;1890:153:45;;;;;;;;;2142:21;;2118:46;;-1:-1:-1;;;2118:46:45;;-1:-1:-1;;;;;2118:8:45;:23;;;;:46;;2142:21;2118:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2074:9;:24;;;:90;2053:156;;;;-1:-1:-1;;;2053:156:45;;12426:2:65;2053:156:45;;;12408:21:65;12465:2;12445:18;;;12438:30;-1:-1:-1;;;12484:18:65;;;12477:49;12543:18;;2053:156:45;12224:343:65;2053:156:45;2298:64;;;;;;;;-1:-1:-1;2298:64:45;;;2315:19;;;;2298:64;;;;2336:8;;;2298:64;;;;2346:7;;;;2298:64;;;;-1:-1:-1;;;;;2355:6:45;2298:64;;;;;2238:138;;-1:-1:-1;;;2238:138:45;;:9;;:21;;:138;;2277:3;;2238:138;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2238:138:45;;;;;;;;;;;;:::i;:::-;2219:157;;;;;;;1389:994;;;;;;:::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;1081:211:0:-;1176:6;1160:13;1166:7;1160:3;:13;:::i;:::-;:22;1156:69;;;1191:34;;-1:-1:-1;;;1191:34:0;;;;;15003:25:65;;;15044:18;;;15037:34;;;1217:7:0;15087:18:65;;;15080:34;14976:18;;1191:34:0;14801:319:65;1156:69:0;1245:6;1239:3;:12;1235:50;;;1260:25;;-1:-1:-1;;;1260:25:0;;;;;15299::65;;;15340:18;;;15333:34;;;15272:18;;1260:25:0;15125:248:65;1235:50:0;1081:211;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;321:226:65;-1:-1:-1;;;;;508:32:65;;;;490:51;;478:2;463:18;;321:226::o;552:288::-;593:3;631:5;625:12;658:6;653:3;646:19;714:6;707:4;700:5;696:16;689:4;684:3;680:14;674:47;766:1;759:4;750:6;745:3;741:16;737:27;730:38;829:4;822:2;818:7;813:2;805:6;801:15;797:29;792:3;788:39;784:50;777:57;;;552:288;;;;:::o;845:217::-;992:2;981:9;974:21;955:4;1012:44;1052:2;1041:9;1037:18;1029:6;1012:44;:::i;:::-;1004:52;845:217;-1:-1:-1;;;845:217:65:o;1275:127::-;1336:10;1331:3;1327:20;1324:1;1317:31;1367:4;1364:1;1357:15;1391:4;1388:1;1381:15;1407:253;1479:2;1473:9;1521:4;1509:17;;-1:-1:-1;;;;;1541:34:65;;1577:22;;;1538:62;1535:88;;;1603:18;;:::i;:::-;1639:2;1632:22;1407:253;:::o;1665:275::-;1736:2;1730:9;1801:2;1782:13;;-1:-1:-1;;1778:27:65;1766:40;;-1:-1:-1;;;;;1821:34:65;;1857:22;;;1818:62;1815:88;;;1883:18;;:::i;:::-;1919:2;1912:22;1665:275;;-1:-1:-1;1665:275:65:o;1945:182::-;2004:4;-1:-1:-1;;;;;2026:30:65;;2023:56;;;2059:18;;:::i;:::-;-1:-1:-1;2104:1:65;2100:14;2116:4;2096:25;;1945:182::o;2132:187::-;2181:4;-1:-1:-1;;;;;2203:30:65;;2200:56;;;2236:18;;:::i;:::-;-1:-1:-1;2302:2:65;2281:15;-1:-1:-1;;2277:29:65;2308:4;2273:40;;2132:187::o;2324:338::-;2389:5;2418:53;2434:36;2463:6;2434:36;:::i;:::-;2418:53;:::i;:::-;2409:62;;2494:6;2487:5;2480:21;2534:3;2525:6;2520:3;2516:16;2513:25;2510:45;;;2551:1;2548;2541:12;2510:45;2600:6;2595:3;2588:4;2581:5;2577:16;2564:43;2654:1;2647:4;2638:6;2631:5;2627:18;2623:29;2616:40;2324:338;;;;;:::o;2667:1197::-;2761:6;2792:2;2835;2823:9;2814:7;2810:23;2806:32;2803:52;;;2851:1;2848;2841:12;2803:52;2878:23;;-1:-1:-1;;;;;2950:14:65;;;2947:34;;;2977:1;2974;2967:12;2947:34;3015:6;3004:9;3000:22;2990:32;;3060:7;3053:4;3049:2;3045:13;3041:27;3031:55;;3082:1;3079;3072:12;3031:55;3118:2;3105:16;3141:59;3157:42;3196:2;3157:42;:::i;3141:59::-;3234:15;;;3316:1;3312:10;;;;3304:19;;3300:28;;;3265:12;;;;3340:19;;;3337:39;;;3372:1;3369;3362:12;3337:39;3404:2;3400;3396:11;3416:418;3432:6;3427:3;3424:15;3416:418;;;3518:3;3505:17;3554:2;3541:11;3538:19;3535:39;;;3570:1;3567;3560:12;3535:39;3597:20;;3652:2;3644:11;;3640:25;-1:-1:-1;3630:53:65;;3679:1;3676;3669:12;3630:53;3708:83;3783:7;3777:2;3773;3769:11;3756:25;3751:2;3747;3743:11;3708:83;:::i;:::-;3696:96;;-1:-1:-1;3812:12:65;;;;3449;;3416:418;;;-1:-1:-1;3853:5:65;2667:1197;-1:-1:-1;;;;;;;;2667:1197:65:o;3869:802::-;4031:4;4060:2;4100;4089:9;4085:18;4130:2;4119:9;4112:21;4153:6;4188;4182:13;4219:6;4211;4204:22;4257:2;4246:9;4242:18;4235:25;;4319:2;4309:6;4306:1;4302:14;4291:9;4287:30;4283:39;4269:53;;4357:2;4349:6;4345:15;4378:1;4388:254;4402:6;4399:1;4396:13;4388:254;;;4495:2;4491:7;4479:9;4471:6;4467:22;4463:36;4458:3;4451:49;4523:39;4555:6;4546;4540:13;4523:39;:::i;:::-;4513:49;-1:-1:-1;4620:12:65;;;;4585:15;;;;4424:1;4417:9;4388:254;;;-1:-1:-1;4659:6:65;;3869:802;-1:-1:-1;;;;;;;3869:802:65:o;4676:221::-;4718:5;4771:3;4764:4;4756:6;4752:17;4748:27;4738:55;;4789:1;4786;4779:12;4738:55;4811:80;4887:3;4878:6;4865:20;4858:4;4850:6;4846:17;4811:80;:::i;4902:1153::-;5029:6;5037;5045;5098:2;5086:9;5077:7;5073:23;5069:32;5066:52;;;5114:1;5111;5104:12;5066:52;5141:23;;-1:-1:-1;;;;;5213:14:65;;;5210:34;;;5240:1;5237;5230:12;5210:34;5263:49;5304:7;5295:6;5284:9;5280:22;5263:49;:::i;:::-;5253:59;;5365:2;5354:9;5350:18;5337:32;5321:48;;5394:2;5384:8;5381:16;5378:36;;;5410:1;5407;5400:12;5378:36;5433:24;;;;5491:2;5473:16;;;5469:25;5466:45;;;5507:1;5504;5497:12;5466:45;5540:2;5534:9;5582:2;5574:6;5570:15;5635:6;5623:10;5620:22;5615:2;5603:10;5600:18;5597:46;5594:72;;;5646:18;;:::i;:::-;5682:2;5675:22;5722:16;;5750;;;5747:36;;;5779:1;5776;5769:12;5747:36;5807:44;5843:7;5832:8;5828:2;5824:17;5807:44;:::i;:::-;5792:60;;-1:-1:-1;5799:6:65;-1:-1:-1;5930:2:65;5915:18;;5902:32;;-1:-1:-1;5946:16:65;;;5943:36;;;5975:1;5972;5965:12;5943:36;;5998:51;6041:7;6030:8;6019:9;6015:24;5998:51;:::i;:::-;5988:61;;;4902:1153;;;;;:::o;6060:884::-;6244:4;6292:2;6281:9;6277:18;6322:2;6311:9;6304:21;6345:6;6380;6374:13;6411:6;6403;6396:22;6449:2;6438:9;6434:18;6427:25;;6511:2;6501:6;6498:1;6494:14;6483:9;6479:30;6475:39;6461:53;;6533:4;6572;6564:6;6560:17;6595:1;6605:254;6619:6;6616:1;6613:13;6605:254;;;6712:2;6708:7;6696:9;6688:6;6684:22;6680:36;6675:3;6668:49;6740:39;6772:6;6763;6757:13;6740:39;:::i;:::-;6730:49;-1:-1:-1;6837:12:65;;;;6802:15;;;;6641:1;6634:9;6605:254;;;6609:3;;;;;6876:6;6868:14;;;6932:4;6924:6;6920:17;6913:4;6902:9;6898:20;6891:47;6060:884;;;;;:::o;6949:286::-;7008:6;7061:2;7049:9;7040:7;7036:23;7032:32;7029:52;;;7077:1;7074;7067:12;7029:52;7103:23;;-1:-1:-1;;;;;7155:31:65;;7145:42;;7135:70;;7201:1;7198;7191:12;7240:184;7310:6;7363:2;7351:9;7342:7;7338:23;7334:32;7331:52;;;7379:1;7376;7369:12;7331:52;-1:-1:-1;7402:16:65;;7240:184;-1:-1:-1;7240:184:65:o;7429:127::-;7490:10;7485:3;7481:20;7478:1;7471:31;7521:4;7518:1;7511:15;7545:4;7542:1;7535:15;7561:128;7628:9;;;7649:11;;;7646:37;;;7663:18;;:::i;:::-;7561:128;;;;:::o;7694:380::-;7773:1;7769:12;;;;7816;;;7837:61;;7891:4;7883:6;7879:17;7869:27;;7837:61;7944:2;7936:6;7933:14;7913:18;7910:38;7907:161;;7990:10;7985:3;7981:20;7978:1;7971:31;8025:4;8022:1;8015:15;8053:4;8050:1;8043:15;7907:161;;7694:380;;;:::o;8079:460::-;8132:5;8185:3;8178:4;8170:6;8166:17;8162:27;8152:55;;8203:1;8200;8193:12;8152:55;8232:6;8226:13;8263:49;8279:32;8308:2;8279:32;:::i;8263:49::-;8337:2;8328:7;8321:19;8383:3;8376:4;8371:2;8363:6;8359:15;8355:26;8352:35;8349:55;;;8400:1;8397;8390:12;8349:55;8458:2;8451:4;8443:6;8439:17;8432:4;8423:7;8419:18;8413:48;8506:1;8481:16;;;8499:4;8477:27;8470:38;;;;8485:7;8079:460;-1:-1:-1;;;8079:460:65:o;8544:823::-;8607:5;8660:3;8653:4;8645:6;8641:17;8637:27;8627:55;;8678:1;8675;8668:12;8627:55;8707:6;8701:13;8733:4;8757:59;8773:42;8812:2;8773:42;:::i;8757:59::-;8850:15;;;8936:1;8932:10;;;;8920:23;;8916:32;;;8881:12;;;;8960:15;;;8957:35;;;8988:1;8985;8978:12;8957:35;9024:2;9016:6;9012:15;9036:302;9052:6;9047:3;9044:15;9036:302;;;9125:10;;-1:-1:-1;;;;;9151:35:65;;9148:55;;;9199:1;9196;9189:12;9148:55;9228:67;9291:3;9286:2;9272:11;9264:6;9260:24;9256:33;9228:67;:::i;:::-;9216:80;;-1:-1:-1;9316:12:65;;;;9069;;9036:302;;;-1:-1:-1;9356:5:65;8544:823;-1:-1:-1;;;;;;8544:823:65:o;9372:984::-;9473:6;9526:2;9514:9;9505:7;9501:23;9497:32;9494:52;;;9542:1;9539;9532:12;9494:52;9569:16;;-1:-1:-1;;;;;9634:14:65;;;9631:34;;;9661:1;9658;9651:12;9631:34;9684:22;;;;9740:4;9722:16;;;9718:27;9715:47;;;9758:1;9755;9748:12;9715:47;9784:22;;:::i;:::-;9837:2;9831:9;9865:2;9855:8;9852:16;9849:36;;;9881:1;9878;9871:12;9849:36;9908:55;9955:7;9944:8;9940:2;9936:17;9908:55;:::i;:::-;9901:5;9894:70;;10003:2;9999;9995:11;9989:18;10032:2;10022:8;10019:16;10016:36;;;10048:1;10045;10038:12;10016:36;10084:65;10141:7;10130:8;10126:2;10122:17;10084:65;:::i;:::-;10079:2;10072:5;10068:14;10061:89;;10189:2;10185;10181:11;10175:18;10218:2;10208:8;10205:16;10202:36;;;10234:1;10231;10224:12;10202:36;10270:55;10317:7;10306:8;10302:2;10298:17;10270:55;:::i;:::-;10265:2;10254:14;;10247:79;-1:-1:-1;10258:5:65;9372:984;-1:-1:-1;;;;;9372:984:65:o;10361:175::-;10439:13;;-1:-1:-1;;;;;10481:30:65;;10471:41;;10461:69;;10526:1;10523;10516:12;10461:69;10361:175;;;:::o;10541:940::-;10645:6;10676:3;10720:2;10708:9;10699:7;10695:23;10691:32;10688:52;;;10736:1;10733;10726:12;10688:52;10769:2;10763:9;10799:15;;;;-1:-1:-1;;;;;10829:34:65;;10865:22;;;10826:62;10823:88;;;10891:18;;:::i;:::-;10931:10;10927:2;10920:22;10966:39;10995:9;10966:39;:::i;:::-;10958:6;10951:55;11060:2;11049:9;11045:18;11039:25;11034:2;11026:6;11022:15;11015:50;11098:48;11142:2;11131:9;11127:18;11098:48;:::i;:::-;11093:2;11085:6;11081:15;11074:73;11201:2;11190:9;11186:18;11180:25;11175:2;11167:6;11163:15;11156:50;11261:3;11250:9;11246:19;11240:26;11234:3;11226:6;11222:16;11215:52;11322:3;11311:9;11307:19;11301:26;11295:3;11287:6;11283:16;11276:52;11383:3;11372:9;11368:19;11362:26;11356:3;11348:6;11344:16;11337:52;11444:3;11433:9;11429:19;11423:26;11417:3;11409:6;11405:16;11398:52;11469:6;11459:16;;;;10541:940;;;;:::o;11486:201::-;-1:-1:-1;;;;;11649:31:65;;;;11631:50;;11619:2;11604:18;;11486:201::o;12572:1569::-;12863:2;12852:9;12845:21;12826:4;12901:6;12895:13;12927:4;12967:2;12962;12951:9;12947:18;12940:30;12990:50;13036:2;13025:9;13021:18;13007:12;12990:50;:::i;:::-;12979:61;;13085:9;13080:3;13076:19;13071:2;13060:9;13056:18;13049:47;13128:4;13123:3;13119:14;13160:6;13154:13;13149:3;13142:26;13216:2;13208:6;13204:15;13198:22;13193:2;13188:3;13184:12;13177:44;13270:2;13262:6;13258:15;13252:22;13304:4;13299:2;13294:3;13290:12;13283:26;13329:6;13364:14;13358:21;13403:6;13395;13388:22;13435:3;13430;13426:13;13419:20;;13492:3;13482:6;13479:1;13475:14;13470:3;13466:24;13462:34;13448:48;;13539:2;13523:14;13519:23;13505:37;;13560:1;13570:249;13584:6;13581:1;13578:13;13570:249;;;13671:3;13667:8;13661:3;13653:6;13649:16;13645:31;13640:3;13633:44;13700:39;13732:6;13723;13717:13;13700:39;:::i;:::-;13690:49;-1:-1:-1;13762:15:65;;;;13797:12;;;;13606:1;13599:9;13570:249;;;13574:3;;;;13868:2;13860:6;13856:15;13850:22;13828:44;;13914:3;13906:6;13902:16;13897:2;13892:3;13888:12;13881:38;13942:40;13975:6;13959:14;13942:40;:::i;:::-;13928:54;;;14031:4;14023:6;14019:17;14013:24;14046:66;14106:4;14101:3;14097:14;14081;-1:-1:-1;;;;;278:31:65;266:44;;196:120;14046:66;-1:-1:-1;14129:6:65;12572:1569;-1:-1:-1;;;;;12572:1569:65:o;14146:520::-;14257:6;14265;14318:2;14306:9;14297:7;14293:23;14289:32;14286:52;;;14334:1;14331;14324:12;14286:52;14361:16;;-1:-1:-1;;;;;14389:30:65;;14386:50;;;14432:1;14429;14422:12;14386:50;14455:70;14517:7;14508:6;14497:9;14493:22;14455:70;:::i;:::-;14445:80;;;14568:2;14557:9;14553:18;14547:25;14612:4;14605:5;14601:16;14594:5;14591:27;14581:55;;14632:1;14629;14622:12;14581:55;14655:5;14645:15;;;14146:520;;;;;:::o;14671:125::-;14736:9;;;14757:10;;;14754:36;;;14770:18;;:::i;15504:518::-;15606:2;15601:3;15598:11;15595:421;;;15642:5;15639:1;15632:16;15686:4;15683:1;15673:18;15756:2;15744:10;15740:19;15737:1;15733:27;15727:4;15723:38;15792:4;15780:10;15777:20;15774:47;;;-1:-1:-1;15815:4:65;15774:47;15870:2;15865:3;15861:12;15858:1;15854:20;15848:4;15844:31;15834:41;;15925:81;15943:2;15936:5;15933:13;15925:81;;;16002:1;15988:16;;15969:1;15958:13;15925:81;;;15929:3;;15595:421;15504:518;;;:::o;16198:1345::-;16318:10;;-1:-1:-1;;;;;16340:30:65;;16337:56;;;16373:18;;:::i;:::-;16402:97;16492:6;16452:38;16484:4;16478:11;16452:38;:::i;:::-;16446:4;16402:97;:::i;:::-;16554:4;;16611:2;16600:14;;16628:1;16623:663;;;;17330:1;17347:6;17344:89;;;-1:-1:-1;17399:19:65;;;17393:26;17344:89;-1:-1:-1;;16155:1:65;16151:11;;;16147:24;16143:29;16133:40;16179:1;16175:11;;;16130:57;17446:81;;16593:944;;16623:663;15451:1;15444:14;;;15488:4;15475:18;;-1:-1:-1;;16659:20:65;;;16777:236;16791:7;16788:1;16785:14;16777:236;;;16880:19;;;16874:26;16859:42;;16972:27;;;;16940:1;16928:14;;;;16807:19;;16777:236;;;16781:3;17041:6;17032:7;17029:19;17026:201;;;17102:19;;;17096:26;-1:-1:-1;;17185:1:65;17181:14;;;17197:3;17177:24;17173:37;17169:42;17154:58;17139:74;;17026:201;;;17273:1;17264:6;17261:1;17257:14;17253:22;17247:4;17240:36;16593:944;;;;;16198:1345;;:::o","linkReferences":{"contracts/GatewayVM.sol":{"GatewayVM":[{"start":1484,"length":20}]}},"immutableReferences":{"15193":[{"start":387,"length":32},{"start":980,"length":32},{"start":1197,"length":32}],"20":[{"start":138,"length":32},{"start":1800,"length":32},{"start":1872,"length":32}],"23":[{"start":186,"length":32},{"start":1433,"length":32}]}},"methodIdentifiers":{"gatewayURLs()":"b50f2fbc","getHooks()":"5cd2525e","getLatestContext()":"87c484fe","getStorageValues(bytes,(bytes),bytes)":"e3d1666e","getWindow()":"1d80051d","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setGatewayURLs(string[])":"8e5ea8df","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"urls\",\"type\":\"string[]\"},{\"internalType\":\"uint256\",\"name\":\"window\",\"type\":\"uint256\"},{\"internalType\":\"contract IVerifierHooks\",\"name\":\"hooks\",\"type\":\"address\"},{\"internalType\":\"contract IZKSyncDiamond\",\"name\":\"diamond\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"latest\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"got\",\"type\":\"uint256\"}],\"name\":\"CommitTooNew\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"latest\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"got\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"window\",\"type\":\"uint256\"}],\"name\":\"CommitTooOld\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"GatewayURLsChanged\",\"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\"},{\"inputs\":[],\"name\":\"gatewayURLs\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getHooks\",\"outputs\":[{\"internalType\":\"contract IVerifierHooks\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestContext\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"context\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"ops\",\"type\":\"bytes\"}],\"internalType\":\"struct GatewayRequest\",\"name\":\"req\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"name\":\"getStorageValues\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"},{\"internalType\":\"uint8\",\"name\":\"exitCode\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWindow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"urls\",\"type\":\"string[]\"}],\"name\":\"setGatewayURLs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"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.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/zksync/ZKSyncVerifier.sol\":\"ZKSyncVerifier\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[\":@eth-optimism/=lib/optimism/packages/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":optimism/=lib/optimism/packages/contracts-bedrock/src/\"]},\"sources\":{\"contracts/AbstractVerifier.sol\":{\"keccak256\":\"0x4868ee9c8ade05b23ce93c2fce0507588583597df087f9494a69df005cff2652\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e822d963a8461edcf72a7e500b53b0bfaf0d98412ae5da3287246cc491ef705\",\"dweb:/ipfs/QmU8NJXEg5oFCoahg9F8qtQoWsW1sYfKmDCVD7vtNX9qbZ\"]},\"contracts/GatewayRequest.sol\":{\"keccak256\":\"0x3e6ce7cae72d6d77a9a4b5644495b8621116be44511186d47efbb27ce0fc73f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://301c7ad11dd0e050811a58ab6942040df9bad5e269bb43e4c74ffca3b43622f5\",\"dweb:/ipfs/QmXocie71GDYUPDEcVLsZ9N6LXZaSj8SX49HbGG3CUHLvP\"]},\"contracts/GatewayVM.sol\":{\"keccak256\":\"0x9bff36c483bb29a6fc0525cfa7ba09b523632ed9477dac23aa8d312237e987ed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2452b324151e1909f825a83e895a242de7795bdab405121d3baec42128e350da\",\"dweb:/ipfs/QmWdMuMT3wYoe4Sa73PPWuW1RZSqvUT2qFck6WvMdLnSCy\"]},\"contracts/IGatewayVerifier.sol\":{\"keccak256\":\"0xd56c8ace6aba1354dd4c477b566343b641f57a8c4ef88e1d84294d3727552284\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e268659b9c590a5ce3d2eb440a11bcdf3214a4bfcfa7f38523137ccf940fa32\",\"dweb:/ipfs/QmVpLNhcXQbx4MaBPMnnEnt7gTLNWB753BszqakBq5yUA3\"]},\"contracts/IVerifierHooks.sol\":{\"keccak256\":\"0xd85e9b52270a88d0df9b26454d9c80389405c230b7d67060742a4a0ea5917248\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81de43a606284b5b9b146e06dbf6f54db5480058deb5fbe150302a37ffe14e1a\",\"dweb:/ipfs/QmSDH39aPAch4bKhRZbJ5vSDEUUDic76gWxDDDGaYxbPat\"]},\"contracts/zksync/IZKSyncSMT.sol\":{\"keccak256\":\"0xfb3e967fd2f3a790a98c039033c88fd5fffb4b8d5989631698815d18deb1212e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29ee531cbe3de72c6d862ece81299d12f40f2faf41faa11022e1054e8a031576\",\"dweb:/ipfs/QmaJjkcYuhGvs6HPPvSY5g7PQkyaNALR1FDjYmZUnTbWSC\"]},\"contracts/zksync/ZKSyncVerifier.sol\":{\"keccak256\":\"0xb8a8a3c9de628d0454372e1f85539395b6169c77fdbfd7b989abce37c4d32b96\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aae59be433023c625963181bd431a0c7f99f7c135b48dc3a622ba4ff429a7a47\",\"dweb:/ipfs/QmTEbdwPzeBeSVDZJNoitsg6f17ZMu9qYBifk8MM3L4ipd\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57\",\"dweb:/ipfs/QmR9VzmnBDJpgiDP6